From 1fcf64f2260b5eae26469990f11ce36f18f8eb12 Mon Sep 17 00:00:00 2001 From: Kyle Somers Date: Thu, 11 Aug 2016 22:56:38 -0400 Subject: [PATCH] v3.0.0 --- CHANGELOG.md | 6 + .../ZombieGetMessages.zip | Bin 0 -> 1165 bytes .../ZombiePostMessage.zip | Bin 0 -> 1402 bytes CloudFormation/CreateZombieWorkshop.json | 272 +- .../src/ApiGatewayCreate.js | 79 +- .../src/LambdaHandler.js | 13 +- .../src/WK305_Gateway.zip | Bin 689846 -> 819605 bytes .../S3GetFilesFunction.js | 113 +- .../node_modules/async/CHANGELOG.md | 125 + .../node_modules/async/LICENSE | 19 + .../node_modules/async/README.md | 1877 + .../node_modules/async/dist/async.js | 1265 + .../node_modules/async/dist/async.min.js | 2 + .../node_modules/async/lib/async.js | 1265 + .../node_modules/async/package.json | 149 + .../CustomResources/cognito/cognito.js | 178 + .../CustomResources/cognito/cognito.zip | Bin 0 -> 49039 bytes .../cognito/node_modules/async/CHANGELOG.md | 125 + .../cognito/node_modules/async/LICENSE | 19 + .../cognito/node_modules/async/README.md | 1877 + .../cognito/node_modules/async/dist/async.js | 1265 + .../node_modules/async/dist/async.min.js | 2 + .../cognito/node_modules/async/lib/async.js | 1265 + .../cognito/node_modules/async/package.json | 149 + .../cognitoLambdaTrigger.zip | Bin 0 -> 2071 bytes .../cognitoTriggerBuild/index.js | 101 + Images/Cognito-Step1.png | Bin 0 -> 539136 bytes Images/Cognito-Step12.png | Bin 0 -> 17431 bytes Images/Cognito-Step16.png | Bin 0 -> 537880 bytes Images/Cognito-Step18.png | Bin 0 -> 221265 bytes Images/Cognito-Step24.png | Bin 0 -> 29214 bytes Images/Cognito-Step5.png | Bin 0 -> 161796 bytes Images/Cognito-Step9.png | Bin 0 -> 206646 bytes Images/Sensor-Step3.png | Bin 0 -> 103945 bytes .../AWS_Zombie_Apocalypse_Workshop.pdf | Bin 3896344 -> 4745186 bytes README.md | 322 +- S3WebApp/S3/app.js | 309 + S3WebApp/S3/assets/css/zombie.css | 416 + S3WebApp/S3/assets/images/Zombie_Map.gif | Bin 0 -> 168625 bytes S3WebApp/{ => S3}/assets/images/aws-logo.png | Bin S3WebApp/S3/assets/images/signalcorps.png | Bin 0 -> 24521 bytes S3WebApp/{ => S3}/assets/images/title.png | Bin S3WebApp/{ => S3}/assets/images/username.png | Bin S3WebApp/S3/assets/images/zombie-login.jpg | Bin 0 -> 320678 bytes .../{ => S3}/assets/images/zombie-logo.png | Bin .../assets/js/amazon-cognito-identity.min.js | 20 + S3WebApp/S3/assets/js/aws-cognito-sdk.js | 51736 ++++++++++++++++ S3WebApp/S3/assets/js/aws-cognito-sdk.min.js | 10 + S3WebApp/S3/assets/js/aws-sdk.min.js | 30 + S3WebApp/S3/assets/js/constants.js | 1 + S3WebApp/S3/assets/js/jsbn.js | 559 + S3WebApp/S3/assets/js/jsbn2.js | 656 + S3WebApp/S3/assets/js/moment.min.js | 7 + S3WebApp/S3/assets/js/sjcl.js | 56 + S3WebApp/S3/assets/js/underscore.min.js | 5 + S3WebApp/S3/factories/utils.js | 30 + S3WebApp/S3/index.html | 62 + .../S3/lib/CryptoJS/components/enc-base64.js | 109 + S3WebApp/S3/lib/CryptoJS/components/hmac.js | 131 + .../S3/lib/CryptoJS/rollups/hmac-sha256.js | 18 + S3WebApp/S3/lib/CryptoJS/rollups/sha256.js | 16 + .../S3/lib/apiGatewayCore/apiGatewayClient.js | 53 + S3WebApp/S3/lib/apiGatewayCore/sigV4Client.js | 213 + .../S3/lib/apiGatewayCore/simpleHttpClient.js | 81 + S3WebApp/S3/lib/apiGatewayCore/utils.js | 80 + .../S3/lib/axios/dist/axios.standalone.js | 1089 + S3WebApp/S3/lib/url-template/url-template.js | 438 + S3WebApp/S3/modules/chat/chat.html | 31 + S3WebApp/S3/modules/chat/chat.js | 85 + S3WebApp/S3/modules/chat/chatMessages.html | 5 + S3WebApp/S3/modules/chat/chatMessages.js | 78 + S3WebApp/S3/modules/chat/chatPanel.html | 7 + S3WebApp/S3/modules/chat/chatPanel.js | 52 + S3WebApp/S3/modules/chat/talkersPanel.html | 8 + S3WebApp/S3/modules/chat/talkersPanel.js | 47 + S3WebApp/S3/modules/confirm/confirm.html | 41 + S3WebApp/S3/modules/confirm/confirm.js | 45 + S3WebApp/{ => S3/modules}/index.html | 54 +- S3WebApp/S3/modules/signin/signin.html | 55 + S3WebApp/S3/modules/signin/signin.js | 94 + S3WebApp/S3/modules/signup/signup.html | 107 + S3WebApp/S3/modules/signup/signup.js | 93 + S3WebApp/app/app.js | 3 - .../app/controllers/chatMessageController.js | 51 - .../app/controllers/chatPanelController.js | 35 - S3WebApp/app/controllers/loginController.js | 28 - .../app/controllers/talkersPanelController.js | 36 - S3WebApp/assets/css/zombie.css | 122 - S3WebApp/assets/js/constants.js | 1 - Slack/SlackService.js | 131 +- Twilio/TwilioProcessing.js | 126 +- cognitoLambdaTrigger/cognitoLambdaTrigger.zip | Bin 0 -> 2232242 bytes cognitoLambdaTrigger/index.js | 70 + .../node_modules/aws-sdk/.jshintrc | 68 + .../node_modules/aws-sdk/.npmignore | 18 + .../node_modules/aws-sdk/.tesselinclude | 2 + .../node_modules/aws-sdk/CONTRIBUTING.md | 84 + .../node_modules/aws-sdk/LICENSE.txt | 202 + .../node_modules/aws-sdk/NOTICE.txt | 5 + .../node_modules/aws-sdk/README.md | 157 + .../node_modules/aws-sdk/UPGRADING.md | 157 + .../aws-sdk/apis/acm-2015-12-08.min.json | 262 + .../apis/acm-2015-12-08.paginators.json | 10 + .../apis/apigateway-2015-07-09.min.json | 2681 + .../apigateway-2015-07-09.paginators.json | 52 + ...pplication-autoscaling-2016-02-06.min.json | 330 + ...ion-autoscaling-2016-02-06.paginators.json | 22 + .../apis/autoscaling-2011-01-01.min.json | 1517 + .../autoscaling-2011-01-01.paginators.json | 52 + .../apis/cloudformation-2010-05-15.min.json | 854 + .../cloudformation-2010-05-15.paginators.json | 27 + .../cloudformation-2010-05-15.waiters2.json | 235 + .../apis/cloudfront-2016-01-28.min.json | 1635 + .../cloudfront-2016-01-28.paginators.json | 32 + .../apis/cloudfront-2016-01-28.waiters2.json | 47 + .../aws-sdk/apis/cloudhsm-2014-05-30.min.json | 519 + .../apis/cloudsearch-2011-02-01.min.json | 837 + .../cloudsearch-2011-02-01.paginators.json | 13 + .../apis/cloudsearch-2013-01-01.min.json | 1086 + .../cloudsearch-2013-01-01.paginators.json | 20 + .../cloudsearchdomain-2013-01-01.min.json | 297 + .../apis/cloudtrail-2013-11-01.min.json | 454 + .../cloudtrail-2013-11-01.paginators.json | 7 + .../apis/codecommit-2015-04-13.min.json | 375 + .../codecommit-2015-04-13.paginators.json | 14 + .../apis/codedeploy-2014-10-06.min.json | 1047 + .../codedeploy-2014-10-06.paginators.json | 34 + .../codepipeline-2015-07-09.examples.json | 902 + .../apis/codepipeline-2015-07-09.min.json | 978 + .../apis/cognito-identity-2014-06-30.min.json | 476 + .../apis/cognito-idp-2016-04-18.min.json | 1077 + .../apis/cognito-sync-2014-06-30.min.json | 746 + .../aws-sdk/apis/config-2014-11-12.min.json | 810 + .../apis/config-2014-11-12.paginators.json | 10 + .../apis/datapipeline-2012-10-29.min.json | 666 + .../datapipeline-2012-10-29.paginators.json | 26 + .../apis/devicefarm-2015-06-23.min.json | 1246 + .../devicefarm-2015-06-23.paginators.json | 74 + .../apis/directconnect-2012-10-25.min.json | 506 + .../directconnect-2012-10-25.paginators.json | 22 + .../apis/discovery-2015-11-01.min.json | 356 + .../aws-sdk/apis/dms-2016-01-01.min.json | 989 + .../aws-sdk/apis/ds-2015-04-16.min.json | 870 + .../aws-sdk/apis/dynamodb-2011-12-05.min.json | 663 + .../apis/dynamodb-2011-12-05.paginators.json | 26 + .../apis/dynamodb-2011-12-05.waiters2.json | 35 + .../aws-sdk/apis/dynamodb-2012-08-10.min.json | 1050 + .../apis/dynamodb-2012-08-10.paginators.json | 26 + .../apis/dynamodb-2012-08-10.waiters2.json | 35 + .../aws-sdk/apis/ec2-2015-10-01.min.json | 10380 ++++ .../apis/ec2-2015-10-01.paginators.json | 138 + .../aws-sdk/apis/ec2-2015-10-01.waiters2.json | 576 + .../aws-sdk/apis/ecr-2015-09-21.min.json | 484 + .../aws-sdk/apis/ecs-2014-11-13.min.json | 1126 + .../apis/ecs-2014-11-13.paginators.json | 40 + .../aws-sdk/apis/ecs-2014-11-13.waiters2.json | 93 + .../apis/elasticache-2014-09-30.waiters2.json | 143 + .../apis/elasticache-2015-02-02.min.json | 1515 + .../elasticache-2015-02-02.paginators.json | 76 + .../apis/elasticache-2015-02-02.waiters2.json | 143 + .../elasticbeanstalk-2010-12-01.examples.json | 1109 + .../apis/elasticbeanstalk-2010-12-01.min.json | 1264 + ...lasticbeanstalk-2010-12-01.paginators.json | 25 + .../elasticfilesystem-2015-02-01.min.json | 393 + .../elasticloadbalancing-2012-06-01.min.json | 974 + ...icloadbalancing-2012-06-01.paginators.json | 18 + ...sticloadbalancing-2012-06-01.waiters2.json | 49 + .../apis/elasticmapreduce-2009-03-31.min.json | 1143 + ...lasticmapreduce-2009-03-31.paginators.json | 32 + .../elasticmapreduce-2009-03-31.waiters2.json | 67 + .../elastictranscoder-2012-09-25.min.json | 1019 + ...astictranscoder-2012-09-25.paginators.json | 24 + ...elastictranscoder-2012-09-25.waiters2.json | 30 + .../aws-sdk/apis/email-2010-12-01.min.json | 1183 + .../apis/email-2010-12-01.paginators.json | 13 + .../apis/email-2010-12-01.waiters2.json | 18 + .../aws-sdk/apis/es-2015-01-01.min.json | 488 + .../aws-sdk/apis/events-2015-10-07.min.json | 330 + .../aws-sdk/apis/firehose-2015-08-04.min.json | 550 + .../aws-sdk/apis/gamelift-2015-10-01.min.json | 1069 + .../aws-sdk/apis/glacier-2012-06-01.min.json | 1215 + .../apis/glacier-2012-06-01.paginators.json | 28 + .../apis/glacier-2012-06-01.waiters2.json | 39 + .../aws-sdk/apis/iam-2010-05-08.min.json | 2936 + .../apis/iam-2010-05-08.paginators.json | 171 + .../aws-sdk/apis/iam-2010-05-08.waiters2.json | 39 + .../apis/importexport-2010-06-01.min.json | 242 + .../importexport-2010-06-01.paginators.json | 11 + .../apis/inspector-2016-02-16.min.json | 1248 + .../aws-sdk/apis/iot-2015-05-28.min.json | 1672 + .../aws-sdk/apis/iot-data-2015-05-28.min.json | 128 + .../aws-sdk/apis/kinesis-2013-12-02.min.json | 503 + .../apis/kinesis-2013-12-02.paginators.json | 18 + .../apis/kinesis-2013-12-02.waiters2.json | 18 + .../aws-sdk/apis/kms-2014-11-01.min.json | 685 + .../apis/kms-2014-11-01.paginators.json | 32 + .../aws-sdk/apis/lambda-2014-11-11.min.json | 423 + .../apis/lambda-2014-11-11.paginators.json | 16 + .../aws-sdk/apis/lambda-2015-03-31.min.json | 872 + .../apis/lambda-2015-03-31.paginators.json | 16 + .../aws-sdk/apis/logs-2014-03-28.min.json | 719 + .../apis/logs-2014-03-28.paginators.json | 49 + .../apis/machinelearning-2014-12-12.min.json | 1023 + ...machinelearning-2014-12-12.paginators.json | 28 + .../machinelearning-2014-12-12.waiters2.json | 81 + ...placecommerceanalytics-2015-07-01.min.json | 49 + .../node_modules/aws-sdk/apis/metadata.json | 235 + .../meteringmarketplace-2016-01-14.min.json | 47 + .../apis/mobileanalytics-2014-06-05.min.json | 74 + .../apis/monitoring-2010-08-01.min.json | 501 + .../monitoring-2010-08-01.paginators.json | 24 + .../apis/monitoring-2010-08-01.waiters2.json | 18 + .../aws-sdk/apis/opsworks-2013-02-18.min.json | 2141 + .../apis/opsworks-2013-02-18.paginators.json | 55 + .../apis/opsworks-2013-02-18.waiters2.json | 239 + .../aws-sdk/apis/rds-2013-01-10.min.json | 1895 + .../apis/rds-2013-01-10.paginators.json | 97 + .../aws-sdk/apis/rds-2013-02-12.min.json | 2027 + .../apis/rds-2013-02-12.paginators.json | 110 + .../aws-sdk/apis/rds-2013-09-09.min.json | 2163 + .../apis/rds-2013-09-09.paginators.json | 110 + .../aws-sdk/apis/rds-2013-09-09.waiters2.json | 97 + .../aws-sdk/apis/rds-2014-10-31.min.json | 3304 + .../apis/rds-2014-10-31.paginators.json | 110 + .../aws-sdk/apis/rds-2014-10-31.waiters2.json | 102 + .../aws-sdk/apis/redshift-2012-12-01.min.json | 2288 + .../apis/redshift-2012-12-01.paginators.json | 94 + .../apis/redshift-2012-12-01.waiters2.json | 97 + .../aws-sdk/apis/route53-2013-04-01.min.json | 2306 + .../apis/route53-2013-04-01.paginators.json | 33 + .../apis/route53-2013-04-01.waiters2.json | 18 + .../apis/route53domains-2014-05-15.min.json | 646 + .../route53domains-2014-05-15.paginators.json | 17 + .../aws-sdk/apis/s3-2006-03-01.min.json | 3759 ++ .../apis/s3-2006-03-01.paginators.json | 66 + .../aws-sdk/apis/s3-2006-03-01.waiters2.json | 73 + .../aws-sdk/apis/sdb-2009-04-15.min.json | 336 + .../apis/sdb-2009-04-15.paginators.json | 15 + .../aws-sdk/apis/sns-2010-03-31.min.json | 527 + .../apis/sns-2010-03-31.paginators.json | 29 + .../aws-sdk/apis/sqs-2012-11-05.examples.json | 44 + .../aws-sdk/apis/sqs-2012-11-05.min.json | 583 + .../apis/sqs-2012-11-05.paginators.json | 7 + .../aws-sdk/apis/ssm-2014-11-06.min.json | 692 + .../apis/ssm-2014-11-06.paginators.json | 28 + .../apis/storagegateway-2013-06-30.min.json | 1485 + .../storagegateway-2013-06-30.paginators.json | 52 + .../apis/streams.dynamodb-2012-08-10.min.json | 238 + .../aws-sdk/apis/sts-2011-06-15.min.json | 249 + .../aws-sdk/apis/support-2013-04-15.min.json | 569 + .../apis/support-2013-04-15.paginators.json | 25 + .../aws-sdk/apis/swf-2012-01-25.min.json | 2217 + .../apis/swf-2012-01-25.paginators.json | 46 + .../aws-sdk/apis/waf-2015-08-24.min.json | 1303 + .../apis/workspaces-2015-04-08.min.json | 408 + .../workspaces-2015-04-08.paginators.json | 20 + .../node_modules/aws-sdk/bower.json | 9 + .../aws-sdk/dist-tools/browser-builder.js | 87 + .../aws-sdk/dist-tools/service-collector.js | 149 + .../aws-sdk/dist-tools/transform.js | 19 + .../aws-sdk/dist/BUNDLE_LICENSE.txt | 96 + .../node_modules/aws-sdk/dist/aws-sdk.js | 16232 +++++ .../node_modules/aws-sdk/dist/aws-sdk.min.js | 30 + .../node_modules/aws-sdk/index.js | 2 + .../node_modules/aws-sdk/lib/api_loader.js | 139 + .../node_modules/aws-sdk/lib/aws.js | 52 + .../node_modules/aws-sdk/lib/browser.js | 21 + .../aws-sdk/lib/cloudfront/signer.js | 206 + .../node_modules/aws-sdk/lib/config.js | 502 + .../node_modules/aws-sdk/lib/core.js | 107 + .../node_modules/aws-sdk/lib/credentials.js | 150 + .../cognito_identity_credentials.js | 330 + .../credentials/credential_provider_chain.js | 130 + .../credentials/ec2_metadata_credentials.js | 69 + .../credentials/environment_credentials.js | 85 + .../credentials/file_system_credentials.js | 65 + .../lib/credentials/saml_credentials.js | 88 + .../shared_ini_file_credentials.js | 184 + .../lib/credentials/temporary_credentials.js | 111 + .../credentials/web_identity_credentials.js | 95 + .../aws-sdk/lib/dynamodb/converter.js | 96 + .../aws-sdk/lib/dynamodb/document_client.js | 519 + .../node_modules/aws-sdk/lib/dynamodb/set.js | 53 + .../aws-sdk/lib/dynamodb/translator.js | 79 + .../aws-sdk/lib/dynamodb/types.js | 40 + .../aws-sdk/lib/event_listeners.js | 469 + .../node_modules/aws-sdk/lib/http.js | 208 + .../node_modules/aws-sdk/lib/http/node.js | 161 + .../node_modules/aws-sdk/lib/http/xhr.js | 122 + .../node_modules/aws-sdk/lib/json/builder.js | 56 + .../node_modules/aws-sdk/lib/json/parser.js | 64 + .../aws-sdk/lib/metadata_service.js | 127 + .../node_modules/aws-sdk/lib/model/api.js | 63 + .../aws-sdk/lib/model/collection.js | 20 + .../aws-sdk/lib/model/operation.js | 53 + .../aws-sdk/lib/model/paginator.js | 11 + .../aws-sdk/lib/model/resource_waiter.js | 30 + .../node_modules/aws-sdk/lib/model/shape.js | 346 + .../aws-sdk/lib/param_validator.js | 254 + .../node_modules/aws-sdk/lib/protocol/json.js | 62 + .../aws-sdk/lib/protocol/query.js | 97 + .../node_modules/aws-sdk/lib/protocol/rest.js | 130 + .../aws-sdk/lib/protocol/rest_json.js | 67 + .../aws-sdk/lib/protocol/rest_xml.js | 87 + .../lib/query/query_param_serializer.js | 81 + .../node_modules/aws-sdk/lib/region_config.js | 63 + .../aws-sdk/lib/region_config.json | 62 + .../node_modules/aws-sdk/lib/request.js | 696 + .../aws-sdk/lib/resource_waiter.js | 178 + .../node_modules/aws-sdk/lib/response.js | 201 + .../aws-sdk/lib/s3/managed_upload.js | 600 + .../aws-sdk/lib/sequential_executor.js | 231 + .../node_modules/aws-sdk/lib/service.js | 533 + .../node_modules/aws-sdk/lib/services.js | 15 + .../aws-sdk/lib/services/apigateway.js | 34 + .../aws-sdk/lib/services/cloudfront.js | 12 + .../aws-sdk/lib/services/cloudsearchdomain.js | 120 + .../aws-sdk/lib/services/cognitoidentity.js | 15 + .../aws-sdk/lib/services/dynamodb.js | 53 + .../node_modules/aws-sdk/lib/services/ec2.js | 62 + .../aws-sdk/lib/services/glacier.js | 114 + .../aws-sdk/lib/services/iotdata.js | 88 + .../aws-sdk/lib/services/machinelearning.js | 24 + .../aws-sdk/lib/services/route53.js | 18 + .../node_modules/aws-sdk/lib/services/s3.js | 748 + .../node_modules/aws-sdk/lib/services/sqs.js | 131 + .../node_modules/aws-sdk/lib/services/sts.js | 47 + .../node_modules/aws-sdk/lib/services/swf.js | 10 + .../aws-sdk/lib/signers/presign.js | 112 + .../aws-sdk/lib/signers/request_signer.js | 29 + .../node_modules/aws-sdk/lib/signers/s3.js | 169 + .../node_modules/aws-sdk/lib/signers/v2.js | 45 + .../node_modules/aws-sdk/lib/signers/v3.js | 74 + .../aws-sdk/lib/signers/v3https.js | 22 + .../node_modules/aws-sdk/lib/signers/v4.js | 216 + .../node_modules/aws-sdk/lib/state_machine.js | 42 + .../node_modules/aws-sdk/lib/util.js | 789 + .../aws-sdk/lib/xml/browser_parser.js | 186 + .../node_modules/aws-sdk/lib/xml/builder.js | 86 + .../aws-sdk/lib/xml/node_parser.js | 159 + .../aws-sdk/node_modules/jmespath/.eslintrc | 10 + .../aws-sdk/node_modules/jmespath/.npmignore | 1 + .../aws-sdk/node_modules/jmespath/.travis.yml | 6 + .../aws-sdk/node_modules/jmespath/BASELINE | 15 + .../node_modules/jmespath/Gruntfile.js | 36 + .../aws-sdk/node_modules/jmespath/LICENSE | 13 + .../aws-sdk/node_modules/jmespath/README.md | 57 + .../jmespath/artifacts/jmespath.min.js | 2 + .../aws-sdk/node_modules/jmespath/bower.json | 24 + .../aws-sdk/node_modules/jmespath/g.sh | 5 + .../aws-sdk/node_modules/jmespath/index.html | 93 + .../aws-sdk/node_modules/jmespath/james.html | 7 + .../aws-sdk/node_modules/jmespath/jmespath.js | 1667 + .../aws-sdk/node_modules/jmespath/jp.js | 23 + .../aws-sdk/node_modules/jmespath/l.js | 189 + .../node_modules/jmespath/package.json | 74 + .../aws-sdk/node_modules/jmespath/perf.js | 33 + .../node_modules/jmespath/reservedWords.json | 4 + .../node_modules/jmespath/test/compliance.js | 56 + .../jmespath/test/compliance/basic.json | 96 + .../jmespath/test/compliance/boolean.json | 257 + .../jmespath/test/compliance/current.json | 25 + .../jmespath/test/compliance/escape.json | 46 + .../jmespath/test/compliance/filters.json | 468 + .../jmespath/test/compliance/functions.json | 825 + .../jmespath/test/compliance/identifiers.json | 1377 + .../jmespath/test/compliance/indices.json | 346 + .../jmespath/test/compliance/literal.json | 190 + .../jmespath/test/compliance/multiselect.json | 393 + .../jmespath/test/compliance/pipe.json | 131 + .../jmespath/test/compliance/slice.json | 187 + .../jmespath/test/compliance/syntax.json | 616 + .../jmespath/test/compliance/unicode.json | 38 + .../jmespath/test/compliance/wildcard.json | 460 + .../node_modules/jmespath/test/jmespath.js | 217 + .../aws-sdk/node_modules/sax/LICENSE | 41 + .../aws-sdk/node_modules/sax/LICENSE-W3C.html | 188 + .../aws-sdk/node_modules/sax/README.md | 220 + .../aws-sdk/node_modules/sax/lib/sax.js | 1571 + .../aws-sdk/node_modules/sax/package.json | 94 + .../aws-sdk/node_modules/xml2js/LICENSE | 19 + .../aws-sdk/node_modules/xml2js/README.md | 406 + .../aws-sdk/node_modules/xml2js/lib/bom.js | 16 + .../node_modules/xml2js/lib/processors.js | 34 + .../aws-sdk/node_modules/xml2js/lib/xml2js.js | 537 + .../aws-sdk/node_modules/xml2js/package.json | 257 + .../node_modules/xmlbuilder/.npmignore | 4 + .../aws-sdk/node_modules/xmlbuilder/LICENSE | 21 + .../aws-sdk/node_modules/xmlbuilder/README.md | 84 + .../xmlbuilder/lib/XMLAttribute.js | 32 + .../node_modules/xmlbuilder/lib/XMLBuilder.js | 69 + .../node_modules/xmlbuilder/lib/XMLCData.js | 49 + .../node_modules/xmlbuilder/lib/XMLComment.js | 49 + .../xmlbuilder/lib/XMLDTDAttList.js | 72 + .../xmlbuilder/lib/XMLDTDElement.js | 52 + .../xmlbuilder/lib/XMLDTDEntity.js | 88 + .../xmlbuilder/lib/XMLDTDNotation.js | 60 + .../xmlbuilder/lib/XMLDeclaration.js | 73 + .../node_modules/xmlbuilder/lib/XMLDocType.js | 192 + .../node_modules/xmlbuilder/lib/XMLElement.js | 214 + .../node_modules/xmlbuilder/lib/XMLNode.js | 334 + .../lib/XMLProcessingInstruction.js | 51 + .../node_modules/xmlbuilder/lib/XMLRaw.js | 49 + .../xmlbuilder/lib/XMLStringifier.js | 167 + .../node_modules/xmlbuilder/lib/XMLText.js | 49 + .../node_modules/xmlbuilder/lib/index.js | 14 + .../node_modules/lodash/LICENSE.txt | 22 + .../xmlbuilder/node_modules/lodash/README.md | 116 + .../xmlbuilder/node_modules/lodash/array.js | 42 + .../node_modules/lodash/array/chunk.js | 47 + .../node_modules/lodash/array/compact.js | 30 + .../node_modules/lodash/array/difference.js | 40 + .../node_modules/lodash/array/drop.js | 39 + .../node_modules/lodash/array/dropRight.js | 40 + .../lodash/array/dropRightWhile.js | 63 + .../node_modules/lodash/array/dropWhile.js | 64 + .../node_modules/lodash/array/fill.js | 31 + .../node_modules/lodash/array/findIndex.js | 64 + .../lodash/array/findLastIndex.js | 62 + .../node_modules/lodash/array/first.js | 22 + .../node_modules/lodash/array/flatten.js | 32 + .../node_modules/lodash/array/flattenDeep.js | 21 + .../node_modules/lodash/array/head.js | 1 + .../node_modules/lodash/array/indexOf.js | 58 + .../node_modules/lodash/array/initial.js | 20 + .../node_modules/lodash/array/intersection.js | 67 + .../node_modules/lodash/array/last.js | 19 + .../node_modules/lodash/array/lastIndexOf.js | 60 + .../node_modules/lodash/array/object.js | 1 + .../node_modules/lodash/array/pull.js | 55 + .../node_modules/lodash/array/pullAt.js | 33 + .../node_modules/lodash/array/remove.js | 65 + .../node_modules/lodash/array/rest.js | 21 + .../node_modules/lodash/array/slice.js | 30 + .../node_modules/lodash/array/sortedIndex.js | 59 + .../lodash/array/sortedLastIndex.js | 31 + .../node_modules/lodash/array/tail.js | 1 + .../node_modules/lodash/array/take.js | 39 + .../node_modules/lodash/array/takeRight.js | 40 + .../lodash/array/takeRightWhile.js | 63 + .../node_modules/lodash/array/takeWhile.js | 64 + .../node_modules/lodash/array/union.js | 27 + .../node_modules/lodash/array/uniq.js | 74 + .../node_modules/lodash/array/unique.js | 1 + .../node_modules/lodash/array/unzip.js | 37 + .../node_modules/lodash/array/without.js | 28 + .../node_modules/lodash/array/xor.js | 36 + .../node_modules/lodash/array/zip.js | 28 + .../node_modules/lodash/array/zipObject.js | 39 + .../xmlbuilder/node_modules/lodash/chain.js | 15 + .../node_modules/lodash/chain/chain.js | 35 + .../node_modules/lodash/chain/commit.js | 1 + .../node_modules/lodash/chain/lodash.js | 122 + .../node_modules/lodash/chain/plant.js | 1 + .../node_modules/lodash/chain/reverse.js | 1 + .../node_modules/lodash/chain/run.js | 1 + .../node_modules/lodash/chain/tap.js | 29 + .../node_modules/lodash/chain/thru.js | 25 + .../node_modules/lodash/chain/toJSON.js | 1 + .../node_modules/lodash/chain/toString.js | 1 + .../node_modules/lodash/chain/value.js | 1 + .../node_modules/lodash/chain/valueOf.js | 1 + .../node_modules/lodash/chain/wrapperChain.js | 32 + .../lodash/chain/wrapperCommit.js | 32 + .../node_modules/lodash/chain/wrapperPlant.js | 45 + .../lodash/chain/wrapperReverse.js | 38 + .../lodash/chain/wrapperToString.js | 17 + .../node_modules/lodash/chain/wrapperValue.js | 20 + .../node_modules/lodash/collection.js | 44 + .../node_modules/lodash/collection/all.js | 1 + .../node_modules/lodash/collection/any.js | 1 + .../node_modules/lodash/collection/at.js | 34 + .../node_modules/lodash/collection/collect.js | 1 + .../lodash/collection/contains.js | 1 + .../node_modules/lodash/collection/countBy.js | 54 + .../node_modules/lodash/collection/detect.js | 1 + .../node_modules/lodash/collection/each.js | 1 + .../lodash/collection/eachRight.js | 1 + .../node_modules/lodash/collection/every.js | 62 + .../node_modules/lodash/collection/filter.js | 61 + .../node_modules/lodash/collection/find.js | 66 + .../lodash/collection/findLast.js | 29 + .../lodash/collection/findWhere.js | 37 + .../node_modules/lodash/collection/foldl.js | 1 + .../node_modules/lodash/collection/foldr.js | 1 + .../node_modules/lodash/collection/forEach.js | 42 + .../lodash/collection/forEachRight.js | 31 + .../node_modules/lodash/collection/groupBy.js | 59 + .../node_modules/lodash/collection/include.js | 1 + .../lodash/collection/includes.js | 61 + .../node_modules/lodash/collection/indexBy.js | 53 + .../node_modules/lodash/collection/inject.js | 1 + .../node_modules/lodash/collection/invoke.js | 30 + .../node_modules/lodash/collection/map.js | 68 + .../node_modules/lodash/collection/max.js | 1 + .../node_modules/lodash/collection/min.js | 1 + .../lodash/collection/partition.js | 66 + .../node_modules/lodash/collection/pluck.js | 31 + .../node_modules/lodash/collection/reduce.js | 48 + .../lodash/collection/reduceRight.js | 34 + .../node_modules/lodash/collection/reject.js | 61 + .../node_modules/lodash/collection/sample.js | 38 + .../node_modules/lodash/collection/select.js | 1 + .../node_modules/lodash/collection/shuffle.js | 36 + .../node_modules/lodash/collection/size.js | 29 + .../node_modules/lodash/collection/some.js | 63 + .../node_modules/lodash/collection/sortBy.js | 75 + .../lodash/collection/sortByAll.js | 41 + .../lodash/collection/sortByOrder.js | 48 + .../node_modules/lodash/collection/sum.js | 1 + .../node_modules/lodash/collection/where.js | 37 + .../xmlbuilder/node_modules/lodash/date.js | 3 + .../node_modules/lodash/date/now.js | 24 + .../node_modules/lodash/function.js | 26 + .../node_modules/lodash/function/after.js | 48 + .../node_modules/lodash/function/ary.js | 34 + .../node_modules/lodash/function/backflow.js | 1 + .../node_modules/lodash/function/before.js | 41 + .../node_modules/lodash/function/bind.js | 58 + .../node_modules/lodash/function/bindAll.js | 41 + .../node_modules/lodash/function/bindKey.js | 68 + .../node_modules/lodash/function/compose.js | 1 + .../node_modules/lodash/function/curry.js | 59 + .../lodash/function/curryRight.js | 56 + .../node_modules/lodash/function/debounce.js | 186 + .../node_modules/lodash/function/defer.js | 24 + .../node_modules/lodash/function/delay.js | 25 + .../node_modules/lodash/function/flow.js | 25 + .../node_modules/lodash/function/flowRight.js | 25 + .../node_modules/lodash/function/memoize.js | 82 + .../node_modules/lodash/function/negate.js | 32 + .../node_modules/lodash/function/once.js | 24 + .../node_modules/lodash/function/partial.js | 50 + .../lodash/function/partialRight.js | 49 + .../node_modules/lodash/function/rearg.js | 40 + .../node_modules/lodash/function/spread.js | 43 + .../node_modules/lodash/function/throttle.js | 72 + .../node_modules/lodash/function/wrap.js | 33 + .../xmlbuilder/node_modules/lodash/index.js | 11599 ++++ .../lodash/internal/LazyWrapper.js | 27 + .../lodash/internal/LodashWrapper.js | 21 + .../node_modules/lodash/internal/MapCache.js | 24 + .../node_modules/lodash/internal/SetCache.js | 29 + .../node_modules/lodash/internal/arrayCopy.js | 20 + .../node_modules/lodash/internal/arrayEach.js | 22 + .../lodash/internal/arrayEachRight.js | 21 + .../lodash/internal/arrayEvery.js | 23 + .../lodash/internal/arrayFilter.js | 25 + .../node_modules/lodash/internal/arrayMap.js | 21 + .../node_modules/lodash/internal/arrayMax.js | 25 + .../node_modules/lodash/internal/arrayMin.js | 25 + .../lodash/internal/arrayReduce.js | 26 + .../lodash/internal/arrayReduceRight.js | 24 + .../node_modules/lodash/internal/arraySome.js | 23 + .../lodash/internal/assignDefaults.js | 13 + .../lodash/internal/assignOwnDefaults.js | 26 + .../lodash/internal/baseAssign.js | 35 + .../node_modules/lodash/internal/baseAt.js | 32 + .../lodash/internal/baseBindAll.js | 26 + .../lodash/internal/baseCallback.js | 36 + .../node_modules/lodash/internal/baseClone.js | 130 + .../lodash/internal/baseCompareAscending.js | 25 + .../node_modules/lodash/internal/baseCopy.js | 25 + .../lodash/internal/baseCreate.js | 23 + .../node_modules/lodash/internal/baseDelay.js | 23 + .../lodash/internal/baseDifference.js | 52 + .../node_modules/lodash/internal/baseEach.js | 30 + .../lodash/internal/baseEachRight.js | 28 + .../node_modules/lodash/internal/baseEvery.js | 22 + .../node_modules/lodash/internal/baseFill.js | 31 + .../lodash/internal/baseFilter.js | 22 + .../node_modules/lodash/internal/baseFind.js | 25 + .../lodash/internal/baseFlatten.js | 45 + .../node_modules/lodash/internal/baseFor.js | 30 + .../node_modules/lodash/internal/baseForIn.js | 17 + .../lodash/internal/baseForOwn.js | 17 + .../lodash/internal/baseForOwnRight.js | 17 + .../lodash/internal/baseForRight.js | 27 + .../lodash/internal/baseFunctions.js | 27 + .../lodash/internal/baseIndexOf.js | 27 + .../lodash/internal/baseInvoke.js | 28 + .../lodash/internal/baseIsEqual.js | 34 + .../lodash/internal/baseIsEqualDeep.js | 101 + .../lodash/internal/baseIsFunction.js | 15 + .../lodash/internal/baseIsMatch.js | 58 + .../lodash/internal/baseLodash.js | 10 + .../node_modules/lodash/internal/baseMap.js | 20 + .../lodash/internal/baseMatches.js | 45 + .../lodash/internal/baseMatchesProperty.js | 24 + .../node_modules/lodash/internal/baseMerge.js | 48 + .../lodash/internal/baseMergeDeep.js | 67 + .../lodash/internal/baseProperty.js | 14 + .../lodash/internal/basePullAt.js | 35 + .../lodash/internal/baseRandom.js | 20 + .../lodash/internal/baseReduce.js | 24 + .../lodash/internal/baseSetData.js | 17 + .../node_modules/lodash/internal/baseSlice.js | 32 + .../node_modules/lodash/internal/baseSome.js | 23 + .../lodash/internal/baseSortBy.js | 21 + .../lodash/internal/baseSortByOrder.js | 35 + .../lodash/internal/baseToString.js | 16 + .../node_modules/lodash/internal/baseUniq.js | 57 + .../lodash/internal/baseValues.js | 22 + .../lodash/internal/baseWrapperValue.js | 37 + .../lodash/internal/binaryIndex.js | 40 + .../lodash/internal/binaryIndexBy.js | 54 + .../lodash/internal/bindCallback.js | 39 + .../lodash/internal/bufferClone.js | 55 + .../lodash/internal/cacheIndexOf.js | 19 + .../node_modules/lodash/internal/cachePush.js | 20 + .../lodash/internal/charAtCallback.js | 12 + .../lodash/internal/charsLeftIndex.js | 18 + .../lodash/internal/charsRightIndex.js | 17 + .../lodash/internal/compareAscending.js | 16 + .../lodash/internal/compareMultiple.js | 43 + .../lodash/internal/composeArgs.js | 34 + .../lodash/internal/composeArgsRight.js | 36 + .../lodash/internal/createAggregator.js | 37 + .../lodash/internal/createAssigner.js | 47 + .../lodash/internal/createBindWrapper.js | 22 + .../lodash/internal/createCache.js | 22 + .../lodash/internal/createComposer.js | 39 + .../lodash/internal/createCompounder.js | 26 + .../lodash/internal/createCtorWrapper.js | 23 + .../lodash/internal/createExtremum.js | 38 + .../lodash/internal/createHybridWrapper.js | 105 + .../node_modules/lodash/internal/createPad.js | 32 + .../lodash/internal/createPartialWrapper.js | 43 + .../lodash/internal/createWrapper.js | 86 + .../lodash/internal/deburrLetter.js | 33 + .../lodash/internal/equalArrays.js | 54 + .../lodash/internal/equalByTag.js | 49 + .../lodash/internal/equalObjects.js | 74 + .../lodash/internal/escapeHtmlChar.js | 22 + .../lodash/internal/escapeStringChar.js | 23 + .../lodash/internal/extremumBy.js | 35 + .../node_modules/lodash/internal/getData.js | 15 + .../node_modules/lodash/internal/getView.js | 33 + .../lodash/internal/indexOfNaN.js | 24 + .../lodash/internal/initCloneArray.js | 26 + .../lodash/internal/initCloneByTag.js | 64 + .../lodash/internal/initCloneObject.js | 16 + .../lodash/internal/isBindable.js | 38 + .../node_modules/lodash/internal/isIndex.js | 22 + .../lodash/internal/isIterateeCall.js | 32 + .../node_modules/lodash/internal/isLength.js | 23 + .../lodash/internal/isObjectLike.js | 12 + .../node_modules/lodash/internal/isSpace.js | 14 + .../lodash/internal/isStrictComparable.js | 15 + .../node_modules/lodash/internal/lazyClone.js | 27 + .../lodash/internal/lazyReverse.js | 23 + .../node_modules/lodash/internal/lazyValue.js | 81 + .../node_modules/lodash/internal/mapDelete.js | 14 + .../node_modules/lodash/internal/mapGet.js | 14 + .../node_modules/lodash/internal/mapHas.js | 20 + .../node_modules/lodash/internal/mapSet.js | 18 + .../node_modules/lodash/internal/mergeData.js | 99 + .../node_modules/lodash/internal/metaMap.js | 9 + .../lodash/internal/pickByArray.js | 28 + .../lodash/internal/pickByCallback.js | 22 + .../node_modules/lodash/internal/reEscape.js | 4 + .../lodash/internal/reEvaluate.js | 4 + .../lodash/internal/reInterpolate.js | 4 + .../node_modules/lodash/internal/reorder.js | 29 + .../lodash/internal/replaceHolders.js | 28 + .../node_modules/lodash/internal/setData.js | 41 + .../lodash/internal/shimIsPlainObject.js | 51 + .../node_modules/lodash/internal/shimKeys.js | 42 + .../lodash/internal/sortedUniq.js | 29 + .../lodash/internal/toIterable.js | 22 + .../node_modules/lodash/internal/toObject.js | 14 + .../lodash/internal/trimmedLeftIndex.js | 19 + .../lodash/internal/trimmedRightIndex.js | 18 + .../lodash/internal/unescapeHtmlChar.js | 22 + .../lodash/internal/wrapperClone.js | 18 + .../xmlbuilder/node_modules/lodash/lang.js | 27 + .../node_modules/lodash/lang/clone.js | 69 + .../node_modules/lodash/lang/cloneDeep.js | 54 + .../node_modules/lodash/lang/isArguments.js | 38 + .../node_modules/lodash/lang/isArray.js | 41 + .../node_modules/lodash/lang/isBoolean.js | 36 + .../node_modules/lodash/lang/isDate.js | 36 + .../node_modules/lodash/lang/isElement.js | 42 + .../node_modules/lodash/lang/isEmpty.js | 48 + .../node_modules/lodash/lang/isEqual.js | 57 + .../node_modules/lodash/lang/isError.js | 37 + .../node_modules/lodash/lang/isFinite.js | 40 + .../node_modules/lodash/lang/isFunction.js | 43 + .../node_modules/lodash/lang/isMatch.js | 74 + .../node_modules/lodash/lang/isNaN.js | 35 + .../node_modules/lodash/lang/isNative.js | 55 + .../node_modules/lodash/lang/isNull.js | 21 + .../node_modules/lodash/lang/isNumber.js | 42 + .../node_modules/lodash/lang/isObject.js | 30 + .../node_modules/lodash/lang/isPlainObject.js | 62 + .../node_modules/lodash/lang/isRegExp.js | 36 + .../node_modules/lodash/lang/isString.js | 36 + .../node_modules/lodash/lang/isTypedArray.js | 75 + .../node_modules/lodash/lang/isUndefined.js | 21 + .../node_modules/lodash/lang/toArray.js | 31 + .../node_modules/lodash/lang/toPlainObject.js | 31 + .../xmlbuilder/node_modules/lodash/math.js | 6 + .../node_modules/lodash/math/add.js | 19 + .../node_modules/lodash/math/max.js | 53 + .../node_modules/lodash/math/min.js | 53 + .../node_modules/lodash/math/sum.js | 33 + .../xmlbuilder/node_modules/lodash/number.js | 4 + .../node_modules/lodash/number/inRange.js | 43 + .../node_modules/lodash/number/random.js | 70 + .../xmlbuilder/node_modules/lodash/object.js | 27 + .../node_modules/lodash/object/assign.js | 35 + .../node_modules/lodash/object/create.js | 48 + .../node_modules/lodash/object/defaults.js | 30 + .../node_modules/lodash/object/extend.js | 1 + .../node_modules/lodash/object/findKey.js | 58 + .../node_modules/lodash/object/findLastKey.js | 58 + .../node_modules/lodash/object/forIn.js | 39 + .../node_modules/lodash/object/forInRight.js | 35 + .../node_modules/lodash/object/forOwn.js | 38 + .../node_modules/lodash/object/forOwnRight.js | 35 + .../node_modules/lodash/object/functions.js | 23 + .../node_modules/lodash/object/has.js | 28 + .../node_modules/lodash/object/invert.js | 60 + .../node_modules/lodash/object/keys.js | 48 + .../node_modules/lodash/object/keysIn.js | 65 + .../node_modules/lodash/object/mapValues.js | 55 + .../node_modules/lodash/object/merge.js | 54 + .../node_modules/lodash/object/methods.js | 1 + .../node_modules/lodash/object/omit.js | 51 + .../node_modules/lodash/object/pairs.js | 30 + .../node_modules/lodash/object/pick.js | 41 + .../node_modules/lodash/object/result.js | 41 + .../node_modules/lodash/object/transform.js | 61 + .../node_modules/lodash/object/values.js | 33 + .../node_modules/lodash/object/valuesIn.js | 31 + .../node_modules/lodash/package.json | 93 + .../xmlbuilder/node_modules/lodash/string.js | 25 + .../node_modules/lodash/string/camelCase.js | 28 + .../node_modules/lodash/string/capitalize.js | 21 + .../node_modules/lodash/string/deburr.js | 27 + .../node_modules/lodash/string/endsWith.js | 40 + .../node_modules/lodash/string/escape.js | 48 + .../lodash/string/escapeRegExp.js | 32 + .../node_modules/lodash/string/kebabCase.js | 28 + .../node_modules/lodash/string/pad.js | 50 + .../node_modules/lodash/string/padLeft.js | 32 + .../node_modules/lodash/string/padRight.js | 32 + .../node_modules/lodash/string/parseInt.js | 67 + .../node_modules/lodash/string/repeat.js | 49 + .../node_modules/lodash/string/snakeCase.js | 27 + .../node_modules/lodash/string/startCase.js | 28 + .../node_modules/lodash/string/startsWith.js | 36 + .../node_modules/lodash/string/template.js | 229 + .../lodash/string/templateSettings.js | 67 + .../node_modules/lodash/string/trim.js | 42 + .../node_modules/lodash/string/trimLeft.js | 36 + .../node_modules/lodash/string/trimRight.js | 36 + .../node_modules/lodash/string/trunc.js | 105 + .../node_modules/lodash/string/unescape.js | 33 + .../node_modules/lodash/string/words.js | 38 + .../xmlbuilder/node_modules/lodash/support.js | 75 + .../xmlbuilder/node_modules/lodash/utility.js | 16 + .../node_modules/lodash/utility/attempt.js | 38 + .../node_modules/lodash/utility/callback.js | 53 + .../node_modules/lodash/utility/constant.js | 23 + .../node_modules/lodash/utility/identity.js | 20 + .../node_modules/lodash/utility/iteratee.js | 1 + .../node_modules/lodash/utility/matches.js | 33 + .../lodash/utility/matchesProperty.js | 33 + .../node_modules/lodash/utility/mixin.js | 91 + .../node_modules/lodash/utility/noop.js | 19 + .../node_modules/lodash/utility/property.js | 30 + .../node_modules/lodash/utility/propertyOf.js | 26 + .../node_modules/lodash/utility/range.js | 68 + .../node_modules/lodash/utility/times.js | 59 + .../node_modules/lodash/utility/uniqueId.js | 27 + .../node_modules/xmlbuilder/package.json | 59 + .../node_modules/aws-sdk/package.json | 132 + .../node_modules/aws-sdk/scripts/console | 119 + .../aws-sdk/scripts/lib/translator.js | 153 + .../aws-sdk/scripts/translate-api | 19 + .../node_modules/aws-sdk/testem.json | 3 + .../node_modules/moment/.npmignore | 2 + .../node_modules/moment/CHANGELOG.md | 535 + .../node_modules/moment/LICENSE | 22 + .../node_modules/moment/README.md | 58 + .../node_modules/moment/ender.js | 1 + .../node_modules/moment/locale/af.js | 73 + .../node_modules/moment/locale/ar-ma.js | 60 + .../node_modules/moment/locale/ar-sa.js | 104 + .../node_modules/moment/locale/ar-tn.js | 58 + .../node_modules/moment/locale/ar.js | 137 + .../node_modules/moment/locale/az.js | 105 + .../node_modules/moment/locale/be.js | 134 + .../node_modules/moment/locale/bg.js | 90 + .../node_modules/moment/locale/bn.js | 119 + .../node_modules/moment/locale/bo.js | 119 + .../node_modules/moment/locale/br.js | 108 + .../node_modules/moment/locale/bs.js | 143 + .../node_modules/moment/locale/ca.js | 81 + .../node_modules/moment/locale/cs.js | 171 + .../node_modules/moment/locale/cv.js | 63 + .../node_modules/moment/locale/cy.js | 80 + .../node_modules/moment/locale/da.js | 60 + .../node_modules/moment/locale/de-at.js | 79 + .../node_modules/moment/locale/de.js | 78 + .../node_modules/moment/locale/dv.js | 99 + .../node_modules/moment/locale/el.js | 98 + .../node_modules/moment/locale/en-au.js | 66 + .../node_modules/moment/locale/en-ca.js | 63 + .../node_modules/moment/locale/en-gb.js | 67 + .../node_modules/moment/locale/en-ie.js | 67 + .../node_modules/moment/locale/en-nz.js | 66 + .../node_modules/moment/locale/eo.js | 73 + .../node_modules/moment/locale/es.js | 81 + .../node_modules/moment/locale/et.js | 80 + .../node_modules/moment/locale/eu.js | 66 + .../node_modules/moment/locale/fa.js | 106 + .../node_modules/moment/locale/fi.js | 107 + .../node_modules/moment/locale/fo.js | 60 + .../node_modules/moment/locale/fr-ca.js | 60 + .../node_modules/moment/locale/fr-ch.js | 64 + .../node_modules/moment/locale/fr.js | 64 + .../node_modules/moment/locale/fy.js | 73 + .../node_modules/moment/locale/gd.js | 76 + .../node_modules/moment/locale/gl.js | 77 + .../node_modules/moment/locale/he.js | 99 + .../node_modules/moment/locale/hi.js | 124 + .../node_modules/moment/locale/hr.js | 145 + .../node_modules/moment/locale/hu.js | 109 + .../node_modules/moment/locale/hy-am.js | 95 + .../node_modules/moment/locale/id.js | 83 + .../node_modules/moment/locale/is.js | 127 + .../node_modules/moment/locale/it.js | 70 + .../node_modules/moment/locale/ja.js | 76 + .../node_modules/moment/locale/jv.js | 83 + .../node_modules/moment/locale/ka.js | 89 + .../node_modules/moment/locale/kk.js | 87 + .../node_modules/moment/locale/km.js | 58 + .../node_modules/moment/locale/ko.js | 68 + .../node_modules/moment/locale/ky.js | 88 + .../node_modules/moment/locale/lb.js | 136 + .../node_modules/moment/locale/lo.js | 70 + .../node_modules/moment/locale/lt.js | 116 + .../node_modules/moment/locale/lv.js | 97 + .../node_modules/moment/locale/me.js | 111 + .../node_modules/moment/locale/mk.js | 90 + .../node_modules/moment/locale/ml.js | 81 + .../node_modules/moment/locale/mr.js | 159 + .../node_modules/moment/locale/ms-my.js | 82 + .../node_modules/moment/locale/ms.js | 82 + .../node_modules/moment/locale/my.js | 93 + .../node_modules/moment/locale/nb.js | 63 + .../node_modules/moment/locale/ne.js | 123 + .../node_modules/moment/locale/nl.js | 73 + .../node_modules/moment/locale/nn.js | 60 + .../node_modules/moment/locale/pa-in.js | 124 + .../node_modules/moment/locale/pl.js | 105 + .../node_modules/moment/locale/pt-br.js | 61 + .../node_modules/moment/locale/pt.js | 65 + .../node_modules/moment/locale/ro.js | 75 + .../node_modules/moment/locale/ru.js | 175 + .../node_modules/moment/locale/se.js | 61 + .../node_modules/moment/locale/si.js | 71 + .../node_modules/moment/locale/sk.js | 150 + .../node_modules/moment/locale/sl.js | 162 + .../node_modules/moment/locale/sq.js | 70 + .../node_modules/moment/locale/sr-cyrl.js | 110 + .../node_modules/moment/locale/sr.js | 110 + .../node_modules/moment/locale/ss.js | 89 + .../node_modules/moment/locale/sv.js | 69 + .../node_modules/moment/locale/sw.js | 59 + .../node_modules/moment/locale/ta.js | 129 + .../node_modules/moment/locale/te.js | 89 + .../node_modules/moment/locale/th.js | 67 + .../node_modules/moment/locale/tl-ph.js | 62 + .../node_modules/moment/locale/tlh.js | 120 + .../node_modules/moment/locale/tr.js | 90 + .../node_modules/moment/locale/tzl.js | 91 + .../node_modules/moment/locale/tzm-latn.js | 58 + .../node_modules/moment/locale/tzm.js | 58 + .../node_modules/moment/locale/uk.js | 146 + .../node_modules/moment/locale/uz.js | 58 + .../node_modules/moment/locale/vi.js | 79 + .../node_modules/moment/locale/x-pseudo.js | 68 + .../node_modules/moment/locale/zh-cn.js | 127 + .../node_modules/moment/locale/zh-tw.js | 101 + .../node_modules/moment/min/locales.js | 8021 +++ .../node_modules/moment/min/locales.min.js | 73 + .../moment/min/moment-with-locales.js | 12051 ++++ .../moment/min/moment-with-locales.min.js | 76 + .../node_modules/moment/min/moment.min.js | 7 + .../node_modules/moment/moment.d.ts | 512 + .../node_modules/moment/moment.js | 4040 ++ .../node_modules/moment/package.js | 11 + .../node_modules/moment/package.json | 146 + .../moment/src/lib/create/check-overflow.js | 34 + .../moment/src/lib/create/date-from-array.js | 21 + .../moment/src/lib/create/from-anything.js | 101 + .../moment/src/lib/create/from-array.js | 136 + .../moment/src/lib/create/from-object.js | 16 + .../src/lib/create/from-string-and-array.js | 50 + .../src/lib/create/from-string-and-format.js | 107 + .../moment/src/lib/create/from-string.js | 120 + .../moment/src/lib/create/local.js | 5 + .../moment/src/lib/create/parsing-flags.js | 24 + .../node_modules/moment/src/lib/create/utc.js | 5 + .../moment/src/lib/create/valid.js | 42 + .../moment/src/lib/duration/abs.js | 18 + .../moment/src/lib/duration/add-subtract.js | 21 + .../moment/src/lib/duration/as.js | 55 + .../moment/src/lib/duration/bubble.js | 61 + .../moment/src/lib/duration/constructor.js | 41 + .../moment/src/lib/duration/create.js | 118 + .../moment/src/lib/duration/duration.js | 12 + .../moment/src/lib/duration/get.js | 25 + .../moment/src/lib/duration/humanize.js | 64 + .../moment/src/lib/duration/iso-string.js | 52 + .../moment/src/lib/duration/prototype.js | 48 + .../moment/src/lib/format/format.js | 91 + .../moment/src/lib/locale/calendar.js | 15 + .../moment/src/lib/locale/constructor.js | 5 + .../node_modules/moment/src/lib/locale/en.js | 15 + .../moment/src/lib/locale/formats.js | 23 + .../moment/src/lib/locale/invalid.js | 5 + .../moment/src/lib/locale/lists.js | 92 + .../moment/src/lib/locale/locale.js | 39 + .../moment/src/lib/locale/locales.js | 164 + .../moment/src/lib/locale/ordinal.js | 7 + .../moment/src/lib/locale/pre-post-format.js | 3 + .../moment/src/lib/locale/prototype.js | 87 + .../moment/src/lib/locale/relative.js | 29 + .../node_modules/moment/src/lib/locale/set.js | 38 + .../moment/src/lib/moment/add-subtract.js | 54 + .../moment/src/lib/moment/calendar.js | 21 + .../moment/src/lib/moment/clone.js | 5 + .../moment/src/lib/moment/compare.js | 59 + .../moment/src/lib/moment/constructor.js | 74 + .../moment/src/lib/moment/creation-data.js | 9 + .../moment/src/lib/moment/diff.js | 62 + .../moment/src/lib/moment/format.js | 32 + .../moment/src/lib/moment/from.js | 17 + .../moment/src/lib/moment/get-set.js | 43 + .../moment/src/lib/moment/locale.js | 34 + .../moment/src/lib/moment/min-max.js | 63 + .../moment/src/lib/moment/moment.js | 28 + .../node_modules/moment/src/lib/moment/now.js | 3 + .../moment/src/lib/moment/prototype.js | 149 + .../moment/src/lib/moment/start-end-of.js | 59 + .../moment/src/lib/moment/to-type.js | 34 + .../node_modules/moment/src/lib/moment/to.js | 17 + .../moment/src/lib/moment/valid.js | 15 + .../moment/src/lib/parse/regex.js | 54 + .../moment/src/lib/parse/token.js | 32 + .../moment/src/lib/units/aliases.js | 29 + .../moment/src/lib/units/constants.js | 9 + .../moment/src/lib/units/day-of-month.js | 32 + .../moment/src/lib/units/day-of-week.js | 331 + .../moment/src/lib/units/day-of-year.js | 32 + .../node_modules/moment/src/lib/units/hour.js | 134 + .../moment/src/lib/units/millisecond.js | 64 + .../moment/src/lib/units/minute.js | 24 + .../moment/src/lib/units/month.js | 261 + .../moment/src/lib/units/offset.js | 219 + .../moment/src/lib/units/quarter.js | 27 + .../moment/src/lib/units/second.js | 24 + .../moment/src/lib/units/timestamp.js | 20 + .../moment/src/lib/units/timezone.js | 16 + .../moment/src/lib/units/units.js | 20 + .../src/lib/units/week-calendar-utils.js | 65 + .../moment/src/lib/units/week-year.js | 100 + .../node_modules/moment/src/lib/units/week.js | 61 + .../node_modules/moment/src/lib/units/year.js | 70 + .../moment/src/lib/utils/abs-ceil.js | 7 + .../moment/src/lib/utils/abs-floor.js | 7 + .../moment/src/lib/utils/abs-round.js | 7 + .../moment/src/lib/utils/compare-arrays.js | 16 + .../moment/src/lib/utils/defaults.js | 10 + .../moment/src/lib/utils/deprecate.js | 40 + .../moment/src/lib/utils/extend.js | 19 + .../moment/src/lib/utils/has-own-prop.js | 3 + .../moment/src/lib/utils/hooks.js | 13 + .../moment/src/lib/utils/index-of.js | 18 + .../moment/src/lib/utils/is-array.js | 3 + .../moment/src/lib/utils/is-date.js | 3 + .../moment/src/lib/utils/is-function.js | 3 + .../moment/src/lib/utils/is-object.js | 3 + .../moment/src/lib/utils/is-undefined.js | 3 + .../node_modules/moment/src/lib/utils/keys.js | 19 + .../node_modules/moment/src/lib/utils/map.js | 7 + .../node_modules/moment/src/lib/utils/some.js | 19 + .../moment/src/lib/utils/to-int.js | 12 + .../moment/src/lib/utils/zero-fill.js | 7 + .../node_modules/moment/src/locale/af.js | 63 + .../node_modules/moment/src/locale/ar-ma.js | 51 + .../node_modules/moment/src/locale/ar-sa.js | 95 + .../node_modules/moment/src/locale/ar-tn.js | 49 + .../node_modules/moment/src/locale/ar.js | 128 + .../node_modules/moment/src/locale/az.js | 96 + .../node_modules/moment/src/locale/be.js | 125 + .../node_modules/moment/src/locale/bg.js | 81 + .../node_modules/moment/src/locale/bn.js | 110 + .../node_modules/moment/src/locale/bo.js | 110 + .../node_modules/moment/src/locale/br.js | 99 + .../node_modules/moment/src/locale/bs.js | 134 + .../node_modules/moment/src/locale/ca.js | 72 + .../node_modules/moment/src/locale/cs.js | 162 + .../node_modules/moment/src/locale/cv.js | 53 + .../node_modules/moment/src/locale/cy.js | 71 + .../node_modules/moment/src/locale/da.js | 51 + .../node_modules/moment/src/locale/de-at.js | 69 + .../node_modules/moment/src/locale/de.js | 68 + .../node_modules/moment/src/locale/dv.js | 89 + .../node_modules/moment/src/locale/el.js | 86 + .../node_modules/moment/src/locale/en-au.js | 57 + .../node_modules/moment/src/locale/en-ca.js | 53 + .../node_modules/moment/src/locale/en-gb.js | 58 + .../node_modules/moment/src/locale/en-ie.js | 58 + .../node_modules/moment/src/locale/en-nz.js | 56 + .../node_modules/moment/src/locale/eo.js | 64 + .../node_modules/moment/src/locale/es.js | 72 + .../node_modules/moment/src/locale/et.js | 71 + .../node_modules/moment/src/locale/eu.js | 57 + .../node_modules/moment/src/locale/fa.js | 97 + .../node_modules/moment/src/locale/fi.js | 98 + .../node_modules/moment/src/locale/fo.js | 51 + .../node_modules/moment/src/locale/fr-ca.js | 51 + .../node_modules/moment/src/locale/fr-ch.js | 55 + .../node_modules/moment/src/locale/fr.js | 55 + .../node_modules/moment/src/locale/fy.js | 64 + .../node_modules/moment/src/locale/gd.js | 67 + .../node_modules/moment/src/locale/gl.js | 68 + .../node_modules/moment/src/locale/he.js | 90 + .../node_modules/moment/src/locale/hi.js | 115 + .../node_modules/moment/src/locale/hr.js | 136 + .../node_modules/moment/src/locale/hu.js | 100 + .../node_modules/moment/src/locale/hy-am.js | 86 + .../node_modules/moment/src/locale/id.js | 74 + .../node_modules/moment/src/locale/is.js | 118 + .../node_modules/moment/src/locale/it.js | 61 + .../node_modules/moment/src/locale/ja.js | 67 + .../node_modules/moment/src/locale/jv.js | 73 + .../node_modules/moment/src/locale/ka.js | 80 + .../node_modules/moment/src/locale/kk.js | 77 + .../node_modules/moment/src/locale/km.js | 49 + .../node_modules/moment/src/locale/ko.js | 59 + .../node_modules/moment/src/locale/ky.js | 78 + .../node_modules/moment/src/locale/lb.js | 127 + .../node_modules/moment/src/locale/lo.js | 61 + .../node_modules/moment/src/locale/lt.js | 107 + .../node_modules/moment/src/locale/lv.js | 88 + .../node_modules/moment/src/locale/me.js | 101 + .../node_modules/moment/src/locale/mk.js | 81 + .../node_modules/moment/src/locale/ml.js | 72 + .../node_modules/moment/src/locale/mr.js | 150 + .../node_modules/moment/src/locale/ms-my.js | 73 + .../node_modules/moment/src/locale/ms.js | 73 + .../node_modules/moment/src/locale/my.js | 84 + .../node_modules/moment/src/locale/nb.js | 54 + .../node_modules/moment/src/locale/ne.js | 114 + .../node_modules/moment/src/locale/nl.js | 64 + .../node_modules/moment/src/locale/nn.js | 51 + .../node_modules/moment/src/locale/pa-in.js | 115 + .../node_modules/moment/src/locale/pl.js | 95 + .../node_modules/moment/src/locale/pt-br.js | 52 + .../node_modules/moment/src/locale/pt.js | 56 + .../node_modules/moment/src/locale/ro.js | 66 + .../node_modules/moment/src/locale/ru.js | 165 + .../node_modules/moment/src/locale/se.js | 51 + .../node_modules/moment/src/locale/si.js | 61 + .../node_modules/moment/src/locale/sk.js | 141 + .../node_modules/moment/src/locale/sl.js | 152 + .../node_modules/moment/src/locale/sq.js | 61 + .../node_modules/moment/src/locale/sr-cyrl.js | 101 + .../node_modules/moment/src/locale/sr.js | 101 + .../node_modules/moment/src/locale/ss.js | 80 + .../node_modules/moment/src/locale/sv.js | 60 + .../node_modules/moment/src/locale/sw.js | 50 + .../node_modules/moment/src/locale/ta.js | 120 + .../node_modules/moment/src/locale/te.js | 79 + .../node_modules/moment/src/locale/th.js | 58 + .../node_modules/moment/src/locale/tl-ph.js | 53 + .../node_modules/moment/src/locale/tlh.js | 110 + .../node_modules/moment/src/locale/tr.js | 81 + .../node_modules/moment/src/locale/tzl.js | 82 + .../moment/src/locale/tzm-latn.js | 49 + .../node_modules/moment/src/locale/tzm.js | 49 + .../node_modules/moment/src/locale/uk.js | 137 + .../node_modules/moment/src/locale/uz.js | 49 + .../node_modules/moment/src/locale/vi.js | 70 + .../moment/src/locale/x-pseudo.js | 58 + .../node_modules/moment/src/locale/zh-cn.js | 118 + .../node_modules/moment/src/locale/zh-tw.js | 91 + .../node_modules/moment/src/moment.js | 75 + zombieSensor/lambda/exampleSNSFunction.js | 97 +- 1095 files changed, 274589 insertions(+), 587 deletions(-) create mode 100644 ChatServiceLambdaFunctions/ZombieGetMessages.zip create mode 100644 ChatServiceLambdaFunctions/ZombiePostMessage.zip rename CloudFormation/CustomResources/{CopyS3Files => S3GetFilesFunction}/S3GetFilesFunction.js (54%) create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/CHANGELOG.md create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/LICENSE create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/README.md create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/dist/async.js create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/dist/async.min.js create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/lib/async.js create mode 100644 CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/package.json create mode 100644 CloudFormation/CustomResources/cognito/cognito.js create mode 100644 CloudFormation/CustomResources/cognito/cognito.zip create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/CHANGELOG.md create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/LICENSE create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/README.md create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/dist/async.js create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/dist/async.min.js create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/lib/async.js create mode 100644 CloudFormation/CustomResources/cognito/node_modules/async/package.json create mode 100644 CloudFormation/CustomResources/cognitoTriggerBuild/cognitoLambdaTrigger.zip create mode 100644 CloudFormation/CustomResources/cognitoTriggerBuild/index.js create mode 100644 Images/Cognito-Step1.png create mode 100644 Images/Cognito-Step12.png create mode 100644 Images/Cognito-Step16.png create mode 100644 Images/Cognito-Step18.png create mode 100644 Images/Cognito-Step24.png create mode 100644 Images/Cognito-Step5.png create mode 100644 Images/Cognito-Step9.png create mode 100644 Images/Sensor-Step3.png create mode 100644 S3WebApp/S3/app.js create mode 100644 S3WebApp/S3/assets/css/zombie.css create mode 100644 S3WebApp/S3/assets/images/Zombie_Map.gif rename S3WebApp/{ => S3}/assets/images/aws-logo.png (100%) mode change 100755 => 100644 create mode 100644 S3WebApp/S3/assets/images/signalcorps.png rename S3WebApp/{ => S3}/assets/images/title.png (100%) mode change 100755 => 100644 rename S3WebApp/{ => S3}/assets/images/username.png (100%) mode change 100755 => 100644 create mode 100644 S3WebApp/S3/assets/images/zombie-login.jpg rename S3WebApp/{ => S3}/assets/images/zombie-logo.png (100%) mode change 100755 => 100644 create mode 100644 S3WebApp/S3/assets/js/amazon-cognito-identity.min.js create mode 100644 S3WebApp/S3/assets/js/aws-cognito-sdk.js create mode 100644 S3WebApp/S3/assets/js/aws-cognito-sdk.min.js create mode 100644 S3WebApp/S3/assets/js/aws-sdk.min.js create mode 100644 S3WebApp/S3/assets/js/constants.js create mode 100644 S3WebApp/S3/assets/js/jsbn.js create mode 100644 S3WebApp/S3/assets/js/jsbn2.js create mode 100644 S3WebApp/S3/assets/js/moment.min.js create mode 100644 S3WebApp/S3/assets/js/sjcl.js create mode 100644 S3WebApp/S3/assets/js/underscore.min.js create mode 100644 S3WebApp/S3/factories/utils.js create mode 100644 S3WebApp/S3/index.html create mode 100644 S3WebApp/S3/lib/CryptoJS/components/enc-base64.js create mode 100644 S3WebApp/S3/lib/CryptoJS/components/hmac.js create mode 100644 S3WebApp/S3/lib/CryptoJS/rollups/hmac-sha256.js create mode 100644 S3WebApp/S3/lib/CryptoJS/rollups/sha256.js create mode 100644 S3WebApp/S3/lib/apiGatewayCore/apiGatewayClient.js create mode 100644 S3WebApp/S3/lib/apiGatewayCore/sigV4Client.js create mode 100644 S3WebApp/S3/lib/apiGatewayCore/simpleHttpClient.js create mode 100644 S3WebApp/S3/lib/apiGatewayCore/utils.js create mode 100644 S3WebApp/S3/lib/axios/dist/axios.standalone.js create mode 100644 S3WebApp/S3/lib/url-template/url-template.js create mode 100644 S3WebApp/S3/modules/chat/chat.html create mode 100644 S3WebApp/S3/modules/chat/chat.js create mode 100644 S3WebApp/S3/modules/chat/chatMessages.html create mode 100644 S3WebApp/S3/modules/chat/chatMessages.js create mode 100644 S3WebApp/S3/modules/chat/chatPanel.html create mode 100644 S3WebApp/S3/modules/chat/chatPanel.js create mode 100644 S3WebApp/S3/modules/chat/talkersPanel.html create mode 100644 S3WebApp/S3/modules/chat/talkersPanel.js create mode 100644 S3WebApp/S3/modules/confirm/confirm.html create mode 100644 S3WebApp/S3/modules/confirm/confirm.js rename S3WebApp/{ => S3/modules}/index.html (60%) mode change 100755 => 100644 create mode 100644 S3WebApp/S3/modules/signin/signin.html create mode 100644 S3WebApp/S3/modules/signin/signin.js create mode 100644 S3WebApp/S3/modules/signup/signup.html create mode 100644 S3WebApp/S3/modules/signup/signup.js delete mode 100755 S3WebApp/app/app.js delete mode 100755 S3WebApp/app/controllers/chatMessageController.js delete mode 100755 S3WebApp/app/controllers/chatPanelController.js delete mode 100755 S3WebApp/app/controllers/loginController.js delete mode 100644 S3WebApp/app/controllers/talkersPanelController.js delete mode 100755 S3WebApp/assets/css/zombie.css delete mode 100755 S3WebApp/assets/js/constants.js create mode 100644 cognitoLambdaTrigger/cognitoLambdaTrigger.zip create mode 100755 cognitoLambdaTrigger/index.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/.jshintrc create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/.npmignore create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/.tesselinclude create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/CONTRIBUTING.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/LICENSE.txt create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/NOTICE.txt create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/README.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/UPGRADING.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudhsm-2014-05-30.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearchdomain-2013-01-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.examples.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-idp-2016-04-18.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-sync-2014-06-30.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/discovery-2015-11-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dms-2016-01-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ds-2015-04-16.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecr-2015-09-21.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2014-09-30.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.examples.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/es-2015-01-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/events-2015-10-07.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/firehose-2015-08-04.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/gamelift-2015-10-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/inspector-2016-02-16.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-2015-05-28.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-data-2015-05-28.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/marketplacecommerceanalytics-2015-07-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/metadata.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/meteringmarketplace-2016-01-14.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.examples.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/streams.dynamodb-2012-08-10.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/sts-2011-06-15.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/waf-2015-08-24.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.min.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.paginators.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/bower.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/browser-builder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/service-collector.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/transform.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.min.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/index.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/api_loader.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/aws.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/browser.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/cloudfront/signer.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/config.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/core.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/environment_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/file_system_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/saml_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/temporary_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/converter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/document_client.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/set.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/translator.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/types.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/event_listeners.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/http.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/node.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/xhr.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/builder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/parser.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/metadata_service.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/api.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/collection.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/operation.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/paginator.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/resource_waiter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/shape.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/param_validator.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/json.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/query.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_json.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_xml.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/query/query_param_serializer.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/request.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/resource_waiter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/response.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/s3/managed_upload.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/sequential_executor.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/service.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/apigateway.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudfront.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudsearchdomain.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cognitoidentity.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/dynamodb.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/ec2.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/glacier.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/iotdata.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/machinelearning.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/route53.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/s3.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sqs.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sts.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/swf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/presign.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/request_signer.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/s3.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v2.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v3.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v3https.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v4.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/state_machine.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/util.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/browser_parser.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/builder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/node_parser.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.eslintrc create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.npmignore create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.travis.yml create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/BASELINE create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/Gruntfile.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/LICENSE create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/README.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/artifacts/jmespath.min.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/bower.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/g.sh create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/index.html create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/james.html create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jmespath.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jp.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/l.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/package.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/perf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/reservedWords.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/basic.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/boolean.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/current.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/escape.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/filters.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/functions.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/identifiers.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/indices.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/literal.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/multiselect.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/pipe.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/slice.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/syntax.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/unicode.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/wildcard.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/jmespath.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE-W3C.html create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/README.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/lib/sax.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/package.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xml2js/LICENSE create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xml2js/README.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xml2js/lib/bom.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xml2js/lib/processors.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xml2js/lib/xml2js.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xml2js/package.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/.npmignore create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/LICENSE create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/README.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLAttribute.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLBuilder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLCData.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLComment.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLDTDAttList.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLDTDElement.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLDTDEntity.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLDTDNotation.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLDeclaration.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLDocType.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLElement.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLNode.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLRaw.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLStringifier.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLText.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/lib/index.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/LICENSE.txt create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/README.md create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/chunk.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/compact.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/difference.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/drop.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/dropRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/dropRightWhile.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/dropWhile.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/fill.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/findIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/findLastIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/first.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/flatten.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/flattenDeep.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/head.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/indexOf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/initial.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/intersection.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/last.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/lastIndexOf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/object.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/pull.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/pullAt.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/remove.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/rest.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/slice.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/sortedIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/sortedLastIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/tail.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/take.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/takeRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/takeRightWhile.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/takeWhile.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/union.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/uniq.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/unique.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/unzip.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/without.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/xor.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/zip.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/array/zipObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/chain.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/commit.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/lodash.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/plant.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/reverse.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/run.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/tap.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/thru.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/toJSON.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/toString.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/value.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/valueOf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/wrapperChain.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/wrapperCommit.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/wrapperPlant.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/wrapperReverse.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/wrapperToString.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/chain/wrapperValue.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/all.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/any.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/at.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/collect.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/contains.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/countBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/detect.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/each.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/eachRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/every.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/filter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/find.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/findLast.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/findWhere.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/foldl.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/foldr.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/forEach.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/forEachRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/groupBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/include.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/includes.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/indexBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/inject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/invoke.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/map.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/max.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/min.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/partition.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/pluck.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/reduce.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/reduceRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/reject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/sample.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/select.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/shuffle.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/size.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/some.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/sortBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/sortByAll.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/sortByOrder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/sum.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/collection/where.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/date.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/date/now.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/after.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/ary.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/backflow.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/before.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/bind.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/bindAll.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/bindKey.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/compose.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/curry.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/curryRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/debounce.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/defer.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/delay.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/flow.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/flowRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/memoize.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/negate.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/once.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/partial.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/partialRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/rearg.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/spread.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/throttle.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/function/wrap.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/index.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/LazyWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/LodashWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/MapCache.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/SetCache.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayCopy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayEach.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayEachRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayEvery.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayFilter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayMap.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayMax.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayMin.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayReduce.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arrayReduceRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/arraySome.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/assignDefaults.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/assignOwnDefaults.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseAssign.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseAt.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseBindAll.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseCallback.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseClone.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseCompareAscending.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseCopy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseCreate.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseDelay.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseDifference.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseEach.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseEachRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseEvery.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseFill.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseFilter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseFind.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseFlatten.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseFor.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseForIn.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseForOwn.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseForOwnRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseForRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseFunctions.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseIndexOf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseInvoke.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseIsEqual.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseIsEqualDeep.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseIsFunction.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseIsMatch.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseLodash.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseMap.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseMatches.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseMatchesProperty.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseMerge.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseMergeDeep.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseProperty.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/basePullAt.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseRandom.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseReduce.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseSetData.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseSlice.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseSome.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseSortBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseSortByOrder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseToString.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseUniq.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseValues.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/baseWrapperValue.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/binaryIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/binaryIndexBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/bindCallback.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/bufferClone.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/cacheIndexOf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/cachePush.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/charAtCallback.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/charsLeftIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/charsRightIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/compareAscending.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/compareMultiple.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/composeArgs.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/composeArgsRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createAggregator.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createAssigner.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createBindWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createCache.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createComposer.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createCompounder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createCtorWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createExtremum.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createHybridWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createPad.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createPartialWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/createWrapper.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/deburrLetter.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/equalArrays.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/equalByTag.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/equalObjects.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/escapeHtmlChar.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/escapeStringChar.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/extremumBy.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/getData.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/getView.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/indexOfNaN.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/initCloneArray.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/initCloneByTag.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/initCloneObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isBindable.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isIterateeCall.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isLength.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isObjectLike.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isSpace.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/isStrictComparable.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/lazyClone.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/lazyReverse.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/lazyValue.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/mapDelete.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/mapGet.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/mapHas.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/mapSet.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/mergeData.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/metaMap.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/pickByArray.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/pickByCallback.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/reEscape.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/reEvaluate.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/reInterpolate.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/reorder.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/replaceHolders.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/setData.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/shimIsPlainObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/shimKeys.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/sortedUniq.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/toIterable.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/toObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/trimmedLeftIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/trimmedRightIndex.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/unescapeHtmlChar.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/internal/wrapperClone.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/clone.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/cloneDeep.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isArguments.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isArray.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isBoolean.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isDate.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isElement.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isEmpty.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isEqual.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isError.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isFinite.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isFunction.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isMatch.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isNaN.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isNative.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isNull.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isNumber.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isPlainObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isRegExp.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isString.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isTypedArray.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/isUndefined.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/toArray.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/lang/toPlainObject.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/math.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/math/add.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/math/max.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/math/min.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/math/sum.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/number.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/number/inRange.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/number/random.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/assign.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/create.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/defaults.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/extend.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/findKey.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/findLastKey.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/forIn.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/forInRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/forOwn.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/forOwnRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/functions.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/has.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/invert.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/keys.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/keysIn.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/mapValues.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/merge.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/methods.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/omit.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/pairs.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/pick.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/result.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/transform.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/values.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/object/valuesIn.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/package.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/camelCase.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/capitalize.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/deburr.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/endsWith.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/escape.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/escapeRegExp.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/kebabCase.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/pad.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/padLeft.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/padRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/parseInt.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/repeat.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/snakeCase.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/startCase.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/startsWith.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/template.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/templateSettings.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/trim.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/trimLeft.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/trimRight.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/trunc.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/unescape.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/string/words.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/support.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/attempt.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/callback.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/constant.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/identity.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/iteratee.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/matches.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/matchesProperty.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/mixin.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/noop.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/property.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/propertyOf.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/range.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/times.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/node_modules/lodash/utility/uniqueId.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/xmlbuilder/package.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/package.json create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/scripts/console create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/scripts/lib/translator.js create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/scripts/translate-api create mode 100755 cognitoLambdaTrigger/node_modules/aws-sdk/testem.json create mode 100755 cognitoLambdaTrigger/node_modules/moment/.npmignore create mode 100755 cognitoLambdaTrigger/node_modules/moment/CHANGELOG.md create mode 100755 cognitoLambdaTrigger/node_modules/moment/LICENSE create mode 100755 cognitoLambdaTrigger/node_modules/moment/README.md create mode 100755 cognitoLambdaTrigger/node_modules/moment/ender.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/af.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ar-ma.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ar-sa.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ar-tn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ar.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/az.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/be.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/bg.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/bn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/bo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/br.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/bs.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ca.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/cs.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/cv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/cy.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/da.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/de-at.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/de.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/dv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/el.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/en-au.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/en-ca.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/en-gb.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/en-ie.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/en-nz.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/eo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/es.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/et.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/eu.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fa.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fi.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fr-ca.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fr-ch.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/fy.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/gd.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/gl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/he.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/hi.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/hr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/hu.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/hy-am.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/id.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/is.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/it.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ja.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/jv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ka.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/kk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/km.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ko.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ky.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/lb.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/lo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/lt.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/lv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/me.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/mk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ml.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/mr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ms-my.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ms.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/my.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/nb.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ne.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/nl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/nn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/pa-in.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/pl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/pt-br.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/pt.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ro.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ru.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/se.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/si.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sq.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sr-cyrl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ss.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/sw.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/ta.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/te.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/th.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/tl-ph.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/tlh.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/tr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/tzl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/tzm-latn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/tzm.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/uk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/uz.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/vi.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/x-pseudo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/zh-cn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/locale/zh-tw.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/min/locales.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/min/locales.min.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/min/moment-with-locales.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/min/moment-with-locales.min.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/min/moment.min.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/moment.d.ts create mode 100755 cognitoLambdaTrigger/node_modules/moment/moment.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/package.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/package.json create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/check-overflow.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/date-from-array.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/from-anything.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/from-array.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/from-object.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/from-string-and-array.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/from-string-and-format.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/from-string.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/local.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/parsing-flags.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/utc.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/create/valid.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/abs.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/add-subtract.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/as.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/bubble.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/constructor.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/create.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/duration.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/get.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/humanize.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/iso-string.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/duration/prototype.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/format/format.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/calendar.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/constructor.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/en.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/formats.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/invalid.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/lists.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/locale.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/locales.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/ordinal.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/pre-post-format.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/prototype.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/relative.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/locale/set.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/add-subtract.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/calendar.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/clone.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/compare.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/constructor.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/creation-data.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/diff.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/format.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/from.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/get-set.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/locale.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/min-max.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/moment.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/now.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/prototype.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/start-end-of.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/to-type.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/to.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/moment/valid.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/parse/regex.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/parse/token.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/aliases.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/constants.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/day-of-month.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/day-of-week.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/day-of-year.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/hour.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/millisecond.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/minute.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/month.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/offset.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/quarter.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/second.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/timestamp.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/timezone.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/units.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/week-calendar-utils.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/week-year.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/week.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/units/year.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/abs-ceil.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/abs-floor.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/abs-round.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/compare-arrays.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/defaults.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/deprecate.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/extend.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/has-own-prop.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/hooks.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/index-of.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/is-array.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/is-date.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/is-function.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/is-object.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/is-undefined.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/keys.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/map.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/some.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/to-int.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/lib/utils/zero-fill.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/af.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ar-ma.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ar-sa.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ar-tn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ar.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/az.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/be.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/bg.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/bn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/bo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/br.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/bs.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ca.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/cs.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/cv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/cy.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/da.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/de-at.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/de.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/dv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/el.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/en-au.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/en-ca.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/en-gb.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/en-ie.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/en-nz.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/eo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/es.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/et.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/eu.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fa.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fi.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fr-ca.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fr-ch.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/fy.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/gd.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/gl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/he.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/hi.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/hr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/hu.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/hy-am.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/id.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/is.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/it.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ja.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/jv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ka.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/kk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/km.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ko.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ky.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/lb.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/lo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/lt.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/lv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/me.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/mk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ml.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/mr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ms-my.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ms.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/my.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/nb.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ne.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/nl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/nn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/pa-in.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/pl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/pt-br.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/pt.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ro.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ru.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/se.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/si.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sq.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sr-cyrl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ss.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sv.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/sw.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/ta.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/te.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/th.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/tl-ph.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/tlh.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/tr.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/tzl.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/tzm-latn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/tzm.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/uk.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/uz.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/vi.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/x-pseudo.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/zh-cn.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/locale/zh-tw.js create mode 100755 cognitoLambdaTrigger/node_modules/moment/src/moment.js mode change 100755 => 100644 zombieSensor/lambda/exampleSNSFunction.js diff --git a/CHANGELOG.md b/CHANGELOG.md index af37bc5..d8b59b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG ========= +3.0.0 +===== +* Introduces Cognito User Pools for authentication along with newer looking UI. +* Adds API Gateway IAM Authorization +* Provides support for workshop to run in all regions that are currently supporting Lambda and API Gateway services. + 2.0.0 ===== * Introduces multi-region stack support for workshop to run in any of the 5 existing regions that have API Gateway and Lambda. diff --git a/ChatServiceLambdaFunctions/ZombieGetMessages.zip b/ChatServiceLambdaFunctions/ZombieGetMessages.zip new file mode 100644 index 0000000000000000000000000000000000000000..a8a273d00ffa2d9f23da10668f81938d2ef92ff5 GIT binary patch literal 1165 zcmWIWW@Zs#-~hr8llOZtAOR5u0fwmj+@#D@_tX;K)Z*gA^weU#tm4oJ9tI!bwc&>a z{KDriKU3WraYtvSJ;h{3--@!E2kYdlFSg}MFlVoJliT*)TzMf+#d$&At<7gzg!GbQ z-Nn0BY%-rw;&bA-tkRBUrVk!&*m2gjxjyzrugk2GPuWrH^$z%5`jb~>Z~g8+U$*`a z`8NLt`ySqVA@yeJ#jmLrmrnD~`9cd|3J$jUd25Y#<)7ov znReg0AK=Z-5x&TIzbq32!x9z-h5%r4;{qqLzYDlMky0B2Cos9i$NM@u`v*tpgVIh-#vs2Rop9y`E4mthHS_BpKX3d$udU`~_gvqPIBW6WRnGrr|=JZnmEAkT(5;AhL z=FOOsHDyx9+nAYCqNW7Rnv{nT7tFj-ZJzJ8UnU)D8Ugo@ck(2f! zCn@g`C^XnPYGn5JbO8h6IuHkVGct)XBRq;6av}^ou;6l7(g_f@k()p?q(EM(UGJb8t5Bs<&7SyOE~^Y+xA;?L{N^eYvRGTKt7JpVA? z1noB#*_B@_&qX)9bXsk?WY6LW7C+A1wv$|1FRrPTXF3~D5w3PQc6DjI^?v1} z){IAE7f&`*^tzVey!E$ty7A(pzuekYd%U;TTr^$iee5*<&p~%}IATRq|aUCqPZ(>5NIC z(OlgNZzdf1efz>~u}d78W=Eqg&A+nDZqDHnuXO%3axU}CgOVh-#vs2Ro zp9y`E4mthHS_BpKX3d$udU`~_gvqPIBW6WRnGrr|=JZnmEAkT(5;AhL=FOOsHDyx9 z+nAYCqNW7Rnv?tXNz$tqIWKb7ynd7Qa7}hn+KVNxUnC_g%YKsbDk&)`BQGl@?HDLD z*f|y?1ikM92E=tB4)A7V5@kks6glKX7gs*^f6$^+50RFc;SpWb4 literal 0 HcmV?d00001 diff --git a/CloudFormation/CreateZombieWorkshop.json b/CloudFormation/CreateZombieWorkshop.json index 3ae8ea0..f08ae83 100644 --- a/CloudFormation/CreateZombieWorkshop.json +++ b/CloudFormation/CreateZombieWorkshop.json @@ -14,25 +14,40 @@ "Mappings": { "AllowedRegions": { - "us-west-2": { - "S3Endpoint": "https://s3-us-west-2", - "S3ContentsBucket": "aws-zombie-workshop-us-west-2" + "us-west-2": { + "S3Endpoint": "https://s3-us-west-2", + "S3ContentsBucket": "aws-zombie-workshop-us-west-2", + "CognitoRegion": "us-west-2" }, - "us-east-1": { - "S3Endpoint": "https://s3", - "S3ContentsBucket": "aws-zombie-workshop-us-east-1" + "us-east-1": { + "S3Endpoint": "https://s3", + "S3ContentsBucket": "aws-zombie-workshop-us-east-1", + "CognitoRegion": "us-east-1" }, "eu-west-1": { - "S3Endpoint": "https://s3-eu-west-1", - "S3ContentsBucket": "aws-zombie-workshop-eu-west-1" + "S3Endpoint": "https://s3-eu-west-1", + "S3ContentsBucket": "aws-zombie-workshop-eu-west-1", + "CognitoRegion": "eu-west-1" }, - "eu-central-1": { - "S3Endpoint": "https://s3-eu-central-1", - "S3ContentsBucket": "aws-zombie-workshop-eu-central-1" + "eu-central-1": { + "S3Endpoint": "https://s3-eu-central-1", + "S3ContentsBucket": "aws-zombie-workshop-eu-central-1", + "CognitoRegion": "us-east-1" }, - "ap-northeast-1": { - "S3Endpoint": "https://s3-ap-northeast-1", - "S3ContentsBucket": "aws-zombie-workshop-ap-northeast-1" + "ap-northeast-1": { + "S3Endpoint": "https://s3-ap-northeast-1", + "S3ContentsBucket": "aws-zombie-workshop-ap-northeast-1", + "CognitoRegion": "ap-northeast-1" + }, + "ap-southeast-1": { + "S3Endpoint": "https://s3-ap-southeast-1", + "S3ContentsBucket": "aws-zombie-workshop-ap-southeast-1", + "CognitoRegion": "us-east-1" + }, + "ap-southeast-2": { + "S3Endpoint": "https://s3-ap-southeast-2", + "S3ContentsBucket": "aws-zombie-workshop-ap-southeast-2", + "CognitoRegion": "us-east-1" } } }, @@ -55,8 +70,8 @@ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", - "Principal": {"Service": ["lambda.amazonaws.com", "apigateway.amazonaws.com"]}, - "Action": ["sts:AssumeRole"] + "Principal": {"Service": ["lambda.amazonaws.com", "apigateway.amazonaws.com"], "Federated": "cognito-identity.amazonaws.com"}, + "Action": ["sts:AssumeRole", "sts:AssumeRoleWithWebIdentity"] }] }, "Path": "/", @@ -104,6 +119,16 @@ "Action": ["apigateway:*"], "Resource": ["*", "arn:aws:apigateway:*::/*"] }, + { + "Effect": "Allow", + "Action": [ + "mobileanalytics:PutEvents", + "cognito-sync:*", + "cognito-identity:*", + "cognito-idp:*" + ], + "Resource": ["*"] + }, { "Effect": "Allow", "Action": ["iam:*"], @@ -138,16 +163,39 @@ "DependsOn": ["ZombieLabLambdaRole","CreateIAMUsers"] }, + "APIinvokePolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "Roles": [{ "Ref" : "ZombieLabLambdaRole" }], + "PolicyName": { "Fn::Join": ["-", [{"Ref": "AWS::StackName"}, "apiinvokepolicy"]]}, + "PolicyDocument": { + "Statement": [ + { + "Effect": "Allow", + "Action": ["execute-api:invoke"], + "Resource": [ + { "Fn::Join" : ["", ["arn:aws:execute-api:", { "Ref" : "AWS::Region" }, ":", { "Ref" : "AWS::AccountId" }, ":", { "Fn::GetAtt": ["CreateAPIGateway", "RestApiID"]}, "/ZombieWorkshopStage/zombie/POST/message" ]]}, + { "Fn::Join" : ["", ["arn:aws:execute-api:", { "Ref" : "AWS::Region" }, ":", { "Ref" : "AWS::AccountId" }, ":", { "Fn::GetAtt": ["CreateAPIGateway", "RestApiID"]}, "/ZombieWorkshopStage/zombie/GET/message" ]]}, + { "Fn::Join" : ["", ["arn:aws:execute-api:", { "Ref" : "AWS::Region" }, ":", { "Ref" : "AWS::AccountId" }, ":", { "Fn::GetAtt": ["CreateAPIGateway", "RestApiID"]}, "/ZombieWorkshopStage/zombie/POST/talkers" ]]}, + { "Fn::Join" : ["", ["arn:aws:execute-api:", { "Ref" : "AWS::Region" }, ":", { "Ref" : "AWS::AccountId" }, ":", { "Fn::GetAtt": ["CreateAPIGateway", "RestApiID"]}, "/ZombieWorkshopStage/zombie/GET/talkers" ]]} + ] + } + ] + } + }, + "DependsOn": ["ZombieLabLambdaRole", "CreateAPIGateway"] + }, + "S3BucketPolicy": { "Type": "AWS::S3::BucketPolicy", "Properties": { "Bucket": {"Ref" : "S3BucketForWebsiteContent"}, "PolicyDocument": { "Statement":[{ - "Action":["s3:GetObject"], - "Effect":"Allow", - "Resource": { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "S3BucketForWebsiteContent" } , "/*" ]]}, - "Principal": "*" + "Action":["s3:GetObject"], + "Effect":"Allow", + "Resource": { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "S3BucketForWebsiteContent" } , "/*" ]]}, + "Principal": "*" }] } } @@ -203,6 +251,81 @@ } }, + "UsersDynamoDBTable": { + "Type": "AWS::DynamoDB::Table", + "Properties": { + "TableName": { "Fn::Join": ["-", [{"Ref": "AWS::StackName"}, "users"]]}, + "AttributeDefinitions": [ + { + "AttributeName": "userid", + "AttributeType": "S" + }, + { + "AttributeName": "phone", + "AttributeType": "S" + }, + { + "AttributeName": "slackuser", + "AttributeType": "S" + }, + { + "AttributeName": "slackteamdomain", + "AttributeType": "S" + } + ], + "KeySchema": [ + { + "AttributeName": "userid", + "KeyType": "HASH" + } + ], + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "GlobalSecondaryIndexes": [ + { + "IndexName": { "Fn::Join": ["-", [{"Ref": "AWS::StackName"}, "phoneindex"]]}, + "KeySchema": [ + { + "AttributeName": "phone", + "KeyType": "HASH" + } + ], + "Projection": { + "NonKeyAttributes": ["confirmed", "camp"], + "ProjectionType": "INCLUDE" + }, + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + } + }, + { + "IndexName": { "Fn::Join": ["-", [{"Ref": "AWS::StackName"}, "slackindex"]]}, + "KeySchema": [ + { + "AttributeName": "slackuser", + "KeyType": "HASH" + }, + { + "AttributeName": "slackteamdomain", + "KeyType": "RANGE" + } + ], + "Projection": { + "NonKeyAttributes": ["confirmed", "camp"], + "ProjectionType": "INCLUDE" + }, + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + } + } + ] + } + }, + "S3BucketForWebsiteContent": { "Type": "AWS::S3::Bucket", "Properties": { @@ -248,6 +371,45 @@ ] }, + "CognitoTriggerBuild": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Handler": "index.handler", + "Role": { "Fn::GetAtt": ["ZombieLabLambdaRole", "Arn"] }, + "Code": { + "S3Bucket": { "Ref" : "S3BucketForWebsiteContent" }, + "S3Key": "cognitoTriggerBuild.zip" + }, + "Runtime": "nodejs4.3", + "Timeout": "120" + }, + "DependsOn": [ + "ZombieLabLambdaRole", + "S3BucketForWebsiteContent", + "PutWebsiteFilesInS3" + ] + }, + + "CreateCognitoTrigger": { + "Type": "Custom::CreateCognitoTrigger", + "Properties": { + "ServiceToken": { "Fn::GetAtt": ["CognitoTriggerBuild", "Arn"] }, + "region": { "Ref": "AWS::Region" }, + "CognitoRegion": { "Fn::FindInMap" : [ "AllowedRegions", { "Ref" : "AWS::Region" }, "CognitoRegion"]}, + "LambdaFunctionBucket": { "Fn::FindInMap" : [ "AllowedRegions", { "Ref" : "AWS::Region" }, "S3ContentsBucket"]}, + "StackName": { "Ref": "AWS::StackName" }, + "IamRole": { "Fn::GetAtt": ["ZombieLabLambdaRole", "Arn"] } + }, + "DependsOn": [ + "S3BucketForWebsiteContent", + "ZombieLabLambdaRole", + "PutWebsiteFilesInS3", + "WriteMessagesToDynamoDB", + "GetMessagesFromDynamoDB", + "MessagesDynamoDBTable" + ] + }, + "CreateAPIGateway": { "Type": "Custom::CreateAPIGateway", "Properties": { @@ -291,6 +453,48 @@ ] }, + "CognitoPoolsFunction": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Handler": "cognito.handler", + "Role": { "Fn::GetAtt" : ["ZombieLabLambdaRole", "Arn"] }, + "Code": { + "S3Bucket": { "Ref": "S3BucketForWebsiteContent" }, + "S3Key": "cognito.zip" + }, + "Runtime": "nodejs4.3", + "Timeout": "300", + "MemorySize": "1536" + }, + "DependsOn": [ + "ZombieLabLambdaRole", + "S3BucketForWebsiteContent", + "PutWebsiteFilesInS3", + "CreateAPIGateway" + ] + }, + + "CreateCognitoPools": { + "Type": "Custom::CognitoPoolsFunction", + "Properties": { + "ServiceToken": { "Fn::GetAtt": ["CognitoPoolsFunction", "Arn"] }, + "region": { "Ref": "AWS::Region" }, + "CognitoRegion": { "Fn::FindInMap" : [ "AllowedRegions", { "Ref" : "AWS::Region" }, "CognitoRegion"]}, + "cognitoRoleARN": { "Fn::GetAtt": ["ZombieLabLambdaRole", "Arn"] }, + "bucket": { "Ref": "S3BucketForWebsiteContent" }, + "constantsFile": "S3/assets/js/constants.js", + "StackName": { "Ref": "AWS::StackName" } + }, + "DependsOn": [ + "S3BucketForWebsiteContent", + "ZombieLabLambdaRole", + "PutWebsiteFilesInS3", + "WriteMessagesToDynamoDB", + "GetMessagesFromDynamoDB", + "MessagesDynamoDBTable" + ] + }, + "WriteMessagesToDynamoDB": { "Type": "AWS::Lambda::Function", "Properties": { @@ -369,7 +573,7 @@ " context.fail(new Error('DynamoDB Error: ' + err));\n", " } else {\n", " console.log(data);\n", - " context.done(null, {Satus: 'Success'});\n", + " context.done(null, {Status: 'Success'});\n", " }\n", "\n", " });\n", @@ -380,7 +584,7 @@ "Runtime": "nodejs", "Timeout": "10" }, - "DependsOn" : "TalkersDynamoDBTable" + "DependsOn" : ["TalkersDynamoDBTable","ZombieLabLambdaRole"] }, "GetTalkersFromDynamoDB": { @@ -440,7 +644,7 @@ "Runtime": "nodejs", "Timeout": "10" }, - "DependsOn" : "TalkersDynamoDBTable" + "DependsOn" : ["TalkersDynamoDBTable", "ZombieLabLambdaRole"] }, "CreateIAMUsers": { @@ -492,6 +696,22 @@ "Value": { "Ref": "MessagesDynamoDBTable" }, "Description": "Table name of the newly created Messages DynamoDB table that will contain chat messages." }, + "DynamoDBTalkersTableName": { + "Value": { "Ref": "TalkersDynamoDBTable" }, + "Description": "Table name of the newly created Talkers DynamoDB table that will contain metadata about survivors who are typing." + }, + "DynamoDBUsersTableName": { + "Value": { "Ref": "UsersDynamoDBTable" }, + "Description": "Table name of the newly created Users DynamoDB table that will contain records about registered users for the app." + }, + "DynamoDBUsersSlackIndex": { + "Value": { "Fn::Join": ["-", [{"Ref": "AWS::StackName"}, "slackindex"]]}, + "Description": "Name of the Slack index associated with the newly created Users DynamoDB table." + }, + "DynamoDBUsersPhoneIndex": { + "Value": { "Fn::Join": ["-", [{"Ref": "AWS::StackName"}, "phoneindex"]]}, + "Description": "Name of the Phone index associated with the newly created Users DynamoDB table." + }, "Bucket": { "Value": { "Ref": "S3BucketForWebsiteContent" }, "Description": "The S3 bucket which contains the chat web app contents." @@ -520,6 +740,10 @@ "Value": { "Fn::GetAtt": ["GetMessagesFromDynamoDB", "Arn"] }, "Description": "The ARN for the Get Messages Lambda function" }, + "ApiID": { + "Value": { "Fn::GetAtt": ["CreateAPIGateway", "RestApiID"]}, + "Description": "The unique ID for your API Gateway API." + }, "IamUsersPassword": { "Value": { "Fn::GetAtt": ["CreateIAMUsers", "IamPassword"]}, "Description": "The password for your IAM users", @@ -552,7 +776,7 @@ }, "BucketCopiedContentsFrom": { "Value": { "Fn::FindInMap" : [ "AllowedRegions", { "Ref" : "AWS::Region" }, "S3ContentsBucket"]}, - "Description": "This is the local region AWS bucket where your files were copied from." + "Description": "This is the local region AWS bucket where your files were copied from." } } } diff --git a/CloudFormation/CustomResources/APIGatewayCreateScript/src/ApiGatewayCreate.js b/CloudFormation/CustomResources/APIGatewayCreateScript/src/ApiGatewayCreate.js index 4115b33..1ece44a 100644 --- a/CloudFormation/CustomResources/APIGatewayCreateScript/src/ApiGatewayCreate.js +++ b/CloudFormation/CustomResources/APIGatewayCreateScript/src/ApiGatewayCreate.js @@ -80,8 +80,8 @@ function createRestAPI(callback) { restAPIId = data.id; return callback(null) } - else { - callback(err); + else { + callback(err); } }); } @@ -96,8 +96,8 @@ function getRootResourse(callback){ currentResourceId = data.items[0].id; // successful response return callback(null); } - else { - callback(err); + else { + callback(err); } }); } @@ -132,7 +132,7 @@ function createMessagesResource(callback) { return callback(null); } else { - callback(err); + callback(err); } }); } @@ -142,7 +142,7 @@ function createMethods(callback) { //this method is going to chain the callbacks for the 3 methods to create... //we don't need to save the IDs from these calls. var params = { - authorizationType: 'None', /* required */ + authorizationType: 'AWS_IAM', /* required */ httpMethod: 'GET', /* required */ resourceId: currentResourceId, /* required */ restApiId: restAPIId, /* required */ @@ -156,6 +156,7 @@ function createMethods(callback) { if(!err) { console.log('Creating OPTIONS Method'); params.httpMethod = 'OPTIONS'; + params.authorizationType = 'None'; apigateway.putMethod(params, function(err, data) { if(!err) { @@ -164,13 +165,13 @@ function createMethods(callback) { else{ callback(err); } }); } - else { + else { callback(err); } }); } - else { - callback(err); + else { + callback(err); } }); } @@ -186,7 +187,9 @@ function createMethodResponses(callback) { 'application/json': 'Empty', }, responseParameters: { - 'method.response.header.Access-Control-Allow-Origin': true + 'method.response.header.Access-Control-Allow-Origin': true, + 'method.response.header.Access-Control-Allow-Headers': true, + 'method.response.header.Access-Control-Allow-Methods': true } }; apigateway.putMethodResponse(params, function(err, data) { @@ -197,27 +200,29 @@ function createMethodResponses(callback) { if(!err) { console.log('Creating OPTIONS Method Response'); params.httpMethod = 'OPTIONS'; + /* params.responseParameters = { 'method.response.header.Access-Control-Allow-Origin': true, 'method.response.header.Access-Control-Allow-Headers': true, 'method.response.header.Access-Control-Allow-Methods': true }; + */ apigateway.putMethodResponse(params, function(err, data) { if(!err) { callback(null); } - else { + else { callback(err); } }); } - else { - callback(err); + else { + callback(err); } }); } - else { - callback(err); + else { + callback(err); } }); } @@ -240,7 +245,7 @@ function createIntegrations(callback) { params.uri = postmessagearn; params.requestTemplates = { "application/json": '{"message": $input.json(\'$.message\'), "name": $input.json(\'$.name\'), "channel" : $input.json(\'$.channel\') }' - } + } apigateway.putIntegration(params, function(err, data) { if (!err) { console.log('Creating OPTIONS Integration'); @@ -254,18 +259,18 @@ function createIntegrations(callback) { if (!err) { callback(null); } - else { - callback(err); + else { + callback(err); } }); } - else { - callback(err); + else { + callback(err); } }); } - else { - callback(err); + else { + callback(err); } }); } @@ -280,6 +285,7 @@ function createIntegrationResponses(callback) { responseParameters: { 'method.response.header.Access-Control-Allow-Origin': "'*'" }, + responseTemplates : { "application/json":'{#set($inputRoot = $input.path("$")) \ "messages": [ \ @@ -309,7 +315,7 @@ function createIntegrationResponses(callback) { params.httpMethod = 'OPTIONS'; params.responseParameters = { 'method.response.header.Access-Control-Allow-Origin': "'*'", - 'method.response.header.Access-Control-Allow-Headers': "'Content-Type'", + 'method.response.header.Access-Control-Allow-Headers': "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'", 'method.response.header.Access-Control-Allow-Methods': "'GET,POST,OPTIONS'" }; params.responseTemplates = { @@ -319,13 +325,13 @@ function createIntegrationResponses(callback) { if(!err) { callback(null); } - else { - callback(err); + else { + callback(err); } }); } else { - callback(err); + callback(err); } }); } @@ -377,7 +383,7 @@ function createTalkerMethods(callback) { //this method is going to chain the callbacks for the 3 methods to create... //we don't need to save the IDs from these calls. var params = { - authorizationType: 'None', /* required */ + authorizationType: 'AWS_IAM', /* required */ httpMethod: 'GET', /* required */ resourceId: talkerResourceId, /* required */ restApiId: restAPIId, /* required */ @@ -391,6 +397,7 @@ function createTalkerMethods(callback) { if(!err) { console.log('Creating OPTIONS Method'); params.httpMethod = 'OPTIONS'; + params.authorizationType = 'None'; apigateway.putMethod(params, function(err, data) { if(!err) { callback(null); @@ -405,7 +412,7 @@ function createTalkerMethods(callback) { } }); } - else { + else { callback(err); } }); @@ -413,10 +420,12 @@ function createTalkerMethods(callback) { function done(err, status) { if(err) { - theDoneCallback(err, null); + console.log('There was an error with APIGW Create waterfall callback.'); + theDoneCallback(err, null); } else { - theDoneCallback(null, restAPIId); + console.log('Callback with rest ID of: ' + restAPIId); + theDoneCallback(null, restAPIId); } } @@ -461,7 +470,7 @@ function createTalkerIntegrations(callback) { } }); } - else { + else { callback(err); } }); @@ -496,13 +505,13 @@ function createTwilioMethods(callback) { }; apigateway.putMethod(params, function(err, data) { if(!err) { - console.log('Created Twilio POST Method'); + console.log('Created Twilio POST Method'); return callback(null); } else { - callback(err); + callback(err); } - }); + }); } function createTwilioMethodResponses(callback) { @@ -539,7 +548,7 @@ function createTwilioIntegrations(callback) { uri: null, requestTemplates: { "application/x-www-form-urlencoded": '{"postBody" : "$input.path(\'$\')"}' - } + } }; apigateway.putIntegration(params, function(err, data) { if (!err) { diff --git a/CloudFormation/CustomResources/APIGatewayCreateScript/src/LambdaHandler.js b/CloudFormation/CustomResources/APIGatewayCreateScript/src/LambdaHandler.js index 75a7e9f..8e659d9 100644 --- a/CloudFormation/CustomResources/APIGatewayCreateScript/src/LambdaHandler.js +++ b/CloudFormation/CustomResources/APIGatewayCreateScript/src/LambdaHandler.js @@ -13,6 +13,7 @@ var theS3Bucket; var theS3Key var theEvent; var theContext; +var RestApiID; exports.handleGatewayEvent = function(event, context) { @@ -52,9 +53,9 @@ function createApiGatewayCallback(err, restAPIId) } else { - var url = "https://" + restAPIId + ".execute-api." + theRegion + - ".amazonaws.com/ZombieWorkshopStage/zombie/message"; - + //var url = "https://" + restAPIId + ".execute-api." + theRegion + ".amazonaws.com/ZombieWorkshopStage/zombie/message"; + var url = "https://" + restAPIId + ".execute-api." + theRegion + ".amazonaws.com/ZombieWorkshopStage"; + RestApiID = restAPIId; // set global var equal to the rest ID. console.log("calling s3 helper to create constants with url: " + url); zombieconfigupdater.updateConfig(theRegion, @@ -74,12 +75,16 @@ function finishedUpdatingCallback(err) if(err) { + console.log('Processing failed during finishedUpdatingCallback.'); cloudformationsender.sendResponse(theEvent, theContext, "FAILED", {}); } else { + console.log('Calling cloudformationsender with SUCCESS param of of RestApiID: ' + RestApiID); cloudformationsender.sendResponse(theEvent, - theContext, "SUCCESS", {}); + theContext, "SUCCESS", { + "RestApiID": RestApiID + }); } } \ No newline at end of file diff --git a/CloudFormation/CustomResources/APIGatewayCreateScript/src/WK305_Gateway.zip b/CloudFormation/CustomResources/APIGatewayCreateScript/src/WK305_Gateway.zip index 757e55fca9ab7e67624723822bd161a8ba0c65ca..fbadfc55d204f6207d5d5718395bec7360b6516c 100644 GIT binary patch delta 117825 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

UoS6td94Vb$8Fu$xFh<-QAs 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 delta 21366 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 AZ~y=R diff --git a/CloudFormation/CustomResources/CopyS3Files/S3GetFilesFunction.js b/CloudFormation/CustomResources/S3GetFilesFunction/S3GetFilesFunction.js similarity index 54% rename from CloudFormation/CustomResources/CopyS3Files/S3GetFilesFunction.js rename to CloudFormation/CustomResources/S3GetFilesFunction/S3GetFilesFunction.js index 1e2bab8..975fda5 100644 --- a/CloudFormation/CustomResources/CopyS3Files/S3GetFilesFunction.js +++ b/CloudFormation/CustomResources/S3GetFilesFunction/S3GetFilesFunction.js @@ -1,39 +1,21 @@ -var aws = require("aws-sdk"); +var AWS = require('aws-sdk'); +var async = require('async'); exports.handler = function(event, context) { - console.log("REQUEST RECEIVED:\n", JSON.stringify(event)); + console.log('REQUEST RECEIVED:\n', JSON.stringify(event)); // Set region to the destination region where the user's bucket is hosted. //aws.config.update({region: event.ResourceProperties.S3Region}) - aws.config.update({region: event.ResourceProperties.S3Region}) var responseData = {}; var responseStatus = "FAILED"; // Start out with response of FAILED until we confirm SUCCESS explicitly. - var s3 = new aws.S3(); var srcS3Bucket = event.ResourceProperties.BucketName; // S3 bucket where AWS has hosted the lab content var dstS3Bucket = event.ResourceProperties.WebsiteBucketCreatedEarlier; - - var keys = [ - "S3/index.html", - "S3/assets/css/zombie.css", - "S3/assets/images/aws-logo.png", - "S3/assets/images/title.png", - "S3/assets/images/username.png", - "S3/assets/images/zombie-logo.png", - "S3/assets/js/constants.js", - "S3/app/app.js", - "S3/app/controllers/chatMessageController.js", - "S3/app/controllers/chatPanelController.js", - "S3/app/controllers/talkersPanelController.js", - "S3/app/controllers/loginController.js", - "WK305_Gateway.zip", - "ZombieGetMessages.zip", - "ZombiePostMessage.zip", - "IamUsers.zip" - ]; // Objects that are copied from AWS to user's bucket + var s3Region = event.ResourceProperties.S3Region; + var s3 = new AWS.S3({params: {Bucket: srcS3Bucket}, region: s3Region}); // CloudFormation cannot delete S3 bucket if there are objects in it. - // If DELETE request type is sent, delete the objects out of bucket, then log SUCCESS so Cloudformation can proceed. + // If DELETE request type is sent, delete the objects out of the user's bucket, then log SUCCESS so Cloudformation can proceed. if (event.RequestType == "Delete") { var params = { Bucket: dstS3Bucket @@ -67,35 +49,80 @@ exports.handler = function(event, context) { }); } - else { // if request type is CREATE or UPDATE, we get files into user's S3 bucket. - for (var i in keys) { - var srcS3Key = keys[i]; - var dstS3Key = srcS3Key; + // if request type is CREATE or UPDATE, list objects from the zombie workshop bucket and copy them to the user's new bucket. + else { + function initiateCopyObjects() { // List all objects, then invoke copy function with keys + async.waterfall([ + s3ListObjects, + s3CopyObjects + ], function(err, result) { + if (err) { + console.log('Error: ' + err); + responseStatus = "FAILED"; + console.log('responseStatus is: ' + responseStatus + ' and event is: ' + event + ' and context is: ' + context); + sendResponse(event, context, responseStatus, responseData); + } + else { + console.log('Done processing'); + responseStatus = "SUCCESS"; + console.log('responseStatus is: ' + responseStatus + ' and event is: ' + event + ' and context is: ' + context); + sendResponse(event, context, responseStatus, responseData); + } + }); + } - // Post status message out. - console.log("Copying '" + srcS3Key + "' from '" + srcS3Bucket + "' to '" + dstS3Bucket + "'"); + + function s3ListObjects(callback) { + console.log('Starting s3 list objects function'); + var keys = []; var params = { - Bucket: dstS3Bucket, - Key: dstS3Key, - CopySource: (srcS3Bucket + '/' + srcS3Key), - MetadataDirective: 'COPY' + Bucket: srcS3Bucket }; - // Copy the object from the source bucket - s3.copyObject(params, function (err, data) { + + s3.listObjects(params, function(err, data) { if (err) { - responseData = {Error: 'Object ' + srcS3Key + ' failed to transfer to your bucket.'}; - console.log(responseData.Error + ':\\n', err); - sendResponse(event, context, responseStatus, responseData); + console.log('Error listing S3 objects'); + return callback('Failed to list objects in bucket with error ' + err); } else { - responseStatus = "SUCCESS"; - console.log(data); - sendResponse(event, context, responseStatus, responseData); + console.log('Data.contents is: ' + data.Contents.Key); + keys.push(data.Contents); + callback(null, data.Contents); } }); } - } + + function s3CopyObjects(keys, callback) { + async.each(keys, function(file, callback) { + var params = { + Bucket: dstS3Bucket, + CopySource: srcS3Bucket + '/' + file.Key, + Key: file.Key + }; + s3.copyObject(params, function(copyErr, copyData){ + if (copyErr) { + console.log('Failed to copy object: ' + copyErr); + return callback(copyErr); + } + else { + console.log('Copied: ', params.Key); + callback(null); + } + }); + }, function(err) { + if (err) { + console.log('There was an error'); + return callback(err); + } + else { + console.log('Finished copying'); + callback(null, 'Finished copying all of the files'); + } + }); + } + initiateCopyObjects(); + } // End CREATE/UPDATE section } function sendResponse(event, context, responseStatus, responseData) { diff --git a/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/CHANGELOG.md b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/CHANGELOG.md new file mode 100644 index 0000000..f15e081 --- /dev/null +++ b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/CHANGELOG.md @@ -0,0 +1,125 @@ +# v1.5.2 +- Allow using `"consructor"` as an argument in `memoize` (#998) +- Give a better error messsage when `auto` dependency checking fails (#994) +- Various doc updates (#936, #956, #979, #1002) + +# v1.5.1 +- Fix issue with `pause` in `queue` with concurrency enabled (#946) +- `while` and `until` now pass the final result to callback (#963) +- `auto` will properly handle concurrency when there is no callback (#966) +- `auto` will now properly stop execution when an error occurs (#988, #993) +- Various doc fixes (#971, #980) + +# v1.5.0 + +- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892) +- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873) +- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637) +- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891) +- Various code simplifications (#896, #904) +- Various doc fixes :scroll: (#890, #894, #903, #905, #912) + +# v1.4.2 + +- Ensure coverage files don't get published on npm (#879) + +# v1.4.1 + +- Add in overlooked `detectLimit` method (#866) +- Removed unnecessary files from npm releases (#861) +- Removed usage of a reserved word to prevent :boom: in older environments (#870) + +# v1.4.0 + +- `asyncify` now supports promises (#840) +- Added `Limit` versions of `filter` and `reject` (#836) +- Add `Limit` versions of `detect`, `some` and `every` (#828, #829) +- `some`, `every` and `detect` now short circuit early (#828, #829) +- Improve detection of the global object (#804), enabling use in WebWorkers +- `whilst` now called with arguments from iterator (#823) +- `during` now gets called with arguments from iterator (#824) +- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0)) + + +# v1.3.0 + +New Features: +- Added `constant` +- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806) +- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800) +- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793) +- `async` should work better in Web Workers due to better `root` detection (#804) +- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642) +- Various internal updates (#786, #801, #802, #803) +- Various doc fixes (#790, #794) + +Bug Fixes: +- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783) + + +# v1.2.1 + +Bug Fix: + +- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) + + +# v1.2.0 + +New Features: + +- Added `timesLimit` (#743) +- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772) + +Bug Fixes: + +- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777) + + +# v1.1.1 + +Bug Fix: + +- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) + + +# v1.1.0 + +New Features: + +- `cargo` now supports all of the same methods and event callbacks as `queue`. +- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769) +- Optimized `map`, `eachOf`, and `waterfall` families of functions +- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667). +- The callback is now optional for the composed results of `compose` and `seq`. (#618) +- Reduced file size by 4kb, (minified version by 1kb) +- Added code coverage through `nyc` and `coveralls` (#768) + +Bug Fixes: + +- `forever` will no longer stack overflow with a synchronous iterator (#622) +- `eachLimit` and other limit functions will stop iterating once an error occurs (#754) +- Always pass `null` in callbacks when there is no error (#439) +- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668) +- `each` and family will properly handle an empty array (#578) +- `eachSeries` and family will finish if the underlying array is modified during execution (#557) +- `queue` will throw if a non-function is passed to `q.push()` (#593) +- Doc fixes (#629, #766) + + +# v1.0.0 + +No known breaking changes, we are simply complying with semver from here on out. + +Changes: + +- Start using a changelog! +- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321) +- Detect deadlocks in `auto` (#663) +- Better support for require.js (#527) +- Throw if queue created with concurrency `0` (#714) +- Fix unneeded iteration in `queue.resume()` (#758) +- Guard against timer mocking overriding `setImmediate` (#609 #611) +- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729) +- Use single noop function internally (#546) +- Optimize internal `_each`, `_map` and `_keys` functions. diff --git a/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/LICENSE b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/LICENSE new file mode 100644 index 0000000..8f29698 --- /dev/null +++ b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010-2014 Caolan McMahon + +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/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/README.md b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/README.md new file mode 100644 index 0000000..316c405 --- /dev/null +++ b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/README.md @@ -0,0 +1,1877 @@ +# Async.js + +[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) +[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async) +[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master) +[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + + +Async is a utility module which provides straight-forward, powerful functions +for working with asynchronous JavaScript. Although originally designed for +use with [Node.js](http://nodejs.org) and installable via `npm install async`, +it can also be used directly in the browser. + +Async is also installable via: + +- [bower](http://bower.io/): `bower install async` +- [component](https://github.com/component/component): `component install + caolan/async` +- [jam](http://jamjs.org/): `jam install async` +- [spm](http://spmjs.io/): `spm install async` + +Async provides around 20 functions that include the usual 'functional' +suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns +for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these +functions assume you follow the Node.js convention of providing a single +callback as the last argument of your `async` function. + + +## Quick Examples + +```javascript +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); + +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); + +async.parallel([ + function(){ ... }, + function(){ ... } +], callback); + +async.series([ + function(){ ... }, + function(){ ... } +]); +``` + +There are many more functions available so take a look at the docs below for a +full list. This module aims to be comprehensive, so if you feel anything is +missing please create a GitHub issue for it. + +## Common Pitfalls [(StackOverflow)](http://stackoverflow.com/questions/tagged/async.js) +### Synchronous iteration functions + +If you get an error like `RangeError: Maximum call stack size exceeded.` or other stack overflow issues when using async, you are likely using a synchronous iterator. By *synchronous* we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with `async.setImmediate` to start a new call stack on the next tick of the event loop. + +This can also arise by accident if you callback early in certain cases: + +```js +async.eachSeries(hugeArray, function iterator(item, callback) { + if (inCache(item)) { + callback(null, cache[item]); // if many items are cached, you'll overflow + } else { + doSomeIO(item, callback); + } +}, function done() { + //... +}); +``` + +Just change it to: + +```js +async.eachSeries(hugeArray, function iterator(item, callback) { + if (inCache(item)) { + async.setImmediate(function () { + callback(null, cache[item]); + }); + } else { + doSomeIO(item, callback); + //... +``` + +Async guards against synchronous functions in some, but not all, cases. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with [`async.ensureAsync`](#ensureAsync) Functions that are asynchronous by their nature do not have this problem and don't need the extra callback deferral. + +If JavaScript's event loop is still a bit nebulous, check out [this article](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/) or [this talk](http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html) for more detailed information about how it works. + + +### Multiple callbacks + +Make sure to always `return` when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases. + +```js +async.waterfall([ + function (callback) { + getSomething(options, function (err, result) { + if (err) { + callback(new Error("failed getting something:" + err.message)); + // we should return here + } + // since we did not return, this callback still will be called and + // `processData` will be called twice + callback(null, result); + }); + }, + processData +], done) +``` + +It is always good practice to `return callback(err, result)` whenever a callback call is not the last statement of a function. + + +### Binding a context to an iterator + +This section is really about `bind`, not about `async`. If you are wondering how to +make `async` execute your iterators in a given context, or are confused as to why +a method of another library isn't working as an iterator, study this example: + +```js +// Here is a simple object with an (unnecessarily roundabout) squaring method +var AsyncSquaringLibrary = { + squareExponent: 2, + square: function(number, callback){ + var result = Math.pow(number, this.squareExponent); + setTimeout(function(){ + callback(null, result); + }, 200); + } +}; + +async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ + // result is [NaN, NaN, NaN] + // This fails because the `this.squareExponent` expression in the square + // function is not evaluated in the context of AsyncSquaringLibrary, and is + // therefore undefined. +}); + +async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ + // result is [1, 4, 9] + // With the help of bind we can attach a context to the iterator before + // passing it to async. Now the square function will be executed in its + // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` + // will be as expected. +}); +``` + +## Download + +The source is available for download from +[GitHub](https://github.com/caolan/async/blob/master/lib/async.js). +Alternatively, you can install using Node Package Manager (`npm`): + + npm install async + +As well as using Bower: + + bower install async + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed + +## In the Browser + +So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. + +Usage: + +```html + + +``` + +## Documentation + +Some functions are also available in the following forms: +* `Series` - the same as `` but runs only a single async operation at a time +* `Limit` - the same as `` but runs a maximum of `limit` async operations at a time + +### Collections + +* [`each`](#each), `eachSeries`, `eachLimit` +* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit` +* [`map`](#map), `mapSeries`, `mapLimit` +* [`filter`](#filter), `filterSeries`, `filterLimit` +* [`reject`](#reject), `rejectSeries`, `rejectLimit` +* [`reduce`](#reduce), [`reduceRight`](#reduceRight) +* [`detect`](#detect), `detectSeries`, `detectLimit` +* [`sortBy`](#sortBy) +* [`some`](#some), `someLimit` +* [`every`](#every), `everyLimit` +* [`concat`](#concat), `concatSeries` + +### Control Flow + +* [`series`](#seriestasks-callback) +* [`parallel`](#parallel), `parallelLimit` +* [`whilst`](#whilst), [`doWhilst`](#doWhilst) +* [`until`](#until), [`doUntil`](#doUntil) +* [`during`](#during), [`doDuring`](#doDuring) +* [`forever`](#forever) +* [`waterfall`](#waterfall) +* [`compose`](#compose) +* [`seq`](#seq) +* [`applyEach`](#applyEach), `applyEachSeries` +* [`queue`](#queue), [`priorityQueue`](#priorityQueue) +* [`cargo`](#cargo) +* [`auto`](#auto) +* [`retry`](#retry) +* [`iterator`](#iterator) +* [`times`](#times), `timesSeries`, `timesLimit` + +### Utils + +* [`apply`](#apply) +* [`nextTick`](#nextTick) +* [`memoize`](#memoize) +* [`unmemoize`](#unmemoize) +* [`ensureAsync`](#ensureAsync) +* [`constant`](#constant) +* [`asyncify`](#asyncify) +* [`wrapSync`](#wrapSync) +* [`log`](#log) +* [`dir`](#dir) +* [`noConflict`](#noConflict) + +## Collections + + + +### each(arr, iterator, [callback]) + +Applies the function `iterator` to each item in `arr`, in parallel. +The `iterator` is called with an item from the list, and a callback for when it +has finished. If the `iterator` passes an error to its `callback`, the main +`callback` (for the `each` function) is immediately called with the error. + +Note, that since this function applies `iterator` to each item in parallel, +there is no guarantee that the iterator functions will complete in order. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occurred, the `callback` should be run without + arguments or with an explicit `null` argument. The array index is not passed + to the iterator. If you need the index, use [`forEachOf`](#forEachOf). +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Examples__ + + +```js +// assuming openFiles is an array of file names and saveFile is a function +// to save the modified contents of that file: + +async.each(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +```js +// assuming openFiles is an array of file names + +async.each(openFiles, function(file, callback) { + + // Perform operation on file here. + console.log('Processing file ' + file); + + if( file.length > 32 ) { + console.log('This file name is too long'); + callback('File name too long'); + } else { + // Do work to process file here + console.log('File processed'); + callback(); + } +}, function(err){ + // if any of the file processing produced an error, err would equal that error + if( err ) { + // One of the iterations produced an error. + // All processing will now stop. + console.log('A file failed to process'); + } else { + console.log('All files have been processed successfully'); + } +}); +``` + +__Related__ + +* eachSeries(arr, iterator, [callback]) +* eachLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + + +### forEachOf(obj, iterator, [callback]) + +Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator. + +__Arguments__ + +* `obj` - An object or array to iterate over. +* `iterator(item, key, callback)` - A function to apply to each item in `obj`. +The `key` is the item's key, or index in the case of an array. The iterator is +passed a `callback(err)` which must be called once it has completed. If no +error has occurred, the callback should be run without arguments or with an +explicit `null` argument. +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs. + +__Example__ + +```js +var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; +var configs = {}; + +async.forEachOf(obj, function (value, key, callback) { + fs.readFile(__dirname + value, "utf8", function (err, data) { + if (err) return callback(err); + try { + configs[key] = JSON.parse(data); + } catch (e) { + return callback(e); + } + callback(); + }) +}, function (err) { + if (err) console.error(err.message); + // configs is now a map of JSON data + doSomethingWith(configs); +}) +``` + +__Related__ + +* forEachOfSeries(obj, iterator, [callback]) +* forEachOfLimit(obj, limit, iterator, [callback]) + +--------------------------------------- + + +### map(arr, iterator, [callback]) + +Produces a new array of values by mapping each value in `arr` through +the `iterator` function. The `iterator` is called with an item from `arr` and a +callback for when it has finished processing. Each of these callback takes 2 arguments: +an `error`, and the transformed item from `arr`. If `iterator` passes an error to its +callback, the main `callback` (for the `map` function) is immediately called with the error. + +Note, that since this function applies the `iterator` to each item in parallel, +there is no guarantee that the `iterator` functions will complete in order. +However, the results array will be in the same order as the original `arr`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - *Optional* A callback which is called when all `iterator` + functions have finished, or an error occurs. Results is an array of the + transformed items from the `arr`. + +__Example__ + +```js +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +__Related__ +* mapSeries(arr, iterator, [callback]) +* mapLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + +### filter(arr, iterator, [callback]) + +__Alias:__ `select` + +Returns a new array of all the values in `arr` which pass an async truth test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. This operation is +performed in parallel, but the results array will be in the same order as the +original. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The `iterator` is passed a `callback(truthValue)`, which must be called with a + boolean argument once it has completed. +* `callback(results)` - *Optional* A callback which is called after all the `iterator` + functions have finished. + +__Example__ + +```js +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); +``` + +__Related__ + +* filterSeries(arr, iterator, [callback]) +* filterLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reject(arr, iterator, [callback]) + +The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. + +__Related__ + +* rejectSeries(arr, iterator, [callback]) +* rejectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reduce(arr, memo, iterator, [callback]) + +__Aliases:__ `inject`, `foldl` + +Reduces `arr` into a single value using an async `iterator` to return +each successive step. `memo` is the initial state of the reduction. +This function only operates in series. + +For performance reasons, it may make sense to split a call to this function into +a parallel map, and then use the normal `Array.prototype.reduce` on the results. +This function is for situations where each step in the reduction needs to be async; +if you can get the data before reducing it, then it's probably a good idea to do so. + +__Arguments__ + +* `arr` - An array to iterate over. +* `memo` - The initial state of the reduction. +* `iterator(memo, item, callback)` - A function applied to each item in the + array to produce the next step in the reduction. The `iterator` is passed a + `callback(err, reduction)` which accepts an optional error as its first + argument, and the state of the reduction as the second. If an error is + passed to the callback, the reduction is stopped and the main `callback` is + immediately called with the error. +* `callback(err, result)` - *Optional* A callback which is called after all the `iterator` + functions have finished. Result is the reduced value. + +__Example__ + +```js +async.reduce([1,2,3], 0, function(memo, item, callback){ + // pointless async: + process.nextTick(function(){ + callback(null, memo + item) + }); +}, function(err, result){ + // result is now equal to the last value of memo, which is 6 +}); +``` + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, [callback]) + +__Alias:__ `foldr` + +Same as [`reduce`](#reduce), only operates on `arr` in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, [callback]) + +Returns the first value in `arr` that passes an async truth test. The +`iterator` is applied in parallel, meaning the first iterator to return `true` will +fire the detect `callback` with that result. That means the result might not be +the first item in the original `arr` (in terms of order) that passes the test. + +If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The iterator is passed a `callback(truthValue)` which must be called with a + boolean argument once it has completed. **Note: this callback does not take an error as its first argument.** +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the `iterator` functions have finished. Result will be + the first item in the array that passes the truth test (iterator) or the + value `undefined` if none passed. **Note: this callback does not take an error as its first argument.** + +__Example__ + +```js +async.detect(['file1','file2','file3'], fs.exists, function(result){ + // result now equals the first file in the list that exists +}); +``` + +__Related__ + +* detectSeries(arr, iterator, [callback]) +* detectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### sortBy(arr, iterator, [callback]) + +Sorts a list by the results of running each `arr` value through an async `iterator`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, sortValue)` which must be called once it + has completed with an error (which can be `null`) and a value to use as the sort + criteria. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is the items from + the original `arr` sorted by the values returned by the `iterator` calls. + +__Example__ + +```js +async.sortBy(['file1','file2','file3'], function(file, callback){ + fs.stat(file, function(err, stats){ + callback(err, stats.mtime); + }); +}, function(err, results){ + // results is now the original array of files sorted by + // modified date +}); +``` + +__Sort Order__ + +By modifying the callback parameter the sorting order can be influenced: + +```js +//ascending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x); +}, function(err,result){ + //result callback +} ); + +//descending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x*-1); //<- x*-1 instead of x, turns the order around +}, function(err,result){ + //result callback +} ); +``` + +--------------------------------------- + + +### some(arr, iterator, [callback]) + +__Alias:__ `any` + +Returns `true` if at least one element in the `arr` satisfies an async test. +_The callback for each iterator call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. Once any iterator +call returns `true`, the main `callback` is immediately called. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)`` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** +__Example__ + +```js +async.some(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then at least one of the files exists +}); +``` + +__Related__ + +* someLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### every(arr, iterator, [callback]) + +__Alias:__ `all` + +Returns `true` if every element in `arr` satisfies an async test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `false`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** + +__Example__ + +```js +async.every(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then every file exists +}); +``` + +__Related__ + +* everyLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### concat(arr, iterator, [callback]) + +Applies `iterator` to each item in `arr`, concatenating the results. Returns the +concatenated list. The `iterator`s are called in parallel, and the results are +concatenated as they return. There is no guarantee that the results array will +be returned in the original order of `arr` passed to the `iterator` function. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, results)` which must be called once it + has completed with an error (which can be `null`) and an array of results. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is an array containing + the concatenated results of the `iterator` function. + +__Example__ + +```js +async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories +}); +``` + +__Related__ + +* concatSeries(arr, iterator, [callback]) + + +## Control Flow + + +### series(tasks, [callback]) + +Run the functions in the `tasks` array in series, each one running once the previous +function has completed. If any functions in the series pass an error to its +callback, no more functions are run, and `callback` is immediately called with the value of the error. +Otherwise, `callback` receives an array of results when `tasks` have completed. + +It is also possible to use an object instead of an array. Each property will be +run as a function, and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`series`](#series). + +**Note** that while many implementations preserve the order of object properties, the +[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) +explicitly states that + +> The mechanics and order of enumerating the properties is not specified. + +So if you rely on the order in which your series of functions are executed, and want +this to work on all platforms, consider using an array. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +__Example__ + +```js +async.series([ + function(callback){ + // do some stuff ... + callback(null, 'one'); + }, + function(callback){ + // do some more stuff ... + callback(null, 'two'); + } +], +// optional callback +function(err, results){ + // results is now equal to ['one', 'two'] +}); + + +// an example using an object instead of an array +async.series({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equal to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its +callback, the main `callback` is immediately called with the value of the error. +Once the `tasks` have completed, the results are passed to the final `callback` as an +array. + +**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or perform any I/O, they will actually be executed in series. Any synchronous setup sections for each task will happen one after the other. JavaScript remains single-threaded. + +It is also possible to use an object instead of an array. Each property will be +run as a function and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`parallel`](#parallel). + + +__Arguments__ + +* `tasks` - An array or object containing functions to run. Each function is passed + a `callback(err, result)` which it must call on completion with an error `err` + (which can be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed successfully. This function gets a results array (or object) containing all + the result arguments passed to the task callbacks. + +__Example__ + +```js +async.parallel([ + function(callback){ + setTimeout(function(){ + callback(null, 'one'); + }, 200); + }, + function(callback){ + setTimeout(function(){ + callback(null, 'two'); + }, 100); + } +], +// optional callback +function(err, results){ + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}); + + +// an example using an object instead of an array +async.parallel({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equals to: {one: 1, two: 2} +}); +``` + +__Related__ + +* parallelLimit(tasks, limit, [callback]) + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +__Arguments__ + +* `test()` - synchronous truth test to perform before each execution of `fn`. +* `fn(callback)` - A function which is called each time `test` passes. The function is + passed a `callback(err)`, which must be called once it has completed with an + optional `err` argument. +* `callback(err, [results])` - A callback which is called after the test + function has failed and repeated execution of `fn` has stopped. `callback` + will be passed an error and any arguments passed to the final `fn`'s callback. + +__Example__ + +```js +var count = 0; + +async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(function () { + callback(null, count); + }, 1000); + }, + function (err, n) { + // 5 seconds have passed, n = 5 + } +); +``` + +--------------------------------------- + + +### doWhilst(fn, test, callback) + +The post-check version of [`whilst`](#whilst). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, +or an error occurs. `callback` will be passed an error and any arguments passed +to the final `fn`'s callback. + +The inverse of [`whilst`](#whilst). + +--------------------------------------- + + +### doUntil(fn, test, callback) + +Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. + +--------------------------------------- + + +### during(test, fn, callback) + +Like [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error. + +__Example__ + +```js +var count = 0; + +async.during( + function (callback) { + return callback(null, count < 5); + }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doDuring(fn, test, callback) + +The post-check version of [`during`](#during). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function. + +--------------------------------------- + + +### forever(fn, [errback]) + +Calls the asynchronous function `fn` with a callback parameter that allows it to +call itself again, in series, indefinitely. + +If an error is passed to the callback then `errback` is called with the +error, and execution stops, otherwise it will never be called. + +```js +async.forever( + function(next) { + // next is suitable for passing to things that need a callback(err [, whatever]); + // it will result in this function being called again. + }, + function(err) { + // if next is called with a value in its first parameter, it will appear + // in here as 'err', and execution will stop. + } +); +``` + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs the `tasks` array of functions in series, each passing their results to the next in +the array. However, if any of the `tasks` pass an error to their own callback, the +next function is not executed, and the main `callback` is immediately called with +the error. + +__Arguments__ + +* `tasks` - An array of functions to run, each function is passed a + `callback(err, result1, result2, ...)` it must call on completion. The first + argument is an error (which can be `null`) and any further arguments will be + passed as arguments in order to the next task. +* `callback(err, [results])` - An optional callback to run once all the functions + have completed. This will be passed the results of the last task's callback. + + + +__Example__ + +```js +async.waterfall([ + function(callback) { + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); + }, + function(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); + } +], function (err, result) { + // result now equals 'done' +}); +``` +Or, with named functions: + +```js +async.waterfall([ + myFirstFunction, + mySecondFunction, + myLastFunction, +], function (err, result) { + // result now equals 'done' +}); +function myFirstFunction(callback) { + callback(null, 'one', 'two'); +} +function mySecondFunction(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); +} +function myLastFunction(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); +} +``` + +Or, if you need to pass any argument to the first function: + +```js +async.waterfall([ + async.apply(myFirstFunction, 'zero'), + mySecondFunction, + myLastFunction, +], function (err, result) { + // result now equals 'done' +}); +function myFirstFunction(arg1, callback) { + // arg1 now equals 'zero' + callback(null, 'one', 'two'); +} +function mySecondFunction(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); +} +function myLastFunction(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); +} +``` + +--------------------------------------- + +### compose(fn1, fn2...) + +Creates a function which is a composition of the passed asynchronous +functions. Each function consumes the return value of the function that +follows. Composing functions `f()`, `g()`, and `h()` would produce the result of +`f(g(h()))`, only this version uses callbacks to obtain the return values. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +function add1(n, callback) { + setTimeout(function () { + callback(null, n + 1); + }, 10); +} + +function mul3(n, callback) { + setTimeout(function () { + callback(null, n * 3); + }, 10); +} + +var add1mul3 = async.compose(mul3, add1); + +add1mul3(4, function (err, result) { + // result now equals 15 +}); +``` + +--------------------------------------- + +### seq(fn1, fn2...) + +Version of the compose function that is more natural to read. +Each function consumes the return value of the previous function. +It is the equivalent of [`compose`](#compose) with the arguments reversed. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +// Requires lodash (or underscore), express3 and dresende's orm2. +// Part of an app, that fetches cats of the logged user. +// This example uses `seq` function to avoid overnesting and error +// handling clutter. +app.get('/cats', function(request, response) { + var User = request.models.User; + async.seq( + _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) + function(user, fn) { + user.getCats(fn); // 'getCats' has signature (callback(err, data)) + } + )(req.session.user_id, function (err, cats) { + if (err) { + console.error(err); + response.json({ status: 'error', message: err.message }); + } else { + response.json({ status: 'ok', message: 'Cats found', data: cats }); + } + }); +}); +``` + +--------------------------------------- + +### applyEach(fns, args..., callback) + +Applies the provided arguments to each function in the array, calling +`callback` after all functions have completed. If you only provide the first +argument, then it will return a function which lets you pass in the +arguments as if it were a single function call. + +__Arguments__ + +* `fns` - the asynchronous functions to all call with the same arguments +* `args...` - any number of separate arguments to pass to the function +* `callback` - the final argument should be the callback, called when all + functions have completed processing + + +__Example__ + +```js +async.applyEach([enableSearch, updateSchema], 'bucket', callback); + +// partial application example: +async.each( + buckets, + async.applyEach([enableSearch, updateSchema]), + callback +); +``` + +__Related__ + +* applyEachSeries(tasks, args..., [callback]) + +--------------------------------------- + + +### queue(worker, [concurrency]) + +Creates a `queue` object with the specified `concurrency`. Tasks added to the +`queue` are processed in parallel (up to the `concurrency` limit). If all +`worker`s are in progress, the task is queued until one becomes available. +Once a `worker` completes a `task`, that `task`'s callback is called. + +__Arguments__ + +* `worker(task, callback)` - An asynchronous function for processing a queued + task, which must call its `callback(err)` argument when finished, with an + optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`. +* `concurrency` - An `integer` for determining how many `worker` functions should be + run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown. + +__Queue objects__ + +The `queue` object returned by this function has the following properties and +methods: + +* `length()` - a function returning the number of items waiting to be processed. +* `started` - a function returning whether or not any items have been pushed and processed by the queue +* `running()` - a function returning the number of items currently being processed. +* `workersList()` - a function returning the array of items currently being processed. +* `idle()` - a function returning false if there are items waiting or being processed, or true if not. +* `concurrency` - an integer for determining how many `worker` functions should be + run in parallel. This property can be changed after a `queue` is created to + alter the concurrency on-the-fly. +* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once + the `worker` has finished processing the task. Instead of a single task, a `tasks` array + can be submitted. The respective callback is used for every task in the list. +* `unshift(task, [callback])` - add a new task to the front of the `queue`. +* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, + and further tasks will be queued. +* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. +* `paused` - a boolean for determining whether the queue is in a paused state +* `pause()` - a function that pauses the processing of tasks until `resume()` is called. +* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. +* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. + +__Example__ + +```js +// create a queue object with concurrency 2 + +var q = async.queue(function (task, callback) { + console.log('hello ' + task.name); + callback(); +}, 2); + + +// assign a callback +q.drain = function() { + console.log('all items have been processed'); +} + +// add some items to the queue + +q.push({name: 'foo'}, function (err) { + console.log('finished processing foo'); +}); +q.push({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); + +// add some items to the queue (batch-wise) + +q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { + console.log('finished processing item'); +}); + +// add some items to the front of the queue + +q.unshift({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); +``` + + +--------------------------------------- + + +### priorityQueue(worker, concurrency) + +The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: + +* `push(task, priority, [callback])` - `priority` should be a number. If an array of + `tasks` is given, all tasks will be assigned the same priority. +* The `unshift` method was removed. + +--------------------------------------- + + +### cargo(worker, [payload]) + +Creates a `cargo` object with the specified payload. Tasks added to the +cargo will be processed altogether (up to the `payload` limit). If the +`worker` is in progress, the task is queued until it becomes available. Once +the `worker` has completed some tasks, each callback of those tasks is called. +Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work. + +While [queue](#queue) passes only one task to one of a group of workers +at a time, cargo passes an array of tasks to a single worker, repeating +when the worker is finished. + +__Arguments__ + +* `worker(tasks, callback)` - An asynchronous function for processing an array of + queued tasks, which must call its `callback(err)` argument when finished, with + an optional `err` argument. +* `payload` - An optional `integer` for determining how many tasks should be + processed per round; if omitted, the default is unlimited. + +__Cargo objects__ + +The `cargo` object returned by this function has the following properties and +methods: + +* `length()` - A function returning the number of items waiting to be processed. +* `payload` - An `integer` for determining how many tasks should be + process per round. This property can be changed after a `cargo` is created to + alter the payload on-the-fly. +* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called + once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` + can be submitted. The respective callback is used for every task in the list. +* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. +* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. +* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue) + +__Example__ + +```js +// create a cargo object with payload 2 + +var cargo = async.cargo(function (tasks, callback) { + for(var i=0; i +### auto(tasks, [concurrency], [callback]) + +Determines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied. + +If any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error. Functions also receive an object containing the results of functions which have completed so far. + +Note, all functions are called with a `results` object as a second argument, +so it is unsafe to pass functions in the `tasks` object which cannot handle the +extra argument. + +For example, this snippet of code: + +```js +async.auto({ + readData: async.apply(fs.readFile, 'data.txt', 'utf-8') +}, callback); +``` + +will have the effect of calling `readFile` with the results object as the last +argument, which will fail: + +```js +fs.readFile('data.txt', 'utf-8', cb, {}); +``` + +Instead, wrap the call to `readFile` in a function which does not forward the +`results` object: + +```js +async.auto({ + readData: function(cb, results){ + fs.readFile('data.txt', 'utf-8', cb); + } +}, callback); +``` + +__Arguments__ + +* `tasks` - An object. Each of its properties is either a function or an array of + requirements, with the function itself the last item in the array. The object's key + of a property serves as the name of the task defined by that property, + i.e. can be used when specifying requirements for other tasks. + The function receives two arguments: (1) a `callback(err, result)` which must be + called when finished, passing an `error` (which can be `null`) and the result of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions. +* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible. +* `callback(err, results)` - An optional callback which is called when all the + tasks have been completed. It receives the `err` argument if any `tasks` + pass an error to their callback. Results are always returned; however, if + an error occurs, no further `tasks` will be performed, and the results + object will only contain partial results. + + +__Example__ + +```js +async.auto({ + get_data: function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + make_folder: function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + }, + write_file: ['get_data', 'make_folder', function(callback, results){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + callback(null, 'filename'); + }], + email_link: ['write_file', function(callback, results){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + callback(null, {'file':results.write_file, 'email':'user@example.com'}); + }] +}, function(err, results) { + console.log('err = ', err); + console.log('results = ', results); +}); +``` + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + +```js +async.parallel([ + function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + } +], +function(err, results){ + async.series([ + function(callback){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + results.push('filename'); + callback(null); + }, + function(callback){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + callback(null, {'file':results.pop(), 'email':'user@example.com'}); + } + ]); +}); +``` + +For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding +new tasks much easier (and the code more readable). + + +--------------------------------------- + + +### retry([opts = {times: 5, interval: 0}| 5], task, [callback]) + +Attempts to get a successful response from `task` no more than `times` times before +returning an error. If the task is successful, the `callback` will be passed the result +of the successful task. If all attempts fail, the callback will be passed the error and +result (if any) of the final attempt. + +__Arguments__ + +* `opts` - Can be either an object with `times` and `interval` or a number. + * `times` - The number of attempts to make before giving up. The default is `5`. + * `interval` - The time to wait between retries, in milliseconds. The default is `0`. + * If `opts` is a number, the number specifies the number of times to retry, with the default interval of `0`. +* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` + which must be called when finished, passing `err` (which can be `null`) and the `result` of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions (if nested inside another control flow). +* `callback(err, results)` - An optional callback which is called when the + task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. + +The [`retry`](#retry) function can be used as a stand-alone control flow by passing a callback, as shown below: + +```js +// try calling apiMethod 3 times +async.retry(3, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +// try calling apiMethod 3 times, waiting 200 ms between each retry +async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +// try calling apiMethod the default 5 times no delay between each retry +async.retry(apiMethod, function(err, result) { + // do something with the result +}); +``` + +It can also be embedded within other control flow functions to retry individual methods +that are not as reliable, like this: + +```js +async.auto({ + users: api.getUsers.bind(api), + payments: async.retry(3, api.getPayments.bind(api)) +}, function(err, results) { + // do something with the results +}); +``` + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the `tasks` array, +returning a continuation to call the next one after that. It's also possible to +“peek” at the next iterator with `iterator.next()`. + +This function is used internally by the `async` module, but can be useful when +you want to manually control the flow of functions in series. + +__Arguments__ + +* `tasks` - An array of functions to run. + +__Example__ + +```js +var iterator = async.iterator([ + function(){ sys.p('one'); }, + function(){ sys.p('two'); }, + function(){ sys.p('three'); } +]); + +node> var iterator2 = iterator(); +'one' +node> var iterator3 = iterator2(); +'two' +node> iterator3(); +'three' +node> var nextfn = iterator2.next(); +node> nextfn(); +'three' +``` + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied. + +Useful as a shorthand when combined with other control flow functions. Any arguments +passed to the returned function are added to the arguments originally passed +to apply. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to automatically apply when the + continuation is called. + +__Example__ + +```js +// using apply + +async.parallel([ + async.apply(fs.writeFile, 'testfile1', 'test1'), + async.apply(fs.writeFile, 'testfile2', 'test2'), +]); + + +// the same process without using apply + +async.parallel([ + function(callback){ + fs.writeFile('testfile1', 'test1', callback); + }, + function(callback){ + fs.writeFile('testfile2', 'test2', callback); + } +]); +``` + +It's possible to pass any number of additional arguments when calling the +continuation: + +```js +node> var fn = async.apply(sys.puts, 'one'); +node> fn('two', 'three'); +one +two +three +``` + +--------------------------------------- + + +### nextTick(callback), setImmediate(callback) + +Calls `callback` on a later loop around the event loop. In Node.js this just +calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` +if available, otherwise `setTimeout(callback, 0)`, which means other higher priority +events may precede the execution of `callback`. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* `callback` - The function to call on a later loop around the event loop. + +__Example__ + +```js +var call_order = []; +async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two'] +}); +call_order.push('one') +``` + + +### times(n, iterator, [callback]) + +Calls the `iterator` function `n` times, and accumulates results in the same manner +you would use with [`map`](#map). + +__Arguments__ + +* `n` - The number of times to run the function. +* `iterator` - The function to call `n` times. +* `callback` - see [`map`](#map) + +__Example__ + +```js +// Pretend this is some complicated async factory +var createUser = function(id, callback) { + callback(null, { + id: 'user' + id + }) +} +// generate 5 users +async.times(5, function(n, next){ + createUser(n, function(err, user) { + next(err, user) + }) +}, function(err, users) { + // we should now have 5 users +}); +``` + +__Related__ + +* timesSeries(n, iterator, [callback]) +* timesLimit(n, limit, iterator, [callback]) + + +## Utils + + +### memoize(fn, [hasher]) + +Caches the results of an `async` function. When creating a hash to store function +results against, the callback is omitted from the hash and an optional hash +function can be used. + +If no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function. + +The cache of results is exposed as the `memo` property of the function returned +by `memoize`. + +__Arguments__ + +* `fn` - The function to proxy and cache results from. +* `hasher` - An optional function for generating a custom hash for storing + results. It has all the arguments applied to it apart from the callback, and + must be synchronous. + +__Example__ + +```js +var slow_fn = function (name, callback) { + // do something + callback(null, result); +}; +var fn = async.memoize(slow_fn); + +// fn can now be used as if it were slow_fn +fn('some name', function () { + // callback +}); +``` + + +### unmemoize(fn) + +Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized +form. Handy for testing. + +__Arguments__ + +* `fn` - the memoized function + +--------------------------------------- + + +### ensureAsync(fn) + +Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained. + +__Arguments__ + +* `fn` - an async function, one that expects a node-style callback as its last argument + +Returns a wrapped function with the exact same call signature as the function passed in. + +__Example__ + +```js +function sometimesAsync(arg, callback) { + if (cache[arg]) { + return callback(null, cache[arg]); // this would be synchronous!! + } else { + doSomeIO(arg, callback); // this IO would be asynchronous + } +} + +// this has a risk of stack overflows if many results are cached in a row +async.mapSeries(args, sometimesAsync, done); + +// this will defer sometimesAsync's callback if necessary, +// preventing stack overflows +async.mapSeries(args, async.ensureAsync(sometimesAsync), done); + +``` + +--------------------------------------- + + +### constant(values...) + +Returns a function that when called, calls-back with the values provided. Useful as the first function in a `waterfall`, or for plugging values in to `auto`. + +__Example__ + +```js +async.waterfall([ + async.constant(42), + function (value, next) { + // value === 42 + }, + //... +], callback); + +async.waterfall([ + async.constant(filename, "utf8"), + fs.readFile, + function (fileData, next) { + //... + } + //... +], callback); + +async.auto({ + hostname: async.constant("https://server.net/"), + port: findFreePort, + launchServer: ["hostname", "port", function (cb, options) { + startServer(options, cb); + }], + //... +}, callback); + +``` + +--------------------------------------- + + + +### asyncify(func) + +__Alias:__ `wrapSync` + +Take a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback. + +__Example__ + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(JSON.parse), + function (data, next) { + // data is the result of parsing the text. + // If there was a parsing error, it would have been caught. + } +], callback) +``` + +If the function passed to `asyncify` returns a Promise, that promises's resolved/rejected state will be used to call the callback, rather than simply the synchronous return value. Example: + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(function (contents) { + return db.model.create(contents); + }), + function (model, next) { + // `model` is the instantiated model object. + // If there was an error, this function would be skipped. + } +], callback) +``` + +This also means you can asyncify ES2016 `async` functions. + +```js +var q = async.queue(async.asyncify(async function (file) { + var intermediateStep = await processFile(file); + return await somePromise(intermediateStep) +})); + +q.push(files); +``` + +--------------------------------------- + + +### log(function, arguments) + +Logs the result of an `async` function to the `console`. Only works in Node.js or +in browsers that support `console.log` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.log` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); +}; +``` +```js +node> async.log(hello, 'world'); +'hello world' +``` + +--------------------------------------- + + +### dir(function, arguments) + +Logs the result of an `async` function to the `console` using `console.dir` to +display the properties of the resulting object. Only works in Node.js or +in browsers that support `console.dir` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.dir` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); +}; +``` +```js +node> async.dir(hello, 'world'); +{hello: 'world'} +``` + +--------------------------------------- + + +### noConflict() + +Changes the value of `async` back to its original value, returning a reference to the +`async` object. diff --git a/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/dist/async.js b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/dist/async.js new file mode 100644 index 0000000..31e7620 --- /dev/null +++ b/CloudFormation/CustomResources/S3GetFilesFunction/node_modules/async/dist/async.js @@ -0,0 +1,1265 @@ +/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +(function () { + + var async = {}; + function noop() {} + function identity(v) { + return v; + } + function toBool(v) { + return !!v; + } + function notId(v) { + return !v; + } + + // global on the server, window in the browser + var previous_async; + + // Establish the root object, `window` (`self`) in the browser, `global` + // on the server, or `this` in some virtual machines. We use `self` + // instead of `window` for `WebWorker` support. + var root = typeof self === 'object' && self.self === self && self || + typeof global === 'object' && global.global === global && global || + this; + + if (root != null) { + previous_async = root.async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + function only_once(fn) { + return function() { + if (fn === null) throw new Error("Callback was already called."); + fn.apply(this, arguments); + fn = null; + }; + } + + function _once(fn) { + return function() { + if (fn === null) return; + fn.apply(this, arguments); + fn = null; + }; + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || function (obj) { + return _toString.call(obj) === '[object Array]'; + }; + + // Ported from underscore.js isObject + var _isObject = function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + }; + + function _isArrayLike(arr) { + return _isArray(arr) || ( + // has a positive integer length property + typeof arr.length === "number" && + arr.length >= 0 && + arr.length % 1 === 0 + ); + } + + function _arrayEach(arr, iterator) { + var index = -1, + length = arr.length; + + while (++index < length) { + iterator(arr[index], index, arr); + } + } + + function _map(arr, iterator) { + var index = -1, + length = arr.length, + result = Array(length); + + while (++index < length) { + result[index] = iterator(arr[index], index, arr); + } + return result; + } + + function _range(count) { + return _map(Array(count), function (v, i) { return i; }); + } + + function _reduce(arr, iterator, memo) { + _arrayEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + } + + function _forEachOf(object, iterator) { + _arrayEach(_keys(object), function (key) { + iterator(object[key], key); + }); + } + + function _indexOf(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === item) return i; + } + return -1; + } + + var _keys = Object.keys || function (obj) { + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + function _keyIterator(coll) { + var i = -1; + var len; + var keys; + if (_isArrayLike(coll)) { + len = coll.length; + return function next() { + i++; + return i < len ? i : null; + }; + } else { + keys = _keys(coll); + len = keys.length; + return function next() { + i++; + return i < len ? keys[i] : null; + }; + } + } + + // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html) + // This accumulates the arguments passed into an array, after a given index. + // From underscore.js (https://github.com/jashkenas/underscore/pull/2140). + function _restParam(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0); + var rest = Array(length); + for (var index = 0; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + } + // Currently unused but handle cases outside of the switch statement: + // var args = Array(startIndex + 1); + // for (index = 0; index < startIndex; index++) { + // args[index] = arguments[index]; + // } + // args[startIndex] = rest; + // return func.apply(this, args); + }; + } + + function _withoutIndex(iterator) { + return function (value, index, callback) { + return iterator(value, callback); + }; + } + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + + // capture the global reference to guard against fakeTimer mocks + var _setImmediate = typeof setImmediate === 'function' && setImmediate; + + var _delay = _setImmediate ? function(fn) { + // not a direct alias for IE10 compatibility + _setImmediate(fn); + } : function(fn) { + setTimeout(fn, 0); + }; + + if (typeof process === 'object' && typeof process.nextTick === 'function') { + async.nextTick = process.nextTick; + } else { + async.nextTick = _delay; + } + async.setImmediate = _setImmediate ? _delay : async.nextTick; + + + async.forEach = + async.each = function (arr, iterator, callback) { + return async.eachOf(arr, _withoutIndex(iterator), callback); + }; + + async.forEachSeries = + async.eachSeries = function (arr, iterator, callback) { + return async.eachOfSeries(arr, _withoutIndex(iterator), callback); + }; + + + async.forEachLimit = + async.eachLimit = function (arr, limit, iterator, callback) { + return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback); + }; + + async.forEachOf = + async.eachOf = function (object, iterator, callback) { + callback = _once(callback || noop); + object = object || []; + + var iter = _keyIterator(object); + var key, completed = 0; + + while ((key = iter()) != null) { + completed += 1; + iterator(object[key], key, only_once(done)); + } + + if (completed === 0) callback(null); + + function done(err) { + completed--; + if (err) { + callback(err); + } + // Check key is null in case iterator isn't exhausted + // and done resolved synchronously. + else if (key === null && completed <= 0) { + callback(null); + } + } + }; + + async.forEachOfSeries = + async.eachOfSeries = function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + var key = nextKey(); + function iterate() { + var sync = true; + if (key === null) { + return callback(null); + } + iterator(obj[key], key, only_once(function (err) { + if (err) { + callback(err); + } + else { + key = nextKey(); + if (key === null) { + return callback(null); + } else { + if (sync) { + async.setImmediate(iterate); + } else { + iterate(); + } + } + } + })); + sync = false; + } + iterate(); + }; + + + + async.forEachOfLimit = + async.eachOfLimit = function (obj, limit, iterator, callback) { + _eachOfLimit(limit)(obj, iterator, callback); + }; + + function _eachOfLimit(limit) { + + return function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + if (limit <= 0) { + return callback(null); + } + var done = false; + var running = 0; + var errored = false; + + (function replenish () { + if (done && running <= 0) { + return callback(null); + } + + while (running < limit && !errored) { + var key = nextKey(); + if (key === null) { + done = true; + if (running <= 0) { + callback(null); + } + return; + } + running += 1; + iterator(obj[key], key, only_once(function (err) { + running -= 1; + if (err) { + callback(err); + errored = true; + } + else { + replenish(); + } + })); + } + })(); + }; + } + + + function doParallel(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOf, obj, iterator, callback); + }; + } + function doParallelLimit(fn) { + return function (obj, limit, iterator, callback) { + return fn(_eachOfLimit(limit), obj, iterator, callback); + }; + } + function doSeries(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOfSeries, obj, iterator, callback); + }; + } + + function _asyncMap(eachfn, arr, iterator, callback) { + callback = _once(callback || noop); + arr = arr || []; + var results = _isArrayLike(arr) ? [] : {}; + eachfn(arr, function (value, index, callback) { + iterator(value, function (err, v) { + results[index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = doParallelLimit(_asyncMap); + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.inject = + async.foldl = + async.reduce = function (arr, memo, iterator, callback) { + async.eachOfSeries(arr, function (x, i, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + + async.foldr = + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, identity).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + + async.transform = function (arr, memo, iterator, callback) { + if (arguments.length === 3) { + callback = iterator; + iterator = memo; + memo = _isArray(arr) ? [] : {}; + } + + async.eachOf(arr, function(v, k, cb) { + iterator(memo, v, k, cb); + }, function(err) { + callback(err, memo); + }); + }; + + function _filter(eachfn, arr, iterator, callback) { + var results = []; + eachfn(arr, function (x, index, callback) { + iterator(x, function (v) { + if (v) { + results.push({index: index, value: x}); + } + callback(); + }); + }, function () { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + } + + async.select = + async.filter = doParallel(_filter); + + async.selectLimit = + async.filterLimit = doParallelLimit(_filter); + + async.selectSeries = + async.filterSeries = doSeries(_filter); + + function _reject(eachfn, arr, iterator, callback) { + _filter(eachfn, arr, function(value, cb) { + iterator(value, function(v) { + cb(!v); + }); + }, callback); + } + async.reject = doParallel(_reject); + async.rejectLimit = doParallelLimit(_reject); + async.rejectSeries = doSeries(_reject); + + function _createTester(eachfn, check, getResult) { + return function(arr, limit, iterator, cb) { + function done() { + if (cb) cb(getResult(false, void 0)); + } + function iteratee(x, _, callback) { + if (!cb) return callback(); + iterator(x, function (v) { + if (cb && check(v)) { + cb(getResult(true, x)); + cb = iterator = false; + } + callback(); + }); + } + if (arguments.length > 3) { + eachfn(arr, limit, iteratee, done); + } else { + cb = iterator; + iterator = limit; + eachfn(arr, iteratee, done); + } + }; + } + + async.any = + async.some = _createTester(async.eachOf, toBool, identity); + + async.someLimit = _createTester(async.eachOfLimit, toBool, identity); + + async.all = + async.every = _createTester(async.eachOf, notId, notId); + + async.everyLimit = _createTester(async.eachOfLimit, notId, notId); + + function _findGetResult(v, x) { + return x; + } + async.detect = _createTester(async.eachOf, identity, _findGetResult); + async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult); + async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult); + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + callback(null, _map(results.sort(comparator), function (x) { + return x.value; + })); + } + + }); + + function comparator(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + } + }; + + async.auto = function (tasks, concurrency, callback) { + if (typeof arguments[1] === 'function') { + // concurrency is optional, shift the args. + callback = concurrency; + concurrency = null; + } + callback = _once(callback || noop); + var keys = _keys(tasks); + var remainingTasks = keys.length; + if (!remainingTasks) { + return callback(null); + } + if (!concurrency) { + concurrency = remainingTasks; + } + + var results = {}; + var runningTasks = 0; + + var hasError = false; + + var listeners = []; + function addListener(fn) { + listeners.unshift(fn); + } + function removeListener(fn) { + var idx = _indexOf(listeners, fn); + if (idx >= 0) listeners.splice(idx, 1); + } + function taskComplete() { + remainingTasks--; + _arrayEach(listeners.slice(0), function (fn) { + fn(); + }); + } + + addListener(function () { + if (!remainingTasks) { + callback(null, results); + } + }); + + _arrayEach(keys, function (k) { + if (hasError) return; + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = _restParam(function(err, args) { + runningTasks--; + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _forEachOf(results, function(val, rkey) { + safeResults[rkey] = val; + }); + safeResults[k] = args; + hasError = true; + + callback(err, safeResults); + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }); + var requires = task.slice(0, task.length - 1); + // prevent dead-locks + var len = requires.length; + var dep; + while (len--) { + if (!(dep = tasks[requires[len]])) { + throw new Error('Has nonexistent dependency in ' + requires.join(', ')); + } + if (_isArray(dep) && _indexOf(dep, k) >= 0) { + throw new Error('Has cyclic dependencies'); + } + } + function ready() { + return runningTasks < concurrency && _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + } + if (ready()) { + runningTasks++; + task[task.length - 1](taskCallback, results); + } + else { + addListener(listener); + } + function listener() { + if (ready()) { + runningTasks++; + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + } + }); + }; + + + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var DEFAULT_INTERVAL = 0; + + var attempts = []; + + var opts = { + times: DEFAULT_TIMES, + interval: DEFAULT_INTERVAL + }; + + function parseTimes(acc, t){ + if(typeof t === 'number'){ + acc.times = parseInt(t, 10) || DEFAULT_TIMES; + } else if(typeof t === 'object'){ + acc.times = parseInt(t.times, 10) || DEFAULT_TIMES; + acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL; + } else { + throw new Error('Unsupported argument type for \'times\': ' + typeof t); + } + } + + var length = arguments.length; + if (length < 1 || length > 3) { + throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)'); + } else if (length <= 2 && typeof times === 'function') { + callback = task; + task = times; + } + if (typeof times !== 'function') { + parseTimes(opts, times); + } + opts.callback = callback; + opts.task = task; + + function wrappedTask(wrappedCallback, wrappedResults) { + function retryAttempt(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + } + + function retryInterval(interval){ + return function(seriesCallback){ + setTimeout(function(){ + seriesCallback(null); + }, interval); + }; + } + + while (opts.times) { + + var finalAttempt = !(opts.times-=1); + attempts.push(retryAttempt(opts.task, finalAttempt)); + if(!finalAttempt && opts.interval > 0){ + attempts.push(retryInterval(opts.interval)); + } + } + + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || opts.callback)(data.err, data.result); + }); + } + + // If a callback is passed, run this as a controll flow + return opts.callback ? wrappedTask() : wrappedTask; + }; + + async.waterfall = function (tasks, callback) { + callback = _once(callback || noop); + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + function wrapIterator(iterator) { + return _restParam(function (err, args) { + if (err) { + callback.apply(null, [err].concat(args)); + } + else { + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + ensureAsync(iterator).apply(null, args); + } + }); + } + wrapIterator(async.iterator(tasks))(); + }; + + function _parallel(eachfn, tasks, callback) { + callback = callback || noop; + var results = _isArrayLike(tasks) ? [] : {}; + + eachfn(tasks, function (task, key, callback) { + task(_restParam(function (err, args) { + if (args.length <= 1) { + args = args[0]; + } + results[key] = args; + callback(err); + })); + }, function (err) { + callback(err, results); + }); + } + + async.parallel = function (tasks, callback) { + _parallel(async.eachOf, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel(_eachOfLimit(limit), tasks, callback); + }; + + async.series = function(tasks, callback) { + _parallel(async.eachOfSeries, tasks, callback); + }; + + async.iterator = function (tasks) { + function makeCallback(index) { + function fn() { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + } + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + } + return makeCallback(0); + }; + + async.apply = _restParam(function (fn, args) { + return _restParam(function (callArgs) { + return fn.apply( + null, args.concat(callArgs) + ); + }); + }); + + function _concat(eachfn, arr, fn, callback) { + var result = []; + eachfn(arr, function (x, index, cb) { + fn(x, function (err, y) { + result = result.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, result); + }); + } + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + callback = callback || noop; + if (test()) { + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else if (test.apply(this, args)) { + iterator(next); + } else { + callback.apply(null, [null].concat(args)); + } + }); + iterator(next); + } else { + callback(null); + } + }; + + async.doWhilst = function (iterator, test, callback) { + var calls = 0; + return async.whilst(function() { + return ++calls <= 1 || test.apply(this, arguments); + }, iterator, callback); + }; + + async.until = function (test, iterator, callback) { + return async.whilst(function() { + return !test.apply(this, arguments); + }, iterator, callback); + }; + + async.doUntil = function (iterator, test, callback) { + return async.doWhilst(iterator, function() { + return !test.apply(this, arguments); + }, callback); + }; + + async.during = function (test, iterator, callback) { + callback = callback || noop; + + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else { + args.push(check); + test.apply(this, args); + } + }); + + var check = function(err, truth) { + if (err) { + callback(err); + } else if (truth) { + iterator(next); + } else { + callback(null); + } + }; + + test(check); + }; + + async.doDuring = function (iterator, test, callback) { + var calls = 0; + async.during(function(next) { + if (calls++ < 1) { + next(null, true); + } else { + test.apply(this, arguments); + } + }, iterator, callback); + }; + + function _queue(worker, concurrency, payload) { + if (concurrency == null) { + concurrency = 1; + } + else if(concurrency === 0) { + throw new Error('Concurrency must not be zero'); + } + function _insert(q, data, pos, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0 && q.idle()) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + callback: callback || noop + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + }); + async.setImmediate(q.process); + } + function _next(q, tasks) { + return function(){ + workers -= 1; + + var removed = false; + var args = arguments; + _arrayEach(tasks, function (task) { + _arrayEach(workersList, function (worker, index) { + if (worker === task && !removed) { + workersList.splice(index, 1); + removed = true; + } + }); + + task.callback.apply(task, args); + }); + if (q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + } + + var workers = 0; + var workersList = []; + var q = { + tasks: [], + concurrency: concurrency, + payload: payload, + saturated: noop, + empty: noop, + drain: noop, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = noop; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + while(!q.paused && workers < q.concurrency && q.tasks.length){ + + var tasks = q.payload ? + q.tasks.splice(0, q.payload) : + q.tasks.splice(0, q.tasks.length); + + var data = _map(tasks, function (task) { + return task.data; + }); + + if (q.tasks.length === 0) { + q.empty(); + } + workers += 1; + workersList.push(tasks[0]); + var cb = only_once(_next(q, tasks)); + worker(data, cb); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + workersList: function () { + return workersList; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + q.paused = true; + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + var resumeCount = Math.min(q.concurrency, q.tasks.length); + // Need to call q.process once per concurrent + // worker to preserve full concurrency after pause + for (var w = 1; w <= resumeCount; w++) { + async.setImmediate(q.process); + } + } + }; + return q; + } + + async.queue = function (worker, concurrency) { + var q = _queue(function (items, cb) { + worker(items[0], cb); + }, concurrency, 1); + + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + } + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : noop + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + return _queue(worker, 1, payload); + }; + + function _console_fn(name) { + return _restParam(function (fn, args) { + fn.apply(null, args.concat([_restParam(function (err, args) { + if (typeof console === 'object') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _arrayEach(args, function (x) { + console[name](x); + }); + } + } + })])); + }); + } + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + var has = Object.prototype.hasOwnProperty; + hasher = hasher || identity; + var memoized = _restParam(function memoized(args) { + var callback = args.pop(); + var key = hasher.apply(null, args); + if (has.call(memo, key)) { + async.setImmediate(function () { + callback.apply(null, memo[key]); + }); + } + else if (has.call(queues, key)) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([_restParam(function (args) { + memo[key] = args; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, args); + } + })])); + } + }); + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + function _times(mapper) { + return function (count, iterator, callback) { + mapper(_range(count), iterator, callback); + }; + } + + async.times = _times(async.map); + async.timesSeries = _times(async.mapSeries); + async.timesLimit = function (count, limit, iterator, callback) { + return async.mapLimit(_range(count), limit, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return _restParam(function (args) { + var that = this; + + var callback = args[args.length - 1]; + if (typeof callback == 'function') { + args.pop(); + } else { + callback = noop; + } + + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([_restParam(function (err, nextargs) { + cb(err, nextargs); + })])); + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }); + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + + function _applyEach(eachfn) { + return _restParam(function(fns, args) { + var go = _restParam(function(args) { + var that = this; + var callback = args.pop(); + return eachfn(fns, function (fn, _, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }); + if (args.length) { + return go.apply(this, args); + } + else { + return go; + } + }); + } + + async.applyEach = _applyEach(async.eachOf); + async.applyEachSeries = _applyEach(async.eachOfSeries); + + + async.forever = function (fn, callback) { + var done = only_once(callback || noop); + var task = ensureAsync(fn); + function next(err) { + if (err) { + return done(err); + } + task(next); + } + next(); + }; + + function ensureAsync(fn) { + return _restParam(function (args) { + var callback = args.pop(); + args.push(function () { + var innerArgs = arguments; + if (sync) { + async.setImmediate(function () { + callback.apply(null, innerArgs); + }); + } else { + callback.apply(null, innerArgs); + } + }); + var sync = true; + fn.apply(this, args); + sync = false; + }); + } + + async.ensureAsync = ensureAsync; + + async.constant = _restParam(function(values) { + var args = [null].concat(values); + return function (callback) { + return callback.apply(this, args); + }; + }); + + async.wrapSync = + async.asyncify = function asyncify(func) { + return _restParam(function (args) { + var callback = args.pop(); + var result; + try { + result = func.apply(this, args); + } catch (e) { + return callback(e); + } + // if result is Promise object + if (_isObject(result) && typeof result.then === "function") { + result.then(function(value) { + callback(null, value); + })["catch"](function(err) { + callback(err.message ? err : new Error(err)); + }); + } else { + callback(null, result); + } + }); + }; + + // Node.js + if (typeof module === 'object' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else if (typeof define === 'function' && define.amd) { + define([], function () { + return async; + }); + } + // included directly via + +``` + +## Documentation + +Some functions are also available in the following forms: +* `Series` - the same as `` but runs only a single async operation at a time +* `Limit` - the same as `` but runs a maximum of `limit` async operations at a time + +### Collections + +* [`each`](#each), `eachSeries`, `eachLimit` +* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit` +* [`map`](#map), `mapSeries`, `mapLimit` +* [`filter`](#filter), `filterSeries`, `filterLimit` +* [`reject`](#reject), `rejectSeries`, `rejectLimit` +* [`reduce`](#reduce), [`reduceRight`](#reduceRight) +* [`detect`](#detect), `detectSeries`, `detectLimit` +* [`sortBy`](#sortBy) +* [`some`](#some), `someLimit` +* [`every`](#every), `everyLimit` +* [`concat`](#concat), `concatSeries` + +### Control Flow + +* [`series`](#seriestasks-callback) +* [`parallel`](#parallel), `parallelLimit` +* [`whilst`](#whilst), [`doWhilst`](#doWhilst) +* [`until`](#until), [`doUntil`](#doUntil) +* [`during`](#during), [`doDuring`](#doDuring) +* [`forever`](#forever) +* [`waterfall`](#waterfall) +* [`compose`](#compose) +* [`seq`](#seq) +* [`applyEach`](#applyEach), `applyEachSeries` +* [`queue`](#queue), [`priorityQueue`](#priorityQueue) +* [`cargo`](#cargo) +* [`auto`](#auto) +* [`retry`](#retry) +* [`iterator`](#iterator) +* [`times`](#times), `timesSeries`, `timesLimit` + +### Utils + +* [`apply`](#apply) +* [`nextTick`](#nextTick) +* [`memoize`](#memoize) +* [`unmemoize`](#unmemoize) +* [`ensureAsync`](#ensureAsync) +* [`constant`](#constant) +* [`asyncify`](#asyncify) +* [`wrapSync`](#wrapSync) +* [`log`](#log) +* [`dir`](#dir) +* [`noConflict`](#noConflict) + +## Collections + + + +### each(arr, iterator, [callback]) + +Applies the function `iterator` to each item in `arr`, in parallel. +The `iterator` is called with an item from the list, and a callback for when it +has finished. If the `iterator` passes an error to its `callback`, the main +`callback` (for the `each` function) is immediately called with the error. + +Note, that since this function applies `iterator` to each item in parallel, +there is no guarantee that the iterator functions will complete in order. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occurred, the `callback` should be run without + arguments or with an explicit `null` argument. The array index is not passed + to the iterator. If you need the index, use [`forEachOf`](#forEachOf). +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Examples__ + + +```js +// assuming openFiles is an array of file names and saveFile is a function +// to save the modified contents of that file: + +async.each(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +```js +// assuming openFiles is an array of file names + +async.each(openFiles, function(file, callback) { + + // Perform operation on file here. + console.log('Processing file ' + file); + + if( file.length > 32 ) { + console.log('This file name is too long'); + callback('File name too long'); + } else { + // Do work to process file here + console.log('File processed'); + callback(); + } +}, function(err){ + // if any of the file processing produced an error, err would equal that error + if( err ) { + // One of the iterations produced an error. + // All processing will now stop. + console.log('A file failed to process'); + } else { + console.log('All files have been processed successfully'); + } +}); +``` + +__Related__ + +* eachSeries(arr, iterator, [callback]) +* eachLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + + +### forEachOf(obj, iterator, [callback]) + +Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator. + +__Arguments__ + +* `obj` - An object or array to iterate over. +* `iterator(item, key, callback)` - A function to apply to each item in `obj`. +The `key` is the item's key, or index in the case of an array. The iterator is +passed a `callback(err)` which must be called once it has completed. If no +error has occurred, the callback should be run without arguments or with an +explicit `null` argument. +* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs. + +__Example__ + +```js +var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; +var configs = {}; + +async.forEachOf(obj, function (value, key, callback) { + fs.readFile(__dirname + value, "utf8", function (err, data) { + if (err) return callback(err); + try { + configs[key] = JSON.parse(data); + } catch (e) { + return callback(e); + } + callback(); + }) +}, function (err) { + if (err) console.error(err.message); + // configs is now a map of JSON data + doSomethingWith(configs); +}) +``` + +__Related__ + +* forEachOfSeries(obj, iterator, [callback]) +* forEachOfLimit(obj, limit, iterator, [callback]) + +--------------------------------------- + + +### map(arr, iterator, [callback]) + +Produces a new array of values by mapping each value in `arr` through +the `iterator` function. The `iterator` is called with an item from `arr` and a +callback for when it has finished processing. Each of these callback takes 2 arguments: +an `error`, and the transformed item from `arr`. If `iterator` passes an error to its +callback, the main `callback` (for the `map` function) is immediately called with the error. + +Note, that since this function applies the `iterator` to each item in parallel, +there is no guarantee that the `iterator` functions will complete in order. +However, the results array will be in the same order as the original `arr`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - *Optional* A callback which is called when all `iterator` + functions have finished, or an error occurs. Results is an array of the + transformed items from the `arr`. + +__Example__ + +```js +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +__Related__ +* mapSeries(arr, iterator, [callback]) +* mapLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + + +### filter(arr, iterator, [callback]) + +__Alias:__ `select` + +Returns a new array of all the values in `arr` which pass an async truth test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. This operation is +performed in parallel, but the results array will be in the same order as the +original. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The `iterator` is passed a `callback(truthValue)`, which must be called with a + boolean argument once it has completed. +* `callback(results)` - *Optional* A callback which is called after all the `iterator` + functions have finished. + +__Example__ + +```js +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); +``` + +__Related__ + +* filterSeries(arr, iterator, [callback]) +* filterLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reject(arr, iterator, [callback]) + +The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. + +__Related__ + +* rejectSeries(arr, iterator, [callback]) +* rejectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### reduce(arr, memo, iterator, [callback]) + +__Aliases:__ `inject`, `foldl` + +Reduces `arr` into a single value using an async `iterator` to return +each successive step. `memo` is the initial state of the reduction. +This function only operates in series. + +For performance reasons, it may make sense to split a call to this function into +a parallel map, and then use the normal `Array.prototype.reduce` on the results. +This function is for situations where each step in the reduction needs to be async; +if you can get the data before reducing it, then it's probably a good idea to do so. + +__Arguments__ + +* `arr` - An array to iterate over. +* `memo` - The initial state of the reduction. +* `iterator(memo, item, callback)` - A function applied to each item in the + array to produce the next step in the reduction. The `iterator` is passed a + `callback(err, reduction)` which accepts an optional error as its first + argument, and the state of the reduction as the second. If an error is + passed to the callback, the reduction is stopped and the main `callback` is + immediately called with the error. +* `callback(err, result)` - *Optional* A callback which is called after all the `iterator` + functions have finished. Result is the reduced value. + +__Example__ + +```js +async.reduce([1,2,3], 0, function(memo, item, callback){ + // pointless async: + process.nextTick(function(){ + callback(null, memo + item) + }); +}, function(err, result){ + // result is now equal to the last value of memo, which is 6 +}); +``` + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, [callback]) + +__Alias:__ `foldr` + +Same as [`reduce`](#reduce), only operates on `arr` in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, [callback]) + +Returns the first value in `arr` that passes an async truth test. The +`iterator` is applied in parallel, meaning the first iterator to return `true` will +fire the detect `callback` with that result. That means the result might not be +the first item in the original `arr` (in terms of order) that passes the test. + +If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The iterator is passed a `callback(truthValue)` which must be called with a + boolean argument once it has completed. **Note: this callback does not take an error as its first argument.** +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the `iterator` functions have finished. Result will be + the first item in the array that passes the truth test (iterator) or the + value `undefined` if none passed. **Note: this callback does not take an error as its first argument.** + +__Example__ + +```js +async.detect(['file1','file2','file3'], fs.exists, function(result){ + // result now equals the first file in the list that exists +}); +``` + +__Related__ + +* detectSeries(arr, iterator, [callback]) +* detectLimit(arr, limit, iterator, [callback]) + +--------------------------------------- + + +### sortBy(arr, iterator, [callback]) + +Sorts a list by the results of running each `arr` value through an async `iterator`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, sortValue)` which must be called once it + has completed with an error (which can be `null`) and a value to use as the sort + criteria. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is the items from + the original `arr` sorted by the values returned by the `iterator` calls. + +__Example__ + +```js +async.sortBy(['file1','file2','file3'], function(file, callback){ + fs.stat(file, function(err, stats){ + callback(err, stats.mtime); + }); +}, function(err, results){ + // results is now the original array of files sorted by + // modified date +}); +``` + +__Sort Order__ + +By modifying the callback parameter the sorting order can be influenced: + +```js +//ascending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x); +}, function(err,result){ + //result callback +} ); + +//descending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(null, x*-1); //<- x*-1 instead of x, turns the order around +}, function(err,result){ + //result callback +} ); +``` + +--------------------------------------- + + +### some(arr, iterator, [callback]) + +__Alias:__ `any` + +Returns `true` if at least one element in the `arr` satisfies an async test. +_The callback for each iterator call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. Once any iterator +call returns `true`, the main `callback` is immediately called. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)`` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `true`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** +__Example__ + +```js +async.some(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then at least one of the files exists +}); +``` + +__Related__ + +* someLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### every(arr, iterator, [callback]) + +__Alias:__ `all` + +Returns `true` if every element in `arr` satisfies an async test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a `callback(truthValue)` which must be + called with a boolean argument once it has completed. +* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns + `false`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + + **Note: the callbacks do not take an error as their first argument.** + +__Example__ + +```js +async.every(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then every file exists +}); +``` + +__Related__ + +* everyLimit(arr, limit, iterator, callback) + +--------------------------------------- + + +### concat(arr, iterator, [callback]) + +Applies `iterator` to each item in `arr`, concatenating the results. Returns the +concatenated list. The `iterator`s are called in parallel, and the results are +concatenated as they return. There is no guarantee that the results array will +be returned in the original order of `arr` passed to the `iterator` function. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, results)` which must be called once it + has completed with an error (which can be `null`) and an array of results. +* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is an array containing + the concatenated results of the `iterator` function. + +__Example__ + +```js +async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories +}); +``` + +__Related__ + +* concatSeries(arr, iterator, [callback]) + + +## Control Flow + + +### series(tasks, [callback]) + +Run the functions in the `tasks` array in series, each one running once the previous +function has completed. If any functions in the series pass an error to its +callback, no more functions are run, and `callback` is immediately called with the value of the error. +Otherwise, `callback` receives an array of results when `tasks` have completed. + +It is also possible to use an object instead of an array. Each property will be +run as a function, and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`series`](#series). + +**Note** that while many implementations preserve the order of object properties, the +[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) +explicitly states that + +> The mechanics and order of enumerating the properties is not specified. + +So if you rely on the order in which your series of functions are executed, and want +this to work on all platforms, consider using an array. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +__Example__ + +```js +async.series([ + function(callback){ + // do some stuff ... + callback(null, 'one'); + }, + function(callback){ + // do some more stuff ... + callback(null, 'two'); + } +], +// optional callback +function(err, results){ + // results is now equal to ['one', 'two'] +}); + + +// an example using an object instead of an array +async.series({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equal to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its +callback, the main `callback` is immediately called with the value of the error. +Once the `tasks` have completed, the results are passed to the final `callback` as an +array. + +**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or perform any I/O, they will actually be executed in series. Any synchronous setup sections for each task will happen one after the other. JavaScript remains single-threaded. + +It is also possible to use an object instead of an array. Each property will be +run as a function and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`parallel`](#parallel). + + +__Arguments__ + +* `tasks` - An array or object containing functions to run. Each function is passed + a `callback(err, result)` which it must call on completion with an error `err` + (which can be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed successfully. This function gets a results array (or object) containing all + the result arguments passed to the task callbacks. + +__Example__ + +```js +async.parallel([ + function(callback){ + setTimeout(function(){ + callback(null, 'one'); + }, 200); + }, + function(callback){ + setTimeout(function(){ + callback(null, 'two'); + }, 100); + } +], +// optional callback +function(err, results){ + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}); + + +// an example using an object instead of an array +async.parallel({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equals to: {one: 1, two: 2} +}); +``` + +__Related__ + +* parallelLimit(tasks, limit, [callback]) + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +__Arguments__ + +* `test()` - synchronous truth test to perform before each execution of `fn`. +* `fn(callback)` - A function which is called each time `test` passes. The function is + passed a `callback(err)`, which must be called once it has completed with an + optional `err` argument. +* `callback(err, [results])` - A callback which is called after the test + function has failed and repeated execution of `fn` has stopped. `callback` + will be passed an error and any arguments passed to the final `fn`'s callback. + +__Example__ + +```js +var count = 0; + +async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(function () { + callback(null, count); + }, 1000); + }, + function (err, n) { + // 5 seconds have passed, n = 5 + } +); +``` + +--------------------------------------- + + +### doWhilst(fn, test, callback) + +The post-check version of [`whilst`](#whilst). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, +or an error occurs. `callback` will be passed an error and any arguments passed +to the final `fn`'s callback. + +The inverse of [`whilst`](#whilst). + +--------------------------------------- + + +### doUntil(fn, test, callback) + +Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. + +--------------------------------------- + + +### during(test, fn, callback) + +Like [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error. + +__Example__ + +```js +var count = 0; + +async.during( + function (callback) { + return callback(null, count < 5); + }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doDuring(fn, test, callback) + +The post-check version of [`during`](#during). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function. + +--------------------------------------- + + +### forever(fn, [errback]) + +Calls the asynchronous function `fn` with a callback parameter that allows it to +call itself again, in series, indefinitely. + +If an error is passed to the callback then `errback` is called with the +error, and execution stops, otherwise it will never be called. + +```js +async.forever( + function(next) { + // next is suitable for passing to things that need a callback(err [, whatever]); + // it will result in this function being called again. + }, + function(err) { + // if next is called with a value in its first parameter, it will appear + // in here as 'err', and execution will stop. + } +); +``` + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs the `tasks` array of functions in series, each passing their results to the next in +the array. However, if any of the `tasks` pass an error to their own callback, the +next function is not executed, and the main `callback` is immediately called with +the error. + +__Arguments__ + +* `tasks` - An array of functions to run, each function is passed a + `callback(err, result1, result2, ...)` it must call on completion. The first + argument is an error (which can be `null`) and any further arguments will be + passed as arguments in order to the next task. +* `callback(err, [results])` - An optional callback to run once all the functions + have completed. This will be passed the results of the last task's callback. + + + +__Example__ + +```js +async.waterfall([ + function(callback) { + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); + }, + function(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); + } +], function (err, result) { + // result now equals 'done' +}); +``` +Or, with named functions: + +```js +async.waterfall([ + myFirstFunction, + mySecondFunction, + myLastFunction, +], function (err, result) { + // result now equals 'done' +}); +function myFirstFunction(callback) { + callback(null, 'one', 'two'); +} +function mySecondFunction(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); +} +function myLastFunction(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); +} +``` + +Or, if you need to pass any argument to the first function: + +```js +async.waterfall([ + async.apply(myFirstFunction, 'zero'), + mySecondFunction, + myLastFunction, +], function (err, result) { + // result now equals 'done' +}); +function myFirstFunction(arg1, callback) { + // arg1 now equals 'zero' + callback(null, 'one', 'two'); +} +function mySecondFunction(arg1, arg2, callback) { + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); +} +function myLastFunction(arg1, callback) { + // arg1 now equals 'three' + callback(null, 'done'); +} +``` + +--------------------------------------- + +### compose(fn1, fn2...) + +Creates a function which is a composition of the passed asynchronous +functions. Each function consumes the return value of the function that +follows. Composing functions `f()`, `g()`, and `h()` would produce the result of +`f(g(h()))`, only this version uses callbacks to obtain the return values. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +function add1(n, callback) { + setTimeout(function () { + callback(null, n + 1); + }, 10); +} + +function mul3(n, callback) { + setTimeout(function () { + callback(null, n * 3); + }, 10); +} + +var add1mul3 = async.compose(mul3, add1); + +add1mul3(4, function (err, result) { + // result now equals 15 +}); +``` + +--------------------------------------- + +### seq(fn1, fn2...) + +Version of the compose function that is more natural to read. +Each function consumes the return value of the previous function. +It is the equivalent of [`compose`](#compose) with the arguments reversed. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +// Requires lodash (or underscore), express3 and dresende's orm2. +// Part of an app, that fetches cats of the logged user. +// This example uses `seq` function to avoid overnesting and error +// handling clutter. +app.get('/cats', function(request, response) { + var User = request.models.User; + async.seq( + _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) + function(user, fn) { + user.getCats(fn); // 'getCats' has signature (callback(err, data)) + } + )(req.session.user_id, function (err, cats) { + if (err) { + console.error(err); + response.json({ status: 'error', message: err.message }); + } else { + response.json({ status: 'ok', message: 'Cats found', data: cats }); + } + }); +}); +``` + +--------------------------------------- + +### applyEach(fns, args..., callback) + +Applies the provided arguments to each function in the array, calling +`callback` after all functions have completed. If you only provide the first +argument, then it will return a function which lets you pass in the +arguments as if it were a single function call. + +__Arguments__ + +* `fns` - the asynchronous functions to all call with the same arguments +* `args...` - any number of separate arguments to pass to the function +* `callback` - the final argument should be the callback, called when all + functions have completed processing + + +__Example__ + +```js +async.applyEach([enableSearch, updateSchema], 'bucket', callback); + +// partial application example: +async.each( + buckets, + async.applyEach([enableSearch, updateSchema]), + callback +); +``` + +__Related__ + +* applyEachSeries(tasks, args..., [callback]) + +--------------------------------------- + + +### queue(worker, [concurrency]) + +Creates a `queue` object with the specified `concurrency`. Tasks added to the +`queue` are processed in parallel (up to the `concurrency` limit). If all +`worker`s are in progress, the task is queued until one becomes available. +Once a `worker` completes a `task`, that `task`'s callback is called. + +__Arguments__ + +* `worker(task, callback)` - An asynchronous function for processing a queued + task, which must call its `callback(err)` argument when finished, with an + optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`. +* `concurrency` - An `integer` for determining how many `worker` functions should be + run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown. + +__Queue objects__ + +The `queue` object returned by this function has the following properties and +methods: + +* `length()` - a function returning the number of items waiting to be processed. +* `started` - a function returning whether or not any items have been pushed and processed by the queue +* `running()` - a function returning the number of items currently being processed. +* `workersList()` - a function returning the array of items currently being processed. +* `idle()` - a function returning false if there are items waiting or being processed, or true if not. +* `concurrency` - an integer for determining how many `worker` functions should be + run in parallel. This property can be changed after a `queue` is created to + alter the concurrency on-the-fly. +* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once + the `worker` has finished processing the task. Instead of a single task, a `tasks` array + can be submitted. The respective callback is used for every task in the list. +* `unshift(task, [callback])` - add a new task to the front of the `queue`. +* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, + and further tasks will be queued. +* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. +* `paused` - a boolean for determining whether the queue is in a paused state +* `pause()` - a function that pauses the processing of tasks until `resume()` is called. +* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. +* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. + +__Example__ + +```js +// create a queue object with concurrency 2 + +var q = async.queue(function (task, callback) { + console.log('hello ' + task.name); + callback(); +}, 2); + + +// assign a callback +q.drain = function() { + console.log('all items have been processed'); +} + +// add some items to the queue + +q.push({name: 'foo'}, function (err) { + console.log('finished processing foo'); +}); +q.push({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); + +// add some items to the queue (batch-wise) + +q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { + console.log('finished processing item'); +}); + +// add some items to the front of the queue + +q.unshift({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); +``` + + +--------------------------------------- + + +### priorityQueue(worker, concurrency) + +The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: + +* `push(task, priority, [callback])` - `priority` should be a number. If an array of + `tasks` is given, all tasks will be assigned the same priority. +* The `unshift` method was removed. + +--------------------------------------- + + +### cargo(worker, [payload]) + +Creates a `cargo` object with the specified payload. Tasks added to the +cargo will be processed altogether (up to the `payload` limit). If the +`worker` is in progress, the task is queued until it becomes available. Once +the `worker` has completed some tasks, each callback of those tasks is called. +Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work. + +While [queue](#queue) passes only one task to one of a group of workers +at a time, cargo passes an array of tasks to a single worker, repeating +when the worker is finished. + +__Arguments__ + +* `worker(tasks, callback)` - An asynchronous function for processing an array of + queued tasks, which must call its `callback(err)` argument when finished, with + an optional `err` argument. +* `payload` - An optional `integer` for determining how many tasks should be + processed per round; if omitted, the default is unlimited. + +__Cargo objects__ + +The `cargo` object returned by this function has the following properties and +methods: + +* `length()` - A function returning the number of items waiting to be processed. +* `payload` - An `integer` for determining how many tasks should be + process per round. This property can be changed after a `cargo` is created to + alter the payload on-the-fly. +* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called + once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` + can be submitted. The respective callback is used for every task in the list. +* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. +* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. +* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue) + +__Example__ + +```js +// create a cargo object with payload 2 + +var cargo = async.cargo(function (tasks, callback) { + for(var i=0; i +### auto(tasks, [concurrency], [callback]) + +Determines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied. + +If any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error. Functions also receive an object containing the results of functions which have completed so far. + +Note, all functions are called with a `results` object as a second argument, +so it is unsafe to pass functions in the `tasks` object which cannot handle the +extra argument. + +For example, this snippet of code: + +```js +async.auto({ + readData: async.apply(fs.readFile, 'data.txt', 'utf-8') +}, callback); +``` + +will have the effect of calling `readFile` with the results object as the last +argument, which will fail: + +```js +fs.readFile('data.txt', 'utf-8', cb, {}); +``` + +Instead, wrap the call to `readFile` in a function which does not forward the +`results` object: + +```js +async.auto({ + readData: function(cb, results){ + fs.readFile('data.txt', 'utf-8', cb); + } +}, callback); +``` + +__Arguments__ + +* `tasks` - An object. Each of its properties is either a function or an array of + requirements, with the function itself the last item in the array. The object's key + of a property serves as the name of the task defined by that property, + i.e. can be used when specifying requirements for other tasks. + The function receives two arguments: (1) a `callback(err, result)` which must be + called when finished, passing an `error` (which can be `null`) and the result of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions. +* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible. +* `callback(err, results)` - An optional callback which is called when all the + tasks have been completed. It receives the `err` argument if any `tasks` + pass an error to their callback. Results are always returned; however, if + an error occurs, no further `tasks` will be performed, and the results + object will only contain partial results. + + +__Example__ + +```js +async.auto({ + get_data: function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + make_folder: function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + }, + write_file: ['get_data', 'make_folder', function(callback, results){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + callback(null, 'filename'); + }], + email_link: ['write_file', function(callback, results){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + callback(null, {'file':results.write_file, 'email':'user@example.com'}); + }] +}, function(err, results) { + console.log('err = ', err); + console.log('results = ', results); +}); +``` + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + +```js +async.parallel([ + function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + } +], +function(err, results){ + async.series([ + function(callback){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + results.push('filename'); + callback(null); + }, + function(callback){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + callback(null, {'file':results.pop(), 'email':'user@example.com'}); + } + ]); +}); +``` + +For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding +new tasks much easier (and the code more readable). + + +--------------------------------------- + + +### retry([opts = {times: 5, interval: 0}| 5], task, [callback]) + +Attempts to get a successful response from `task` no more than `times` times before +returning an error. If the task is successful, the `callback` will be passed the result +of the successful task. If all attempts fail, the callback will be passed the error and +result (if any) of the final attempt. + +__Arguments__ + +* `opts` - Can be either an object with `times` and `interval` or a number. + * `times` - The number of attempts to make before giving up. The default is `5`. + * `interval` - The time to wait between retries, in milliseconds. The default is `0`. + * If `opts` is a number, the number specifies the number of times to retry, with the default interval of `0`. +* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` + which must be called when finished, passing `err` (which can be `null`) and the `result` of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions (if nested inside another control flow). +* `callback(err, results)` - An optional callback which is called when the + task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. + +The [`retry`](#retry) function can be used as a stand-alone control flow by passing a callback, as shown below: + +```js +// try calling apiMethod 3 times +async.retry(3, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +// try calling apiMethod 3 times, waiting 200 ms between each retry +async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { + // do something with the result +}); +``` + +```js +// try calling apiMethod the default 5 times no delay between each retry +async.retry(apiMethod, function(err, result) { + // do something with the result +}); +``` + +It can also be embedded within other control flow functions to retry individual methods +that are not as reliable, like this: + +```js +async.auto({ + users: api.getUsers.bind(api), + payments: async.retry(3, api.getPayments.bind(api)) +}, function(err, results) { + // do something with the results +}); +``` + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the `tasks` array, +returning a continuation to call the next one after that. It's also possible to +“peek” at the next iterator with `iterator.next()`. + +This function is used internally by the `async` module, but can be useful when +you want to manually control the flow of functions in series. + +__Arguments__ + +* `tasks` - An array of functions to run. + +__Example__ + +```js +var iterator = async.iterator([ + function(){ sys.p('one'); }, + function(){ sys.p('two'); }, + function(){ sys.p('three'); } +]); + +node> var iterator2 = iterator(); +'one' +node> var iterator3 = iterator2(); +'two' +node> iterator3(); +'three' +node> var nextfn = iterator2.next(); +node> nextfn(); +'three' +``` + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied. + +Useful as a shorthand when combined with other control flow functions. Any arguments +passed to the returned function are added to the arguments originally passed +to apply. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to automatically apply when the + continuation is called. + +__Example__ + +```js +// using apply + +async.parallel([ + async.apply(fs.writeFile, 'testfile1', 'test1'), + async.apply(fs.writeFile, 'testfile2', 'test2'), +]); + + +// the same process without using apply + +async.parallel([ + function(callback){ + fs.writeFile('testfile1', 'test1', callback); + }, + function(callback){ + fs.writeFile('testfile2', 'test2', callback); + } +]); +``` + +It's possible to pass any number of additional arguments when calling the +continuation: + +```js +node> var fn = async.apply(sys.puts, 'one'); +node> fn('two', 'three'); +one +two +three +``` + +--------------------------------------- + + +### nextTick(callback), setImmediate(callback) + +Calls `callback` on a later loop around the event loop. In Node.js this just +calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` +if available, otherwise `setTimeout(callback, 0)`, which means other higher priority +events may precede the execution of `callback`. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* `callback` - The function to call on a later loop around the event loop. + +__Example__ + +```js +var call_order = []; +async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two'] +}); +call_order.push('one') +``` + + +### times(n, iterator, [callback]) + +Calls the `iterator` function `n` times, and accumulates results in the same manner +you would use with [`map`](#map). + +__Arguments__ + +* `n` - The number of times to run the function. +* `iterator` - The function to call `n` times. +* `callback` - see [`map`](#map) + +__Example__ + +```js +// Pretend this is some complicated async factory +var createUser = function(id, callback) { + callback(null, { + id: 'user' + id + }) +} +// generate 5 users +async.times(5, function(n, next){ + createUser(n, function(err, user) { + next(err, user) + }) +}, function(err, users) { + // we should now have 5 users +}); +``` + +__Related__ + +* timesSeries(n, iterator, [callback]) +* timesLimit(n, limit, iterator, [callback]) + + +## Utils + + +### memoize(fn, [hasher]) + +Caches the results of an `async` function. When creating a hash to store function +results against, the callback is omitted from the hash and an optional hash +function can be used. + +If no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function. + +The cache of results is exposed as the `memo` property of the function returned +by `memoize`. + +__Arguments__ + +* `fn` - The function to proxy and cache results from. +* `hasher` - An optional function for generating a custom hash for storing + results. It has all the arguments applied to it apart from the callback, and + must be synchronous. + +__Example__ + +```js +var slow_fn = function (name, callback) { + // do something + callback(null, result); +}; +var fn = async.memoize(slow_fn); + +// fn can now be used as if it were slow_fn +fn('some name', function () { + // callback +}); +``` + + +### unmemoize(fn) + +Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized +form. Handy for testing. + +__Arguments__ + +* `fn` - the memoized function + +--------------------------------------- + + +### ensureAsync(fn) + +Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained. + +__Arguments__ + +* `fn` - an async function, one that expects a node-style callback as its last argument + +Returns a wrapped function with the exact same call signature as the function passed in. + +__Example__ + +```js +function sometimesAsync(arg, callback) { + if (cache[arg]) { + return callback(null, cache[arg]); // this would be synchronous!! + } else { + doSomeIO(arg, callback); // this IO would be asynchronous + } +} + +// this has a risk of stack overflows if many results are cached in a row +async.mapSeries(args, sometimesAsync, done); + +// this will defer sometimesAsync's callback if necessary, +// preventing stack overflows +async.mapSeries(args, async.ensureAsync(sometimesAsync), done); + +``` + +--------------------------------------- + + +### constant(values...) + +Returns a function that when called, calls-back with the values provided. Useful as the first function in a `waterfall`, or for plugging values in to `auto`. + +__Example__ + +```js +async.waterfall([ + async.constant(42), + function (value, next) { + // value === 42 + }, + //... +], callback); + +async.waterfall([ + async.constant(filename, "utf8"), + fs.readFile, + function (fileData, next) { + //... + } + //... +], callback); + +async.auto({ + hostname: async.constant("https://server.net/"), + port: findFreePort, + launchServer: ["hostname", "port", function (cb, options) { + startServer(options, cb); + }], + //... +}, callback); + +``` + +--------------------------------------- + + + +### asyncify(func) + +__Alias:__ `wrapSync` + +Take a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback. + +__Example__ + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(JSON.parse), + function (data, next) { + // data is the result of parsing the text. + // If there was a parsing error, it would have been caught. + } +], callback) +``` + +If the function passed to `asyncify` returns a Promise, that promises's resolved/rejected state will be used to call the callback, rather than simply the synchronous return value. Example: + +```js +async.waterfall([ + async.apply(fs.readFile, filename, "utf8"), + async.asyncify(function (contents) { + return db.model.create(contents); + }), + function (model, next) { + // `model` is the instantiated model object. + // If there was an error, this function would be skipped. + } +], callback) +``` + +This also means you can asyncify ES2016 `async` functions. + +```js +var q = async.queue(async.asyncify(async function (file) { + var intermediateStep = await processFile(file); + return await somePromise(intermediateStep) +})); + +q.push(files); +``` + +--------------------------------------- + + +### log(function, arguments) + +Logs the result of an `async` function to the `console`. Only works in Node.js or +in browsers that support `console.log` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.log` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); +}; +``` +```js +node> async.log(hello, 'world'); +'hello world' +``` + +--------------------------------------- + + +### dir(function, arguments) + +Logs the result of an `async` function to the `console` using `console.dir` to +display the properties of the resulting object. Only works in Node.js or +in browsers that support `console.dir` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.dir` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); +}; +``` +```js +node> async.dir(hello, 'world'); +{hello: 'world'} +``` + +--------------------------------------- + + +### noConflict() + +Changes the value of `async` back to its original value, returning a reference to the +`async` object. diff --git a/CloudFormation/CustomResources/cognito/node_modules/async/dist/async.js b/CloudFormation/CustomResources/cognito/node_modules/async/dist/async.js new file mode 100644 index 0000000..31e7620 --- /dev/null +++ b/CloudFormation/CustomResources/cognito/node_modules/async/dist/async.js @@ -0,0 +1,1265 @@ +/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +(function () { + + var async = {}; + function noop() {} + function identity(v) { + return v; + } + function toBool(v) { + return !!v; + } + function notId(v) { + return !v; + } + + // global on the server, window in the browser + var previous_async; + + // Establish the root object, `window` (`self`) in the browser, `global` + // on the server, or `this` in some virtual machines. We use `self` + // instead of `window` for `WebWorker` support. + var root = typeof self === 'object' && self.self === self && self || + typeof global === 'object' && global.global === global && global || + this; + + if (root != null) { + previous_async = root.async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + function only_once(fn) { + return function() { + if (fn === null) throw new Error("Callback was already called."); + fn.apply(this, arguments); + fn = null; + }; + } + + function _once(fn) { + return function() { + if (fn === null) return; + fn.apply(this, arguments); + fn = null; + }; + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || function (obj) { + return _toString.call(obj) === '[object Array]'; + }; + + // Ported from underscore.js isObject + var _isObject = function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + }; + + function _isArrayLike(arr) { + return _isArray(arr) || ( + // has a positive integer length property + typeof arr.length === "number" && + arr.length >= 0 && + arr.length % 1 === 0 + ); + } + + function _arrayEach(arr, iterator) { + var index = -1, + length = arr.length; + + while (++index < length) { + iterator(arr[index], index, arr); + } + } + + function _map(arr, iterator) { + var index = -1, + length = arr.length, + result = Array(length); + + while (++index < length) { + result[index] = iterator(arr[index], index, arr); + } + return result; + } + + function _range(count) { + return _map(Array(count), function (v, i) { return i; }); + } + + function _reduce(arr, iterator, memo) { + _arrayEach(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + } + + function _forEachOf(object, iterator) { + _arrayEach(_keys(object), function (key) { + iterator(object[key], key); + }); + } + + function _indexOf(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === item) return i; + } + return -1; + } + + var _keys = Object.keys || function (obj) { + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + function _keyIterator(coll) { + var i = -1; + var len; + var keys; + if (_isArrayLike(coll)) { + len = coll.length; + return function next() { + i++; + return i < len ? i : null; + }; + } else { + keys = _keys(coll); + len = keys.length; + return function next() { + i++; + return i < len ? keys[i] : null; + }; + } + } + + // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html) + // This accumulates the arguments passed into an array, after a given index. + // From underscore.js (https://github.com/jashkenas/underscore/pull/2140). + function _restParam(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0); + var rest = Array(length); + for (var index = 0; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + } + // Currently unused but handle cases outside of the switch statement: + // var args = Array(startIndex + 1); + // for (index = 0; index < startIndex; index++) { + // args[index] = arguments[index]; + // } + // args[startIndex] = rest; + // return func.apply(this, args); + }; + } + + function _withoutIndex(iterator) { + return function (value, index, callback) { + return iterator(value, callback); + }; + } + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + + // capture the global reference to guard against fakeTimer mocks + var _setImmediate = typeof setImmediate === 'function' && setImmediate; + + var _delay = _setImmediate ? function(fn) { + // not a direct alias for IE10 compatibility + _setImmediate(fn); + } : function(fn) { + setTimeout(fn, 0); + }; + + if (typeof process === 'object' && typeof process.nextTick === 'function') { + async.nextTick = process.nextTick; + } else { + async.nextTick = _delay; + } + async.setImmediate = _setImmediate ? _delay : async.nextTick; + + + async.forEach = + async.each = function (arr, iterator, callback) { + return async.eachOf(arr, _withoutIndex(iterator), callback); + }; + + async.forEachSeries = + async.eachSeries = function (arr, iterator, callback) { + return async.eachOfSeries(arr, _withoutIndex(iterator), callback); + }; + + + async.forEachLimit = + async.eachLimit = function (arr, limit, iterator, callback) { + return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback); + }; + + async.forEachOf = + async.eachOf = function (object, iterator, callback) { + callback = _once(callback || noop); + object = object || []; + + var iter = _keyIterator(object); + var key, completed = 0; + + while ((key = iter()) != null) { + completed += 1; + iterator(object[key], key, only_once(done)); + } + + if (completed === 0) callback(null); + + function done(err) { + completed--; + if (err) { + callback(err); + } + // Check key is null in case iterator isn't exhausted + // and done resolved synchronously. + else if (key === null && completed <= 0) { + callback(null); + } + } + }; + + async.forEachOfSeries = + async.eachOfSeries = function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + var key = nextKey(); + function iterate() { + var sync = true; + if (key === null) { + return callback(null); + } + iterator(obj[key], key, only_once(function (err) { + if (err) { + callback(err); + } + else { + key = nextKey(); + if (key === null) { + return callback(null); + } else { + if (sync) { + async.setImmediate(iterate); + } else { + iterate(); + } + } + } + })); + sync = false; + } + iterate(); + }; + + + + async.forEachOfLimit = + async.eachOfLimit = function (obj, limit, iterator, callback) { + _eachOfLimit(limit)(obj, iterator, callback); + }; + + function _eachOfLimit(limit) { + + return function (obj, iterator, callback) { + callback = _once(callback || noop); + obj = obj || []; + var nextKey = _keyIterator(obj); + if (limit <= 0) { + return callback(null); + } + var done = false; + var running = 0; + var errored = false; + + (function replenish () { + if (done && running <= 0) { + return callback(null); + } + + while (running < limit && !errored) { + var key = nextKey(); + if (key === null) { + done = true; + if (running <= 0) { + callback(null); + } + return; + } + running += 1; + iterator(obj[key], key, only_once(function (err) { + running -= 1; + if (err) { + callback(err); + errored = true; + } + else { + replenish(); + } + })); + } + })(); + }; + } + + + function doParallel(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOf, obj, iterator, callback); + }; + } + function doParallelLimit(fn) { + return function (obj, limit, iterator, callback) { + return fn(_eachOfLimit(limit), obj, iterator, callback); + }; + } + function doSeries(fn) { + return function (obj, iterator, callback) { + return fn(async.eachOfSeries, obj, iterator, callback); + }; + } + + function _asyncMap(eachfn, arr, iterator, callback) { + callback = _once(callback || noop); + arr = arr || []; + var results = _isArrayLike(arr) ? [] : {}; + eachfn(arr, function (value, index, callback) { + iterator(value, function (err, v) { + results[index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = doParallelLimit(_asyncMap); + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.inject = + async.foldl = + async.reduce = function (arr, memo, iterator, callback) { + async.eachOfSeries(arr, function (x, i, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + + async.foldr = + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, identity).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + + async.transform = function (arr, memo, iterator, callback) { + if (arguments.length === 3) { + callback = iterator; + iterator = memo; + memo = _isArray(arr) ? [] : {}; + } + + async.eachOf(arr, function(v, k, cb) { + iterator(memo, v, k, cb); + }, function(err) { + callback(err, memo); + }); + }; + + function _filter(eachfn, arr, iterator, callback) { + var results = []; + eachfn(arr, function (x, index, callback) { + iterator(x, function (v) { + if (v) { + results.push({index: index, value: x}); + } + callback(); + }); + }, function () { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + } + + async.select = + async.filter = doParallel(_filter); + + async.selectLimit = + async.filterLimit = doParallelLimit(_filter); + + async.selectSeries = + async.filterSeries = doSeries(_filter); + + function _reject(eachfn, arr, iterator, callback) { + _filter(eachfn, arr, function(value, cb) { + iterator(value, function(v) { + cb(!v); + }); + }, callback); + } + async.reject = doParallel(_reject); + async.rejectLimit = doParallelLimit(_reject); + async.rejectSeries = doSeries(_reject); + + function _createTester(eachfn, check, getResult) { + return function(arr, limit, iterator, cb) { + function done() { + if (cb) cb(getResult(false, void 0)); + } + function iteratee(x, _, callback) { + if (!cb) return callback(); + iterator(x, function (v) { + if (cb && check(v)) { + cb(getResult(true, x)); + cb = iterator = false; + } + callback(); + }); + } + if (arguments.length > 3) { + eachfn(arr, limit, iteratee, done); + } else { + cb = iterator; + iterator = limit; + eachfn(arr, iteratee, done); + } + }; + } + + async.any = + async.some = _createTester(async.eachOf, toBool, identity); + + async.someLimit = _createTester(async.eachOfLimit, toBool, identity); + + async.all = + async.every = _createTester(async.eachOf, notId, notId); + + async.everyLimit = _createTester(async.eachOfLimit, notId, notId); + + function _findGetResult(v, x) { + return x; + } + async.detect = _createTester(async.eachOf, identity, _findGetResult); + async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult); + async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult); + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + callback(null, _map(results.sort(comparator), function (x) { + return x.value; + })); + } + + }); + + function comparator(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + } + }; + + async.auto = function (tasks, concurrency, callback) { + if (typeof arguments[1] === 'function') { + // concurrency is optional, shift the args. + callback = concurrency; + concurrency = null; + } + callback = _once(callback || noop); + var keys = _keys(tasks); + var remainingTasks = keys.length; + if (!remainingTasks) { + return callback(null); + } + if (!concurrency) { + concurrency = remainingTasks; + } + + var results = {}; + var runningTasks = 0; + + var hasError = false; + + var listeners = []; + function addListener(fn) { + listeners.unshift(fn); + } + function removeListener(fn) { + var idx = _indexOf(listeners, fn); + if (idx >= 0) listeners.splice(idx, 1); + } + function taskComplete() { + remainingTasks--; + _arrayEach(listeners.slice(0), function (fn) { + fn(); + }); + } + + addListener(function () { + if (!remainingTasks) { + callback(null, results); + } + }); + + _arrayEach(keys, function (k) { + if (hasError) return; + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = _restParam(function(err, args) { + runningTasks--; + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _forEachOf(results, function(val, rkey) { + safeResults[rkey] = val; + }); + safeResults[k] = args; + hasError = true; + + callback(err, safeResults); + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }); + var requires = task.slice(0, task.length - 1); + // prevent dead-locks + var len = requires.length; + var dep; + while (len--) { + if (!(dep = tasks[requires[len]])) { + throw new Error('Has nonexistent dependency in ' + requires.join(', ')); + } + if (_isArray(dep) && _indexOf(dep, k) >= 0) { + throw new Error('Has cyclic dependencies'); + } + } + function ready() { + return runningTasks < concurrency && _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + } + if (ready()) { + runningTasks++; + task[task.length - 1](taskCallback, results); + } + else { + addListener(listener); + } + function listener() { + if (ready()) { + runningTasks++; + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + } + }); + }; + + + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var DEFAULT_INTERVAL = 0; + + var attempts = []; + + var opts = { + times: DEFAULT_TIMES, + interval: DEFAULT_INTERVAL + }; + + function parseTimes(acc, t){ + if(typeof t === 'number'){ + acc.times = parseInt(t, 10) || DEFAULT_TIMES; + } else if(typeof t === 'object'){ + acc.times = parseInt(t.times, 10) || DEFAULT_TIMES; + acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL; + } else { + throw new Error('Unsupported argument type for \'times\': ' + typeof t); + } + } + + var length = arguments.length; + if (length < 1 || length > 3) { + throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)'); + } else if (length <= 2 && typeof times === 'function') { + callback = task; + task = times; + } + if (typeof times !== 'function') { + parseTimes(opts, times); + } + opts.callback = callback; + opts.task = task; + + function wrappedTask(wrappedCallback, wrappedResults) { + function retryAttempt(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + } + + function retryInterval(interval){ + return function(seriesCallback){ + setTimeout(function(){ + seriesCallback(null); + }, interval); + }; + } + + while (opts.times) { + + var finalAttempt = !(opts.times-=1); + attempts.push(retryAttempt(opts.task, finalAttempt)); + if(!finalAttempt && opts.interval > 0){ + attempts.push(retryInterval(opts.interval)); + } + } + + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || opts.callback)(data.err, data.result); + }); + } + + // If a callback is passed, run this as a controll flow + return opts.callback ? wrappedTask() : wrappedTask; + }; + + async.waterfall = function (tasks, callback) { + callback = _once(callback || noop); + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + function wrapIterator(iterator) { + return _restParam(function (err, args) { + if (err) { + callback.apply(null, [err].concat(args)); + } + else { + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + ensureAsync(iterator).apply(null, args); + } + }); + } + wrapIterator(async.iterator(tasks))(); + }; + + function _parallel(eachfn, tasks, callback) { + callback = callback || noop; + var results = _isArrayLike(tasks) ? [] : {}; + + eachfn(tasks, function (task, key, callback) { + task(_restParam(function (err, args) { + if (args.length <= 1) { + args = args[0]; + } + results[key] = args; + callback(err); + })); + }, function (err) { + callback(err, results); + }); + } + + async.parallel = function (tasks, callback) { + _parallel(async.eachOf, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel(_eachOfLimit(limit), tasks, callback); + }; + + async.series = function(tasks, callback) { + _parallel(async.eachOfSeries, tasks, callback); + }; + + async.iterator = function (tasks) { + function makeCallback(index) { + function fn() { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + } + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + } + return makeCallback(0); + }; + + async.apply = _restParam(function (fn, args) { + return _restParam(function (callArgs) { + return fn.apply( + null, args.concat(callArgs) + ); + }); + }); + + function _concat(eachfn, arr, fn, callback) { + var result = []; + eachfn(arr, function (x, index, cb) { + fn(x, function (err, y) { + result = result.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, result); + }); + } + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + callback = callback || noop; + if (test()) { + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else if (test.apply(this, args)) { + iterator(next); + } else { + callback.apply(null, [null].concat(args)); + } + }); + iterator(next); + } else { + callback(null); + } + }; + + async.doWhilst = function (iterator, test, callback) { + var calls = 0; + return async.whilst(function() { + return ++calls <= 1 || test.apply(this, arguments); + }, iterator, callback); + }; + + async.until = function (test, iterator, callback) { + return async.whilst(function() { + return !test.apply(this, arguments); + }, iterator, callback); + }; + + async.doUntil = function (iterator, test, callback) { + return async.doWhilst(iterator, function() { + return !test.apply(this, arguments); + }, callback); + }; + + async.during = function (test, iterator, callback) { + callback = callback || noop; + + var next = _restParam(function(err, args) { + if (err) { + callback(err); + } else { + args.push(check); + test.apply(this, args); + } + }); + + var check = function(err, truth) { + if (err) { + callback(err); + } else if (truth) { + iterator(next); + } else { + callback(null); + } + }; + + test(check); + }; + + async.doDuring = function (iterator, test, callback) { + var calls = 0; + async.during(function(next) { + if (calls++ < 1) { + next(null, true); + } else { + test.apply(this, arguments); + } + }, iterator, callback); + }; + + function _queue(worker, concurrency, payload) { + if (concurrency == null) { + concurrency = 1; + } + else if(concurrency === 0) { + throw new Error('Concurrency must not be zero'); + } + function _insert(q, data, pos, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0 && q.idle()) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + callback: callback || noop + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + }); + async.setImmediate(q.process); + } + function _next(q, tasks) { + return function(){ + workers -= 1; + + var removed = false; + var args = arguments; + _arrayEach(tasks, function (task) { + _arrayEach(workersList, function (worker, index) { + if (worker === task && !removed) { + workersList.splice(index, 1); + removed = true; + } + }); + + task.callback.apply(task, args); + }); + if (q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + } + + var workers = 0; + var workersList = []; + var q = { + tasks: [], + concurrency: concurrency, + payload: payload, + saturated: noop, + empty: noop, + drain: noop, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = noop; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + while(!q.paused && workers < q.concurrency && q.tasks.length){ + + var tasks = q.payload ? + q.tasks.splice(0, q.payload) : + q.tasks.splice(0, q.tasks.length); + + var data = _map(tasks, function (task) { + return task.data; + }); + + if (q.tasks.length === 0) { + q.empty(); + } + workers += 1; + workersList.push(tasks[0]); + var cb = only_once(_next(q, tasks)); + worker(data, cb); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + workersList: function () { + return workersList; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + q.paused = true; + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + var resumeCount = Math.min(q.concurrency, q.tasks.length); + // Need to call q.process once per concurrent + // worker to preserve full concurrency after pause + for (var w = 1; w <= resumeCount; w++) { + async.setImmediate(q.process); + } + } + }; + return q; + } + + async.queue = function (worker, concurrency) { + var q = _queue(function (items, cb) { + worker(items[0], cb); + }, concurrency, 1); + + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + } + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (callback != null && typeof callback !== "function") { + throw new Error("task callback must be a function"); + } + q.started = true; + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + q.drain(); + }); + } + _arrayEach(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : noop + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + if (q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + return _queue(worker, 1, payload); + }; + + function _console_fn(name) { + return _restParam(function (fn, args) { + fn.apply(null, args.concat([_restParam(function (err, args) { + if (typeof console === 'object') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _arrayEach(args, function (x) { + console[name](x); + }); + } + } + })])); + }); + } + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + var has = Object.prototype.hasOwnProperty; + hasher = hasher || identity; + var memoized = _restParam(function memoized(args) { + var callback = args.pop(); + var key = hasher.apply(null, args); + if (has.call(memo, key)) { + async.setImmediate(function () { + callback.apply(null, memo[key]); + }); + } + else if (has.call(queues, key)) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([_restParam(function (args) { + memo[key] = args; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, args); + } + })])); + } + }); + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + function _times(mapper) { + return function (count, iterator, callback) { + mapper(_range(count), iterator, callback); + }; + } + + async.times = _times(async.map); + async.timesSeries = _times(async.mapSeries); + async.timesLimit = function (count, limit, iterator, callback) { + return async.mapLimit(_range(count), limit, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return _restParam(function (args) { + var that = this; + + var callback = args[args.length - 1]; + if (typeof callback == 'function') { + args.pop(); + } else { + callback = noop; + } + + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([_restParam(function (err, nextargs) { + cb(err, nextargs); + })])); + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }); + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + + function _applyEach(eachfn) { + return _restParam(function(fns, args) { + var go = _restParam(function(args) { + var that = this; + var callback = args.pop(); + return eachfn(fns, function (fn, _, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }); + if (args.length) { + return go.apply(this, args); + } + else { + return go; + } + }); + } + + async.applyEach = _applyEach(async.eachOf); + async.applyEachSeries = _applyEach(async.eachOfSeries); + + + async.forever = function (fn, callback) { + var done = only_once(callback || noop); + var task = ensureAsync(fn); + function next(err) { + if (err) { + return done(err); + } + task(next); + } + next(); + }; + + function ensureAsync(fn) { + return _restParam(function (args) { + var callback = args.pop(); + args.push(function () { + var innerArgs = arguments; + if (sync) { + async.setImmediate(function () { + callback.apply(null, innerArgs); + }); + } else { + callback.apply(null, innerArgs); + } + }); + var sync = true; + fn.apply(this, args); + sync = false; + }); + } + + async.ensureAsync = ensureAsync; + + async.constant = _restParam(function(values) { + var args = [null].concat(values); + return function (callback) { + return callback.apply(this, args); + }; + }); + + async.wrapSync = + async.asyncify = function asyncify(func) { + return _restParam(function (args) { + var callback = args.pop(); + var result; + try { + result = func.apply(this, args); + } catch (e) { + return callback(e); + } + // if result is Promise object + if (_isObject(result) && typeof result.then === "function") { + result.then(function(value) { + callback(null, value); + })["catch"](function(err) { + callback(err.message ? err : new Error(err)); + }); + } else { + callback(null, result); + } + }); + }; + + // Node.js + if (typeof module === 'object' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else if (typeof define === 'function' && define.amd) { + define([], function () { + return async; + }); + } + // included directly via + + + + + + + +

+ + + + + diff --git a/S3WebApp/S3/assets/js/aws-cognito-sdk.min.js b/S3WebApp/S3/assets/js/aws-cognito-sdk.min.js new file mode 100644 index 0000000..47b7ca4 --- /dev/null +++ b/S3WebApp/S3/assets/js/aws-cognito-sdk.min.js @@ -0,0 +1,10 @@ +// AWS SDK for JavaScript v2.3.4 +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt +!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gthis.expireTime?!0:this.expired||!this.accessKeyId||!this.secretAccessKey},get:function(a){var b=this;this.needsRefresh()?this.refresh(function(c){c||(b.expired=!1),a&&a(c)}):a&&a()},refresh:function(a){this.expired=!1,a()}})},{"./core":3}],5:[function(a,b,c){var d=a("../core");d.CognitoIdentityCredentials=d.util.inherit(d.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a,this.data=null,this.identityId=null,this.loadCachedId()},refresh:function(a){var b=this;b.createClients(),b.data=null,b.identityId=null,b.getId(function(c){c?(b.clearCachedId(),a(c)):b.params.RoleArn?b.getCredentialsFromSTS(a):b.getCredentialsForIdentity(a)})},clearCachedId:function(){this.identityId=null,delete this.params.IdentityId;var a=this.params.IdentityPoolId,b=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+a+b],delete this.storage[this.localStorageKey.providers+a+b]},getId:function(a){var b=this;return"string"==typeof b.params.IdentityId?a(null,b.params.IdentityId):void b.cognito.getId(function(c,d){!c&&d.IdentityId?(b.params.IdentityId=d.IdentityId,a(null,d.IdentityId)):a(c)})},loadCredentials:function(a,b){a&&b&&(b.expired=!1,b.accessKeyId=a.Credentials.AccessKeyId,b.secretAccessKey=a.Credentials.SecretKey,b.sessionToken=a.Credentials.SessionToken,b.expireTime=a.Credentials.Expiration)},getCredentialsForIdentity:function(a){var b=this;b.cognito.getCredentialsForIdentity(function(c,d){c?b.clearCachedId():(b.cacheId(d),b.data=d,b.loadCredentials(b.data,b)),a(c)})},getCredentialsFromSTS:function(a){var b=this;b.cognito.getOpenIdToken(function(c,d){c?(b.clearCachedId(),a(c)):(b.cacheId(d),b.params.WebIdentityToken=d.Token,b.webIdentityCredentials.refresh(function(c){c?b.clearCachedId():(b.data=b.webIdentityCredentials.data,b.sts.credentialsFrom(b.data,b)),a(c)}))})},loadCachedId:function(){var a=this;if(d.util.isBrowser()&&!a.params.IdentityId){var b=a.getStorage("id");if(b&&a.params.Logins){var c=Object.keys(a.params.Logins),e=(a.getStorage("providers")||"").split(","),f=e.filter(function(a){return-1!==c.indexOf(a)});0!==f.length&&(a.params.IdentityId=b)}else b&&(a.params.IdentityId=b)}},createClients:function(){this.webIdentityCredentials=this.webIdentityCredentials||new d.WebIdentityCredentials(this.params),this.cognito=this.cognito||new d.CognitoIdentity({params:this.params}),this.sts=this.sts||new d.STS},cacheId:function(a){this.identityId=a.IdentityId,this.params.IdentityId=this.identityId,d.util.isBrowser()&&(this.setStorage("id",a.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(a){return this.storage[this.localStorageKey[a]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(a,b){try{this.storage[this.localStorageKey[a]+this.params.IdentityPoolId+(this.params.LoginId||"")]=b}catch(c){}},storage:function(){try{return d.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{}}catch(a){return{}}}()})},{"../core":3}],6:[function(a,b,c){var d=a("../core");d.CredentialProviderChain=d.util.inherit(d.Credentials,{constructor:function(a){a?this.providers=a:this.providers=d.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(a){function b(e,f){if(!e&&f||c===d.length)return void a(e,f);var g=d[c++];f="function"==typeof g?g.call():g,f.get?f.get(function(a){b(a,a?null:f)}):b(null,f)}if(0===this.providers.length)return a(new Error("No providers")),this;var c=0,d=this.providers.slice(0);return b(),this}}),d.CredentialProviderChain.defaultProviders=[]},{"../core":3}],7:[function(a,b,c){var d=a("../core");d.SAMLCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.assumeRoleWithSAML(function(c,d){c||b.service.credentialsFrom(d,b),a(c)})},createClients:function(){this.service=this.service||new d.STS({params:this.params})}})},{"../core":3}],8:[function(a,b,c){var d=a("../core");d.TemporaryCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.loadMasterCredentials(),this.expired=!0,this.params=a||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.config.credentials=b.masterCredentials;var c=b.params.RoleArn?b.service.assumeRole:b.service.getSessionToken;c.call(b.service,function(c,d){c||b.service.credentialsFrom(d,b),a(c)})},loadMasterCredentials:function(){for(this.masterCredentials=d.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials},createClients:function(){this.service=this.service||new d.STS({params:this.params})}})},{"../core":3}],9:[function(a,b,c){var d=a("../core");d.WebIdentityCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.assumeRoleWithWebIdentity(function(c,d){b.data=null,c||(b.data=d,b.service.credentialsFrom(d,b)),a(c)})},createClients:function(){this.service=this.service||new d.STS({params:this.params})}})},{"../core":3}],10:[function(a,b,c){var d=a("./core"),e=a("./sequential_executor");d.EventListeners={Core:{}},d.EventListeners={Core:(new e).addNamedListeners(function(a,b){b("VALIDATE_CREDENTIALS","validate",function(a,b){return a.service.api.signatureVersion?void a.service.config.getCredentials(function(c){c&&(a.response.error=d.util.error(c,{code:"CredentialsError",message:"Missing credentials in config"})),b()}):b()}),a("VALIDATE_REGION","validate",function(a){a.service.config.region||a.service.isGlobalEndpoint||(a.response.error=d.util.error(new Error,{code:"ConfigError",message:"Missing region in config"}))}),a("VALIDATE_PARAMETERS","validate",function(a){var b=a.service.api.operations[a.operation].input,c=a.service.config.paramValidation;new d.ParamValidator(c).validate(b,a.params)}),b("COMPUTE_SHA256","afterBuild",function(a,b){if(a.haltHandlersOnError(),!a.service.api.signatureVersion)return b();if(a.service.getSignerClass(a)===d.Signers.V4){var c=a.httpRequest.body||"";d.util.computeSha256(c,function(c,d){c?b(c):(a.httpRequest.headers["X-Amz-Content-Sha256"]=d,b())})}else b()}),a("SET_CONTENT_LENGTH","afterBuild",function(a){if(void 0===a.httpRequest.headers["Content-Length"]){var b=d.util.string.byteLength(a.httpRequest.body);a.httpRequest.headers["Content-Length"]=b}}),a("SET_HTTP_HOST","afterBuild",function(a){a.httpRequest.headers.Host=a.httpRequest.endpoint.host}),a("RESTART","restart",function(){var a=this.response.error;a&&a.retryable&&(this.httpRequest=new d.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(a){a?b(a):g()}):g()}),a("HTTP_HEADERS","httpHeaders",function(a,b,c){c.httpResponse.statusCode=a,c.httpResponse.headers=b,c.httpResponse.body=new d.util.Buffer(""),c.httpResponse.buffers=[],c.httpResponse.numBytes=0;var e=b.date||b.Date;if(e){var f=Date.parse(e);c.request.service.config.correctClockSkew&&d.util.isClockSkewed(f)&&d.util.applyClockOffset(f)}}),a("HTTP_DATA","httpData",function(a,b){if(a){if(d.util.isNode()){b.httpResponse.numBytes+=a.length;var c=b.httpResponse.headers["content-length"],e={loaded:b.httpResponse.numBytes,total:c};b.request.emit("httpDownloadProgress",[e,b])}b.httpResponse.buffers.push(new d.util.Buffer(a))}}),a("HTTP_DONE","httpDone",function(a){if(a.httpResponse.buffers&&a.httpResponse.buffers.length>0){var b=d.util.buffer.concat(a.httpResponse.buffers);a.httpResponse.body=b}delete a.httpResponse.numBytes,delete a.httpResponse.buffers}),a("FINALIZE_ERROR","retry",function(a){a.httpResponse.statusCode&&(a.error.statusCode=a.httpResponse.statusCode,void 0===a.error.retryable&&(a.error.retryable=this.service.retryableError(a.error,this)))}),a("INVALIDATE_CREDENTIALS","retry",function(a){if(a.error)switch(a.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":a.error.retryable=!0,a.request.service.config.credentials.expired=!0}}),a("EXPIRED_SIGNATURE","retry",function(a){var b=a.error;b&&"string"==typeof b.code&&"string"==typeof b.message&&b.code.match(/Signature/)&&b.message.match(/expired/)&&(a.error.retryable=!0)}),a("CLOCK_SKEWED","retry",function(a){a.error&&this.service.clockSkewError(a.error)&&this.service.config.correctClockSkew&&d.config.isClockSkewed&&(a.error.retryable=!0)}),a("REDIRECT","retry",function(a){a.error&&a.error.statusCode>=300&&a.error.statusCode<400&&a.httpResponse.headers.location&&(this.httpRequest.endpoint=new d.Endpoint(a.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,a.error.redirect=!0,a.error.retryable=!0); +}),a("RETRY_CHECK","retry",function(a){a.error&&(a.error.redirect&&a.redirectCount=this.HEADERS_RECEIVED&&!l){try{k.responseType="arraybuffer"}catch(a){}i.statusCode=k.status,i.headers=g.parseHeaders(k.getAllResponseHeaders()),i.emit("headers",i.statusCode,i.headers),l=!0}this.readyState===this.DONE&&g.finishRequest(k,i)},!1),k.upload.addEventListener("progress",function(a){i.emit("sendProgress",a)}),k.addEventListener("progress",function(a){i.emit("receiveProgress",a)},!1),k.addEventListener("timeout",function(){f(d.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),k.addEventListener("error",function(){f(d.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),c(i),k.open(a.method,j,b.xhrAsync!==!1),d.util.each(a.headers,function(a,b){"Content-Length"!==a&&"User-Agent"!==a&&"Host"!==a&&k.setRequestHeader(a,b)}),b.timeout&&b.xhrAsync!==!1&&(k.timeout=b.timeout),b.xhrWithCredentials&&(k.withCredentials=!0);try{k.send(a.body)}catch(m){if(!a.body||"object"!=typeof a.body.buffer)throw m;k.send(a.body.buffer)}return i},parseHeaders:function(a){var b={};return d.util.arrayEach(a.split(/\r?\n/),function(a){var c=a.split(":",1)[0],d=a.substring(c.length+2);c.length>0&&(b[c.toLowerCase()]=d)}),b},finishRequest:function(a,b){var c;if("arraybuffer"===a.responseType&&a.response){var e=a.response;c=new d.util.Buffer(e.byteLength);for(var f=new Uint8Array(e),g=0;g1){var e=this.errors.join("\n* ");throw e="There were "+this.errors.length+" validation errors:\n* "+e,d.util.error(new Error(e),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(a,b){this.errors.push(d.util.error(new Error(b),{code:a}))},validateStructure:function(a,b,c){this.validateType(b,c,["object"],"structure");for(var d,e=0;a.required&&e= "+a.min+", but found "+b+" for "+c),this.validation.max&&void 0!==a.max&&b>a.max&&this.fail("MaxRangeError","Expected "+d+" <= "+a.max+", but found "+b+" for "+c)},validateEnum:function(a,b,c){this.validation["enum"]&&void 0!==a["enum"]&&-1===a["enum"].indexOf(b)&&this.fail("EnumError","Found string value of "+b+", but expected "+a["enum"].join("|")+" for "+c)},validateType:function(a,b,c,e){if(null===a||void 0===a)return!1;for(var f=!1,g=0;g0){var d=JSON.parse(c.body.toString());(d.__type||d.code)&&(b.code=(d.__type||d.code).split("#").pop()),"RequestEntityTooLarge"===b.code?b.message="Request body must be less than 1 MB":b.message=d.message||d.Message||null}else b.statusCode=c.statusCode,b.message=c.statusCode.toString();a.error=g.error(new Error,b)}function f(a){var b=a.httpResponse.body.toString()||"{}";if(a.request.service.config.convertResponseTypes===!1)a.data=JSON.parse(b);else{var c=a.request.service.api.operations[a.request.operation],d=c.output||{},e=new i;a.data=e.parse(b,d)}}var g=a("../util"),h=a("../json/builder"),i=a("../json/parser");b.exports={buildRequest:d,extractError:e,extractData:f}},{"../json/builder":13,"../json/parser":14,"../util":44}],23:[function(a,b,c){function d(a){var b=a.service.api.operations[a.operation],c=a.httpRequest;c.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",c.params={Version:a.service.api.apiVersion,Action:b.name};var d=new i;d.serialize(a.params,b.input,function(a,b){c.params[a]=b}),c.body=h.queryParamsToString(c.params)}function e(a){var b,c=a.httpResponse.body.toString();b=c.match("=0?"&":"?";var g=[];j.arrayEach(Object.keys(e).sort(),function(a){Array.isArray(e[a])||(e[a]=[e[a]]);for(var b=0;b0){b=new h.XML.Parser;var l=b.parse(d.toString(),f);i.update(a.data,l)}}var h=a("../core"),i=a("../util"),j=a("./rest");b.exports={buildRequest:e,extractError:f,extractData:g}},{"../core":3,"../util":44,"./rest":24}],27:[function(a,b,c){function d(){}function e(a){return a.isQueryName||"ec2"!==a.api.protocol?a.name:a.name[0].toUpperCase()+a.name.substr(1)}function f(a,b,c,d){j.each(c.members,function(c,f){var g=b[c];if(null!==g&&void 0!==g){var h=e(f);h=a?a+"."+h:h,i(h,g,f,d)}})}function g(a,b,c,d){var e=1;j.each(b,function(b,f){var g=c.flattened?".":".entry.",h=g+e++ +".",j=h+(c.key.name||"key"),k=h+(c.value.name||"value");i(a+j,b,c.key,d),i(a+k,f,c.value,d)})}function h(a,b,c,d){var f=c.member||{};return 0===b.length?void d.call(this,a,null):void j.arrayEach(b,function(b,g){var h="."+(g+1);if("ec2"===c.api.protocol)h+="";else if(c.flattened){if(f.name){var j=a.split(".");j.pop(),j.push(e(f)),a=j.join(".")}}else h=".member"+h;i(a+h,b,f,d)})}function i(a,b,c,d){null!==b&&void 0!==b&&("structure"===c.type?f(a,b,c,d):"list"===c.type?h(a,b,c,d):"map"===c.type?g(a,b,c,d):d(a,c.toWireFormat(b).toString()))}var j=a("../util");d.prototype.serialize=function(a,b,c){f("",a,b,c)},b.exports=d},{"../util":44}],28:[function(a,b,c){function d(a){if(!a)return null;var b=a.split("-");return b.length<3?null:b.slice(0,b.length-2).join("-")+"-*"}function e(a){var b=a.config.region,c=d(b),e=a.api.endpointPrefix;return[[b,e],[c,e],[b,"*"],[c,"*"],["*",e],["*","*"]].map(function(a){return a[0]&&a[1]?a.join("/"):null})}function f(a,b){h.each(b,function(b,c){"globalEndpoint"!==b&&(void 0!==a.config[b]&&null!==a.config[b]||(a.config[b]=c))})}function g(a){for(var b=e(a),c=0;ca){c.removeListener("httpData",d.EventListeners.Core.HTTP_DATA),c.removeListener("httpError",d.EventListeners.Core.HTTP_ERROR),c.on("httpError",function(a){f.error=a,f.error.retryable=!1});var g=f.httpResponse.createUnbufferedStream();2===d.HttpClient.streamsApiVersion?g.pipe(e):(g.on("data",function(a){e.emit("data",a)}),g.on("end",function(){e.emit("end")})),g.on("error",function(a){e.emit("error",a)})}}),this.on("error",function(a){e.emit("error",a)}),e},emitEvent:function(a,b,c){"function"==typeof b&&(c=b,b=null),c||(c=function(){}),b||(b=this.eventParameters(a,this.response));var e=d.SequentialExecutor.prototype.emit;e.call(this,a,b,function(a){a&&(this.response.error=a),c.call(this,a)})},eventParameters:function(a){switch(a){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(a,b){return b||"function"!=typeof a||(b=a,a=null),(new d.Signers.Presign).sign(this.toGet(),a,b)},toUnauthenticated:function(){return this.removeListener("validate",d.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",d.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(a){a.httpRequest.method="GET",a.httpRequest.path=a.service.endpoint.path+"?"+a.httpRequest.body,a.httpRequest.body="",delete a.httpRequest.headers["Content-Length"],delete a.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),d.util.mixin(d.Request,d.SequentialExecutor)}).call(this,a("FWaASH"))},{"./core":3,"./state_machine":43,FWaASH:58}],31:[function(a,b,c){var d=a("./core"),e=d.util.inherit;d.ResourceWaiter=e({constructor:function(a,b){this.service=a,this.state=b,"object"==typeof this.state&&d.util.each.call(this,this.state,function(a,b){this.state=a,this.expectedValue=b}),this.loadWaiterConfig(this.state),this.expectedValue||(this.expectedValue=this.config.successValue)},service:null,state:null,expectedValue:null,config:null,waitDone:!1,Listeners:{retry:(new d.SequentialExecutor).addNamedListeners(function(a){a("RETRY_CHECK","retry",function(a){var b=a.request._waiter;a.error&&"ResourceNotReady"===a.error.code&&(a.error.retryDelay=1e3*b.config.interval)})}),output:(new d.SequentialExecutor).addNamedListeners(function(a){a("CHECK_OUT_ERROR","extractError",function(a){a.error&&a.request._waiter.setError(a,!0)}),a("CHECK_OUTPUT","extractData",function(a){var b=a.request._waiter,c=b.checkSuccess(a);c?a.error=null:b.setError(a,null!==c)})}),error:(new d.SequentialExecutor).addNamedListeners(function(a){a("CHECK_ERROR","extractError",function(a){var b=a.request._waiter,c=b.checkError(a);c?(a.error=null,a.data={},a.request.removeAllListeners("extractData")):b.setError(a,null!==c)}),a("CHECK_ERR_OUTPUT","extractData",function(a){a.request._waiter.setError(a,!0)})})},wait:function(a,b){"function"==typeof a&&(b=a,a=void 0);var c=this.service.makeRequest(this.config.operation,a),d=this.Listeners[this.config.successType];return c._waiter=this,c.response.maxRetries=this.config.maxAttempts,c.addListeners(this.Listeners.retry),d&&c.addListeners(d),b&&c.send(b),c},setError:function(a,b){a.data=null,a.error=d.util.error(a.error||new Error,{code:"ResourceNotReady",message:"Resource is not in the state "+this.state,retryable:b})},checkSuccess:function(a){if(!this.config.successPath)return a.httpResponse.statusCode<300;var b=d.util.jamespath.find(this.config.successPath,a.data);return this.config.failureValue&&this.config.failureValue.indexOf(b)>=0?null:this.expectedValue?b===this.expectedValue:!!b},checkError:function(a){var b=this.config.successValue;return"number"==typeof b?a.httpResponse.statusCode===b:a.error&&a.error.code===b},loadWaiterConfig:function(a,b){if(!this.service.api.waiters[a]){if(b)return;throw new d.util.error(new Error,{code:"StateNotFoundError",message:"State "+a+" not found."})}this.config=this.service.api.waiters[a];var c=this.config;!function(){c.successType=c.successType||c.acceptorType,c.successPath=c.successPath||c.acceptorPath,c.successValue=c.successValue||c.acceptorValue,c.failureType=c.failureType||c.acceptorType,c.failurePath=c.failurePath||c.acceptorPath,c.failureValue=c.failureValue||c.acceptorValue}()}})},{"./core":3}],32:[function(a,b,c){var d=a("./core"),e=d.util.inherit;d.Response=e({constructor:function(a){this.request=a,this.data=null,this.error=null,this.retryCount=0,this.redirectCount=0,this.httpResponse=new d.HttpResponse,a&&(this.maxRetries=a.service.numRetries(),this.maxRedirects=a.service.config.maxRedirects)},nextPage:function(a){var b,c=this.request.service,e=this.request.operation;try{b=c.paginationConfig(e,!0)}catch(f){this.error=f}if(!this.hasNextPage()){if(a)a(this.error,null);else if(this.error)throw this.error;return null}var g=d.util.copy(this.request.params);if(this.nextPageTokens){var h=b.inputToken;"string"==typeof h&&(h=[h]);for(var i=0;if;++f)c[f]===b&&(e=f);e>-1&&c.splice(e,1)}return this},removeAllListeners:function(a){return a?delete this._events[a]:this._events={},this},emit:function(a,b,c){c||(c=function(){});var d=this.listeners(a),e=d.length;return this.callListeners(d,b,c),e>0},callListeners:function(a,b,c,e){function f(e){return e&&(h=d.util.error(h||new Error,e),g._haltHandlersOnError)?c.call(g,h):void g.callListeners(a,b,c,h)}for(var g=this,h=e||null;a.length>0;){var i=a.shift();if(i._isAsync)return void i.apply(g,b.concat([f]));try{i.apply(g,b)}catch(j){h=d.util.error(h||new Error,j)}if(h&&g._haltHandlersOnError)return void c.call(g,h)}c.call(g,h)},addListeners:function(a){var b=this;return a._events&&(a=a._events),d.util.each(a,function(a,c){"function"==typeof c&&(c=[c]),d.util.arrayEach(c,function(c){b.on(a,c)})}),b},addNamedListener:function(a,b,c){return this[a]=c,this.addListener(b,c),this},addNamedAsyncListener:function(a,b,c){return c._isAsync=!0,this.addNamedListener(a,b,c)},addNamedListeners:function(a){var b=this;return a(function(){b.addNamedListener.apply(b,arguments)},function(){b.addNamedAsyncListener.apply(b,arguments)}),this}}),d.SequentialExecutor.prototype.addListener=d.SequentialExecutor.prototype.on,b.exports=d.SequentialExecutor},{"./core":3}],34:[function(a,b,c){var d=a("./core"),e=a("./model/api"),f=a("./region_config"),g=d.util.inherit;d.Service=g({constructor:function(a){if(!this.loadServiceClass)throw d.util.error(new Error,"Service must be constructed with `new' operator");var b=this.loadServiceClass(a||{});return b?new b(a):void this.initialize(a)},initialize:function(a){var b=d.config[this.serviceIdentifier];this.config=new d.Config(d.config),b&&this.config.update(b,!0),a&&this.config.update(a,!0),this.validateService(),this.config.endpoint||f(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(a){var b=a;if(d.util.isEmpty(this.api)){if(b.apiConfig)return d.Service.defineServiceApi(this.constructor,b.apiConfig);if(this.constructor.services){b=new d.Config(d.config),b.update(a,!0);var c=b.apiVersions[this.constructor.serviceIdentifier];return c=c||b.apiVersion,this.getLatestServiceClass(c)}return null}return null},getLatestServiceClass:function(a){return a=this.getLatestServiceVersion(a),null===this.constructor.services[a]&&d.Service.defineServiceApi(this.constructor,a),this.constructor.services[a]},getLatestServiceVersion:function(a){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(a?d.util.isType(a,Date)&&(a=d.util.date.iso8601(a).split("T")[0]):a="latest",Object.hasOwnProperty(this.constructor.services,a))return a;for(var b=Object.keys(this.constructor.services).sort(),c=null,e=b.length-1;e>=0;e--)if("*"!==b[e][b[e].length-1]&&(c=b[e]),b[e].substr(0,10)<=a)return c;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+a+"'")},api:{},defaultRetryCount:3,makeRequest:function(a,b,c){if("function"==typeof b&&(c=b,b=null),b=b||{},this.config.params){var e=this.api.operations[a];e&&(b=d.util.copy(b),d.util.each(this.config.params,function(a,c){e.input.members[a]&&(void 0!==b[a]&&null!==b[a]||(b[a]=c))}))}var f=new d.Request(this,a,b);return this.addAllRequestListeners(f),c&&f.send(c),f},makeUnauthenticatedRequest:function(a,b,c){"function"==typeof b&&(c=b,b={});var d=this.makeRequest(a,b).toUnauthenticated();return c?d.send(c):d},waitFor:function(a,b,c){var e=new d.ResourceWaiter(this,a);return e.wait(b,c)},addAllRequestListeners:function(a){for(var b=[d.events,d.EventListeners.Core,this.serviceInterface(),d.EventListeners.CorePost],c=0;c=500},networkingError:function(a){return"NetworkingError"===a.code},expiredCredentialsError:function(a){return"ExpiredTokenException"===a.code},clockSkewError:function(a){switch(a.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},throttledError:function(a){switch(a.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":return!0;default:return!1}},endpointFromTemplate:function(a){if("string"!=typeof a)return a;var b=a;return b=b.replace(/\{service\}/g,this.api.endpointPrefix),b=b.replace(/\{region\}/g,this.config.region),b=b.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(a){this.endpoint=new d.Endpoint(a,this.config)},paginationConfig:function(a,b){var c=this.api.operations[a].paginator;if(!c){if(b){var e=new Error;throw d.util.error(e,"No pagination configuration for "+a)}return null}return c}}),d.util.update(d.Service,{defineMethods:function(a){d.util.each(a.prototype.api.operations,function(b){a.prototype[b]||(a.prototype[b]=function(a,c){return this.makeRequest(b,a,c)})})},defineService:function(a,b,c){d.Service._serviceMap[a]=!0,Array.isArray(b)||(c=b,b=[]);var e=g(d.Service,c||{});if("string"==typeof a){d.Service.addVersions(e,b);var f=e.serviceIdentifier||a;e.serviceIdentifier=f}else e.prototype.api=a,d.Service.defineMethods(e);return e},addVersions:function(a,b){Array.isArray(b)||(b=[b]),a.services=a.services||{};for(var c=0;c604800){var c="Presigning does not support expiry time greater than a week with SigV4 signing.";throw f.util.error(new Error,{code:"InvalidExpiryTime",message:c,retryable:!1})}a.httpRequest.headers[h]=b}else{if(a.service.getSignerClass()!==f.Signers.S3)throw f.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});a.httpRequest.headers[h]=parseInt(f.util.date.unixTimestamp()+b,10).toString()}}function e(a){var b=a.httpRequest.endpoint,c=f.util.urlParse(a.httpRequest.path),d={};c.search&&(d=f.util.queryStringParse(c.search.substr(1))),f.util.each(a.httpRequest.headers,function(a,b){a===h&&(a="Expires"),0===a.indexOf("x-amz-meta-")&&(a=a.toLowerCase()),d[a]=b}),delete a.httpRequest.headers[h];var e=d.Authorization.split(" ");if("AWS"===e[0])e=e[1].split(":"),d.AWSAccessKeyId=e[0],d.Signature=e[1];else if("AWS4-HMAC-SHA256"===e[0]){e.shift();var g=e.join(" "),i=g.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];d["X-Amz-Signature"]=i,delete d.Expires}delete d.Authorization,delete d.Host,b.pathname=c.pathname,b.search=f.util.queryParamsToString(d)}var f=a("../core"),g=f.util.inherit,h="presigned-expires";f.Signers.Presign=g({sign:function(a,b,c){if(a.httpRequest.headers[h]=b||3600,a.on("build",d),a.on("sign",e),a.removeListener("afterBuild",f.EventListeners.Core.SET_CONTENT_LENGTH),a.removeListener("afterBuild",f.EventListeners.Core.COMPUTE_SHA256),a.emit("beforePresign",[a]),!c){if(a.build(),a.response.error)throw a.response.error;return f.util.urlFormat(a.httpRequest.endpoint)}a.build(function(){this.response.error?c(this.response.error):c(null,f.util.urlFormat(a.httpRequest.endpoint))})}}),b.exports=f.Signers.Presign},{"../core":3}],37:[function(a,b,c){var d=a("../core"),e=d.util.inherit;d.Signers.RequestSigner=e({constructor:function(a){this.request=a}}),d.Signers.RequestSigner.getVersion=function(a){switch(a){case"v2":return d.Signers.V2;case"v3":return d.Signers.V3;case"v4":return d.Signers.V4;case"s3":return d.Signers.S3;case"v3https":return d.Signers.V3Https}throw new Error("Unknown signing version "+a)},a("./v2"),a("./v3"),a("./v3https"),a("./v4"),a("./s3"),a("./presign")},{"../core":3,"./presign":36,"./s3":38,"./v2":39,"./v3":40,"./v3https":41,"./v4":42}],38:[function(a,b,c){var d=a("../core"),e=d.util.inherit;d.Signers.S3=e(d.Signers.RequestSigner,{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},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(a,b){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=d.util.date.rfc822(b)),a.sessionToken&&(this.request.headers["x-amz-security-token"]=a.sessionToken);var c=this.sign(a.secretAccessKey,this.stringToSign()),e="AWS "+a.accessKeyId+":"+c;this.request.headers.Authorization=e},stringToSign:function(){var a=this.request,b=[];b.push(a.method),b.push(a.headers["Content-MD5"]||""),b.push(a.headers["Content-Type"]||""),b.push(a.headers["presigned-expires"]||"");var c=this.canonicalizedAmzHeaders();return c&&b.push(c),b.push(this.canonicalizedResource()),b.join("\n")},canonicalizedAmzHeaders:function(){var a=[];d.util.each(this.request.headers,function(b){b.match(/^x-amz-/i)&&a.push(b)}),a.sort(function(a,b){return a.toLowerCase()=0?"&":"?";this.request.path+=f+d.util.queryParamsToString(e)},authorization:function(a,b){var c=[],d=this.credentialString(b);return c.push(this.algorithm+" Credential="+a.accessKeyId+"/"+d),c.push("SignedHeaders="+this.signedHeaders()),c.push("Signature="+this.signature(a,b)),c.join(", ")},signature:function(a,b){var c=null;if(this.signatureCache)var c=f[this.serviceName];var e=b.substr(0,8);if(!c||c.akid!==a.accessKeyId||c.region!==this.request.region||c.date!==e){var g=a.secretAccessKey,h=d.util.crypto.hmac("AWS4"+g,e,"buffer"),i=d.util.crypto.hmac(h,this.request.region,"buffer"),j=d.util.crypto.hmac(i,this.serviceName,"buffer"),k=d.util.crypto.hmac(j,"aws4_request","buffer");if(!this.signatureCache)return d.util.crypto.hmac(k,this.stringToSign(b),"hex");f[this.serviceName]={region:this.request.region,date:e,key:k,akid:a.accessKeyId}}var l=f[this.serviceName].key;return d.util.crypto.hmac(l,this.stringToSign(b),"hex")},stringToSign:function(a){var b=[];return b.push("AWS4-HMAC-SHA256"),b.push(a),b.push(this.credentialString(a)),b.push(this.hexEncodedHash(this.canonicalString())),b.join("\n")},canonicalString:function(){var a=[],b=this.request.pathname();return"s3"!==this.serviceName&&(b=d.util.uriEscapePath(b)),a.push(this.request.method),a.push(b),a.push(this.request.search()),a.push(this.canonicalHeaders()+"\n"),a.push(this.signedHeaders()),a.push(this.hexEncodedBodyHash()),a.join("\n")},canonicalHeaders:function(){var a=[];d.util.each.call(this,this.request.headers,function(b,c){a.push([b,c])}),a.sort(function(a,b){return a[0].toLowerCase()=a.length)return b.push(null);var e=c+d;e>a.length&&(e=a.length),b.push(a.slice(c,e)),c=e},b},concat:function(a){var b,c=0,d=0,e=null;for(b=0;bd&&(d=a.length+d),c.push(a[d])}}),d=c),0===d.length?g.abort:void 0}),d.length>0?(c=d,g.abort):void 0}),c},find:function(a,b){ +return g.jamespath.query(a,b)[0]}},date:{getDate:function(){return d||(d=a("./core")),d.config.systemClockOffset?new Date((new Date).getTime()+d.config.systemClockOffset):new Date},iso8601:function(a){return void 0===a&&(a=g.date.getDate()),a.toISOString().replace(/\.\d{3}Z$/,"Z")},rfc822:function(a){return void 0===a&&(a=g.date.getDate()),a.toUTCString()},unixTimestamp:function(a){return void 0===a&&(a=g.date.getDate()),a.getTime()/1e3},from:function(a){return"number"==typeof a?new Date(1e3*a):new Date(a)},format:function(a,b){return b||(b="iso8601"),g.date[b](g.date.from(a))},parseTimestamp:function(a){if("number"==typeof a)return new Date(1e3*a);if(a.match(/^\d+$/))return new Date(1e3*a);if(a.match(/^\d{4}/))return new Date(a);if(a.match(/^\w{3},/))return new Date(a);throw g.error(new Error("unhandled timestamp format: "+a),{code:"TimestampParserError"})}},crypto:{crc32Table:[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],crc32:function(a){var b=g.crypto.crc32Table,c=-1;"string"==typeof a&&(a=new f(a));for(var d=0;d>>8^b[255&(c^e)]}return(-1^c)>>>0},hmac:function(a,b,c,d){return c||(c="binary"),"buffer"===c&&(c=void 0),d||(d="sha256"),"string"==typeof b&&(b=new f(b)),e.createHmac(d,a).update(b).digest(c)},md5:function(a,b,c){return g.crypto.hash("md5",a,b,c)},sha256:function(a,b,c){return g.crypto.hash("sha256",a,b,c)},hash:function(a,b,c,d){var e=g.crypto.createHash(a);c||(c="binary"),"buffer"===c&&(c=void 0),"string"==typeof b&&(b=new f(b));var h=g.arraySliceFn(b),i=f.isBuffer(b);if(g.isBrowser()&&"undefined"!=typeof ArrayBuffer&&b&&b.buffer instanceof ArrayBuffer&&(i=!0),d&&"object"==typeof b&&"function"==typeof b.on&&!i)b.on("data",function(a){e.update(a)}),b.on("error",function(a){d(a)}),b.on("end",function(){d(null,e.digest(c))});else{if(!d||!h||i||"undefined"==typeof FileReader){g.isBrowser()&&"object"==typeof b&&!i&&(b=new f(new Uint8Array(b)));var j=e.update(b).digest(c);return d&&d(null,j),j}var k=0,l=524288,m=new FileReader;m.onerror=function(){d(new Error("Failed to read data."))},m.onload=function(){var a=new f(new Uint8Array(m.result));e.update(a),k+=a.length,m._continueReading()},m._continueReading=function(){if(k>=b.size)return void d(null,e.digest(c));var a=k+l;a>b.size&&(a=b.size),m.readAsArrayBuffer(h.call(b,k,a))},m._continueReading()}},toHex:function(a){for(var b=[],c=0;c=3e5,!1),d.config.isClockSkewed):void 0},applyClockOffset:function(a){a&&(d.config.systemClockOffset=a-(new Date).getTime())},extractRequestId:function(a){var b=a.httpResponse.headers["x-amz-request-id"]||a.httpResponse.headers["x-amzn-requestid"];!b&&a.data&&a.data.ResponseMetadata&&(b=a.data.ResponseMetadata.RequestId),b&&(a.requestId=b),a.error&&(a.error.requestId=b)}};b.exports=g}).call(this,a("FWaASH"))},{"./core":3,FWaASH:58,buffer:47,crypto:51,querystring:62,url:63}],45:[function(a,b,c){function d(){}function e(a,b){switch(b||(b={}),b.type){case"structure":return f(a,b);case"map":return g(a,b);case"list":return h(a,b);case void 0:case null:return j(a);default:return i(a,b)}}function f(a,b){var c={};return null===a?c:(k.each(b.members,function(b,d){if(d.isXmlAttribute){if(a.attributes.hasOwnProperty(d.name)){var f=a.attributes[d.name].value;c[b]=e({textContent:f},d)}}else{var g=d.flattened?a:a.getElementsByTagName(d.name)[0];g?c[b]=e(g,d):d.flattened||"list"!==d.type||(c[b]=d.defaultValue)}}),c)}function g(a,b){for(var c={},d=b.key.name||"key",f=b.value.name||"value",g=b.flattened?b.name:"entry",h=a.firstElementChild;h;){if(h.nodeName===g){var i=h.getElementsByTagName(d)[0].textContent,j=h.getElementsByTagName(f)[0];c[i]=e(j,b.value)}h=h.nextElementSibling}return c}function h(a,b){for(var c=[],d=b.flattened?b.name:b.member.name||"member",f=a.firstElementChild;f;)f.nodeName===d&&c.push(e(f,b.member)),f=f.nextElementSibling;return c}function i(a,b){if(a.getAttribute){var c=a.getAttribute("encoding");"base64"===c&&(b=new l.create({type:c}))}var d=a.textContent;return""===d&&(d=null),"function"==typeof b.toType?b.toType(d):d}function j(a){if(void 0===a||null===a)return"";if(!a.firstElementChild)return null===a.parentNode.parentNode?{}:0===a.childNodes.length?"":a.textContent;for(var b={type:"structure",members:{}},c=a.firstElementChild;c;){var d=c.nodeName;b.members.hasOwnProperty(d)?b.members[d].type="list":b.members[d]={name:d},c=c.nextElementSibling}return f(a,b)}var k=a("../util"),l=a("../model/shape");d.prototype.parse=function(a,b){if(""===a.replace(/^\s+/,""))return{};var c,d;try{if(window.DOMParser){try{var f=new DOMParser;c=f.parseFromString(a,"text/xml")}catch(g){throw k.error(new Error("Parse error in document"),{originalError:g,code:"XMLParserError",retryable:!0})}if(null===c.documentElement)throw k.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var h=c.getElementsByTagName("parsererror")[0];if(h&&(h.parentNode===c||"body"===h.parentNode.nodeName||h.parentNode.parentNode===c||"body"===h.parentNode.parentNode.nodeName)){var i=h.getElementsByTagName("div")[0]||h;throw k.error(new Error(i.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(c=new window.ActiveXObject("Microsoft.XMLDOM"),c.async=!1,!c.loadXML(a))throw k.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(j){d=j}if(c&&c.documentElement&&!d){var l=e(c.documentElement,b),m=c.getElementsByTagName("ResponseMetadata")[0];return m&&(l.ResponseMetadata=e(m,{})),l}if(d)throw k.error(d||new Error,{code:"XMLParserError",retryable:!0});return{}},b.exports=d},{"../model/shape":20,"../util":44}],46:[function(a,b,c){function d(){}function e(a,b,c){switch(c.type){case"structure":return f(a,b,c);case"map":return g(a,b,c);case"list":return h(a,b,c);default:return i(a,b,c)}}function f(a,b,c){k.arrayEach(c.memberNames,function(d){var f=c.members[d];if("body"===f.location){var g=b[d],h=f.name;if(void 0!==g&&null!==g)if(f.isXmlAttribute)a.att(h,g);else if(f.flattened)e(a,g,f);else{var i=a.ele(h);j(i,f),e(i,g,f)}}})}function g(a,b,c){var d=c.key.name||"key",f=c.value.name||"value";k.each(b,function(b,g){var h=a.ele(c.flattened?c.name:"entry");e(h.ele(d),b,c.key),e(h.ele(f),g,c.value)})}function h(a,b,c){c.flattened?k.arrayEach(b,function(b){var d=c.member.name||c.name,f=a.ele(d);e(f,b,c.member)}):k.arrayEach(b,function(b){var d=c.member.name||"member",f=a.ele(d);e(f,b,c.member)})}function i(a,b,c){a.txt(c.toWireFormat(b))}function j(a,b){var c,d="xmlns";b.xmlNamespaceUri?(c=b.xmlNamespaceUri,b.xmlNamespacePrefix&&(d+=":"+b.xmlNamespacePrefix)):a.isRoot&&b.api.xmlNamespaceUri&&(c=b.api.xmlNamespaceUri),c&&a.att(d,c)}var k=a("../util"),l=a("xmlbuilder");d.prototype.toXML=function(a,b,c,d){var f=l.create(c);return j(f,b),e(f,a,b),f.children.length>0||d?f.root().toString():""},b.exports=d},{"../util":44,xmlbuilder:82}],47:[function(a,b,c){function d(a,b,c){if(!(this instanceof d))return new d(a,b,c);var e=typeof a;if("base64"===b&&"string"===e)for(a=C(a);a.length%4!==0;)a+="=";var f;if("number"===e)f=E(a);else if("string"===e)f=d.byteLength(a,b);else{if("object"!==e)throw new Error("First argument needs to be a number, array or string.");f=E(a.length)}var g;d._useTypedArrays?g=d._augment(new Uint8Array(f)):(g=this,g.length=f,g._isBuffer=!0);var h;if(d._useTypedArrays&&"number"==typeof a.byteLength)g._set(a);else if(G(a))for(h=0;f>h;h++)d.isBuffer(a)?g[h]=a.readUInt8(h):g[h]=a[h];else if("string"===e)g.write(a,0,b);else if("number"===e&&!d._useTypedArrays&&!c)for(h=0;f>h;h++)g[h]=0;return g}function e(a,b,c,e){c=Number(c)||0;var f=a.length-c;e?(e=Number(e),e>f&&(e=f)):e=f;var g=b.length;R(g%2===0,"Invalid hex string"),e>g/2&&(e=g/2);for(var h=0;e>h;h++){var i=parseInt(b.substr(2*h,2),16);R(!isNaN(i),"Invalid hex string"),a[c+h]=i}return d._charsWritten=2*h,h}function f(a,b,c,e){var f=d._charsWritten=M(I(b),a,c,e);return f}function g(a,b,c,e){var f=d._charsWritten=M(J(b),a,c,e);return f}function h(a,b,c,d){return g(a,b,c,d)}function i(a,b,c,e){var f=d._charsWritten=M(L(b),a,c,e);return f}function j(a,b,c,e){var f=d._charsWritten=M(K(b),a,c,e);return f}function k(a,b,c){return 0===b&&c===a.length?S.fromByteArray(a):S.fromByteArray(a.slice(b,c))}function l(a,b,c){var d="",e="";c=Math.min(a.length,c);for(var f=b;c>f;f++)a[f]<=127?(d+=N(e)+String.fromCharCode(a[f]),e=""):e+="%"+a[f].toString(16);return d+N(e)}function m(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function n(a,b,c){return m(a,b,c)}function o(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=H(a[f]);return e}function p(a,b,c){for(var d=a.slice(b,c),e="",f=0;f=e)){var f;return c?(f=a[b],e>b+1&&(f|=a[b+1]<<8)):(f=a[b]<<8,e>b+1&&(f|=a[b+1])),f}}function r(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+3=e)){var f;return c?(e>b+2&&(f=a[b+2]<<16),e>b+1&&(f|=a[b+1]<<8),f|=a[b],e>b+3&&(f+=a[b+3]<<24>>>0)):(e>b+1&&(f=a[b+1]<<16),e>b+2&&(f|=a[b+2]<<8),e>b+3&&(f|=a[b+3]),f+=a[b]<<24>>>0),f}}function s(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+1=e)){var f=q(a,b,c,!0),g=32768&f;return g?-1*(65535-f+1):f}}function t(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+3=e)){var f=r(a,b,c,!0),g=2147483648&f;return g?-1*(4294967295-f+1):f}}function u(a,b,c,d){return d||(R("boolean"==typeof c,"missing or invalid endian"),R(b+3=f))for(var g=0,h=Math.min(f-c,2);h>g;g++)a[c+g]=(b&255<<8*(d?g:1-g))>>>8*(d?g:1-g)}function x(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f))for(var g=0,h=Math.min(f-c,4);h>g;g++)a[c+g]=b>>>8*(d?g:3-g)&255}function y(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+1=f||(b>=0?w(a,b,c,d,e):w(a,65535+b+1,c,d,e))}function z(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f||(b>=0?x(a,b,c,d,e):x(a,4294967295+b+1,c,d,e))}function A(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f||T.write(a,b,c,d,23,4)}function B(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+7=f||T.write(a,b,c,d,52,8)}function C(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function D(a,b,c){return"number"!=typeof a?c:(a=~~a,a>=b?b:a>=0?a:(a+=b,a>=0?a:0))}function E(a){return a=~~Math.ceil(+a),0>a?0:a}function F(a){return(Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)})(a)}function G(a){return F(a)||d.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length}function H(a){return 16>a?"0"+a.toString(16):a.toString(16)}function I(a){for(var b=[],c=0;c=d)b.push(a.charCodeAt(c));else{var e=c;d>=55296&&57343>=d&&c++;for(var f=encodeURIComponent(a.slice(e,c+1)).substr(1).split("%"),g=0;g>8,d=b%256,e.push(d),e.push(c);return e}function L(a){return S.toByteArray(a)}function M(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}function N(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}function O(a,b){R("number"==typeof a,"cannot write a non-number as a number"),R(a>=0,"specified a negative value for writing an unsigned value"),R(b>=a,"value is larger than maximum value for type"),R(Math.floor(a)===a,"value has a fractional component")}function P(a,b,c){R("number"==typeof a,"cannot write a non-number as a number"),R(b>=a,"value larger than maximum allowed value"),R(a>=c,"value smaller than minimum allowed value"),R(Math.floor(a)===a,"value has a fractional component")}function Q(a,b,c){R("number"==typeof a,"cannot write a non-number as a number"),R(b>=a,"value larger than maximum allowed value"),R(a>=c,"value smaller than minimum allowed value")}function R(a,b){if(!a)throw new Error(b||"Failed assertion")}var S=a("base64-js"),T=a("ieee754");c.Buffer=d,c.SlowBuffer=d,c.INSPECT_MAX_BYTES=50,d.poolSize=8192,d._useTypedArrays=function(){try{var a=new ArrayBuffer(0),b=new Uint8Array(a);return b.foo=function(){return 42},42===b.foo()&&"function"==typeof b.subarray}catch(c){return!1}}(),d.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},d.isBuffer=function(a){return!(null===a||void 0===a||!a._isBuffer)},d.byteLength=function(a,b){var c;switch(a+="",b||"utf8"){case"hex":c=a.length/2;break;case"utf8":case"utf-8":c=I(a).length;break;case"ascii":case"binary":case"raw":c=a.length;break;case"base64":c=L(a).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":c=2*a.length;break;default:throw new Error("Unknown encoding")}return c},d.concat=function(a,b){if(R(F(a),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===a.length)return new d(0);if(1===a.length)return a[0];var c;if("number"!=typeof b)for(b=0,c=0;cl&&(c=l)):c=l,d=String(d||"utf8").toLowerCase();var m;switch(d){case"hex":m=e(this,a,b,c);break;case"utf8":case"utf-8":m=f(this,a,b,c);break;case"ascii":m=g(this,a,b,c);break;case"binary":m=h(this,a,b,c);break;case"base64":m=i(this,a,b,c);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":m=j(this,a,b,c);break;default:throw new Error("Unknown encoding")}return m},d.prototype.toString=function(a,b,c){var d=this;if(a=String(a||"utf8").toLowerCase(),b=Number(b)||0,c=void 0!==c?Number(c):c=d.length,c===b)return"";var e;switch(a){case"hex":e=o(d,b,c);break;case"utf8":case"utf-8":e=l(d,b,c);break;case"ascii":e=m(d,b,c);break;case"binary":e=n(d,b,c);break;case"base64":e=k(d,b,c);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":e=p(d,b,c);break;default:throw new Error("Unknown encoding")}return e},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},d.prototype.copy=function(a,b,c,e){var f=this;if(c||(c=0),e||0===e||(e=this.length),b||(b=0),e!==c&&0!==a.length&&0!==f.length){R(e>=c,"sourceEnd < sourceStart"),R(b>=0&&b=0&&c=0&&e<=f.length,"sourceEnd out of bounds"),e>this.length&&(e=this.length),a.length-bg||!d._useTypedArrays)for(var h=0;g>h;h++)a[h+b]=this[h+c];else a._set(this.subarray(c,c+g),b)}},d.prototype.slice=function(a,b){var c=this.length;if(a=D(a,c,0),b=D(b,c,c),d._useTypedArrays)return d._augment(this.subarray(a,b));for(var e=b-a,f=new d(e,void 0,!0),g=0;e>g;g++)f[g]=this[g+a];return f},d.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},d.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},d.prototype.readUInt8=function(a,b){return b||(R(void 0!==a&&null!==a,"missing offset"),R(a=this.length?void 0:this[a]},d.prototype.readUInt16LE=function(a,b){return q(this,a,!0,b)},d.prototype.readUInt16BE=function(a,b){return q(this,a,!1,b)},d.prototype.readUInt32LE=function(a,b){return r(this,a,!0,b)},d.prototype.readUInt32BE=function(a,b){return r(this,a,!1,b)},d.prototype.readInt8=function(a,b){if(b||(R(void 0!==a&&null!==a,"missing offset"),R(a=this.length)){var c=128&this[a];return c?-1*(255-this[a]+1):this[a]}},d.prototype.readInt16LE=function(a,b){return s(this,a,!0,b)},d.prototype.readInt16BE=function(a,b){return s(this,a,!1,b)},d.prototype.readInt32LE=function(a,b){return t(this,a,!0,b)},d.prototype.readInt32BE=function(a,b){return t(this,a,!1,b)},d.prototype.readFloatLE=function(a,b){return u(this,a,!0,b)},d.prototype.readFloatBE=function(a,b){return u(this,a,!1,b)},d.prototype.readDoubleLE=function(a,b){return v(this,a,!0,b)},d.prototype.readDoubleBE=function(a,b){return v(this,a,!1,b)},d.prototype.writeUInt8=function(a,b,c){c||(R(void 0!==a&&null!==a,"missing value"),R(void 0!==b&&null!==b,"missing offset"),R(b=this.length||(this[b]=a)},d.prototype.writeUInt16LE=function(a,b,c){w(this,a,b,!0,c)},d.prototype.writeUInt16BE=function(a,b,c){w(this,a,b,!1,c)},d.prototype.writeUInt32LE=function(a,b,c){x(this,a,b,!0,c)},d.prototype.writeUInt32BE=function(a,b,c){x(this,a,b,!1,c)},d.prototype.writeInt8=function(a,b,c){c||(R(void 0!==a&&null!==a,"missing value"),R(void 0!==b&&null!==b,"missing offset"),R(b=this.length||(a>=0?this.writeUInt8(a,b,c):this.writeUInt8(255+a+1,b,c))},d.prototype.writeInt16LE=function(a,b,c){y(this,a,b,!0,c)},d.prototype.writeInt16BE=function(a,b,c){y(this,a,b,!1,c)},d.prototype.writeInt32LE=function(a,b,c){z(this,a,b,!0,c)},d.prototype.writeInt32BE=function(a,b,c){z(this,a,b,!1,c)},d.prototype.writeFloatLE=function(a,b,c){A(this,a,b,!0,c)},d.prototype.writeFloatBE=function(a,b,c){A(this,a,b,!1,c)},d.prototype.writeDoubleLE=function(a,b,c){B(this,a,b,!0,c)},d.prototype.writeDoubleBE=function(a,b,c){B(this,a,b,!1,c)},d.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),"string"==typeof a&&(a=a.charCodeAt(0)),R("number"==typeof a&&!isNaN(a),"value is not a number"),R(c>=b,"end < start"),c!==b&&0!==this.length){R(b>=0&&b=0&&c<=this.length,"end out of bounds");for(var d=b;c>d;d++)this[d]=a}},d.prototype.inspect=function(){for(var a=[],b=this.length,d=0;b>d;d++)if(a[d]=H(this[d]),d===c.INSPECT_MAX_BYTES){a[d+1]="...";break}return""},d.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(d._useTypedArrays)return new d(this).buffer;for(var a=new Uint8Array(this.length),b=0,c=a.length;c>b;b+=1)a[b]=this[b];return a.buffer}throw new Error("Buffer.toArrayBuffer not supported in this browser")};var U=d.prototype;d._augment=function(a){return a._isBuffer=!0,a._get=a.get,a._set=a.set,a.get=U.get,a.set=U.set,a.write=U.write,a.toString=U.toString,a.toLocaleString=U.toString,a.toJSON=U.toJSON,a.copy=U.copy,a.slice=U.slice,a.readUInt8=U.readUInt8,a.readUInt16LE=U.readUInt16LE,a.readUInt16BE=U.readUInt16BE,a.readUInt32LE=U.readUInt32LE,a.readUInt32BE=U.readUInt32BE,a.readInt8=U.readInt8,a.readInt16LE=U.readInt16LE,a.readInt16BE=U.readInt16BE,a.readInt32LE=U.readInt32LE,a.readInt32BE=U.readInt32BE,a.readFloatLE=U.readFloatLE,a.readFloatBE=U.readFloatBE,a.readDoubleLE=U.readDoubleLE,a.readDoubleBE=U.readDoubleBE,a.writeUInt8=U.writeUInt8,a.writeUInt16LE=U.writeUInt16LE,a.writeUInt16BE=U.writeUInt16BE,a.writeUInt32LE=U.writeUInt32LE,a.writeUInt32BE=U.writeUInt32BE,a.writeInt8=U.writeInt8,a.writeInt16LE=U.writeInt16LE,a.writeInt16BE=U.writeInt16BE,a.writeInt32LE=U.writeInt32LE,a.writeInt32BE=U.writeInt32BE,a.writeFloatLE=U.writeFloatLE,a.writeFloatBE=U.writeFloatBE,a.writeDoubleLE=U.writeDoubleLE,a.writeDoubleBE=U.writeDoubleBE,a.fill=U.fill,a.inspect=U.inspect,a.toArrayBuffer=U.toArrayBuffer,a}},{"base64-js":48,ieee754:49}],48:[function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(a){"use strict";function b(a){var b=a.charCodeAt(0);return b===g||b===l?62:b===h||b===m?63:i>b?-1:i+10>b?b-i+26+26:k+26>b?b-k:j+26>b?b-j+26:void 0}function c(a){function c(a){j[l++]=a}var d,e,g,h,i,j;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;g>d;d+=4,e+=3)h=b(a.charAt(d))<<18|b(a.charAt(d+1))<<12|b(a.charAt(d+2))<<6|b(a.charAt(d+3)),c((16711680&h)>>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;g>e;e+=3)f=(a[e]<<16)+(a[e+1]<<8)+a[e+2],i+=c(f);switch(h){case 1:f=a[a.length-1],i+=b(f>>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}("undefined"==typeof c?this.base64js={}:c)},{}],49:[function(a,b,c){c.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],50:[function(a,b,c){function d(a,b){if(a.length%h!==0){var c=a.length+(h-a.length%h);a=g.concat([a,i],c)}for(var d=[],e=b?a.readInt32BE:a.readInt32LE,f=0;fn?b=a(b):b.lengthf;f++)d[f]=54^b[f],e[f]=92^b[f];var g=a(h.concat([d,c]));return a(h.concat([e,g]))}function e(a,b){a=a||"sha1";var c=m[a],e=[],g=0;return c||f("algorithm:",a,"is not yet supported"),{update:function(a){return h.isBuffer(a)||(a=new h(a)),e.push(a),g+=a.length,this},digest:function(a){var f=h.concat(e),g=b?d(c,b,f):c(f);return e=null,a?g.toString(a):g}}}function f(){var a=[].slice.call(arguments).join(" ");throw new Error([a,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}function g(a,b){for(var c in a)b(a[c],c)}var h=a("buffer").Buffer,i=a("./sha"),j=a("./sha256"),k=a("./rng"),l=a("./md5"),m={sha1:i,sha256:j,md5:l},n=64,o=new h(n);o.fill(0),c.createHash=function(a){return e(a)},c.createHmac=function(a,b){return e(a,b)},c.randomBytes=function(a,b){if(!b||!b.call)return new h(k(a));try{b.call(this,void 0,new h(k(a)))}catch(c){b(c)}},g(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],function(a){c[a]=function(){f("sorry,",a,"is not implemented yet")}})},{"./md5":52,"./rng":53,"./sha":54,"./sha256":55,buffer:47}],52:[function(a,b,c){function d(a,b){a[b>>5]|=128<>>9<<4)+14]=b;for(var c=1732584193,d=-271733879,e=-1732584194,k=271733878,l=0;l>16)+(b>>16)+(c>>16);return d<<16|65535&c}function k(a,b){return a<>>32-b}var l=a("./helpers");b.exports=function(a){return l.hash(a,d,16)}},{"./helpers":50}],53:[function(a,b,c){!function(){var a,c,d=this;a=function(a){for(var b,b,c=new Array(a),d=0;a>d;d++)0==(3&d)&&(b=4294967296*Math.random()),c[d]=b>>>((3&d)<<3)&255;return c},d.crypto&&crypto.getRandomValues&&(c=function(a){var b=new Uint8Array(a);return crypto.getRandomValues(b),b}),b.exports=c||a}()},{}],54:[function(a,b,c){function d(a,b){a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;for(var c=Array(80),d=1732584193,i=-271733879,j=-1732584194,k=271733878,l=-1009589776,m=0;ms;s++){16>s?c[s]=a[m+s]:c[s]=h(c[s-3]^c[s-8]^c[s-14]^c[s-16],1);var t=g(g(h(d,5),e(s,i,j,k)),g(g(l,c[s]),f(s)));l=k,k=j,j=h(i,30),i=d,d=t}d=g(d,n),i=g(i,o),j=g(j,p),k=g(k,q),l=g(l,r)}return Array(d,i,j,k,l)}function e(a,b,c,d){return 20>a?b&c|~b&d:40>a?b^c^d:60>a?b&c|b&d|c&d:b^c^d}function f(a){return 20>a?1518500249:40>a?1859775393:60>a?-1894007588:-899497514}function g(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function h(a,b){return a<>>32-b}var i=a("./helpers");b.exports=function(a){return i.hash(a,d,20,!0)}},{"./helpers":50}],55:[function(a,b,c){var d=a("./helpers"),e=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c},f=function(a,b){return a>>>b|a<<32-b},g=function(a,b){return a>>>b},h=function(a,b,c){return a&b^~a&c},i=function(a,b,c){return a&b^a&c^b&c},j=function(a){return f(a,2)^f(a,13)^f(a,22)},k=function(a){return f(a,6)^f(a,11)^f(a,25)},l=function(a){return f(a,7)^f(a,18)^g(a,3)},m=function(a){return f(a,17)^f(a,19)^g(a,10)},n=function(a,b){var c,d,f,g,n,o,p,q,r,s,t,u,v=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),w=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),x=new Array(64);a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;for(var r=0;rs;s++)16>s?x[s]=a[s+r]:x[s]=e(e(e(m(x[s-2]),x[s-7]),l(x[s-15])),x[s-16]),t=e(e(e(e(q,k(n)),h(n,o,p)),v[s]),x[s]),u=e(j(c),i(c,d,f)),q=p,p=o,o=n,n=e(g,t),g=f,f=d,d=c,c=e(t,u);w[0]=e(c,w[0]),w[1]=e(d,w[1]),w[2]=e(f,w[2]),w[3]=e(g,w[3]),w[4]=e(n,w[4]),w[5]=e(o,w[5]),w[6]=e(p,w[6]),w[7]=e(q,w[7])}return w};b.exports=function(a){return d.hash(a,n,32,!0)}},{"./helpers":50}],56:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];c.apply(this,f)}else if(g(c)){for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];for(j=c.slice(),d=j.length,i=0;d>i;i++)j[i].apply(this,f)}return!0},d.prototype.addListener=function(a,b){var c;if(!e(b))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,e(b.listener)?b.listener:b),this._events[a]?g(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,g(this._events[a])&&!this._events[a].warned){var c;c=h(this._maxListeners)?d.defaultMaxListeners:this._maxListeners,c&&c>0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],57:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],58:[function(a,b,c){function d(){}var e=b.exports={};e.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=d,e.addListener=d,e.once=d,e.off=d,e.removeListener=d,e.removeAllListeners=d,e.emit=d,e.binding=function(a){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],59:[function(a,b,c){(function(a){!function(d){function e(a){throw RangeError(H[a])}function f(a,b){for(var c=a.length;c--;)a[c]=b(a[c]);return a}function g(a,b){return f(a.split(G),b).join(".")}function h(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function i(a){return f(a,function(a){var b="";return a>65535&&(a-=65536,b+=K(a>>>10&1023|55296),a=56320|1023&a),b+=K(a)}).join("")}function j(a){return 10>a-48?a-22:26>a-65?a-65:26>a-97?a-97:w}function k(a,b){return a+22+75*(26>a)-((0!=b)<<5)}function l(a,b,c){var d=0;for(a=c?J(a/A):a>>1,a+=J(a/b);a>I*y>>1;d+=w)a=J(a/I);return J(d+(I+1)*a/(a+z))}function m(a){var b,c,d,f,g,h,k,m,n,o,p=[],q=a.length,r=0,s=C,t=B;for(c=a.lastIndexOf(D),0>c&&(c=0),d=0;c>d;++d)a.charCodeAt(d)>=128&&e("not-basic"),p.push(a.charCodeAt(d));for(f=c>0?c+1:0;q>f;){for(g=r,h=1,k=w;f>=q&&e("invalid-input"),m=j(a.charCodeAt(f++)),(m>=w||m>J((v-r)/h))&&e("overflow"),r+=m*h,n=t>=k?x:k>=t+y?y:k-t,!(n>m);k+=w)o=w-n,h>J(v/o)&&e("overflow"),h*=o;b=p.length+1,t=l(r-g,b,0==g),J(r/b)>v-s&&e("overflow"),s+=J(r/b),r%=b,p.splice(r++,0,s)}return i(p)}function n(a){var b,c,d,f,g,i,j,m,n,o,p,q,r,s,t,u=[];for(a=h(a),q=a.length,b=C,c=0,g=B,i=0;q>i;++i)p=a[i],128>p&&u.push(K(p));for(d=f=u.length,f&&u.push(D);q>d;){for(j=v,i=0;q>i;++i)p=a[i],p>=b&&j>p&&(j=p);for(r=d+1,j-b>J((v-c)/r)&&e("overflow"),c+=(j-b)*r,b=j,i=0;q>i;++i)if(p=a[i],b>p&&++c>v&&e("overflow"),p==b){for(m=c,n=w;o=g>=n?x:n>=g+y?y:n-g,!(o>m);n+=w)t=m-o,s=w-o,u.push(K(k(o+t%s,0))),m=J(t/s);u.push(K(k(m,0))),g=l(c,r,d==f),c=0,++d}++c,++b}return u.join("")}function o(a){return g(a,function(a){return E.test(a)?m(a.slice(4).toLowerCase()):a})}function p(a){return g(a,function(a){return F.test(a)?"xn--"+n(a):a})}var q="object"==typeof c&&c,r="object"==typeof b&&b&&b.exports==q&&b,s="object"==typeof a&&a;s.global!==s&&s.window!==s||(d=s);var t,u,v=2147483647,w=36,x=1,y=26,z=38,A=700,B=72,C=128,D="-",E=/^xn--/,F=/[^ -~]/,G=/\x2E|\u3002|\uFF0E|\uFF61/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=w-x,J=Math.floor,K=String.fromCharCode;if(t={version:"1.2.4",ucs2:{decode:h,encode:i},decode:m,encode:n,toASCII:p,toUnicode:o},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return t});else if(q&&!q.nodeType)if(r)r.exports=t;else for(u in t)t.hasOwnProperty(u)&&(q[u]=t[u]);else d.punycode=t}(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],60:[function(a,b,c){"use strict";function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}b.exports=function(a,b,c,f){b=b||"&",c=c||"=";var g={};if("string"!=typeof a||0===a.length)return g;var h=/\+/g;a=a.split(b);var i=1e3;f&&"number"==typeof f.maxKeys&&(i=f.maxKeys);var j=a.length;i>0&&j>i&&(j=i);for(var k=0;j>k;++k){var l,m,n,o,p=a[k].replace(h,"%20"),q=p.indexOf(c);q>=0?(l=p.substr(0,q),m=p.substr(q+1)):(l=p,m=""),n=decodeURIComponent(l),o=decodeURIComponent(m),d(g,n)?e(g[n])?g[n].push(o):g[n]=[g[n],o]:g[n]=o}return g};var e=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}},{}],61:[function(a,b,c){"use strict";function d(a,b){if(a.map)return a.map(b);for(var c=[],d=0;d",'"',"`"," ","\r","\n"," "],q=["{","}","|","\\","^","`"].concat(p),r=["'"].concat(q),s=["%","/","?",";","#"].concat(r),t=["/","?","#"],u=255,v=/^[a-z0-9A-Z_-]{0,63}$/,w=/^([a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},z={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},A=a("querystring");d.prototype.parse=function(a,b,c){if(!i(a))throw new TypeError("Parameter 'url' must be a string, not "+typeof a);var d=a;d=d.trim();var e=n.exec(d);if(e){e=e[0];var f=e.toLowerCase();this.protocol=f,d=d.substr(e.length)}if(c||e||d.match(/^\/\/[^@\/]+@[^@\/]+/)){var g="//"===d.substr(0,2);!g||e&&y[e]||(d=d.substr(2),this.slashes=!0)}if(!y[e]&&(g||e&&!z[e])){for(var h=-1,j=0;jk)&&(h=k)}var l,o;o=-1===h?d.lastIndexOf("@"):d.lastIndexOf("@",h),-1!==o&&(l=d.slice(0,o),d=d.slice(o+1),this.auth=decodeURIComponent(l)),h=-1;for(var j=0;jk)&&(h=k)}-1===h&&(h=d.length),this.host=d.slice(0,h),d=d.slice(h),this.parseHost(),this.hostname=this.hostname||"";var p="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!p)for(var q=this.hostname.split(/\./),j=0,B=q.length;B>j;j++){var C=q[j];if(C&&!C.match(v)){for(var D="",E=0,F=C.length;F>E;E++)D+=C.charCodeAt(E)>127?"x":C[E];if(!D.match(v)){var G=q.slice(0,j),H=q.slice(j+1),I=C.match(w);I&&(G.push(I[1]),H.unshift(I[2])),H.length&&(d="/"+H.join(".")+d),this.hostname=G.join(".");break}}}if(this.hostname.length>u?this.hostname="":this.hostname=this.hostname.toLowerCase(),!p){for(var J=this.hostname.split("."),K=[],j=0;jj;j++){var O=r[j],P=encodeURIComponent(O);P===O&&(P=escape(O)),d=d.split(O).join(P)}var Q=d.indexOf("#");-1!==Q&&(this.hash=d.substr(Q),d=d.slice(0,Q));var R=d.indexOf("?");if(-1!==R?(this.search=d.substr(R),this.query=d.substr(R+1),b&&(this.query=A.parse(this.query)),d=d.slice(0,R)):b&&(this.search="",this.query={}),d&&(this.pathname=d),z[f]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var M=this.pathname||"",L=this.search||"";this.path=M+L}return this.href=this.format(),this},d.prototype.format=function(){var a=this.auth||"";a&&(a=encodeURIComponent(a),a=a.replace(/%3A/i,":"),a+="@");var b=this.protocol||"",c=this.pathname||"",d=this.hash||"",e=!1,f="";this.host?e=a+this.host:this.hostname&&(e=a+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(e+=":"+this.port)),this.query&&j(this.query)&&Object.keys(this.query).length&&(f=A.stringify(this.query));var g=this.search||f&&"?"+f||"";return b&&":"!==b.substr(-1)&&(b+=":"),this.slashes||(!b||z[b])&&e!==!1?(e="//"+(e||""),c&&"/"!==c.charAt(0)&&(c="/"+c)):e||(e=""),d&&"#"!==d.charAt(0)&&(d="#"+d),g&&"?"!==g.charAt(0)&&(g="?"+g),c=c.replace(/[?#]/g,function(a){return encodeURIComponent(a)}),g=g.replace("#","%23"),b+e+c+g+d},d.prototype.resolve=function(a){return this.resolveObject(e(a,!1,!0)).format()},d.prototype.resolveObject=function(a){if(i(a)){var b=new d;b.parse(a,!1,!0),a=b}var c=new d;if(Object.keys(this).forEach(function(a){c[a]=this[a]},this),c.hash=a.hash,""===a.href)return c.href=c.format(),c;if(a.slashes&&!a.protocol)return Object.keys(a).forEach(function(b){"protocol"!==b&&(c[b]=a[b])}),z[c.protocol]&&c.hostname&&!c.pathname&&(c.path=c.pathname="/"),c.href=c.format(),c;if(a.protocol&&a.protocol!==c.protocol){if(!z[a.protocol])return Object.keys(a).forEach(function(b){c[b]=a[b]}),c.href=c.format(),c;if(c.protocol=a.protocol,a.host||y[a.protocol])c.pathname=a.pathname;else{for(var e=(a.pathname||"").split("/");e.length&&!(a.host=e.shift()););a.host||(a.host=""),a.hostname||(a.hostname=""),""!==e[0]&&e.unshift(""),e.length<2&&e.unshift(""),c.pathname=e.join("/")}if(c.search=a.search,c.query=a.query,c.host=a.host||"",c.auth=a.auth,c.hostname=a.hostname||a.host,c.port=a.port,c.pathname||c.search){var f=c.pathname||"",g=c.search||"";c.path=f+g}return c.slashes=c.slashes||a.slashes,c.href=c.format(),c}var h=c.pathname&&"/"===c.pathname.charAt(0),j=a.host||a.pathname&&"/"===a.pathname.charAt(0),m=j||h||c.host&&a.pathname,n=m,o=c.pathname&&c.pathname.split("/")||[],e=a.pathname&&a.pathname.split("/")||[],p=c.protocol&&!z[c.protocol];if(p&&(c.hostname="",c.port=null,c.host&&(""===o[0]?o[0]=c.host:o.unshift(c.host)),c.host="",a.protocol&&(a.hostname=null,a.port=null,a.host&&(""===e[0]?e[0]=a.host:e.unshift(a.host)),a.host=null),m=m&&(""===e[0]||""===o[0])),j)c.host=a.host||""===a.host?a.host:c.host,c.hostname=a.hostname||""===a.hostname?a.hostname:c.hostname,c.search=a.search,c.query=a.query,o=e;else if(e.length)o||(o=[]),o.pop(),o=o.concat(e),c.search=a.search,c.query=a.query;else if(!l(a.search)){if(p){c.hostname=c.host=o.shift();var q=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;q&&(c.auth=q.shift(),c.host=c.hostname=q.shift())}return c.search=a.search,c.query=a.query,k(c.pathname)&&k(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.href=c.format(),c}if(!o.length)return c.pathname=null,c.search?c.path="/"+c.search:c.path=null,c.href=c.format(),c;for(var r=o.slice(-1)[0],s=(c.host||a.host)&&("."===r||".."===r)||""===r,t=0,u=o.length;u>=0;u--)r=o[u],"."==r?o.splice(u,1):".."===r?(o.splice(u,1),t++):t&&(o.splice(u,1),t--);if(!m&&!n)for(;t--;t)o.unshift("..");!m||""===o[0]||o[0]&&"/"===o[0].charAt(0)||o.unshift(""),s&&"/"!==o.join("/").substr(-1)&&o.push("");var v=""===o[0]||o[0]&&"/"===o[0].charAt(0);if(p){c.hostname=c.host=v?"":o.length?o.shift():"";var q=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;q&&(c.auth=q.shift(),c.host=c.hostname=q.shift())}return m=m||c.host&&o.length,m&&!v&&o.unshift(""),o.length?c.pathname=o.join("/"):(c.pathname=null,c.path=null),k(c.pathname)&&k(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.auth=a.auth||c.auth,c.slashes=c.slashes||a.slashes,c.href=c.format(),c},d.prototype.parseHost=function(){var a=this.host,b=o.exec(a);b&&(b=b[0],":"!==b&&(this.port=b.substr(1)),a=a.substr(0,a.length-b.length)),a&&(this.hostname=a)}},{punycode:59,querystring:62}],64:[function(a,b,c){b.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},{}],65:[function(a,b,c){(function(b,d){function e(a,b){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(0>d)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},c.deprecate=function(a,e){function f(){if(!g){if(b.throwDeprecation)throw new Error(e);b.traceDeprecation?console.trace(e):console.error(e),g=!0}return a.apply(this,arguments)}if(v(d.process))return function(){return c.deprecate(a,e).apply(this,arguments)};if(b.noDeprecation===!0)return a;var g=!1;return f};var H,I={};c.debuglog=function(a){if(v(H)&&(H=b.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var d=b.pid;I[a]=function(){var b=c.format.apply(c,arguments);console.error("%s %d: %s",a,d,b)}}else I[a]=function(){};return I[a]},c.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},c.isArray=o,c.isBoolean=p,c.isNull=q,c.isNullOrUndefined=r,c.isNumber=s,c.isString=t,c.isSymbol=u,c.isUndefined=v,c.isRegExp=w,c.isObject=x,c.isDate=y,c.isError=z,c.isFunction=A,c.isPrimitive=B,c.isBuffer=a("./support/isBuffer");var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];c.log=function(){console.log("%s - %s",E(),c.format.apply(c,arguments))},c.inherits=a("inherits"),c._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(this,a("FWaASH"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":64,FWaASH:58,inherits:57}],66:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing attribute name of element "+a.name);if(null==c)throw new Error("Missing attribute value for attribute "+b+" of element "+a.name);this.name=this.stringify.attName(b),this.value=this.stringify.attValue(c)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){return" "+this.name+'="'+this.value+'"'},a}()}).call(this)},{"lodash/object/create":125}],67:[function(a,b,c){(function(){var c,d,e,f,g;g=a("./XMLStringifier"),d=a("./XMLDeclaration"),e=a("./XMLDocType"),f=a("./XMLElement"),b.exports=c=function(){function a(a,b){var c,d;if(null==a)throw new Error("Root element needs a name");null==b&&(b={}),this.options=b,this.stringify=new g(b),d=new f(this,"doc"),c=d.element(a),c.isRoot=!0,c.documentObject=this,this.rootObject=c,b.headless||(c.declaration(b),null==b.pubID&&null==b.sysID||c.doctype(b))}return a.prototype.root=function(){return this.rootObject},a.prototype.end=function(a){return this.toString(a)},a.prototype.toString=function(a){var b,c,d,e,f,g,h,i;return e=(null!=a?a.pretty:void 0)||!1,b=null!=(g=null!=a?a.indent:void 0)?g:" ",d=null!=(h=null!=a?a.offset:void 0)?h:0,c=null!=(i=null!=a?a.newline:void 0)?i:"\n",f="",null!=this.xmldec&&(f+=this.xmldec.toString(a)),null!=this.doctype&&(f+=this.doctype.toString(a)),f+=this.rootObject.toString(a),e&&f.slice(-c.length)===c&&(f=f.slice(0,-c.length)),f},a}()}).call(this)},{"./XMLDeclaration":74,"./XMLDocType":75,"./XMLElement":76,"./XMLStringifier":80}],68:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":77,"lodash/object/create":125}],69:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing comment text");this.text=this.stringify.comment(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":77,"lodash/object/create":125}],70:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c,d,e,f){if(this.stringify=a.stringify,null==b)throw new Error("Missing DTD element name");if(null==c)throw new Error("Missing DTD attribute name");if(!d)throw new Error("Missing DTD attribute type");if(!e)throw new Error("Missing DTD attribute default");if(0!==e.indexOf("#")&&(e="#"+e),!e.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT"); +if(f&&!e.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(b),this.attributeName=this.stringify.attName(c),this.attributeType=this.stringify.dtdAttType(d),this.defaultValue=this.stringify.dtdAttDefault(f),this.defaultValueType=e}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":125}],71:[function(a,b,c){(function(){var c,d,e;d=a("lodash/object/create"),e=a("lodash/lang/isArray"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing DTD element name");c||(c="(#PCDATA)"),e(c)&&(c="("+c.join(",")+")"),this.name=this.stringify.eleName(b),this.value=this.stringify.dtdElementValue(c)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/lang/isArray":117,"lodash/object/create":125}],72:[function(a,b,c){(function(){var c,d,e;d=a("lodash/object/create"),e=a("lodash/lang/isObject"),b.exports=c=function(){function a(a,b,c,d){if(this.stringify=a.stringify,null==c)throw new Error("Missing entity name");if(null==d)throw new Error("Missing entity value");if(this.pe=!!b,this.name=this.stringify.eleName(c),e(d)){if(!d.pubID&&!d.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(d.pubID&&!d.sysID)throw new Error("System identifier is required for a public external entity");if(null!=d.pubID&&(this.pubID=this.stringify.dtdPubID(d.pubID)),null!=d.sysID&&(this.sysID=this.stringify.dtdSysID(d.sysID)),null!=d.nData&&(this.nData=this.stringify.dtdNData(d.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(d)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/lang/isObject":121,"lodash/object/create":125}],73:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing notation name");if(!c.pubID&&!c.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(b),null!=c.pubID&&(this.pubID=this.stringify.dtdPubID(c.pubID)),null!=c.sysID&&(this.sysID=this.stringify.dtdSysID(c.sysID))}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":125}],74:[function(a,b,c){(function(){var c,d,e,f,g=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},h={}.hasOwnProperty;e=a("lodash/object/create"),f=a("lodash/lang/isObject"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c,d,e){var g;b.__super__.constructor.call(this,a),f(c)&&(g=c,c=g.version,d=g.encoding,e=g.standalone),c||(c="1.0"),null!=c&&(this.version=this.stringify.xmlVersion(c)),null!=d&&(this.encoding=this.stringify.xmlEncoding(d)),null!=e&&(this.standalone=this.stringify.xmlStandalone(e))}return g(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":77,"lodash/lang/isObject":121,"lodash/object/create":125}],75:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l;k=a("lodash/object/create"),l=a("lodash/lang/isObject"),c=a("./XMLCData"),d=a("./XMLComment"),e=a("./XMLDTDAttList"),g=a("./XMLDTDEntity"),f=a("./XMLDTDElement"),h=a("./XMLDTDNotation"),j=a("./XMLProcessingInstruction"),b.exports=i=function(){function a(a,b,c){var d,e;this.documentObject=a,this.stringify=this.documentObject.stringify,this.children=[],l(b)&&(d=b,b=d.pubID,c=d.sysID),null==c&&(e=[b,c],c=e[0],b=e[1]),null!=b&&(this.pubID=this.stringify.dtdPubID(b)),null!=c&&(this.sysID=this.stringify.dtdSysID(c))}return a.prototype.clone=function(){return k(a.prototype,this)},a.prototype.element=function(a,b){var c;return c=new f(this,a,b),this.children.push(c),this},a.prototype.attList=function(a,b,c,d,f){var g;return g=new e(this,a,b,c,d,f),this.children.push(g),this},a.prototype.entity=function(a,b){var c;return c=new g(this,!1,a,b),this.children.push(c),this},a.prototype.pEntity=function(a,b){var c;return c=new g(this,!0,a,b),this.children.push(c),this},a.prototype.notation=function(a,b){var c;return c=new h(this,a,b),this.children.push(c),this},a.prototype.cdata=function(a){var b;return b=new c(this,a),this.children.push(b),this},a.prototype.comment=function(a){var b;return b=new d(this,a),this.children.push(b),this},a.prototype.instruction=function(a,b){var c;return c=new j(this,a,b),this.children.push(c),this},a.prototype.root=function(){return this.documentObject.root()},a.prototype.document=function(){return this.documentObject},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(i=(null!=a?a.pretty:void 0)||!1,e=null!=(k=null!=a?a.indent:void 0)?k:" ",h=null!=(l=null!=a?a.offset:void 0)?l:0,g=null!=(m=null!=a?a.newline:void 0)?m:"\n",b||(b=0),o=new Array(b+h+1).join(e),j="",i&&(j+=o),j+="0){for(j+=" [",i&&(j+=g),n=this.children,d=0,f=n.length;f>d;d++)c=n[d],j+=c.toString(a,b+1);j+="]"}return j+=">",i&&(j+=g),j},a.prototype.ele=function(a,b){return this.element(a,b)},a.prototype.att=function(a,b,c,d,e){return this.attList(a,b,c,d,e)},a.prototype.ent=function(a,b){return this.entity(a,b)},a.prototype.pent=function(a,b){return this.pEntity(a,b)},a.prototype.not=function(a,b){return this.notation(a,b)},a.prototype.dat=function(a){return this.cdata(a)},a.prototype.com=function(a){return this.comment(a)},a.prototype.ins=function(a,b){return this.instruction(a,b)},a.prototype.up=function(){return this.root()},a.prototype.doc=function(){return this.document()},a}()}).call(this)},{"./XMLCData":68,"./XMLComment":69,"./XMLDTDAttList":70,"./XMLDTDElement":71,"./XMLDTDEntity":72,"./XMLDTDNotation":73,"./XMLProcessingInstruction":78,"lodash/lang/isObject":121,"lodash/object/create":125}],76:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l=function(a,b){function c(){this.constructor=a}for(var d in b)m.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},m={}.hasOwnProperty;g=a("lodash/object/create"),k=a("lodash/lang/isObject"),i=a("lodash/lang/isArray"),j=a("lodash/lang/isFunction"),h=a("lodash/collection/every"),e=a("./XMLNode"),c=a("./XMLAttribute"),f=a("./XMLProcessingInstruction"),b.exports=d=function(a){function b(a,c,d){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing element name");this.name=this.stringify.eleName(c),this.children=[],this.instructions=[],this.attributes={},null!=d&&this.attribute(d)}return l(b,a),b.prototype.clone=function(){var a,c,d,e,f,h,i,j;d=g(b.prototype,this),d.isRoot&&(d.documentObject=null),d.attributes={},i=this.attributes;for(c in i)m.call(i,c)&&(a=i[c],d.attributes[c]=a.clone());for(d.instructions=[],j=this.instructions,e=0,f=j.length;f>e;e++)h=j[e],d.instructions.push(h.clone());return d.children=[],this.children.forEach(function(a){var b;return b=a.clone(),b.parent=d,d.children.push(b)}),d},b.prototype.attribute=function(a,b){var d,e;if(null!=a&&(a=a.valueOf()),k(a))for(d in a)m.call(a,d)&&(e=a[d],this.attribute(d,e));else j(b)&&(b=b.apply()),this.options.skipNullAttributes&&null==b||(this.attributes[a]=new c(this,a,b));return this},b.prototype.removeAttribute=function(a){var b,c,d;if(null==a)throw new Error("Missing attribute name");if(a=a.valueOf(),i(a))for(c=0,d=a.length;d>c;c++)b=a[c],delete this.attributes[b];else delete this.attributes[a];return this},b.prototype.instruction=function(a,b){var c,d,e,g,h;if(null!=a&&(a=a.valueOf()),null!=b&&(b=b.valueOf()),i(a))for(c=0,h=a.length;h>c;c++)d=a[c],this.instruction(d);else if(k(a))for(d in a)m.call(a,d)&&(e=a[d],this.instruction(d,e));else j(b)&&(b=b.apply()),g=new f(this,a,b),this.instructions.push(g);return this},b.prototype.toString=function(a,b){var c,d,e,f,g,i,j,k,l,n,o,p,q,r,s,t,u,v,w,x;for(p=(null!=a?a.pretty:void 0)||!1,f=null!=(r=null!=a?a.indent:void 0)?r:" ",o=null!=(s=null!=a?a.offset:void 0)?s:0,n=null!=(t=null!=a?a.newline:void 0)?t:"\n",b||(b=0),x=new Array(b+o+1).join(f),q="",u=this.instructions,e=0,j=u.length;j>e;e++)g=u[e],q+=g.toString(a,b+1);p&&(q+=x),q+="<"+this.name,v=this.attributes;for(l in v)m.call(v,l)&&(c=v[l],q+=c.toString(a));if(0===this.children.length||h(this.children,function(a){return""===a.value}))q+="/>",p&&(q+=n);else if(p&&1===this.children.length&&null!=this.children[0].value)q+=">",q+=this.children[0].value,q+="",q+=n;else{for(q+=">",p&&(q+=n),w=this.children,i=0,k=w.length;k>i;i++)d=w[i],q+=d.toString(a,b+1);p&&(q+=x),q+="",p&&(q+=n)}return q},b.prototype.att=function(a,b){return this.attribute(a,b)},b.prototype.ins=function(a,b){return this.instruction(a,b)},b.prototype.a=function(a,b){return this.attribute(a,b)},b.prototype.i=function(a,b){return this.instruction(a,b)},b}(e)}).call(this)},{"./XMLAttribute":66,"./XMLNode":77,"./XMLProcessingInstruction":78,"lodash/collection/every":83,"lodash/lang/isArray":117,"lodash/lang/isFunction":119,"lodash/lang/isObject":121,"lodash/object/create":125}],77:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l,m,n,o={}.hasOwnProperty;n=a("lodash/lang/isObject"),k=a("lodash/lang/isArray"),m=a("lodash/lang/isFunction"),l=a("lodash/lang/isEmpty"),g=null,c=null,d=null,e=null,f=null,i=null,j=null,b.exports=h=function(){function b(b){this.parent=b,this.options=this.parent.options,this.stringify=this.parent.stringify,null===g&&(g=a("./XMLElement"),c=a("./XMLCData"),d=a("./XMLComment"),e=a("./XMLDeclaration"),f=a("./XMLDocType"),i=a("./XMLRaw"),j=a("./XMLText"))}return b.prototype.clone=function(){throw new Error("Cannot clone generic XMLNode")},b.prototype.element=function(a,b,c){var d,e,f,g,h,i,j;if(g=null,null==b&&(b={}),b=b.valueOf(),n(b)||(i=[b,c],c=i[0],b=i[1]),null!=a&&(a=a.valueOf()),k(a))for(e=0,h=a.length;h>e;e++)d=a[e],g=this.element(d);else if(m(a))g=this.element(a.apply());else if(n(a))for(f in a)o.call(a,f)&&(j=a[f],m(j)&&(j=j.apply()),n(j)&&l(j)&&(j=null),!this.options.ignoreDecorators&&this.stringify.convertAttKey&&0===f.indexOf(this.stringify.convertAttKey)?g=this.attribute(f.substr(this.stringify.convertAttKey.length),j):!this.options.ignoreDecorators&&this.stringify.convertPIKey&&0===f.indexOf(this.stringify.convertPIKey)?g=this.instruction(f.substr(this.stringify.convertPIKey.length),j):n(j)?!this.options.ignoreDecorators&&this.stringify.convertListKey&&0===f.indexOf(this.stringify.convertListKey)&&k(j)?g=this.element(j):(g=this.element(f),g.element(j)):g=this.element(f,j));else g=!this.options.ignoreDecorators&&this.stringify.convertTextKey&&0===a.indexOf(this.stringify.convertTextKey)?this.text(c):!this.options.ignoreDecorators&&this.stringify.convertCDataKey&&0===a.indexOf(this.stringify.convertCDataKey)?this.cdata(c):!this.options.ignoreDecorators&&this.stringify.convertCommentKey&&0===a.indexOf(this.stringify.convertCommentKey)?this.comment(c):!this.options.ignoreDecorators&&this.stringify.convertRawKey&&0===a.indexOf(this.stringify.convertRawKey)?this.raw(c):this.node(a,b,c);if(null==g)throw new Error("Could not create any elements with: "+a);return g},b.prototype.insertBefore=function(a,b,c){var d,e,f;if(this.isRoot)throw new Error("Cannot insert elements at root level");return e=this.parent.children.indexOf(this),f=this.parent.children.splice(e),d=this.parent.element(a,b,c),Array.prototype.push.apply(this.parent.children,f),d},b.prototype.insertAfter=function(a,b,c){var d,e,f;if(this.isRoot)throw new Error("Cannot insert elements at root level");return e=this.parent.children.indexOf(this),f=this.parent.children.splice(e+1),d=this.parent.element(a,b,c),Array.prototype.push.apply(this.parent.children,f),d},b.prototype.remove=function(){var a,b;if(this.isRoot)throw new Error("Cannot remove the root element");return a=this.parent.children.indexOf(this),[].splice.apply(this.parent.children,[a,a-a+1].concat(b=[])),b,this.parent},b.prototype.node=function(a,b,c){var d,e;return null!=a&&(a=a.valueOf()),null==b&&(b={}),b=b.valueOf(),n(b)||(e=[b,c],c=e[0],b=e[1]),d=new g(this,a,b),null!=c&&d.text(c),this.children.push(d),d},b.prototype.text=function(a){var b;return b=new j(this,a),this.children.push(b),this},b.prototype.cdata=function(a){var b;return b=new c(this,a),this.children.push(b),this},b.prototype.comment=function(a){var b;return b=new d(this,a),this.children.push(b),this},b.prototype.raw=function(a){var b;return b=new i(this,a),this.children.push(b),this},b.prototype.declaration=function(a,b,c){var d,f;return d=this.document(),f=new e(d,a,b,c),d.xmldec=f,d.root()},b.prototype.doctype=function(a,b){var c,d;return c=this.document(),d=new f(c,a,b),c.doctype=d,d},b.prototype.up=function(){if(this.isRoot)throw new Error("The root node has no parent. Use doc() if you need to get the document object.");return this.parent},b.prototype.root=function(){var a;if(this.isRoot)return this;for(a=this.parent;!a.isRoot;)a=a.parent;return a},b.prototype.document=function(){return this.root().documentObject},b.prototype.end=function(a){return this.document().toString(a)},b.prototype.prev=function(){var a;if(this.isRoot)throw new Error("Root node has no siblings");if(a=this.parent.children.indexOf(this),1>a)throw new Error("Already at the first node");return this.parent.children[a-1]},b.prototype.next=function(){var a;if(this.isRoot)throw new Error("Root node has no siblings");if(a=this.parent.children.indexOf(this),-1===a||a===this.parent.children.length-1)throw new Error("Already at the last node");return this.parent.children[a+1]},b.prototype.importXMLBuilder=function(a){var b;return b=a.root().clone(),b.parent=this,b.isRoot=!1,this.children.push(b),this},b.prototype.ele=function(a,b,c){return this.element(a,b,c)},b.prototype.nod=function(a,b,c){return this.node(a,b,c)},b.prototype.txt=function(a){return this.text(a)},b.prototype.dat=function(a){return this.cdata(a)},b.prototype.com=function(a){return this.comment(a)},b.prototype.doc=function(){return this.document()},b.prototype.dec=function(a,b,c){return this.declaration(a,b,c)},b.prototype.dtd=function(a,b){return this.doctype(a,b)},b.prototype.e=function(a,b,c){return this.element(a,b,c)},b.prototype.n=function(a,b,c){return this.node(a,b,c)},b.prototype.t=function(a){return this.text(a)},b.prototype.d=function(a){return this.cdata(a)},b.prototype.c=function(a){return this.comment(a)},b.prototype.r=function(a){return this.raw(a)},b.prototype.u=function(){return this.up()},b}()}).call(this)},{"./XMLCData":68,"./XMLComment":69,"./XMLDeclaration":74,"./XMLDocType":75,"./XMLElement":76,"./XMLRaw":79,"./XMLText":81,"lodash/lang/isArray":117,"lodash/lang/isEmpty":118,"lodash/lang/isFunction":119,"lodash/lang/isObject":121}],78:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing instruction target");this.target=this.stringify.insTarget(b),c&&(this.value=this.stringify.insValue(c))}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":125}],79:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),c=a("./XMLNode"),b.exports=d=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing raw text");this.value=this.stringify.raw(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+=this.value,f&&(g+=d),g},b}(c)}).call(this)},{"./XMLNode":77,"lodash/object/create":125}],80:[function(a,b,c){(function(){var a,c=function(a,b){return function(){return a.apply(b,arguments)}},d={}.hasOwnProperty;b.exports=a=function(){function a(a){this.assertLegalChar=c(this.assertLegalChar,this);var b,e,f;this.allowSurrogateChars=null!=a?a.allowSurrogateChars:void 0,e=(null!=a?a.stringify:void 0)||{};for(b in e)d.call(e,b)&&(f=e[b],this[b]=f)}return a.prototype.eleName=function(a){return a=""+a||"",this.assertLegalChar(a)},a.prototype.eleText=function(a){return a=""+a||"",this.assertLegalChar(this.elEscape(a))},a.prototype.cdata=function(a){if(a=""+a||"",a.match(/]]>/))throw new Error("Invalid CDATA text: "+a);return this.assertLegalChar(a)},a.prototype.comment=function(a){if(a=""+a||"",a.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+a);return this.assertLegalChar(a)},a.prototype.raw=function(a){return""+a||""},a.prototype.attName=function(a){return""+a||""},a.prototype.attValue=function(a){return a=""+a||"",this.attEscape(a)},a.prototype.insTarget=function(a){return""+a||""},a.prototype.insValue=function(a){if(a=""+a||"",a.match(/\?>/))throw new Error("Invalid processing instruction value: "+a);return a},a.prototype.xmlVersion=function(a){if(a=""+a||"",!a.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+a);return a},a.prototype.xmlEncoding=function(a){if(a=""+a||"",!a.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/))throw new Error("Invalid encoding: "+a);return a},a.prototype.xmlStandalone=function(a){return a?"yes":"no"},a.prototype.dtdPubID=function(a){return""+a||""},a.prototype.dtdSysID=function(a){return""+a||""},a.prototype.dtdElementValue=function(a){return""+a||""},a.prototype.dtdAttType=function(a){return""+a||""},a.prototype.dtdAttDefault=function(a){return null!=a?""+a||"":a},a.prototype.dtdEntityValue=function(a){return""+a||""},a.prototype.dtdNData=function(a){return""+a||""},a.prototype.convertAttKey="@",a.prototype.convertPIKey="?",a.prototype.convertTextKey="#text",a.prototype.convertCDataKey="#cdata",a.prototype.convertCommentKey="#comment",a.prototype.convertRawKey="#raw",a.prototype.convertListKey="#list",a.prototype.assertLegalChar=function(a){var b,c;if(b=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,c=a.match(b))throw new Error("Invalid character ("+c+") in string: "+a+" at index "+c.index);return a},a.prototype.elEscape=function(a){return a.replace(/&/g,"&").replace(//g,">").replace(/\r/g," ")},a.prototype.attEscape=function(a){return a.replace(/&/g,"&").replace(/c||null==d)return d;var g=b[c-2],h=b[c-1],i=b[3];c>3&&"function"==typeof g?(g=e(g,h,5),c-=2):(g=c>2&&"function"==typeof h?h:null,c-=g?1:0),i&&f(b[1],b[2],i)&&(g=3==c?null:g,c=2);for(var j=0;++ji))return!1;for(;k&&++h-1&&a%1==0&&b>a}var e=Math.pow(2,53)-1;b.exports=d},{}],109:[function(a,b,c){function d(a,b,c){if(!g(c))return!1;var d=typeof b;if("number"==d)var h=c.length,i=f(h)&&e(b,h);else i="string"==d&&b in c;if(i){var j=c[b];return a===a?a===j:j!==j}return!1}var e=a("./isIndex"),f=a("./isLength"),g=a("../lang/isObject");b.exports=d},{"../lang/isObject":121,"./isIndex":108,"./isLength":110}],110:[function(a,b,c){function d(a){return"number"==typeof a&&a>-1&&a%1==0&&e>=a}var e=Math.pow(2,53)-1;b.exports=d},{}],111:[function(a,b,c){function d(a){return a&&"object"==typeof a||!1}b.exports=d},{}],112:[function(a,b,c){function d(a){return a===a&&(0===a?1/a>0:!e(a))}var e=a("../lang/isObject");b.exports=d},{"../lang/isObject":121}],113:[function(a,b,c){(function(c){var d=a("../lang/isNative"),e=d(e=c.WeakMap)&&e,f=e&&new e;b.exports=f}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lang/isNative":120}],114:[function(a,b,c){function d(a){for(var b=i(a),c=b.length,d=c&&a.length,k=d&&h(d)&&(f(a)||j.nonEnumArgs&&e(a)),m=-1,n=[];++m0;++d `0`",state:"success"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},BundleTaskComplete:{delay:15,operation:"DescribeBundleTasks",maxAttempts:40,acceptors:[{expected:"complete",matcher:"pathAll",state:"success",argument:"BundleTasks[].State"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"BundleTasks[].State"}]},ConversionTaskCancelled:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"cancelled",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"}]},ConversionTaskCompleted:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"},{expected:"cancelled",matcher:"pathAny",state:"failure",argument:"ConversionTasks[].State"},{expected:"cancelling",matcher:"pathAny",state:"failure",argument:"ConversionTasks[].State"}]},ConversionTaskDeleted:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"}]},CustomerGatewayAvailable:{delay:15,operation:"DescribeCustomerGateways",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"CustomerGateways[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"CustomerGateways[].State"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"CustomerGateways[].State"}]},ExportTaskCancelled:{delay:15,operation:"DescribeExportTasks",maxAttempts:40,acceptors:[{expected:"cancelled",matcher:"pathAll",state:"success",argument:"ExportTasks[].State"}]},ExportTaskCompleted:{delay:15,operation:"DescribeExportTasks",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"ExportTasks[].State"}]},ImageExists:{operation:"DescribeImages",maxAttempts:40,delay:15,acceptors:[{matcher:"path",expected:!0,argument:"length(Images[]) > `0`",state:"success"},{matcher:"error",expected:"InvalidAMIID.NotFound",state:"retry"}]},ImageAvailable:{operation:"DescribeImages",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"Images[].State",expected:"available"},{state:"failure",matcher:"pathAny",argument:"Images[].State",expected:"failed"}]},InstanceRunning:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"running",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"shutting-down",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},InstanceStatusOk:{operation:"DescribeInstanceStatus",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"InstanceStatuses[].InstanceStatus.Status",expected:"ok"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"}]},KeyPairExists:{operation:"DescribeKeyPairs",delay:5,maxAttempts:6,acceptors:[{expected:!0,matcher:"pathAll",state:"success",argument:"length(KeyPairs[].KeyName) > `0`"},{expected:"InvalidKeyPair.NotFound",matcher:"error",state:"retry"}]},NatGatewayAvailable:{operation:"DescribeNatGateways",delay:15,maxAttempts:40,acceptors:[{state:"success",matcher:"pathAll",argument:"NatGateways[].State",expected:"available"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"failed"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"deleting"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"deleted"},{state:"retry",matcher:"error",expected:"NatGatewayNotFound"}]},NetworkInterfaceAvailable:{operation:"DescribeNetworkInterfaces",delay:20,maxAttempts:10,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"NetworkInterfaces[].Status"},{expected:"InvalidNetworkInterfaceID.NotFound",matcher:"error",state:"failure"}]},PasswordDataAvailable:{operation:"GetPasswordData",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"path",argument:"length(PasswordData) > `0`",expected:!0}]},SnapshotCompleted:{delay:15,operation:"DescribeSnapshots",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"Snapshots[].State"}]},SpotInstanceRequestFulfilled:{operation:"DescribeSpotInstanceRequests",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"SpotInstanceRequests[].Status.Code",expected:"fulfilled"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"schedule-expired"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"canceled-before-fulfillment"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"bad-parameters"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"system-error"}]},SubnetAvailable:{delay:15,operation:"DescribeSubnets",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Subnets[].State"}]},SystemStatusOk:{operation:"DescribeInstanceStatus",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"InstanceStatuses[].SystemStatus.Status",expected:"ok"}]},VolumeAvailable:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Volumes[].State"}]},VolumeDeleted:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{matcher:"error",expected:"InvalidVolume.NotFound",state:"success"}]},VolumeInUse:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"in-use",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Volumes[].State"}]},VpcAvailable:{delay:15,operation:"DescribeVpcs",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Vpcs[].State"}]},VpnConnectionAvailable:{delay:15,operation:"DescribeVpnConnections",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"VpnConnections[].State"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"}]},VpnConnectionDeleted:{delay:15,operation:"DescribeVpnConnections",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"VpnConnections[].State"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"}]},VpcPeeringConnectionExists:{delay:15,operation:"DescribeVpcPeeringConnections",maxAttempts:40,acceptors:[{matcher:"status",expected:200,state:"success"},{matcher:"error",expected:"InvalidVpcPeeringConnectionID.NotFound",state:"retry"}]}}},a.apiLoader.services.ecr={},a.ECR=a.Service.defineService("ecr",["2015-09-21"]),a.apiLoader.services.ecr["2015-09-21"]={version:"2.0",metadata:{apiVersion:"2015-09-21",endpointPrefix:"ecr",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon ECR",serviceFullName:"Amazon EC2 Container Registry",signatureVersion:"v4",targetPrefix:"AmazonEC2ContainerRegistry_V20150921"},operations:{BatchCheckLayerAvailability:{input:{type:"structure",required:["repositoryName","layerDigests"],members:{registryId:{},repositoryName:{},layerDigests:{type:"list",member:{}}}},output:{type:"structure",members:{layers:{type:"list",member:{type:"structure",members:{layerDigest:{},layerAvailability:{},layerSize:{type:"long"}}}},failures:{type:"list",member:{type:"structure",members:{layerDigest:{},failureCode:{},failureReason:{}}}}}},http:{}},BatchDeleteImage:{input:{type:"structure",required:["repositoryName","imageIds"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Sh"}}},output:{type:"structure",members:{imageIds:{shape:"Sh"},failures:{shape:"Sm"}}},http:{}},BatchGetImage:{input:{type:"structure",required:["repositoryName","imageIds"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Sh"}}},output:{type:"structure",members:{images:{type:"list",member:{shape:"St"}},failures:{shape:"Sm"}}},http:{}},CompleteLayerUpload:{input:{type:"structure",required:["repositoryName","uploadId","layerDigests"],members:{registryId:{},repositoryName:{},uploadId:{},layerDigests:{type:"list",member:{}}}},output:{type:"structure",members:{registryId:{},repositoryName:{},uploadId:{},layerDigest:{}}},http:{}},CreateRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{repository:{shape:"S11"}}},http:{}},DeleteRepository:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},force:{type:"boolean"}}},output:{type:"structure",members:{repository:{shape:"S11"}}},http:{}},DeleteRepositoryPolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}},http:{}},DescribeRepositories:{input:{type:"structure",members:{registryId:{},repositoryNames:{type:"list",member:{}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{repositories:{type:"list",member:{shape:"S11"}},nextToken:{}}},http:{}},GetAuthorizationToken:{input:{type:"structure",members:{registryIds:{type:"list",member:{}}}},output:{type:"structure",members:{authorizationData:{type:"list",member:{type:"structure",members:{authorizationToken:{},expiresAt:{ +type:"timestamp"},proxyEndpoint:{}}}}}},http:{}},GetDownloadUrlForLayer:{input:{type:"structure",required:["repositoryName","layerDigest"],members:{registryId:{},repositoryName:{},layerDigest:{}}},output:{type:"structure",members:{downloadUrl:{},layerDigest:{}}},http:{}},GetRepositoryPolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}},http:{}},InitiateLayerUpload:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{uploadId:{},partSize:{type:"long"}}},http:{}},ListImages:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{imageIds:{shape:"Sh"},nextToken:{}}},http:{}},PutImage:{input:{type:"structure",required:["repositoryName","imageManifest"],members:{registryId:{},repositoryName:{},imageManifest:{}}},output:{type:"structure",members:{image:{shape:"St"}}},http:{}},SetRepositoryPolicy:{input:{type:"structure",required:["repositoryName","policyText"],members:{registryId:{},repositoryName:{},policyText:{},force:{type:"boolean"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}},http:{}},UploadLayerPart:{input:{type:"structure",required:["repositoryName","uploadId","partFirstByte","partLastByte","layerPartBlob"],members:{registryId:{},repositoryName:{},uploadId:{},partFirstByte:{type:"long"},partLastByte:{type:"long"},layerPartBlob:{type:"blob"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},uploadId:{},lastByteReceived:{type:"long"}}},http:{}}},shapes:{Sh:{type:"list",member:{shape:"Si"}},Si:{type:"structure",members:{imageDigest:{},imageTag:{}}},Sm:{type:"list",member:{type:"structure",members:{imageId:{shape:"Si"},failureCode:{},failureReason:{}}}},St:{type:"structure",members:{registryId:{},repositoryName:{},imageId:{shape:"Si"},imageManifest:{}}},S11:{type:"structure",members:{repositoryArn:{},registryId:{},repositoryName:{},repositoryUri:{}}}}},a.apiLoader.services.ecs={},a.ECS=a.Service.defineService("ecs",["2014-11-13"]),a.apiLoader.services.ecs["2014-11-13"]={version:"2.0",metadata:{apiVersion:"2014-11-13",endpointPrefix:"ecs",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon ECS",serviceFullName:"Amazon EC2 Container Service",signatureVersion:"v4",targetPrefix:"AmazonEC2ContainerServiceV20141113"},operations:{CreateCluster:{input:{type:"structure",members:{clusterName:{}}},output:{type:"structure",members:{cluster:{shape:"S4"}}},http:{}},CreateService:{input:{type:"structure",required:["serviceName","taskDefinition","desiredCount"],members:{cluster:{},serviceName:{},taskDefinition:{},loadBalancers:{shape:"S7"},desiredCount:{type:"integer"},clientToken:{},role:{},deploymentConfiguration:{shape:"Sa"}}},output:{type:"structure",members:{service:{shape:"Sc"}}},http:{}},DeleteCluster:{input:{type:"structure",required:["cluster"],members:{cluster:{}}},output:{type:"structure",members:{cluster:{shape:"S4"}}},http:{}},DeleteService:{input:{type:"structure",required:["service"],members:{cluster:{},service:{}}},output:{type:"structure",members:{service:{shape:"Sc"}}},http:{}},DeregisterContainerInstance:{input:{type:"structure",required:["containerInstance"],members:{cluster:{},containerInstance:{},force:{type:"boolean"}}},output:{type:"structure",members:{containerInstance:{shape:"Sp"}}},http:{}},DeregisterTaskDefinition:{input:{type:"structure",required:["taskDefinition"],members:{taskDefinition:{}}},output:{type:"structure",members:{taskDefinition:{shape:"S12"}}},http:{}},DescribeClusters:{input:{type:"structure",members:{clusters:{shape:"Sv"}}},output:{type:"structure",members:{clusters:{type:"list",member:{shape:"S4"}},failures:{shape:"S1v"}}},http:{}},DescribeContainerInstances:{input:{type:"structure",required:["containerInstances"],members:{cluster:{},containerInstances:{shape:"Sv"}}},output:{type:"structure",members:{containerInstances:{type:"list",member:{shape:"Sp"}},failures:{shape:"S1v"}}},http:{}},DescribeServices:{input:{type:"structure",required:["services"],members:{cluster:{},services:{shape:"Sv"}}},output:{type:"structure",members:{services:{type:"list",member:{shape:"Sc"}},failures:{shape:"S1v"}}},http:{}},DescribeTaskDefinition:{input:{type:"structure",required:["taskDefinition"],members:{taskDefinition:{}}},output:{type:"structure",members:{taskDefinition:{shape:"S12"}}},http:{}},DescribeTasks:{input:{type:"structure",required:["tasks"],members:{cluster:{},tasks:{shape:"Sv"}}},output:{type:"structure",members:{tasks:{shape:"S27"},failures:{shape:"S1v"}}},http:{}},DiscoverPollEndpoint:{input:{type:"structure",members:{containerInstance:{},cluster:{}}},output:{type:"structure",members:{endpoint:{},telemetryEndpoint:{}}},http:{}},ListClusters:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{clusterArns:{shape:"Sv"},nextToken:{}}},http:{}},ListContainerInstances:{input:{type:"structure",members:{cluster:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{containerInstanceArns:{shape:"Sv"},nextToken:{}}},http:{}},ListServices:{input:{type:"structure",members:{cluster:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{serviceArns:{shape:"Sv"},nextToken:{}}},http:{}},ListTaskDefinitionFamilies:{input:{type:"structure",members:{familyPrefix:{},status:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{families:{shape:"Sv"},nextToken:{}}},http:{}},ListTaskDefinitions:{input:{type:"structure",members:{familyPrefix:{},status:{},sort:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{taskDefinitionArns:{shape:"Sv"},nextToken:{}}},http:{}},ListTasks:{input:{type:"structure",members:{cluster:{},containerInstance:{},family:{},nextToken:{},maxResults:{type:"integer"},startedBy:{},serviceName:{},desiredStatus:{}}},output:{type:"structure",members:{taskArns:{shape:"Sv"},nextToken:{}}},http:{}},RegisterContainerInstance:{input:{type:"structure",members:{cluster:{},instanceIdentityDocument:{},instanceIdentityDocumentSignature:{},totalResources:{shape:"Sr"},versionInfo:{shape:"Sq"},containerInstanceArn:{},attributes:{shape:"Sy"}}},output:{type:"structure",members:{containerInstance:{shape:"Sp"}}},http:{}},RegisterTaskDefinition:{input:{type:"structure",required:["family","containerDefinitions"],members:{family:{},containerDefinitions:{shape:"S13"},volumes:{shape:"S1n"}}},output:{type:"structure",members:{taskDefinition:{shape:"S12"}}},http:{}},RunTask:{input:{type:"structure",required:["taskDefinition"],members:{cluster:{},taskDefinition:{},overrides:{shape:"S29"},count:{type:"integer"},startedBy:{}}},output:{type:"structure",members:{tasks:{shape:"S27"},failures:{shape:"S1v"}}},http:{}},StartTask:{input:{type:"structure",required:["taskDefinition","containerInstances"],members:{cluster:{},taskDefinition:{},overrides:{shape:"S29"},containerInstances:{shape:"Sv"},startedBy:{}}},output:{type:"structure",members:{tasks:{shape:"S27"},failures:{shape:"S1v"}}},http:{}},StopTask:{input:{type:"structure",required:["task"],members:{cluster:{},task:{},reason:{}}},output:{type:"structure",members:{task:{shape:"S28"}}},http:{}},SubmitContainerStateChange:{input:{type:"structure",members:{cluster:{},task:{},containerName:{},status:{},exitCode:{type:"integer"},reason:{},networkBindings:{shape:"S2e"}}},output:{type:"structure",members:{acknowledgment:{}}},http:{}},SubmitTaskStateChange:{input:{type:"structure",members:{cluster:{},task:{},status:{},reason:{}}},output:{type:"structure",members:{acknowledgment:{}}},http:{}},UpdateContainerAgent:{input:{type:"structure",required:["containerInstance"],members:{cluster:{},containerInstance:{}}},output:{type:"structure",members:{containerInstance:{shape:"Sp"}}},http:{}},UpdateService:{input:{type:"structure",required:["service"],members:{cluster:{},service:{},desiredCount:{type:"integer"},taskDefinition:{},deploymentConfiguration:{shape:"Sa"}}},output:{type:"structure",members:{service:{shape:"Sc"}}},http:{}}},shapes:{S4:{type:"structure",members:{clusterArn:{},clusterName:{},status:{},registeredContainerInstancesCount:{type:"integer"},runningTasksCount:{type:"integer"},pendingTasksCount:{type:"integer"},activeServicesCount:{type:"integer"}}},S7:{type:"list",member:{type:"structure",members:{loadBalancerName:{},containerName:{},containerPort:{type:"integer"}}}},Sa:{type:"structure",members:{maximumPercent:{type:"integer"},minimumHealthyPercent:{type:"integer"}}},Sc:{type:"structure",members:{serviceArn:{},serviceName:{},clusterArn:{},loadBalancers:{shape:"S7"},status:{},desiredCount:{type:"integer"},runningCount:{type:"integer"},pendingCount:{type:"integer"},taskDefinition:{},deploymentConfiguration:{shape:"Sa"},deployments:{type:"list",member:{type:"structure",members:{id:{},status:{},taskDefinition:{},desiredCount:{type:"integer"},pendingCount:{type:"integer"},runningCount:{type:"integer"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},roleArn:{},events:{type:"list",member:{type:"structure",members:{id:{},createdAt:{type:"timestamp"},message:{}}}},createdAt:{type:"timestamp"}}},Sp:{type:"structure",members:{containerInstanceArn:{},ec2InstanceId:{},versionInfo:{shape:"Sq"},remainingResources:{shape:"Sr"},registeredResources:{shape:"Sr"},status:{},agentConnected:{type:"boolean"},runningTasksCount:{type:"integer"},pendingTasksCount:{type:"integer"},agentUpdateStatus:{},attributes:{shape:"Sy"}}},Sq:{type:"structure",members:{agentVersion:{},agentHash:{},dockerVersion:{}}},Sr:{type:"list",member:{type:"structure",members:{name:{},type:{},doubleValue:{type:"double"},longValue:{type:"long"},integerValue:{type:"integer"},stringSetValue:{shape:"Sv"}}}},Sv:{type:"list",member:{}},Sy:{type:"list",member:{shape:"Sz"}},Sz:{type:"structure",required:["name"],members:{name:{},value:{}}},S12:{type:"structure",members:{taskDefinitionArn:{},containerDefinitions:{shape:"S13"},family:{},revision:{type:"integer"},volumes:{shape:"S1n"},status:{},requiresAttributes:{type:"list",member:{shape:"Sz"}}}},S13:{type:"list",member:{type:"structure",members:{name:{},image:{},cpu:{type:"integer"},memory:{type:"integer"},links:{shape:"Sv"},portMappings:{type:"list",member:{type:"structure",members:{containerPort:{type:"integer"},hostPort:{type:"integer"},protocol:{}}}},essential:{type:"boolean"},entryPoint:{shape:"Sv"},command:{shape:"Sv"},environment:{shape:"S18"},mountPoints:{type:"list",member:{type:"structure",members:{sourceVolume:{},containerPath:{},readOnly:{type:"boolean"}}}},volumesFrom:{type:"list",member:{type:"structure",members:{sourceContainer:{},readOnly:{type:"boolean"}}}},hostname:{},user:{},workingDirectory:{},disableNetworking:{type:"boolean"},privileged:{type:"boolean"},readonlyRootFilesystem:{type:"boolean"},dnsServers:{shape:"Sv"},dnsSearchDomains:{shape:"Sv"},extraHosts:{type:"list",member:{type:"structure",required:["hostname","ipAddress"],members:{hostname:{},ipAddress:{}}}},dockerSecurityOptions:{shape:"Sv"},dockerLabels:{type:"map",key:{},value:{}},ulimits:{type:"list",member:{type:"structure",required:["name","softLimit","hardLimit"],members:{name:{},softLimit:{type:"integer"},hardLimit:{type:"integer"}}}},logConfiguration:{type:"structure",required:["logDriver"],members:{logDriver:{},options:{type:"map",key:{},value:{}}}}}}},S18:{type:"list",member:{type:"structure",members:{name:{},value:{}}}},S1n:{type:"list",member:{type:"structure",members:{name:{},host:{type:"structure",members:{sourcePath:{}}}}}},S1v:{type:"list",member:{type:"structure",members:{arn:{},reason:{}}}},S27:{type:"list",member:{shape:"S28"}},S28:{type:"structure",members:{taskArn:{},clusterArn:{},taskDefinitionArn:{},containerInstanceArn:{},overrides:{shape:"S29"},lastStatus:{},desiredStatus:{},containers:{type:"list",member:{type:"structure",members:{containerArn:{},taskArn:{},name:{},lastStatus:{},exitCode:{type:"integer"},reason:{},networkBindings:{shape:"S2e"}}}},startedBy:{},stoppedReason:{},createdAt:{type:"timestamp"},startedAt:{type:"timestamp"},stoppedAt:{type:"timestamp"}}},S29:{type:"structure",members:{containerOverrides:{type:"list",member:{type:"structure",members:{name:{},command:{shape:"Sv"},environment:{shape:"S18"}}}}}},S2e:{type:"list",member:{type:"structure",members:{bindIP:{},containerPort:{type:"integer"},hostPort:{type:"integer"},protocol:{}}}}},paginators:{ListClusters:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"clusterArns"},ListContainerInstances:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"containerInstanceArns"},ListTaskDefinitions:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"taskDefinitionArns"},ListTaskDefinitionFamilies:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"families"},ListTasks:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"taskArns"},ListServices:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"serviceArns"}},waiters:{TasksRunning:{delay:6,operation:"DescribeTasks",maxAttempts:100,acceptors:[{expected:"STOPPED",matcher:"pathAny",state:"failure",argument:"tasks[].lastStatus"},{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"RUNNING",matcher:"pathAll",state:"success",argument:"tasks[].lastStatus"}]},TasksStopped:{delay:6,operation:"DescribeTasks",maxAttempts:100,acceptors:[{expected:"STOPPED",matcher:"pathAll",state:"success",argument:"tasks[].lastStatus"}]},ServicesStable:{delay:15,operation:"DescribeServices",maxAttempts:40,acceptors:[{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"DRAINING",matcher:"pathAny",state:"failure",argument:"services[].status"},{expected:"INACTIVE",matcher:"pathAny",state:"failure",argument:"services[].status"},{expected:!0,matcher:"path",state:"success",argument:"services | [@[?length(deployments)!=`1`], @[?desiredCount!=runningCount]][] | length(@) == `0`"}]},ServicesInactive:{delay:15,operation:"DescribeServices",maxAttempts:40,acceptors:[{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"INACTIVE",matcher:"pathAny",state:"success",argument:"services[].status"}]}}},a.apiLoader.services.elastictranscoder={},a.ElasticTranscoder=a.Service.defineService("elastictranscoder",["2012-09-25"]),a.apiLoader.services.elastictranscoder["2012-09-25"]={version:"2.0",metadata:{apiVersion:"2012-09-25",endpointPrefix:"elastictranscoder",serviceFullName:"Amazon Elastic Transcoder",signatureVersion:"v4",protocol:"rest-json"},operations:{CancelJob:{http:{method:"DELETE",requestUri:"/2012-09-25/jobs/{Id}",responseCode:202},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},CreateJob:{http:{requestUri:"/2012-09-25/jobs",responseCode:201},input:{type:"structure",required:["PipelineId","Input"],members:{PipelineId:{},Input:{shape:"S5"},Output:{shape:"Sk"},Outputs:{type:"list",member:{shape:"Sk"}},OutputKeyPrefix:{},Playlists:{type:"list",member:{type:"structure",members:{Name:{},Format:{},OutputKeys:{shape:"S1i"},HlsContentProtection:{shape:"S1j"},PlayReadyDrm:{shape:"S1n"}}}},UserMetadata:{shape:"S1s"}}},output:{type:"structure",members:{Job:{shape:"S1v"}}}},CreatePipeline:{http:{requestUri:"/2012-09-25/pipelines",responseCode:201},input:{type:"structure",required:["Name","InputBucket","Role"],members:{Name:{},InputBucket:{},OutputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S27"},ContentConfig:{shape:"S29"},ThumbnailConfig:{shape:"S29"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"},Warnings:{shape:"S2k"}}}},CreatePreset:{http:{requestUri:"/2012-09-25/presets",responseCode:201},input:{type:"structure",required:["Name","Container"],members:{Name:{},Description:{},Container:{},Video:{shape:"S2o"},Audio:{shape:"S34"},Thumbnails:{shape:"S3f"}}},output:{type:"structure",members:{Preset:{shape:"S3j"},Warning:{}}}},DeletePipeline:{http:{method:"DELETE",requestUri:"/2012-09-25/pipelines/{Id}",responseCode:202},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeletePreset:{http:{method:"DELETE",requestUri:"/2012-09-25/presets/{Id}",responseCode:202},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},ListJobsByPipeline:{http:{method:"GET",requestUri:"/2012-09-25/jobsByPipeline/{PipelineId}"},input:{type:"structure",required:["PipelineId"],members:{PipelineId:{location:"uri",locationName:"PipelineId"},Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Jobs:{shape:"S3s"},NextPageToken:{}}}},ListJobsByStatus:{http:{method:"GET",requestUri:"/2012-09-25/jobsByStatus/{Status}"},input:{type:"structure",required:["Status"],members:{Status:{location:"uri",locationName:"Status"},Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Jobs:{shape:"S3s"},NextPageToken:{}}}},ListPipelines:{http:{method:"GET",requestUri:"/2012-09-25/pipelines"},input:{type:"structure",members:{Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Pipelines:{type:"list",member:{shape:"S2i"}},NextPageToken:{}}}},ListPresets:{http:{method:"GET",requestUri:"/2012-09-25/presets"},input:{type:"structure",members:{Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Presets:{type:"list",member:{shape:"S3j"}},NextPageToken:{}}}},ReadJob:{http:{method:"GET",requestUri:"/2012-09-25/jobs/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{Job:{shape:"S1v"}}}},ReadPipeline:{http:{method:"GET",requestUri:"/2012-09-25/pipelines/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"},Warnings:{shape:"S2k"}}}},ReadPreset:{http:{method:"GET",requestUri:"/2012-09-25/presets/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{Preset:{shape:"S3j"}}}},TestRole:{http:{requestUri:"/2012-09-25/roleTests",responseCode:200},input:{type:"structure",required:["Role","InputBucket","OutputBucket","Topics"],members:{Role:{},InputBucket:{},OutputBucket:{},Topics:{type:"list",member:{}}}},output:{type:"structure",members:{Success:{},Messages:{type:"list",member:{}}}}},UpdatePipeline:{http:{method:"PUT",requestUri:"/2012-09-25/pipelines/{Id}",responseCode:200},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},Name:{},InputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S27"},ContentConfig:{shape:"S29"},ThumbnailConfig:{shape:"S29"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"},Warnings:{shape:"S2k"}}}},UpdatePipelineNotifications:{http:{requestUri:"/2012-09-25/pipelines/{Id}/notifications"},input:{type:"structure",required:["Id","Notifications"],members:{Id:{location:"uri",locationName:"Id"},Notifications:{shape:"S27"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"}}}},UpdatePipelineStatus:{http:{requestUri:"/2012-09-25/pipelines/{Id}/status"},input:{type:"structure",required:["Id","Status"],members:{Id:{location:"uri",locationName:"Id"},Status:{}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"}}}}},shapes:{S5:{type:"structure",members:{Key:{},FrameRate:{},Resolution:{},AspectRatio:{},Interlaced:{},Container:{},Encryption:{shape:"Sc"},DetectedProperties:{type:"structure",members:{Width:{type:"integer"},Height:{type:"integer"},FrameRate:{},FileSize:{type:"long"},DurationMillis:{type:"long"}}}}},Sc:{type:"structure",members:{Mode:{},Key:{},KeyMd5:{},InitializationVector:{}}},Sk:{type:"structure",members:{Key:{},ThumbnailPattern:{},ThumbnailEncryption:{shape:"Sc"},Rotate:{},PresetId:{},SegmentDuration:{},Watermarks:{shape:"Sn"},AlbumArt:{shape:"Sr"},Composition:{shape:"Sz"},Captions:{shape:"S13"},Encryption:{shape:"Sc"}}},Sn:{type:"list",member:{type:"structure",members:{PresetWatermarkId:{},InputKey:{},Encryption:{shape:"Sc"}}}},Sr:{type:"structure",members:{MergePolicy:{},Artwork:{type:"list",member:{type:"structure",members:{InputKey:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},PaddingPolicy:{},AlbumArtFormat:{},Encryption:{shape:"Sc"}}}}}},Sz:{type:"list",member:{type:"structure",members:{TimeSpan:{type:"structure",members:{StartTime:{},Duration:{}}}}}},S13:{type:"structure",members:{MergePolicy:{},CaptionSources:{type:"list",member:{type:"structure",members:{Key:{},Language:{},TimeOffset:{},Label:{},Encryption:{shape:"Sc"}}}},CaptionFormats:{type:"list",member:{type:"structure",members:{Format:{},Pattern:{},Encryption:{shape:"Sc"}}}}}},S1i:{type:"list",member:{}},S1j:{type:"structure",members:{Method:{},Key:{},KeyMd5:{},InitializationVector:{},LicenseAcquisitionUrl:{},KeyStoragePolicy:{}}},S1n:{type:"structure",members:{Format:{},Key:{},KeyMd5:{},KeyId:{},InitializationVector:{},LicenseAcquisitionUrl:{}}},S1s:{type:"map",key:{},value:{}},S1v:{type:"structure",members:{Id:{},Arn:{},PipelineId:{},Input:{shape:"S5"},Output:{shape:"S1w"},Outputs:{type:"list",member:{shape:"S1w"}},OutputKeyPrefix:{},Playlists:{type:"list",member:{type:"structure",members:{Name:{},Format:{},OutputKeys:{shape:"S1i"},HlsContentProtection:{shape:"S1j"},PlayReadyDrm:{shape:"S1n"},Status:{},StatusDetail:{}}}},Status:{},UserMetadata:{shape:"S1s"},Timing:{type:"structure",members:{SubmitTimeMillis:{type:"long"},StartTimeMillis:{type:"long"},FinishTimeMillis:{type:"long"}}}}},S1w:{type:"structure",members:{Id:{},Key:{},ThumbnailPattern:{},ThumbnailEncryption:{shape:"Sc"},Rotate:{},PresetId:{},SegmentDuration:{},Status:{},StatusDetail:{},Duration:{type:"long"},Width:{type:"integer"},Height:{type:"integer"},FrameRate:{},FileSize:{type:"long"},DurationMillis:{type:"long"},Watermarks:{shape:"Sn"},AlbumArt:{shape:"Sr"},Composition:{shape:"Sz"},Captions:{shape:"S13"},Encryption:{shape:"Sc"},AppliedColorSpaceConversion:{}}},S27:{type:"structure",members:{Progressing:{},Completed:{},Warning:{},Error:{}}},S29:{type:"structure",members:{Bucket:{},StorageClass:{},Permissions:{type:"list",member:{type:"structure",members:{GranteeType:{},Grantee:{},Access:{type:"list",member:{}}}}}}},S2i:{type:"structure",members:{Id:{},Arn:{},Name:{},Status:{},InputBucket:{},OutputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S27"},ContentConfig:{shape:"S29"},ThumbnailConfig:{shape:"S29"}}},S2k:{type:"list",member:{type:"structure",members:{Code:{},Message:{}}}},S2o:{type:"structure",members:{Codec:{},CodecOptions:{type:"map",key:{},value:{}},KeyframesMaxDist:{},FixedGOP:{},BitRate:{},FrameRate:{},MaxFrameRate:{},Resolution:{},AspectRatio:{},MaxWidth:{},MaxHeight:{},DisplayAspectRatio:{},SizingPolicy:{},PaddingPolicy:{},Watermarks:{type:"list",member:{type:"structure",members:{Id:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},HorizontalAlign:{},HorizontalOffset:{},VerticalAlign:{},VerticalOffset:{},Opacity:{},Target:{}}}}}},S34:{type:"structure",members:{Codec:{},SampleRate:{},BitRate:{},Channels:{},AudioPackingMode:{},CodecOptions:{type:"structure",members:{Profile:{},BitDepth:{},BitOrder:{},Signed:{}}}}},S3f:{type:"structure",members:{Format:{},Interval:{},Resolution:{},AspectRatio:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},PaddingPolicy:{}}},S3j:{type:"structure",members:{Id:{},Arn:{},Name:{},Description:{},Container:{},Audio:{shape:"S34"},Video:{shape:"S2o"},Thumbnails:{shape:"S3f"},Type:{}}},S3s:{type:"list",member:{shape:"S1v"}}},paginators:{ListJobsByPipeline:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Jobs"},ListJobsByStatus:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Jobs"},ListPipelines:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Pipelines"},ListPresets:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Presets"}},waiters:{JobComplete:{delay:30,operation:"ReadJob",maxAttempts:120,acceptors:[{expected:"Complete",matcher:"path",state:"success",argument:"Job.Status"},{expected:"Canceled",matcher:"path",state:"failure",argument:"Job.Status"},{expected:"Error",matcher:"path",state:"failure",argument:"Job.Status"}]}}},a.apiLoader.services.elb={},a.ELB=a.Service.defineService("elb",["2012-06-01"]),a.apiLoader.services.elb["2012-06-01"]={version:"2.0",metadata:{apiVersion:"2012-06-01",endpointPrefix:"elasticloadbalancing",serviceFullName:"Elastic Load Balancing",signatureVersion:"v4",xmlNamespace:"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/",protocol:"query"},operations:{AddTags:{input:{type:"structure",required:["LoadBalancerNames","Tags"],members:{LoadBalancerNames:{shape:"S2"},Tags:{shape:"S4"}}},output:{resultWrapper:"AddTagsResult",type:"structure",members:{}},http:{}},ApplySecurityGroupsToLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","SecurityGroups"],members:{LoadBalancerName:{},SecurityGroups:{shape:"Sa"}}},output:{resultWrapper:"ApplySecurityGroupsToLoadBalancerResult",type:"structure",members:{SecurityGroups:{shape:"Sa"}}},http:{}},AttachLoadBalancerToSubnets:{input:{type:"structure",required:["LoadBalancerName","Subnets"],members:{LoadBalancerName:{},Subnets:{shape:"Se"}}},output:{resultWrapper:"AttachLoadBalancerToSubnetsResult",type:"structure",members:{Subnets:{shape:"Se"}}},http:{}},ConfigureHealthCheck:{input:{type:"structure",required:["LoadBalancerName","HealthCheck"],members:{LoadBalancerName:{},HealthCheck:{shape:"Si"}}},output:{resultWrapper:"ConfigureHealthCheckResult",type:"structure",members:{HealthCheck:{shape:"Si"}}},http:{}},CreateAppCookieStickinessPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName","CookieName"],members:{LoadBalancerName:{},PolicyName:{},CookieName:{}}},output:{resultWrapper:"CreateAppCookieStickinessPolicyResult",type:"structure",members:{}},http:{}},CreateLBCookieStickinessPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName"],members:{LoadBalancerName:{},PolicyName:{},CookieExpirationPeriod:{type:"long"}}},output:{resultWrapper:"CreateLBCookieStickinessPolicyResult",type:"structure",members:{}},http:{}},CreateLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Listeners"],members:{LoadBalancerName:{},Listeners:{shape:"Sx"},AvailabilityZones:{shape:"S13"},Subnets:{shape:"Se"},SecurityGroups:{shape:"Sa"},Scheme:{},Tags:{shape:"S4"}}},output:{resultWrapper:"CreateLoadBalancerResult",type:"structure",members:{DNSName:{}}},http:{}},CreateLoadBalancerListeners:{input:{type:"structure",required:["LoadBalancerName","Listeners"],members:{LoadBalancerName:{},Listeners:{shape:"Sx"}}},output:{resultWrapper:"CreateLoadBalancerListenersResult",type:"structure",members:{}},http:{}},CreateLoadBalancerPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName","PolicyTypeName"],members:{LoadBalancerName:{},PolicyName:{},PolicyTypeName:{},PolicyAttributes:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeValue:{}}}}}},output:{resultWrapper:"CreateLoadBalancerPolicyResult",type:"structure",members:{}},http:{}},DeleteLoadBalancer:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{}}},output:{resultWrapper:"DeleteLoadBalancerResult",type:"structure",members:{}},http:{}},DeleteLoadBalancerListeners:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPorts"],members:{LoadBalancerName:{},LoadBalancerPorts:{type:"list",member:{type:"integer"}}}},output:{resultWrapper:"DeleteLoadBalancerListenersResult",type:"structure",members:{}},http:{}},DeleteLoadBalancerPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName"],members:{LoadBalancerName:{},PolicyName:{}}},output:{resultWrapper:"DeleteLoadBalancerPolicyResult",type:"structure",members:{}},http:{}},DeregisterInstancesFromLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Instances"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"DeregisterInstancesFromLoadBalancerResult",type:"structure",members:{Instances:{shape:"S1p"}}},http:{}},DescribeInstanceHealth:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"DescribeInstanceHealthResult",type:"structure",members:{InstanceStates:{type:"list",member:{type:"structure",members:{InstanceId:{},State:{},ReasonCode:{},Description:{}}}}}},http:{}},DescribeLoadBalancerAttributes:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{}}},output:{resultWrapper:"DescribeLoadBalancerAttributesResult",type:"structure",members:{LoadBalancerAttributes:{shape:"S22"}}},http:{}},DescribeLoadBalancerPolicies:{input:{type:"structure",members:{LoadBalancerName:{},PolicyNames:{shape:"S2j"}}},output:{resultWrapper:"DescribeLoadBalancerPoliciesResult",type:"structure",members:{PolicyDescriptions:{type:"list",member:{type:"structure",members:{PolicyName:{},PolicyTypeName:{},PolicyAttributeDescriptions:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeValue:{}}}}}}}}},http:{}},DescribeLoadBalancerPolicyTypes:{input:{type:"structure",members:{PolicyTypeNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeLoadBalancerPolicyTypesResult",type:"structure",members:{PolicyTypeDescriptions:{type:"list",member:{type:"structure",members:{PolicyTypeName:{},Description:{},PolicyAttributeTypeDescriptions:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeType:{},Description:{},DefaultValue:{},Cardinality:{}}}}}}}}},http:{}},DescribeLoadBalancers:{input:{type:"structure",members:{LoadBalancerNames:{shape:"S2"},Marker:{},PageSize:{type:"integer"}}},output:{resultWrapper:"DescribeLoadBalancersResult",type:"structure",members:{LoadBalancerDescriptions:{type:"list",member:{type:"structure",members:{LoadBalancerName:{},DNSName:{},CanonicalHostedZoneName:{},CanonicalHostedZoneNameID:{},ListenerDescriptions:{type:"list",member:{type:"structure",members:{Listener:{shape:"Sy"},PolicyNames:{shape:"S2j"}}}},Policies:{type:"structure",members:{AppCookieStickinessPolicies:{type:"list",member:{type:"structure",members:{PolicyName:{},CookieName:{}}}},LBCookieStickinessPolicies:{type:"list",member:{type:"structure",members:{PolicyName:{},CookieExpirationPeriod:{type:"long"}}}},OtherPolicies:{shape:"S2j"}}},BackendServerDescriptions:{type:"list",member:{type:"structure",members:{InstancePort:{type:"integer"},PolicyNames:{shape:"S2j"}}}},AvailabilityZones:{shape:"S13"},Subnets:{shape:"Se"},VPCId:{},Instances:{shape:"S1p"},HealthCheck:{shape:"Si"},SourceSecurityGroup:{type:"structure",members:{OwnerAlias:{},GroupName:{}}},SecurityGroups:{shape:"Sa"},CreatedTime:{type:"timestamp"},Scheme:{}}}},NextMarker:{}}},http:{}},DescribeTags:{input:{type:"structure",required:["LoadBalancerNames"],members:{LoadBalancerNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeTagsResult",type:"structure",members:{TagDescriptions:{type:"list",member:{type:"structure",members:{LoadBalancerName:{},Tags:{shape:"S4"}}}}}},http:{}},DetachLoadBalancerFromSubnets:{input:{type:"structure",required:["LoadBalancerName","Subnets"],members:{LoadBalancerName:{},Subnets:{shape:"Se"}}},output:{resultWrapper:"DetachLoadBalancerFromSubnetsResult", +type:"structure",members:{Subnets:{shape:"Se"}}},http:{}},DisableAvailabilityZonesForLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","AvailabilityZones"],members:{LoadBalancerName:{},AvailabilityZones:{shape:"S13"}}},output:{resultWrapper:"DisableAvailabilityZonesForLoadBalancerResult",type:"structure",members:{AvailabilityZones:{shape:"S13"}}},http:{}},EnableAvailabilityZonesForLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","AvailabilityZones"],members:{LoadBalancerName:{},AvailabilityZones:{shape:"S13"}}},output:{resultWrapper:"EnableAvailabilityZonesForLoadBalancerResult",type:"structure",members:{AvailabilityZones:{shape:"S13"}}},http:{}},ModifyLoadBalancerAttributes:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerAttributes"],members:{LoadBalancerName:{},LoadBalancerAttributes:{shape:"S22"}}},output:{resultWrapper:"ModifyLoadBalancerAttributesResult",type:"structure",members:{LoadBalancerName:{},LoadBalancerAttributes:{shape:"S22"}}},http:{}},RegisterInstancesWithLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Instances"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"RegisterInstancesWithLoadBalancerResult",type:"structure",members:{Instances:{shape:"S1p"}}},http:{}},RemoveTags:{input:{type:"structure",required:["LoadBalancerNames","Tags"],members:{LoadBalancerNames:{shape:"S2"},Tags:{type:"list",member:{type:"structure",members:{Key:{}}}}}},output:{resultWrapper:"RemoveTagsResult",type:"structure",members:{}},http:{}},SetLoadBalancerListenerSSLCertificate:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPort","SSLCertificateId"],members:{LoadBalancerName:{},LoadBalancerPort:{type:"integer"},SSLCertificateId:{}}},output:{resultWrapper:"SetLoadBalancerListenerSSLCertificateResult",type:"structure",members:{}},http:{}},SetLoadBalancerPoliciesForBackendServer:{input:{type:"structure",required:["LoadBalancerName","InstancePort","PolicyNames"],members:{LoadBalancerName:{},InstancePort:{type:"integer"},PolicyNames:{shape:"S2j"}}},output:{resultWrapper:"SetLoadBalancerPoliciesForBackendServerResult",type:"structure",members:{}},http:{}},SetLoadBalancerPoliciesOfListener:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPort","PolicyNames"],members:{LoadBalancerName:{},LoadBalancerPort:{type:"integer"},PolicyNames:{shape:"S2j"}}},output:{resultWrapper:"SetLoadBalancerPoliciesOfListenerResult",type:"structure",members:{}},http:{}}},shapes:{S2:{type:"list",member:{}},S4:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},Sa:{type:"list",member:{}},Se:{type:"list",member:{}},Si:{type:"structure",required:["Target","Interval","Timeout","UnhealthyThreshold","HealthyThreshold"],members:{Target:{},Interval:{type:"integer"},Timeout:{type:"integer"},UnhealthyThreshold:{type:"integer"},HealthyThreshold:{type:"integer"}}},Sx:{type:"list",member:{shape:"Sy"}},Sy:{type:"structure",required:["Protocol","LoadBalancerPort","InstancePort"],members:{Protocol:{},LoadBalancerPort:{type:"integer"},InstanceProtocol:{},InstancePort:{type:"integer"},SSLCertificateId:{}}},S13:{type:"list",member:{}},S1p:{type:"list",member:{type:"structure",members:{InstanceId:{}}}},S22:{type:"structure",members:{CrossZoneLoadBalancing:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"}}},AccessLog:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},S3BucketName:{},EmitInterval:{type:"integer"},S3BucketPrefix:{}}},ConnectionDraining:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},Timeout:{type:"integer"}}},ConnectionSettings:{type:"structure",required:["IdleTimeout"],members:{IdleTimeout:{type:"integer"}}},AdditionalAttributes:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}},S2j:{type:"list",member:{}}},examples:{},paginators:{DescribeInstanceHealth:{result_key:"InstanceStates"},DescribeLoadBalancerPolicies:{result_key:"PolicyDescriptions"},DescribeLoadBalancerPolicyTypes:{result_key:"PolicyTypeDescriptions"},DescribeLoadBalancers:{input_token:"Marker",output_token:"NextMarker",result_key:"LoadBalancerDescriptions"}},waiters:{InstanceInService:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"InService",matcher:"pathAll",state:"success",argument:"InstanceStates[].State"}]},InstanceDeregistered:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"OutOfService",matcher:"pathAll",state:"success",argument:"InstanceStates[].State"},{matcher:"error",expected:"InvalidInstance",state:"success"}]},AnyInstanceInService:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"InService",matcher:"pathAny",state:"success",argument:"InstanceStates[].State"}]}}},a.apiLoader.services.firehose={},a.Firehose=a.Service.defineService("firehose",["2015-08-04"]),a.apiLoader.services.firehose["2015-08-04"]={version:"2.0",metadata:{apiVersion:"2015-08-04",endpointPrefix:"firehose",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Firehose",serviceFullName:"Amazon Kinesis Firehose",signatureVersion:"v4",targetPrefix:"Firehose_20150804"},operations:{CreateDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},S3DestinationConfiguration:{shape:"S3"},RedshiftDestinationConfiguration:{type:"structure",required:["RoleARN","ClusterJDBCURL","CopyCommand","Username","Password","S3Configuration"],members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"Sl"},Username:{shape:"Sp"},Password:{shape:"Sq"},RetryOptions:{shape:"Sr"},S3Configuration:{shape:"S3"},CloudWatchLoggingOptions:{shape:"Sf"}}},ElasticsearchDestinationConfiguration:{type:"structure",required:["RoleARN","DomainARN","IndexName","TypeName","S3Configuration"],members:{RoleARN:{},DomainARN:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"Sy"},RetryOptions:{shape:"S11"},S3BackupMode:{},S3Configuration:{shape:"S3"},CloudWatchLoggingOptions:{shape:"Sf"}}}}},output:{type:"structure",members:{DeliveryStreamARN:{}}},http:{}},DeleteDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{}}},output:{type:"structure",members:{}},http:{}},DescribeDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},Limit:{type:"integer"},ExclusiveStartDestinationId:{}}},output:{type:"structure",required:["DeliveryStreamDescription"],members:{DeliveryStreamDescription:{type:"structure",required:["DeliveryStreamName","DeliveryStreamARN","DeliveryStreamStatus","VersionId","Destinations","HasMoreDestinations"],members:{DeliveryStreamName:{},DeliveryStreamARN:{},DeliveryStreamStatus:{},VersionId:{},CreateTimestamp:{type:"timestamp"},LastUpdateTimestamp:{type:"timestamp"},Destinations:{type:"list",member:{type:"structure",required:["DestinationId"],members:{DestinationId:{},S3DestinationDescription:{shape:"S1i"},RedshiftDestinationDescription:{type:"structure",required:["RoleARN","ClusterJDBCURL","CopyCommand","Username","S3DestinationDescription"],members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"Sl"},Username:{shape:"Sp"},RetryOptions:{shape:"Sr"},S3DestinationDescription:{shape:"S1i"},CloudWatchLoggingOptions:{shape:"Sf"}}},ElasticsearchDestinationDescription:{type:"structure",members:{RoleARN:{},DomainARN:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"Sy"},RetryOptions:{shape:"S11"},S3BackupMode:{},S3DestinationDescription:{shape:"S1i"},CloudWatchLoggingOptions:{shape:"Sf"}}}}}},HasMoreDestinations:{type:"boolean"}}}}},http:{}},ListDeliveryStreams:{input:{type:"structure",members:{Limit:{type:"integer"},ExclusiveStartDeliveryStreamName:{}}},output:{type:"structure",required:["DeliveryStreamNames","HasMoreDeliveryStreams"],members:{DeliveryStreamNames:{type:"list",member:{}},HasMoreDeliveryStreams:{type:"boolean"}}},http:{}},PutRecord:{input:{type:"structure",required:["DeliveryStreamName","Record"],members:{DeliveryStreamName:{},Record:{shape:"S1q"}}},output:{type:"structure",required:["RecordId"],members:{RecordId:{}}},http:{}},PutRecordBatch:{input:{type:"structure",required:["DeliveryStreamName","Records"],members:{DeliveryStreamName:{},Records:{type:"list",member:{shape:"S1q"}}}},output:{type:"structure",required:["FailedPutCount","RequestResponses"],members:{FailedPutCount:{type:"integer"},RequestResponses:{type:"list",member:{type:"structure",members:{RecordId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},UpdateDestination:{input:{type:"structure",required:["DeliveryStreamName","CurrentDeliveryStreamVersionId","DestinationId"],members:{DeliveryStreamName:{},CurrentDeliveryStreamVersionId:{},DestinationId:{},S3DestinationUpdate:{shape:"S23"},RedshiftDestinationUpdate:{type:"structure",members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"Sl"},Username:{shape:"Sp"},Password:{shape:"Sq"},RetryOptions:{shape:"Sr"},S3Update:{shape:"S23"},CloudWatchLoggingOptions:{shape:"Sf"}}},ElasticsearchDestinationUpdate:{type:"structure",members:{RoleARN:{},DomainARN:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"Sy"},RetryOptions:{shape:"S11"},S3Update:{shape:"S23"},CloudWatchLoggingOptions:{shape:"Sf"}}}}},output:{type:"structure",members:{}},http:{}}},shapes:{S3:{type:"structure",required:["RoleARN","BucketARN"],members:{RoleARN:{},BucketARN:{},Prefix:{},BufferingHints:{shape:"S7"},CompressionFormat:{},EncryptionConfiguration:{shape:"Sb"},CloudWatchLoggingOptions:{shape:"Sf"}}},S7:{type:"structure",members:{SizeInMBs:{type:"integer"},IntervalInSeconds:{type:"integer"}}},Sb:{type:"structure",members:{NoEncryptionConfig:{},KMSEncryptionConfig:{type:"structure",required:["AWSKMSKeyARN"],members:{AWSKMSKeyARN:{}}}}},Sf:{type:"structure",members:{Enabled:{type:"boolean"},LogGroupName:{},LogStreamName:{}}},Sl:{type:"structure",required:["DataTableName"],members:{DataTableName:{},DataTableColumns:{},CopyOptions:{}}},Sp:{type:"string",sensitive:!0},Sq:{type:"string",sensitive:!0},Sr:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},Sy:{type:"structure",members:{IntervalInSeconds:{type:"integer"},SizeInMBs:{type:"integer"}}},S11:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},S1i:{type:"structure",required:["RoleARN","BucketARN","BufferingHints","CompressionFormat","EncryptionConfiguration"],members:{RoleARN:{},BucketARN:{},Prefix:{},BufferingHints:{shape:"S7"},CompressionFormat:{},EncryptionConfiguration:{shape:"Sb"},CloudWatchLoggingOptions:{shape:"Sf"}}},S1q:{type:"structure",required:["Data"],members:{Data:{type:"blob"}}},S23:{type:"structure",members:{RoleARN:{},BucketARN:{},Prefix:{},BufferingHints:{shape:"S7"},CompressionFormat:{},EncryptionConfiguration:{shape:"Sb"},CloudWatchLoggingOptions:{shape:"Sf"}}}}},a.apiLoader.services.gamelift={},a.GameLift=a.Service.defineService("gamelift",["2015-10-01"]),a.apiLoader.services.gamelift["2015-10-01"]={version:"2.0",metadata:{apiVersion:"2015-10-01",endpointPrefix:"gamelift",jsonVersion:"1.1",serviceFullName:"Amazon GameLift",signatureVersion:"v4",targetPrefix:"GameLift",protocol:"json"},operations:{CreateAlias:{input:{type:"structure",required:["Name","RoutingStrategy"],members:{Name:{},Description:{},RoutingStrategy:{shape:"S3"}}},output:{type:"structure",members:{Alias:{shape:"S8"}}},http:{}},CreateBuild:{input:{type:"structure",members:{Name:{},Version:{},StorageLocation:{shape:"Sc"}}},output:{type:"structure",members:{Build:{shape:"Sf"},UploadCredentials:{shape:"Sj"},StorageLocation:{shape:"Sc"}}},http:{}},CreateFleet:{input:{type:"structure",required:["Name","BuildId","ServerLaunchPath","EC2InstanceType"],members:{Name:{},Description:{},BuildId:{},ServerLaunchPath:{},ServerLaunchParameters:{},LogPaths:{shape:"Sl"},EC2InstanceType:{},EC2InboundPermissions:{shape:"Sn"},NewGameSessionProtectionPolicy:{}}},output:{type:"structure",members:{FleetAttributes:{shape:"Su"}}},http:{}},CreateGameSession:{input:{type:"structure",required:["MaximumPlayerSessionCount"],members:{FleetId:{},AliasId:{},MaximumPlayerSessionCount:{type:"integer"},Name:{},GameProperties:{shape:"Sy"}}},output:{type:"structure",members:{GameSession:{shape:"S13"}}},http:{}},CreatePlayerSession:{input:{type:"structure",required:["GameSessionId","PlayerId"],members:{GameSessionId:{},PlayerId:{}}},output:{type:"structure",members:{PlayerSession:{shape:"S1a"}}},http:{}},CreatePlayerSessions:{input:{type:"structure",required:["GameSessionId","PlayerIds"],members:{GameSessionId:{},PlayerIds:{type:"list",member:{}}}},output:{type:"structure",members:{PlayerSessions:{shape:"S1g"}}},http:{}},DeleteAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},http:{}},DeleteBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},http:{}},DeleteFleet:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}},http:{}},DeleteScalingPolicy:{input:{type:"structure",required:["Name","FleetId"],members:{Name:{},FleetId:{}}},http:{}},DescribeAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},output:{type:"structure",members:{Alias:{shape:"S8"}}},http:{}},DescribeBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},output:{type:"structure",members:{Build:{shape:"Sf"}}},http:{}},DescribeEC2InstanceLimits:{input:{type:"structure",members:{EC2InstanceType:{}}},output:{type:"structure",members:{EC2InstanceLimits:{type:"list",member:{type:"structure",members:{EC2InstanceType:{},CurrentInstances:{type:"integer"},InstanceLimit:{type:"integer"}}}}}},http:{}},DescribeFleetAttributes:{input:{type:"structure",members:{FleetIds:{shape:"S1u"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetAttributes:{type:"list",member:{shape:"Su"}},NextToken:{}}},http:{}},DescribeFleetCapacity:{input:{type:"structure",members:{FleetIds:{shape:"S1u"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetCapacity:{type:"list",member:{type:"structure",members:{FleetId:{},InstanceType:{},InstanceCounts:{type:"structure",members:{DESIRED:{type:"integer"},MINIMUM:{type:"integer"},MAXIMUM:{type:"integer"},PENDING:{type:"integer"},ACTIVE:{type:"integer"},IDLE:{type:"integer"},TERMINATING:{type:"integer"}}}}}},NextToken:{}}},http:{}},DescribeFleetEvents:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Events:{type:"list",member:{type:"structure",members:{EventId:{},ResourceId:{},EventCode:{},Message:{},EventTime:{type:"timestamp"}}}},NextToken:{}}},http:{}},DescribeFleetPortSettings:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}},output:{type:"structure",members:{InboundPermissions:{shape:"Sn"}}},http:{}},DescribeFleetUtilization:{input:{type:"structure",members:{FleetIds:{shape:"S1u"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetUtilization:{type:"list",member:{type:"structure",members:{FleetId:{},ActiveGameSessionCount:{type:"integer"},CurrentPlayerSessionCount:{type:"integer"},MaximumPlayerSessionCount:{type:"integer"}}}},NextToken:{}}},http:{}},DescribeGameSessionDetails:{input:{type:"structure",members:{FleetId:{},GameSessionId:{},AliasId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessionDetails:{type:"list",member:{type:"structure",members:{GameSession:{shape:"S13"},ProtectionPolicy:{}}}},NextToken:{}}},http:{}},DescribeGameSessions:{input:{type:"structure",members:{FleetId:{},GameSessionId:{},AliasId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessions:{type:"list",member:{shape:"S13"}},NextToken:{}}},http:{}},DescribePlayerSessions:{input:{type:"structure",members:{GameSessionId:{},PlayerId:{},PlayerSessionId:{},PlayerSessionStatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{PlayerSessions:{shape:"S1g"},NextToken:{}}},http:{}},DescribeScalingPolicies:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ScalingPolicies:{type:"list",member:{type:"structure",members:{FleetId:{},Name:{},Status:{},ScalingAdjustment:{type:"integer"},ScalingAdjustmentType:{},ComparisonOperator:{},Threshold:{type:"double"},EvaluationPeriods:{type:"integer"},MetricName:{}}}},NextToken:{}}},http:{}},GetGameSessionLogUrl:{input:{type:"structure",required:["GameSessionId"],members:{GameSessionId:{}}},output:{type:"structure",members:{PreSignedUrl:{}}},http:{}},ListAliases:{input:{type:"structure",members:{RoutingStrategyType:{},Name:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Aliases:{type:"list",member:{shape:"S8"}},NextToken:{}}},http:{}},ListBuilds:{input:{type:"structure",members:{Status:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Builds:{type:"list",member:{shape:"Sf"}},NextToken:{}}},http:{}},ListFleets:{input:{type:"structure",members:{BuildId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetIds:{shape:"S1u"},NextToken:{}}},http:{}},PutScalingPolicy:{input:{type:"structure",required:["Name","FleetId","ScalingAdjustment","ScalingAdjustmentType","Threshold","ComparisonOperator","EvaluationPeriods","MetricName"],members:{Name:{},FleetId:{},ScalingAdjustment:{type:"integer"},ScalingAdjustmentType:{},Threshold:{type:"double"},ComparisonOperator:{},EvaluationPeriods:{type:"integer"},MetricName:{}}},output:{type:"structure",members:{Name:{}}},http:{}},RequestUploadCredentials:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},output:{type:"structure",members:{UploadCredentials:{shape:"Sj"},StorageLocation:{shape:"Sc"}}},http:{}},ResolveAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{},Name:{},Description:{},RoutingStrategy:{shape:"S3"}}},output:{type:"structure",members:{Alias:{shape:"S8"}}},http:{}},UpdateBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{},Name:{},Version:{}}},output:{type:"structure",members:{Build:{shape:"Sf"}}},http:{}},UpdateFleetAttributes:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},Name:{},Description:{},NewGameSessionProtectionPolicy:{}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateFleetCapacity:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},DesiredInstances:{type:"integer"},MinSize:{type:"integer"},MaxSize:{type:"integer"}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateFleetPortSettings:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},InboundPermissionAuthorizations:{shape:"Sn"},InboundPermissionRevocations:{shape:"Sn"}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateGameSession:{input:{type:"structure",required:["GameSessionId"],members:{GameSessionId:{},MaximumPlayerSessionCount:{type:"integer"},Name:{},PlayerSessionCreationPolicy:{},ProtectionPolicy:{}}},output:{type:"structure",members:{GameSession:{shape:"S13"}}},http:{}}},shapes:{S3:{type:"structure",members:{Type:{},FleetId:{},Message:{}}},S8:{type:"structure",members:{AliasId:{},Name:{},Description:{},RoutingStrategy:{shape:"S3"},CreationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}},Sc:{type:"structure",members:{Bucket:{},Key:{},RoleArn:{}}},Sf:{type:"structure",members:{BuildId:{},Name:{},Version:{},Status:{},SizeOnDisk:{type:"long"},CreationTime:{type:"timestamp"}}},Sj:{type:"structure",members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{}},sensitive:!0},Sl:{type:"list",member:{}},Sn:{type:"list",member:{type:"structure",required:["FromPort","ToPort","IpRange","Protocol"],members:{FromPort:{type:"integer"},ToPort:{type:"integer"},IpRange:{},Protocol:{}}}},Su:{type:"structure",members:{FleetId:{},Description:{},Name:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},Status:{},BuildId:{},ServerLaunchPath:{},ServerLaunchParameters:{},LogPaths:{shape:"Sl"},NewGameSessionProtectionPolicy:{}}},Sy:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S13:{type:"structure",members:{GameSessionId:{},Name:{},FleetId:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},CurrentPlayerSessionCount:{type:"integer"},MaximumPlayerSessionCount:{type:"integer"},Status:{},GameProperties:{shape:"Sy"},IpAddress:{},PlayerSessionCreationPolicy:{}}},S1a:{type:"structure",members:{PlayerSessionId:{},PlayerId:{},GameSessionId:{},FleetId:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},Status:{},IpAddress:{}}},S1g:{type:"list",member:{shape:"S1a"}},S1u:{type:"list",member:{}}},examples:{}},a.apiLoader.services.inspector={},a.Inspector=a.Service.defineService("inspector",["2016-02-16"]),a.apiLoader.services.inspector["2016-02-16"]={version:"2.0",metadata:{apiVersion:"2016-02-16",endpointPrefix:"inspector",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Inspector",signatureVersion:"v4",targetPrefix:"InspectorService"},operations:{AddAttributesToFindings:{input:{type:"structure",required:["findingArns","attributes"],members:{findingArns:{shape:"S2"},attributes:{shape:"S4"}}},output:{type:"structure",required:["failedItems"],members:{failedItems:{shape:"S9"}}},http:{}},CreateAssessmentTarget:{input:{type:"structure",required:["assessmentTargetName","resourceGroupArn"],members:{assessmentTargetName:{},resourceGroupArn:{}}},output:{type:"structure",required:["assessmentTargetArn"],members:{assessmentTargetArn:{}}},http:{}},CreateAssessmentTemplate:{input:{type:"structure",required:["assessmentTargetArn","assessmentTemplateName","durationInSeconds","rulesPackageArns"],members:{assessmentTargetArn:{},assessmentTemplateName:{},durationInSeconds:{type:"integer"},rulesPackageArns:{shape:"Sj"},userAttributesForFindings:{shape:"S4"}}},output:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}},http:{}},CreateResourceGroup:{input:{type:"structure",required:["resourceGroupTags"],members:{resourceGroupTags:{shape:"Sm"}}},output:{type:"structure",required:["resourceGroupArn"],members:{resourceGroupArn:{}}},http:{}},DeleteAssessmentRun:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},http:{}},DeleteAssessmentTarget:{input:{type:"structure",required:["assessmentTargetArn"],members:{assessmentTargetArn:{}}},http:{}},DeleteAssessmentTemplate:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}},http:{}},DescribeAssessmentRuns:{input:{type:"structure",required:["assessmentRunArns"],members:{assessmentRunArns:{shape:"Sv"}}},output:{type:"structure",required:["assessmentRuns","failedItems"],members:{assessmentRuns:{type:"list",member:{type:"structure",required:["arn","name","assessmentTemplateArn","state","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt","stateChangedAt","dataCollected","stateChanges","notifications"],members:{arn:{},name:{},assessmentTemplateArn:{},state:{},durationInSeconds:{type:"integer"},rulesPackageArns:{type:"list",member:{}},userAttributesForFindings:{shape:"S4"},createdAt:{type:"timestamp"},startedAt:{type:"timestamp"},completedAt:{type:"timestamp"},stateChangedAt:{type:"timestamp"},dataCollected:{type:"boolean"},stateChanges:{type:"list",member:{type:"structure",required:["stateChangedAt","state"],members:{stateChangedAt:{type:"timestamp"},state:{}}}},notifications:{type:"list",member:{type:"structure",required:["date","event","error"],members:{date:{type:"timestamp"},event:{},message:{},error:{type:"boolean"},snsTopicArn:{},snsPublishStatusCode:{}}}}}}},failedItems:{shape:"S9"}}},http:{}},DescribeAssessmentTargets:{input:{type:"structure",required:["assessmentTargetArns"],members:{assessmentTargetArns:{shape:"Sv"}}},output:{type:"structure",required:["assessmentTargets","failedItems"],members:{assessmentTargets:{type:"list",member:{type:"structure",required:["arn","name","resourceGroupArn","createdAt","updatedAt"],members:{arn:{},name:{},resourceGroupArn:{},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeAssessmentTemplates:{input:{type:"structure",required:["assessmentTemplateArns"],members:{assessmentTemplateArns:{shape:"Sv"}}},output:{type:"structure",required:["assessmentTemplates","failedItems"],members:{assessmentTemplates:{type:"list",member:{type:"structure",required:["arn","name","assessmentTargetArn","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt"],members:{arn:{},name:{},assessmentTargetArn:{},durationInSeconds:{type:"integer"},rulesPackageArns:{shape:"Sj"},userAttributesForFindings:{shape:"S4"},createdAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeCrossAccountAccessRole:{output:{type:"structure",required:["roleArn","valid","registeredAt"],members:{roleArn:{},valid:{type:"boolean"},registeredAt:{type:"timestamp"}}},http:{}},DescribeFindings:{input:{type:"structure",required:["findingArns"],members:{findingArns:{shape:"Sv"},locale:{}}},output:{type:"structure",required:["findings","failedItems"],members:{findings:{type:"list",member:{type:"structure",required:["arn","attributes","userAttributes","createdAt","updatedAt"],members:{arn:{},schemaVersion:{type:"integer"},service:{},serviceAttributes:{type:"structure",required:["schemaVersion"],members:{schemaVersion:{type:"integer"},assessmentRunArn:{},rulesPackageArn:{}}},assetType:{},assetAttributes:{type:"structure",required:["schemaVersion"],members:{schemaVersion:{type:"integer"},agentId:{},autoScalingGroup:{},amiId:{},hostname:{},ipv4Addresses:{type:"list",member:{}}}},id:{},title:{},description:{},recommendation:{},severity:{},numericSeverity:{type:"double"},confidence:{type:"integer"},indicatorOfCompromise:{type:"boolean"},attributes:{shape:"S24"},userAttributes:{shape:"S4"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeResourceGroups:{input:{type:"structure",required:["resourceGroupArns"],members:{resourceGroupArns:{shape:"Sv"}}},output:{type:"structure",required:["resourceGroups","failedItems"],members:{resourceGroups:{type:"list",member:{type:"structure",required:["arn","tags","createdAt"],members:{arn:{},tags:{shape:"Sm"},createdAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeRulesPackages:{input:{type:"structure",required:["rulesPackageArns"],members:{rulesPackageArns:{shape:"Sv"},locale:{}}},output:{type:"structure",required:["rulesPackages","failedItems"],members:{rulesPackages:{type:"list",member:{type:"structure",required:["arn","name","version","provider"],members:{arn:{},name:{},version:{},provider:{},description:{}}}},failedItems:{shape:"S9"}}},http:{}},GetTelemetryMetadata:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},output:{type:"structure",required:["telemetryMetadata"],members:{telemetryMetadata:{shape:"S2i"}}},http:{}},ListAssessmentRunAgents:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{},filter:{type:"structure",required:["agentHealths","agentHealthCodes"],members:{agentHealths:{type:"list",member:{}},agentHealthCodes:{type:"list",member:{}}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentRunAgents"],members:{assessmentRunAgents:{type:"list",member:{type:"structure",required:["agentId","assessmentRunArn","agentHealth","agentHealthCode","telemetryMetadata"],members:{agentId:{},assessmentRunArn:{},agentHealth:{},agentHealthCode:{},agentHealthDetails:{},autoScalingGroup:{},telemetryMetadata:{shape:"S2i"}}}},nextToken:{}}},http:{}},ListAssessmentRuns:{input:{type:"structure",members:{assessmentTemplateArns:{shape:"S2y"},filter:{type:"structure",members:{namePattern:{},states:{type:"list",member:{}},durationRange:{shape:"S32"},rulesPackageArns:{shape:"S33"},startTimeRange:{shape:"S34"},completionTimeRange:{shape:"S34"},stateChangeTimeRange:{shape:"S34"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentRunArns"],members:{assessmentRunArns:{shape:"S36"},nextToken:{}}},http:{}},ListAssessmentTargets:{input:{type:"structure",members:{filter:{type:"structure",members:{assessmentTargetNamePattern:{}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentTargetArns"],members:{assessmentTargetArns:{shape:"S36"},nextToken:{}}},http:{}},ListAssessmentTemplates:{input:{type:"structure",members:{assessmentTargetArns:{shape:"S2y"},filter:{type:"structure",members:{namePattern:{},durationRange:{shape:"S32"},rulesPackageArns:{shape:"S33"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentTemplateArns"],members:{assessmentTemplateArns:{shape:"S36"},nextToken:{}}},http:{}},ListEventSubscriptions:{input:{type:"structure",members:{resourceArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["subscriptions"],members:{subscriptions:{type:"list",member:{type:"structure",required:["resourceArn","topicArn","eventSubscriptions"],members:{resourceArn:{},topicArn:{},eventSubscriptions:{type:"list",member:{type:"structure",required:["event","subscribedAt"],members:{event:{},subscribedAt:{type:"timestamp"}}}}}}},nextToken:{}}},http:{}},ListFindings:{input:{type:"structure",members:{assessmentRunArns:{shape:"S2y"},filter:{type:"structure",members:{agentIds:{type:"list",member:{}},autoScalingGroups:{type:"list",member:{}},ruleNames:{type:"list",member:{}},severities:{type:"list",member:{}},rulesPackageArns:{shape:"S33"},attributes:{shape:"S24"},userAttributes:{shape:"S24"},creationTimeRange:{shape:"S34"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["findingArns"],members:{findingArns:{shape:"S36"},nextToken:{}}},http:{}},ListRulesPackages:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["rulesPackageArns"],members:{rulesPackageArns:{shape:"S36"},nextToken:{}}},http:{}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{}}},output:{type:"structure",required:["tags"],members:{tags:{shape:"S3w"}}},http:{}},PreviewAgents:{input:{type:"structure",required:["previewAgentsArn"],members:{previewAgentsArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["agentPreviews"],members:{agentPreviews:{type:"list",member:{type:"structure",required:["agentId"],members:{agentId:{},autoScalingGroup:{}}}},nextToken:{}}},http:{}},RegisterCrossAccountAccessRole:{input:{type:"structure",required:["roleArn"],members:{roleArn:{}}},http:{}},RemoveAttributesFromFindings:{input:{type:"structure",required:["findingArns","attributeKeys"],members:{findingArns:{shape:"S2"},attributeKeys:{type:"list",member:{}}}},output:{type:"structure",required:["failedItems"],members:{failedItems:{shape:"S9"}}},http:{}},SetTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{},tags:{shape:"S3w"}}},http:{}},StartAssessmentRun:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{},assessmentRunName:{}}},output:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},http:{}},StopAssessmentRun:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},http:{}},SubscribeToEvent:{input:{type:"structure",required:["resourceArn","event","topicArn"],members:{resourceArn:{},event:{},topicArn:{}}},http:{}},UnsubscribeFromEvent:{input:{type:"structure",required:["resourceArn","event","topicArn"], +members:{resourceArn:{},event:{},topicArn:{}}},http:{}},UpdateAssessmentTarget:{input:{type:"structure",required:["assessmentTargetArn","assessmentTargetName","resourceGroupArn"],members:{assessmentTargetArn:{},assessmentTargetName:{},resourceGroupArn:{}}},http:{}}},shapes:{S2:{type:"list",member:{}},S4:{type:"list",member:{shape:"S5"}},S5:{type:"structure",required:["key"],members:{key:{},value:{}}},S9:{type:"map",key:{},value:{type:"structure",required:["failureCode","retryable"],members:{failureCode:{},retryable:{type:"boolean"}}}},Sj:{type:"list",member:{}},Sm:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}},Sv:{type:"list",member:{}},S24:{type:"list",member:{shape:"S5"}},S2i:{type:"list",member:{type:"structure",required:["messageType","count"],members:{messageType:{},count:{type:"long"},dataSize:{type:"long"}}}},S2y:{type:"list",member:{}},S32:{type:"structure",members:{minSeconds:{type:"integer"},maxSeconds:{type:"integer"}}},S33:{type:"list",member:{}},S34:{type:"structure",members:{beginDate:{type:"timestamp"},endDate:{type:"timestamp"}}},S36:{type:"list",member:{}},S3w:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}}}},a.apiLoader.services.iotdata={},a.IotData=a.Service.defineService("iotdata",["2015-05-28"]),e("./services/iotdata"),a.apiLoader.services.iotdata["2015-05-28"]={version:"2.0",metadata:{apiVersion:"2015-05-28",endpointPrefix:"data.iot",protocol:"rest-json",serviceFullName:"AWS IoT Data Plane",signatureVersion:"v4",signingName:"iotdata"},operations:{DeleteThingShadow:{http:{method:"DELETE",requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",required:["payload"],members:{payload:{type:"blob"}},payload:"payload"}},GetThingShadow:{http:{method:"GET",requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",members:{payload:{type:"blob"}},payload:"payload"}},Publish:{http:{requestUri:"/topics/{topic}"},input:{type:"structure",required:["topic"],members:{topic:{location:"uri",locationName:"topic"},qos:{location:"querystring",locationName:"qos",type:"integer"},payload:{type:"blob"}},payload:"payload"}},UpdateThingShadow:{http:{requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName","payload"],members:{thingName:{location:"uri",locationName:"thingName"},payload:{type:"blob"}},payload:"payload"},output:{type:"structure",members:{payload:{type:"blob"}},payload:"payload"}}},shapes:{}},a.apiLoader.services.kinesis={},a.Kinesis=a.Service.defineService("kinesis",["2013-12-02"]),a.apiLoader.services.kinesis["2013-12-02"]={version:"2.0",metadata:{apiVersion:"2013-12-02",endpointPrefix:"kinesis",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Kinesis",serviceFullName:"Amazon Kinesis",signatureVersion:"v4",targetPrefix:"Kinesis_20131202"},operations:{AddTagsToStream:{input:{type:"structure",required:["StreamName","Tags"],members:{StreamName:{},Tags:{type:"map",key:{},value:{}}}},http:{}},CreateStream:{input:{type:"structure",required:["StreamName","ShardCount"],members:{StreamName:{},ShardCount:{type:"integer"}}},http:{}},DecreaseStreamRetentionPeriod:{input:{type:"structure",required:["StreamName","RetentionPeriodHours"],members:{StreamName:{},RetentionPeriodHours:{type:"integer"}}},http:{}},DeleteStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{}}},http:{}},DescribeStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{},Limit:{type:"integer"},ExclusiveStartShardId:{}}},output:{type:"structure",required:["StreamDescription"],members:{StreamDescription:{type:"structure",required:["StreamName","StreamARN","StreamStatus","Shards","HasMoreShards","RetentionPeriodHours","EnhancedMonitoring"],members:{StreamName:{},StreamARN:{},StreamStatus:{},Shards:{type:"list",member:{type:"structure",required:["ShardId","HashKeyRange","SequenceNumberRange"],members:{ShardId:{},ParentShardId:{},AdjacentParentShardId:{},HashKeyRange:{type:"structure",required:["StartingHashKey","EndingHashKey"],members:{StartingHashKey:{},EndingHashKey:{}}},SequenceNumberRange:{type:"structure",required:["StartingSequenceNumber"],members:{StartingSequenceNumber:{},EndingSequenceNumber:{}}}}}},HasMoreShards:{type:"boolean"},RetentionPeriodHours:{type:"integer"},EnhancedMonitoring:{type:"list",member:{type:"structure",members:{ShardLevelMetrics:{shape:"Sr"}}}}}}}},http:{}},DisableEnhancedMonitoring:{input:{type:"structure",required:["StreamName","ShardLevelMetrics"],members:{StreamName:{},ShardLevelMetrics:{shape:"Sr"}}},output:{shape:"Su"},http:{}},EnableEnhancedMonitoring:{input:{type:"structure",required:["StreamName","ShardLevelMetrics"],members:{StreamName:{},ShardLevelMetrics:{shape:"Sr"}}},output:{shape:"Su"},http:{}},GetRecords:{input:{type:"structure",required:["ShardIterator"],members:{ShardIterator:{},Limit:{type:"integer"}}},output:{type:"structure",required:["Records"],members:{Records:{type:"list",member:{type:"structure",required:["SequenceNumber","Data","PartitionKey"],members:{SequenceNumber:{},ApproximateArrivalTimestamp:{type:"timestamp"},Data:{type:"blob"},PartitionKey:{}}}},NextShardIterator:{},MillisBehindLatest:{type:"long"}}},http:{}},GetShardIterator:{input:{type:"structure",required:["StreamName","ShardId","ShardIteratorType"],members:{StreamName:{},ShardId:{},ShardIteratorType:{},StartingSequenceNumber:{},Timestamp:{type:"timestamp"}}},output:{type:"structure",members:{ShardIterator:{}}},http:{}},IncreaseStreamRetentionPeriod:{input:{type:"structure",required:["StreamName","RetentionPeriodHours"],members:{StreamName:{},RetentionPeriodHours:{type:"integer"}}},http:{}},ListStreams:{input:{type:"structure",members:{Limit:{type:"integer"},ExclusiveStartStreamName:{}}},output:{type:"structure",required:["StreamNames","HasMoreStreams"],members:{StreamNames:{type:"list",member:{}},HasMoreStreams:{type:"boolean"}}},http:{}},ListTagsForStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{},ExclusiveStartTagKey:{},Limit:{type:"integer"}}},output:{type:"structure",required:["Tags","HasMoreTags"],members:{Tags:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},HasMoreTags:{type:"boolean"}}},http:{}},MergeShards:{input:{type:"structure",required:["StreamName","ShardToMerge","AdjacentShardToMerge"],members:{StreamName:{},ShardToMerge:{},AdjacentShardToMerge:{}}},http:{}},PutRecord:{input:{type:"structure",required:["StreamName","Data","PartitionKey"],members:{StreamName:{},Data:{type:"blob"},PartitionKey:{},ExplicitHashKey:{},SequenceNumberForOrdering:{}}},output:{type:"structure",required:["ShardId","SequenceNumber"],members:{ShardId:{},SequenceNumber:{}}},http:{}},PutRecords:{input:{type:"structure",required:["Records","StreamName"],members:{Records:{type:"list",member:{type:"structure",required:["Data","PartitionKey"],members:{Data:{type:"blob"},ExplicitHashKey:{},PartitionKey:{}}}},StreamName:{}}},output:{type:"structure",required:["Records"],members:{FailedRecordCount:{type:"integer"},Records:{type:"list",member:{type:"structure",members:{SequenceNumber:{},ShardId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},RemoveTagsFromStream:{input:{type:"structure",required:["StreamName","TagKeys"],members:{StreamName:{},TagKeys:{type:"list",member:{}}}},http:{}},SplitShard:{input:{type:"structure",required:["StreamName","ShardToSplit","NewStartingHashKey"],members:{StreamName:{},ShardToSplit:{},NewStartingHashKey:{}}},http:{}}},shapes:{Sr:{type:"list",member:{}},Su:{type:"structure",members:{StreamName:{},CurrentShardLevelMetrics:{shape:"Sr"},DesiredShardLevelMetrics:{shape:"Sr"}}}},paginators:{DescribeStream:{input_token:"ExclusiveStartShardId",limit_key:"Limit",more_results:"StreamDescription.HasMoreShards",output_token:"StreamDescription.Shards[-1].ShardId",result_key:"StreamDescription.Shards"},ListStreams:{input_token:"ExclusiveStartStreamName",limit_key:"Limit",more_results:"HasMoreStreams",output_token:"StreamNames[-1]",result_key:"StreamNames"}},waiters:{StreamExists:{delay:10,operation:"DescribeStream",maxAttempts:18,acceptors:[{expected:"ACTIVE",matcher:"path",state:"success",argument:"StreamDescription.StreamStatus"}]}}},a.apiLoader.services.kms={},a.KMS=a.Service.defineService("kms",["2014-11-01"]),a.apiLoader.services.kms["2014-11-01"]={version:"2.0",metadata:{apiVersion:"2014-11-01",endpointPrefix:"kms",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"KMS",serviceFullName:"AWS Key Management Service",signatureVersion:"v4",targetPrefix:"TrentService"},operations:{CancelKeyDeletion:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},output:{type:"structure",members:{KeyId:{}}},http:{}},CreateAlias:{input:{type:"structure",required:["AliasName","TargetKeyId"],members:{AliasName:{},TargetKeyId:{}}},http:{}},CreateGrant:{input:{type:"structure",required:["KeyId","GranteePrincipal"],members:{KeyId:{},GranteePrincipal:{},RetiringPrincipal:{},Operations:{shape:"S8"},Constraints:{shape:"Sa"},GrantTokens:{shape:"Se"},Name:{}}},output:{type:"structure",members:{GrantToken:{},GrantId:{}}},http:{}},CreateKey:{input:{type:"structure",members:{Policy:{},Description:{},KeyUsage:{},BypassPolicyLockoutSafetyCheck:{type:"boolean"}}},output:{type:"structure",members:{KeyMetadata:{shape:"Sp"}}},http:{}},Decrypt:{input:{type:"structure",required:["CiphertextBlob"],members:{CiphertextBlob:{type:"blob"},EncryptionContext:{shape:"Sb"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{KeyId:{},Plaintext:{shape:"Sx"}}},http:{}},DeleteAlias:{input:{type:"structure",required:["AliasName"],members:{AliasName:{}}},http:{}},DescribeKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{KeyMetadata:{shape:"Sp"}}},http:{}},DisableKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},DisableKeyRotation:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},EnableKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},EnableKeyRotation:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},Encrypt:{input:{type:"structure",required:["KeyId","Plaintext"],members:{KeyId:{},Plaintext:{shape:"Sx"},EncryptionContext:{shape:"Sb"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},KeyId:{}}},http:{}},GenerateDataKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},EncryptionContext:{shape:"Sb"},NumberOfBytes:{type:"integer"},KeySpec:{},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},Plaintext:{shape:"Sx"},KeyId:{}}},http:{}},GenerateDataKeyWithoutPlaintext:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},EncryptionContext:{shape:"Sb"},KeySpec:{},NumberOfBytes:{type:"integer"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},KeyId:{}}},http:{}},GenerateRandom:{input:{type:"structure",members:{NumberOfBytes:{type:"integer"}}},output:{type:"structure",members:{Plaintext:{shape:"Sx"}}},http:{}},GetKeyPolicy:{input:{type:"structure",required:["KeyId","PolicyName"],members:{KeyId:{},PolicyName:{}}},output:{type:"structure",members:{Policy:{}}},http:{}},GetKeyRotationStatus:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},output:{type:"structure",members:{KeyRotationEnabled:{type:"boolean"}}},http:{}},ListAliases:{input:{type:"structure",members:{Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Aliases:{type:"list",member:{type:"structure",members:{AliasName:{},AliasArn:{},TargetKeyId:{}}}},NextMarker:{},Truncated:{type:"boolean"}}},http:{}},ListGrants:{input:{type:"structure",required:["KeyId"],members:{Limit:{type:"integer"},Marker:{},KeyId:{}}},output:{shape:"S1r"},http:{}},ListKeyPolicies:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{PolicyNames:{type:"list",member:{}},NextMarker:{},Truncated:{type:"boolean"}}},http:{}},ListKeys:{input:{type:"structure",members:{Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Keys:{type:"list",member:{type:"structure",members:{KeyId:{},KeyArn:{}}}},NextMarker:{},Truncated:{type:"boolean"}}},http:{}},ListRetirableGrants:{input:{type:"structure",required:["RetiringPrincipal"],members:{Limit:{type:"integer"},Marker:{},RetiringPrincipal:{}}},output:{shape:"S1r"},http:{}},PutKeyPolicy:{input:{type:"structure",required:["KeyId","PolicyName","Policy"],members:{KeyId:{},PolicyName:{},Policy:{},BypassPolicyLockoutSafetyCheck:{type:"boolean"}}},http:{}},ReEncrypt:{input:{type:"structure",required:["CiphertextBlob","DestinationKeyId"],members:{CiphertextBlob:{type:"blob"},SourceEncryptionContext:{shape:"Sb"},DestinationKeyId:{},DestinationEncryptionContext:{shape:"Sb"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},SourceKeyId:{},KeyId:{}}},http:{}},RetireGrant:{input:{type:"structure",members:{GrantToken:{},KeyId:{},GrantId:{}}},http:{}},RevokeGrant:{input:{type:"structure",required:["KeyId","GrantId"],members:{KeyId:{},GrantId:{}}},http:{}},ScheduleKeyDeletion:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},PendingWindowInDays:{type:"integer"}}},output:{type:"structure",members:{KeyId:{},DeletionDate:{type:"timestamp"}}},http:{}},UpdateAlias:{input:{type:"structure",required:["AliasName","TargetKeyId"],members:{AliasName:{},TargetKeyId:{}}},http:{}},UpdateKeyDescription:{input:{type:"structure",required:["KeyId","Description"],members:{KeyId:{},Description:{}}},http:{}}},shapes:{S8:{type:"list",member:{}},Sa:{type:"structure",members:{EncryptionContextSubset:{shape:"Sb"},EncryptionContextEquals:{shape:"Sb"}}},Sb:{type:"map",key:{},value:{}},Se:{type:"list",member:{}},Sp:{type:"structure",required:["KeyId"],members:{AWSAccountId:{},KeyId:{},Arn:{},CreationDate:{type:"timestamp"},Enabled:{type:"boolean"},Description:{},KeyUsage:{},KeyState:{},DeletionDate:{type:"timestamp"}}},Sx:{type:"blob",sensitive:!0},S1r:{type:"structure",members:{Grants:{type:"list",member:{type:"structure",members:{KeyId:{},GrantId:{},Name:{},CreationDate:{type:"timestamp"},GranteePrincipal:{},RetiringPrincipal:{},IssuingAccount:{},Operations:{shape:"S8"},Constraints:{shape:"Sa"}}}},NextMarker:{},Truncated:{type:"boolean"}}}},paginators:{ListAliases:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"Aliases"},ListGrants:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"Grants"},ListKeyPolicies:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"PolicyNames"},ListKeys:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"Keys"}}},a.apiLoader.services.lambda={},a.Lambda=a.Service.defineService("lambda",["2014-11-11","2015-03-31"]),a.apiLoader.services.lambda["2015-03-31"]={version:"2.0",metadata:{apiVersion:"2015-03-31",endpointPrefix:"lambda",protocol:"rest-json",serviceFullName:"AWS Lambda",signatureVersion:"v4"},operations:{AddPermission:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/policy",responseCode:201},input:{type:"structure",required:["FunctionName","StatementId","Action","Principal"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},StatementId:{},Action:{},Principal:{},SourceArn:{},SourceAccount:{},EventSourceToken:{},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{type:"structure",members:{Statement:{}}}},CreateAlias:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/aliases",responseCode:201},input:{type:"structure",required:["FunctionName","Name","FunctionVersion"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{},FunctionVersion:{},Description:{}}},output:{shape:"Sg"}},CreateEventSourceMapping:{http:{requestUri:"/2015-03-31/event-source-mappings/",responseCode:202},input:{type:"structure",required:["EventSourceArn","FunctionName","StartingPosition"],members:{EventSourceArn:{},FunctionName:{},Enabled:{type:"boolean"},BatchSize:{type:"integer"},StartingPosition:{}}},output:{shape:"Sm"}},CreateFunction:{http:{requestUri:"/2015-03-31/functions",responseCode:201},input:{type:"structure",required:["FunctionName","Runtime","Role","Handler","Code"],members:{FunctionName:{},Runtime:{},Role:{},Handler:{},Code:{type:"structure",members:{ZipFile:{type:"blob"},S3Bucket:{},S3Key:{},S3ObjectVersion:{}}},Description:{},Timeout:{type:"integer"},MemorySize:{type:"integer"},Publish:{type:"boolean"},VpcConfig:{shape:"S10"}}},output:{shape:"S15"}},DeleteAlias:{http:{method:"DELETE",requestUri:"/2015-03-31/functions/{FunctionName}/aliases/{Name}",responseCode:204},input:{type:"structure",required:["FunctionName","Name"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{location:"uri",locationName:"Name"}}}},DeleteEventSourceMapping:{http:{method:"DELETE",requestUri:"/2015-03-31/event-source-mappings/{UUID}",responseCode:202},input:{type:"structure",required:["UUID"],members:{UUID:{location:"uri",locationName:"UUID"}}},output:{shape:"Sm"}},DeleteFunction:{http:{method:"DELETE",requestUri:"/2015-03-31/functions/{FunctionName}",responseCode:204},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}}},GetAlias:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/aliases/{Name}",responseCode:200},input:{type:"structure",required:["FunctionName","Name"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{location:"uri",locationName:"Name"}}},output:{shape:"Sg"}},GetEventSourceMapping:{http:{method:"GET",requestUri:"/2015-03-31/event-source-mappings/{UUID}",responseCode:200},input:{type:"structure",required:["UUID"],members:{UUID:{location:"uri",locationName:"UUID"}}},output:{shape:"Sm"}},GetFunction:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{type:"structure",members:{Configuration:{shape:"S15"},Code:{type:"structure",members:{RepositoryType:{},Location:{}}}}}},GetFunctionConfiguration:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/configuration",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{shape:"S15"}},GetPolicy:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/policy",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{type:"structure",members:{Policy:{}}}},Invoke:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/invocations"},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},InvocationType:{location:"header",locationName:"X-Amz-Invocation-Type"},LogType:{location:"header",locationName:"X-Amz-Log-Type"},ClientContext:{location:"header",locationName:"X-Amz-Client-Context"},Payload:{type:"blob"},Qualifier:{location:"querystring",locationName:"Qualifier"}},payload:"Payload"},output:{type:"structure",members:{StatusCode:{location:"statusCode",type:"integer"},FunctionError:{location:"header",locationName:"X-Amz-Function-Error"},LogResult:{location:"header",locationName:"X-Amz-Log-Result"},Payload:{type:"blob"}},payload:"Payload"}},InvokeAsync:{http:{requestUri:"/2014-11-13/functions/{FunctionName}/invoke-async/",responseCode:202},input:{type:"structure",required:["FunctionName","InvokeArgs"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},InvokeArgs:{type:"blob",streaming:!0}},deprecated:!0,payload:"InvokeArgs"},output:{type:"structure",members:{Status:{location:"statusCode",type:"integer"}},deprecated:!0},deprecated:!0},ListAliases:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/aliases",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},FunctionVersion:{location:"querystring",locationName:"FunctionVersion"},Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Aliases:{type:"list",member:{shape:"Sg"}}}}},ListEventSourceMappings:{http:{method:"GET",requestUri:"/2015-03-31/event-source-mappings/",responseCode:200},input:{type:"structure",members:{EventSourceArn:{location:"querystring",locationName:"EventSourceArn"},FunctionName:{location:"querystring",locationName:"FunctionName"},Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},EventSourceMappings:{type:"list",member:{shape:"Sm"}}}}},ListFunctions:{http:{method:"GET",requestUri:"/2015-03-31/functions/",responseCode:200},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Functions:{shape:"S23"}}}},ListVersionsByFunction:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/versions",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Versions:{shape:"S23"}}}},PublishVersion:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/versions",responseCode:201},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},CodeSha256:{},Description:{}}},output:{shape:"S15"}},RemovePermission:{http:{method:"DELETE",requestUri:"/2015-03-31/functions/{FunctionName}/policy/{StatementId}",responseCode:204},input:{type:"structure",required:["FunctionName","StatementId"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},StatementId:{location:"uri",locationName:"StatementId"},Qualifier:{location:"querystring",locationName:"Qualifier"}}}},UpdateAlias:{http:{method:"PUT",requestUri:"/2015-03-31/functions/{FunctionName}/aliases/{Name}",responseCode:200},input:{type:"structure",required:["FunctionName","Name"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{location:"uri",locationName:"Name"},FunctionVersion:{},Description:{}}},output:{shape:"Sg"}},UpdateEventSourceMapping:{http:{method:"PUT",requestUri:"/2015-03-31/event-source-mappings/{UUID}",responseCode:202},input:{type:"structure",required:["UUID"],members:{UUID:{location:"uri",locationName:"UUID"},FunctionName:{},Enabled:{type:"boolean"},BatchSize:{type:"integer"}}},output:{shape:"Sm"}},UpdateFunctionCode:{http:{method:"PUT",requestUri:"/2015-03-31/functions/{FunctionName}/code",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},ZipFile:{type:"blob"},S3Bucket:{},S3Key:{},S3ObjectVersion:{},Publish:{type:"boolean"}}},output:{shape:"S15"}},UpdateFunctionConfiguration:{http:{method:"PUT",requestUri:"/2015-03-31/functions/{FunctionName}/configuration",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Role:{},Handler:{},Description:{},Timeout:{type:"integer"},MemorySize:{type:"integer"},VpcConfig:{shape:"S10"},Runtime:{}}},output:{shape:"S15"}}},shapes:{Sg:{type:"structure",members:{AliasArn:{},Name:{},FunctionVersion:{},Description:{}}},Sm:{type:"structure",members:{UUID:{},BatchSize:{type:"integer"},EventSourceArn:{},FunctionArn:{},LastModified:{type:"timestamp"},LastProcessingResult:{},State:{},StateTransitionReason:{}}},S10:{type:"structure",members:{SubnetIds:{shape:"S11"},SecurityGroupIds:{shape:"S13"}}},S11:{type:"list",member:{}},S13:{type:"list",member:{}},S15:{type:"structure",members:{FunctionName:{},FunctionArn:{},Runtime:{},Role:{},Handler:{},CodeSize:{type:"long"},Description:{},Timeout:{type:"integer"},MemorySize:{type:"integer"},LastModified:{},CodeSha256:{},Version:{},VpcConfig:{type:"structure",members:{SubnetIds:{shape:"S11"},SecurityGroupIds:{shape:"S13"},VpcId:{}}}}},S23:{type:"list",member:{shape:"S15"}}},paginators:{ListEventSourceMappings:{input_token:"Marker",output_token:"NextMarker",limit_key:"MaxItems",result_key:"EventSourceMappings"},ListFunctions:{input_token:"Marker",output_token:"NextMarker",limit_key:"MaxItems",result_key:"Functions"}}},a.apiLoader.services.machinelearning={},a.MachineLearning=a.Service.defineService("machinelearning",["2014-12-12"]),e("./services/machinelearning"),a.apiLoader.services.machinelearning["2014-12-12"]={version:"2.0",metadata:{apiVersion:"2014-12-12",endpointPrefix:"machinelearning",jsonVersion:"1.1",serviceFullName:"Amazon Machine Learning",signatureVersion:"v4",targetPrefix:"AmazonML_20141212",protocol:"json"},operations:{CreateBatchPrediction:{input:{type:"structure",required:["BatchPredictionId","MLModelId","BatchPredictionDataSourceId","OutputUri"],members:{BatchPredictionId:{},BatchPredictionName:{},MLModelId:{},BatchPredictionDataSourceId:{},OutputUri:{}}},output:{type:"structure",members:{BatchPredictionId:{}}},http:{}},CreateDataSourceFromRDS:{input:{type:"structure",required:["DataSourceId","RDSData","RoleARN"],members:{DataSourceId:{},DataSourceName:{},RDSData:{type:"structure",required:["DatabaseInformation","SelectSqlQuery","DatabaseCredentials","S3StagingLocation","ResourceRole","ServiceRole","SubnetId","SecurityGroupIds"],members:{DatabaseInformation:{shape:"S8"},SelectSqlQuery:{},DatabaseCredentials:{type:"structure",required:["Username","Password"],members:{Username:{},Password:{}}},S3StagingLocation:{},DataRearrangement:{},DataSchema:{},DataSchemaUri:{},ResourceRole:{},ServiceRole:{},SubnetId:{},SecurityGroupIds:{type:"list",member:{}}}},RoleARN:{},ComputeStatistics:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},CreateDataSourceFromRedshift:{input:{type:"structure",required:["DataSourceId","DataSpec","RoleARN"],members:{DataSourceId:{},DataSourceName:{},DataSpec:{type:"structure",required:["DatabaseInformation","SelectSqlQuery","DatabaseCredentials","S3StagingLocation"],members:{DatabaseInformation:{shape:"Sr"},SelectSqlQuery:{},DatabaseCredentials:{type:"structure",required:["Username","Password"],members:{Username:{},Password:{}}},S3StagingLocation:{},DataRearrangement:{},DataSchema:{},DataSchemaUri:{}}},RoleARN:{},ComputeStatistics:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},CreateDataSourceFromS3:{input:{type:"structure",required:["DataSourceId","DataSpec"],members:{DataSourceId:{},DataSourceName:{},DataSpec:{type:"structure",required:["DataLocationS3"],members:{DataLocationS3:{},DataRearrangement:{},DataSchema:{},DataSchemaLocationS3:{}}},ComputeStatistics:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},CreateEvaluation:{input:{type:"structure",required:["EvaluationId","MLModelId","EvaluationDataSourceId"],members:{EvaluationId:{},EvaluationName:{},MLModelId:{},EvaluationDataSourceId:{}}},output:{type:"structure",members:{EvaluationId:{}}},http:{}},CreateMLModel:{input:{type:"structure",required:["MLModelId","MLModelType","TrainingDataSourceId"],members:{MLModelId:{},MLModelName:{},MLModelType:{},Parameters:{shape:"S16"},TrainingDataSourceId:{},Recipe:{},RecipeUri:{}}},output:{type:"structure",members:{MLModelId:{}}},http:{}},CreateRealtimeEndpoint:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{}}},output:{type:"structure",members:{MLModelId:{},RealtimeEndpointInfo:{shape:"S1c"}}},http:{}},DeleteBatchPrediction:{input:{type:"structure",required:["BatchPredictionId"],members:{BatchPredictionId:{}}},output:{type:"structure",members:{BatchPredictionId:{}}},http:{}},DeleteDataSource:{input:{type:"structure",required:["DataSourceId"],members:{DataSourceId:{}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},DeleteEvaluation:{input:{type:"structure",required:["EvaluationId"],members:{EvaluationId:{}}},output:{type:"structure",members:{EvaluationId:{}}},http:{}},DeleteMLModel:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{}}},output:{type:"structure",members:{MLModelId:{}}},http:{}},DeleteRealtimeEndpoint:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{}}},output:{type:"structure",members:{MLModelId:{},RealtimeEndpointInfo:{shape:"S1c"}}},http:{}},DescribeBatchPredictions:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{BatchPredictionId:{},MLModelId:{},BatchPredictionDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},OutputUri:{},Message:{}}}},NextToken:{}}},http:{}},DescribeDataSources:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{DataSourceId:{},DataLocationS3:{},DataRearrangement:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},DataSizeInBytes:{type:"long"},NumberOfFiles:{type:"long"},Name:{},Status:{},Message:{},RedshiftMetadata:{shape:"S28"},RDSMetadata:{shape:"S29"},RoleARN:{},ComputeStatistics:{type:"boolean"}}}},NextToken:{}}},http:{}},DescribeEvaluations:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{EvaluationId:{},MLModelId:{},EvaluationDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},PerformanceMetrics:{shape:"S2g"},Message:{}}}},NextToken:{}}},http:{}},DescribeMLModels:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{MLModelId:{},TrainingDataSourceId:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},SizeInBytes:{type:"long"},EndpointInfo:{shape:"S1c"},TrainingParameters:{shape:"S16"},InputDataLocationS3:{},Algorithm:{},MLModelType:{},ScoreThreshold:{type:"float"},ScoreThresholdLastUpdatedAt:{type:"timestamp"},Message:{}}}},NextToken:{}}},http:{}},GetBatchPrediction:{input:{type:"structure",required:["BatchPredictionId"],members:{BatchPredictionId:{}}},output:{type:"structure",members:{BatchPredictionId:{},MLModelId:{},BatchPredictionDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},OutputUri:{}, +LogUri:{},Message:{}}},http:{}},GetDataSource:{input:{type:"structure",required:["DataSourceId"],members:{DataSourceId:{},Verbose:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{},DataLocationS3:{},DataRearrangement:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},DataSizeInBytes:{type:"long"},NumberOfFiles:{type:"long"},Name:{},Status:{},LogUri:{},Message:{},RedshiftMetadata:{shape:"S28"},RDSMetadata:{shape:"S29"},RoleARN:{},ComputeStatistics:{type:"boolean"},DataSourceSchema:{}}},http:{}},GetEvaluation:{input:{type:"structure",required:["EvaluationId"],members:{EvaluationId:{}}},output:{type:"structure",members:{EvaluationId:{},MLModelId:{},EvaluationDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},PerformanceMetrics:{shape:"S2g"},LogUri:{},Message:{}}},http:{}},GetMLModel:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{},Verbose:{type:"boolean"}}},output:{type:"structure",members:{MLModelId:{},TrainingDataSourceId:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},SizeInBytes:{type:"long"},EndpointInfo:{shape:"S1c"},TrainingParameters:{shape:"S16"},InputDataLocationS3:{},MLModelType:{},ScoreThreshold:{type:"float"},ScoreThresholdLastUpdatedAt:{type:"timestamp"},LogUri:{},Message:{},Recipe:{},Schema:{}}},http:{}},Predict:{input:{type:"structure",required:["MLModelId","Record","PredictEndpoint"],members:{MLModelId:{},Record:{type:"map",key:{},value:{}},PredictEndpoint:{}}},output:{type:"structure",members:{Prediction:{type:"structure",members:{predictedLabel:{},predictedValue:{type:"float"},predictedScores:{type:"map",key:{},value:{type:"float"}},details:{type:"map",key:{},value:{}}}}}},http:{}},UpdateBatchPrediction:{input:{type:"structure",required:["BatchPredictionId","BatchPredictionName"],members:{BatchPredictionId:{},BatchPredictionName:{}}},output:{type:"structure",members:{BatchPredictionId:{}}},http:{}},UpdateDataSource:{input:{type:"structure",required:["DataSourceId","DataSourceName"],members:{DataSourceId:{},DataSourceName:{}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},UpdateEvaluation:{input:{type:"structure",required:["EvaluationId","EvaluationName"],members:{EvaluationId:{},EvaluationName:{}}},output:{type:"structure",members:{EvaluationId:{}}},http:{}},UpdateMLModel:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{},MLModelName:{},ScoreThreshold:{type:"float"}}},output:{type:"structure",members:{MLModelId:{}}},http:{}}},shapes:{S8:{type:"structure",required:["InstanceIdentifier","DatabaseName"],members:{InstanceIdentifier:{},DatabaseName:{}}},Sr:{type:"structure",required:["DatabaseName","ClusterIdentifier"],members:{DatabaseName:{},ClusterIdentifier:{}}},S16:{type:"map",key:{},value:{}},S1c:{type:"structure",members:{PeakRequestsPerSecond:{type:"integer"},CreatedAt:{type:"timestamp"},EndpointUrl:{},EndpointStatus:{}}},S28:{type:"structure",members:{RedshiftDatabase:{shape:"Sr"},DatabaseUserName:{},SelectSqlQuery:{}}},S29:{type:"structure",members:{Database:{shape:"S8"},DatabaseUserName:{},SelectSqlQuery:{},ResourceRole:{},ServiceRole:{},DataPipelineId:{}}},S2g:{type:"structure",members:{Properties:{type:"map",key:{},value:{}}}}},examples:{},paginators:{DescribeBatchPredictions:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"},DescribeDataSources:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"},DescribeEvaluations:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"},DescribeMLModels:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"}},waiters:{DataSourceAvailable:{delay:30,operation:"DescribeDataSources",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]},MLModelAvailable:{delay:30,operation:"DescribeMLModels",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]},EvaluationAvailable:{delay:30,operation:"DescribeEvaluations",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]},BatchPredictionAvailable:{delay:30,operation:"DescribeBatchPredictions",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]}}},a.apiLoader.services.marketplacecommerceanalytics={},a.MarketplaceCommerceAnalytics=a.Service.defineService("marketplacecommerceanalytics",["2015-07-01"]),a.apiLoader.services.marketplacecommerceanalytics["2015-07-01"]={version:"2.0",metadata:{apiVersion:"2015-07-01",endpointPrefix:"marketplacecommerceanalytics",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Marketplace Commerce Analytics",signatureVersion:"v4",signingName:"marketplacecommerceanalytics",targetPrefix:"MarketplaceCommerceAnalytics20150701"},operations:{GenerateDataSet:{input:{type:"structure",required:["dataSetType","dataSetPublicationDate","roleNameArn","destinationS3BucketName","snsTopicArn"],members:{dataSetType:{},dataSetPublicationDate:{type:"timestamp"},roleNameArn:{},destinationS3BucketName:{},destinationS3Prefix:{},snsTopicArn:{},customerDefinedValues:{type:"map",key:{},value:{}}}},output:{type:"structure",members:{dataSetRequestId:{}}},http:{}}},shapes:{}},a.apiLoader.services.mobileanalytics={},a.MobileAnalytics=a.Service.defineService("mobileanalytics",["2014-06-05"]),a.apiLoader.services.mobileanalytics["2014-06-05"]={version:"2.0",metadata:{apiVersion:"2014-06-05",endpointPrefix:"mobileanalytics",serviceFullName:"Amazon Mobile Analytics",signatureVersion:"v4",protocol:"rest-json"},operations:{PutEvents:{http:{requestUri:"/2014-06-05/events",responseCode:202},input:{type:"structure",required:["events","clientContext"],members:{events:{type:"list",member:{type:"structure",required:["eventType","timestamp"],members:{eventType:{},timestamp:{},session:{type:"structure",members:{id:{},duration:{type:"long"},startTimestamp:{},stopTimestamp:{}}},version:{},attributes:{type:"map",key:{},value:{}},metrics:{type:"map",key:{},value:{type:"double"}}}}},clientContext:{location:"header",locationName:"x-amz-Client-Context"},clientContextEncoding:{location:"header",locationName:"x-amz-Client-Context-Encoding"}}}}},shapes:{}},a.apiLoader.services.opsworks={},a.OpsWorks=a.Service.defineService("opsworks",["2013-02-18"]),a.apiLoader.services.opsworks["2013-02-18"]={version:"2.0",metadata:{apiVersion:"2013-02-18",endpointPrefix:"opsworks",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS OpsWorks",signatureVersion:"v4",targetPrefix:"OpsWorks_20130218"},operations:{AssignInstance:{input:{type:"structure",required:["InstanceId","LayerIds"],members:{InstanceId:{},LayerIds:{shape:"S3"}}},http:{}},AssignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},InstanceId:{}}},http:{}},AssociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},InstanceId:{}}},http:{}},AttachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}},http:{}},CloneStack:{input:{type:"structure",required:["SourceStackId","ServiceRoleArn"],members:{SourceStackId:{},Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},ClonePermissions:{type:"boolean"},CloneAppIds:{shape:"S3"},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}},http:{}},CreateApp:{input:{type:"structure",required:["StackId","Name","Type"],members:{StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}},output:{type:"structure",members:{AppId:{}}},http:{}},CreateDeployment:{input:{type:"structure",required:["StackId","Command"],members:{StackId:{},AppId:{},InstanceIds:{shape:"S3"},LayerIds:{shape:"S3"},Command:{shape:"Ss"},Comment:{},CustomJson:{}}},output:{type:"structure",members:{DeploymentId:{}}},http:{}},CreateInstance:{input:{type:"structure",required:["StackId","LayerIds","InstanceType"],members:{StackId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},AvailabilityZone:{},VirtualizationType:{},SubnetId:{},Architecture:{},RootDeviceType:{},BlockDeviceMappings:{shape:"Sz"},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{},Tenancy:{}}},output:{type:"structure",members:{InstanceId:{}}},http:{}},CreateLayer:{input:{type:"structure",required:["StackId","Type","Name","Shortname"],members:{StackId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S19"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1b"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1c"}}},output:{type:"structure",members:{LayerId:{}}},http:{}},CreateStack:{input:{type:"structure",required:["Name","Region","ServiceRoleArn","DefaultInstanceProfileArn"],members:{Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}},http:{}},CreateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}},output:{type:"structure",members:{IamUserArn:{}}},http:{}},DeleteApp:{input:{type:"structure",required:["AppId"],members:{AppId:{}}},http:{}},DeleteInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},DeleteElasticIp:{type:"boolean"},DeleteVolumes:{type:"boolean"}}},http:{}},DeleteLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}},http:{}},DeleteStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},http:{}},DeleteUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{}}},http:{}},DeregisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn"],members:{EcsClusterArn:{}}},http:{}},DeregisterElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}},http:{}},DeregisterInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},DeregisterRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{}}},http:{}},DeregisterVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}},http:{}},DescribeAgentVersions:{input:{type:"structure",members:{StackId:{},ConfigurationManager:{shape:"Sa"}}},output:{type:"structure",members:{AgentVersions:{type:"list",member:{type:"structure",members:{Version:{},ConfigurationManager:{shape:"Sa"}}}}}},http:{}},DescribeApps:{input:{type:"structure",members:{StackId:{},AppIds:{shape:"S3"}}},output:{type:"structure",members:{Apps:{type:"list",member:{type:"structure",members:{AppId:{},StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},CreatedAt:{},Environment:{shape:"So"}}}}}},http:{}},DescribeCommands:{input:{type:"structure",members:{DeploymentId:{},InstanceId:{},CommandIds:{shape:"S3"}}},output:{type:"structure",members:{Commands:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},DeploymentId:{},CreatedAt:{},AcknowledgedAt:{},CompletedAt:{},Status:{},ExitCode:{type:"integer"},LogUrl:{},Type:{}}}}}},http:{}},DescribeDeployments:{input:{type:"structure",members:{StackId:{},AppId:{},DeploymentIds:{shape:"S3"}}},output:{type:"structure",members:{Deployments:{type:"list",member:{type:"structure",members:{DeploymentId:{},StackId:{},AppId:{},CreatedAt:{},CompletedAt:{},Duration:{type:"integer"},IamUserArn:{},Comment:{},Command:{shape:"Ss"},Status:{},CustomJson:{},InstanceIds:{shape:"S3"}}}}}},http:{}},DescribeEcsClusters:{input:{type:"structure",members:{EcsClusterArns:{shape:"S3"},StackId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EcsClusters:{type:"list",member:{type:"structure",members:{EcsClusterArn:{},EcsClusterName:{},StackId:{},RegisteredAt:{}}}},NextToken:{}}},http:{}},DescribeElasticIps:{input:{type:"structure",members:{InstanceId:{},StackId:{},Ips:{shape:"S3"}}},output:{type:"structure",members:{ElasticIps:{type:"list",member:{type:"structure",members:{Ip:{},Name:{},Domain:{},Region:{},InstanceId:{}}}}}},http:{}},DescribeElasticLoadBalancers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{ElasticLoadBalancers:{type:"list",member:{type:"structure",members:{ElasticLoadBalancerName:{},Region:{},DnsName:{},StackId:{},LayerId:{},VpcId:{},AvailabilityZones:{shape:"S3"},SubnetIds:{shape:"S3"},Ec2InstanceIds:{shape:"S3"}}}}}},http:{}},DescribeInstances:{input:{type:"structure",members:{StackId:{},LayerId:{},InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{Instances:{type:"list",member:{type:"structure",members:{AgentVersion:{},AmiId:{},Architecture:{},AutoScalingType:{},AvailabilityZone:{},BlockDeviceMappings:{shape:"Sz"},CreatedAt:{},EbsOptimized:{type:"boolean"},Ec2InstanceId:{},EcsClusterArn:{},EcsContainerInstanceArn:{},ElasticIp:{},Hostname:{},InfrastructureClass:{},InstallUpdatesOnBoot:{type:"boolean"},InstanceId:{},InstanceProfileArn:{},InstanceType:{},LastServiceErrorId:{},LayerIds:{shape:"S3"},Os:{},Platform:{},PrivateDns:{},PrivateIp:{},PublicDns:{},PublicIp:{},RegisteredBy:{},ReportedAgentVersion:{},ReportedOs:{type:"structure",members:{Family:{},Name:{},Version:{}}},RootDeviceType:{},RootDeviceVolumeId:{},SecurityGroupIds:{shape:"S3"},SshHostDsaKeyFingerprint:{},SshHostRsaKeyFingerprint:{},SshKeyName:{},StackId:{},Status:{},SubnetId:{},Tenancy:{},VirtualizationType:{}}}}}},http:{}},DescribeLayers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{Layers:{type:"list",member:{type:"structure",members:{StackId:{},LayerId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},DefaultSecurityGroupNames:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S19"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},DefaultRecipes:{shape:"S1b"},CustomRecipes:{shape:"S1b"},CreatedAt:{},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1c"}}}}}},http:{}},DescribeLoadBasedAutoScaling:{input:{type:"structure",required:["LayerIds"],members:{LayerIds:{shape:"S3"}}},output:{type:"structure",members:{LoadBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S30"},DownScaling:{shape:"S30"}}}}}},http:{}},DescribeMyUserProfile:{output:{type:"structure",members:{UserProfile:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{}}}}},http:{}},DescribePermissions:{input:{type:"structure",members:{IamUserArn:{},StackId:{}}},output:{type:"structure",members:{Permissions:{type:"list",member:{type:"structure",members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}}}}},http:{}},DescribeRaidArrays:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayIds:{shape:"S3"}}},output:{type:"structure",members:{RaidArrays:{type:"list",member:{type:"structure",members:{RaidArrayId:{},InstanceId:{},Name:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},Device:{},MountPoint:{},AvailabilityZone:{},CreatedAt:{},StackId:{},VolumeType:{},Iops:{type:"integer"}}}}}},http:{}},DescribeRdsDbInstances:{input:{type:"structure",required:["StackId"],members:{StackId:{},RdsDbInstanceArns:{shape:"S3"}}},output:{type:"structure",members:{RdsDbInstances:{type:"list",member:{type:"structure",members:{RdsDbInstanceArn:{},DbInstanceIdentifier:{},DbUser:{},DbPassword:{},Region:{},Address:{},Engine:{},StackId:{},MissingOnRds:{type:"boolean"}}}}}},http:{}},DescribeServiceErrors:{input:{type:"structure",members:{StackId:{},InstanceId:{},ServiceErrorIds:{shape:"S3"}}},output:{type:"structure",members:{ServiceErrors:{type:"list",member:{type:"structure",members:{ServiceErrorId:{},StackId:{},InstanceId:{},Type:{},Message:{},CreatedAt:{}}}}}},http:{}},DescribeStackProvisioningParameters:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{AgentInstallerUrl:{},Parameters:{type:"map",key:{},value:{}}}},http:{}},DescribeStackSummary:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{StackSummary:{type:"structure",members:{StackId:{},Name:{},Arn:{},LayersCount:{type:"integer"},AppsCount:{type:"integer"},InstancesCount:{type:"structure",members:{Assigning:{type:"integer"},Booting:{type:"integer"},ConnectionLost:{type:"integer"},Deregistering:{type:"integer"},Online:{type:"integer"},Pending:{type:"integer"},Rebooting:{type:"integer"},Registered:{type:"integer"},Registering:{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"},Unassigning:{type:"integer"}}}}}}},http:{}},DescribeStacks:{input:{type:"structure",members:{StackIds:{shape:"S3"}}},output:{type:"structure",members:{Stacks:{type:"list",member:{type:"structure",members:{StackId:{},Name:{},Arn:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},CreatedAt:{},DefaultRootDeviceType:{},AgentVersion:{}}}}}},http:{}},DescribeTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceIds"],members:{InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{TimeBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{InstanceId:{},AutoScalingSchedule:{shape:"S40"}}}}}},http:{}},DescribeUserProfiles:{input:{type:"structure",members:{IamUserArns:{shape:"S3"}}},output:{type:"structure",members:{UserProfiles:{type:"list",member:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}}}}},http:{}},DescribeVolumes:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayId:{},VolumeIds:{shape:"S3"}}},output:{type:"structure",members:{Volumes:{type:"list",member:{type:"structure",members:{VolumeId:{},Ec2VolumeId:{},Name:{},RaidArrayId:{},InstanceId:{},Status:{},Size:{type:"integer"},Device:{},MountPoint:{},Region:{},AvailabilityZone:{},VolumeType:{},Iops:{type:"integer"}}}}}},http:{}},DetachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}},http:{}},DisassociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}},http:{}},GetHostnameSuggestion:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}},output:{type:"structure",members:{LayerId:{},Hostname:{}}},http:{}},GrantAccess:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},ValidForInMinutes:{type:"integer"}}},output:{type:"structure",members:{TemporaryCredential:{type:"structure",members:{Username:{},Password:{},ValidForInMinutes:{type:"integer"},InstanceId:{}}}}},http:{}},RebootInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},RegisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn","StackId"],members:{EcsClusterArn:{},StackId:{}}},output:{type:"structure",members:{EcsClusterArn:{}}},http:{}},RegisterElasticIp:{input:{type:"structure",required:["ElasticIp","StackId"],members:{ElasticIp:{},StackId:{}}},output:{type:"structure",members:{ElasticIp:{}}},http:{}},RegisterInstance:{input:{type:"structure",required:["StackId"],members:{StackId:{},Hostname:{},PublicIp:{},PrivateIp:{},RsaPublicKey:{},RsaPublicKeyFingerprint:{},InstanceIdentity:{type:"structure",members:{Document:{},Signature:{}}}}},output:{type:"structure",members:{InstanceId:{}}},http:{}},RegisterRdsDbInstance:{input:{type:"structure",required:["StackId","RdsDbInstanceArn","DbUser","DbPassword"],members:{StackId:{},RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}},http:{}},RegisterVolume:{input:{type:"structure",required:["StackId"],members:{Ec2VolumeId:{},StackId:{}}},output:{type:"structure",members:{VolumeId:{}}},http:{}},SetLoadBasedAutoScaling:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S30"},DownScaling:{shape:"S30"}}},http:{}},SetPermission:{input:{type:"structure",required:["StackId","IamUserArn"],members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}},http:{}},SetTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},AutoScalingSchedule:{shape:"S40"}}},http:{}},StartInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},StartStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},http:{}},StopInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},StopStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},http:{}},UnassignInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},UnassignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}},http:{}},UpdateApp:{input:{type:"structure",required:["AppId"],members:{AppId:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}},http:{}},UpdateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},Name:{}}},http:{}},UpdateInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},Architecture:{},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{}}},http:{}},UpdateLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S19"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1b"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1c"}}},http:{}},UpdateMyUserProfile:{input:{type:"structure",members:{SshPublicKey:{}}},http:{}},UpdateRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}},http:{}},UpdateStack:{input:{type:"structure",required:["StackId"],members:{StackId:{},Name:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},UseOpsworksSecurityGroups:{type:"boolean"},AgentVersion:{}}},http:{}},UpdateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}},http:{}},UpdateVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},Name:{},MountPoint:{}}},http:{}}},shapes:{S3:{type:"list",member:{}},S8:{type:"map",key:{},value:{}},Sa:{type:"structure",members:{Name:{},Version:{}}},Sb:{type:"structure",members:{ManageBerkshelf:{type:"boolean"},BerkshelfVersion:{}}},Sd:{type:"structure",members:{Type:{},Url:{},Username:{},Password:{},SshKey:{},Revision:{}}},Si:{type:"list",member:{type:"structure",members:{Type:{},Arn:{},DatabaseName:{}}}},Sl:{type:"structure",required:["Certificate","PrivateKey"],members:{Certificate:{},PrivateKey:{},Chain:{}}},Sm:{type:"map",key:{},value:{}},So:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{},Secure:{type:"boolean"}}}},Ss:{type:"structure",required:["Name"],members:{Name:{},Args:{type:"map",key:{},value:{shape:"S3"}}}},Sz:{type:"list",member:{type:"structure",members:{DeviceName:{},NoDevice:{},VirtualName:{},Ebs:{type:"structure",members:{SnapshotId:{},Iops:{type:"integer"},VolumeSize:{type:"integer"},VolumeType:{},DeleteOnTermination:{type:"boolean"}}}}}},S17:{type:"map",key:{},value:{}},S19:{type:"list",member:{type:"structure",required:["MountPoint","NumberOfDisks","Size"],members:{MountPoint:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},VolumeType:{},Iops:{type:"integer"}}}},S1b:{type:"structure",members:{Setup:{shape:"S3"},Configure:{shape:"S3"},Deploy:{shape:"S3"},Undeploy:{shape:"S3"},Shutdown:{shape:"S3"}}},S1c:{type:"structure",members:{Shutdown:{type:"structure",members:{ExecutionTimeout:{type:"integer"},DelayUntilElbConnectionsDrained:{type:"boolean"}}}}},S30:{type:"structure",members:{InstanceCount:{type:"integer"},ThresholdsWaitTime:{type:"integer"},IgnoreMetricsTime:{type:"integer"},CpuThreshold:{type:"double"},MemoryThreshold:{type:"double"},LoadThreshold:{type:"double"},Alarms:{shape:"S3"}}},S40:{type:"structure",members:{Monday:{shape:"S41"},Tuesday:{shape:"S41"},Wednesday:{shape:"S41"},Thursday:{shape:"S41"},Friday:{shape:"S41"},Saturday:{shape:"S41"},Sunday:{shape:"S41"}}},S41:{type:"map",key:{},value:{}}},paginators:{DescribeApps:{result_key:"Apps"},DescribeCommands:{result_key:"Commands"},DescribeDeployments:{result_key:"Deployments"},DescribeEcsClusters:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"EcsClusters"},DescribeElasticIps:{result_key:"ElasticIps"},DescribeElasticLoadBalancers:{result_key:"ElasticLoadBalancers"},DescribeInstances:{result_key:"Instances"},DescribeLayers:{result_key:"Layers"},DescribeLoadBasedAutoScaling:{result_key:"LoadBasedAutoScalingConfigurations"},DescribePermissions:{result_key:"Permissions"},DescribeRaidArrays:{result_key:"RaidArrays"},DescribeServiceErrors:{result_key:"ServiceErrors"},DescribeStacks:{result_key:"Stacks"},DescribeTimeBasedAutoScaling:{result_key:"TimeBasedAutoScalingConfigurations"},DescribeUserProfiles:{result_key:"UserProfiles"},DescribeVolumes:{result_key:"Volumes"}},waiters:{AppExists:{delay:1,operation:"DescribeApps",maxAttempts:40,acceptors:[{expected:200,matcher:"status",state:"success"},{matcher:"status",expected:400,state:"failure"}]},DeploymentSuccessful:{delay:15,operation:"DescribeDeployments",maxAttempts:40,description:"Wait until a deployment has completed successfully",acceptors:[{expected:"successful",matcher:"pathAll",state:"success",argument:"Deployments[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"Deployments[].Status"}]},InstanceOnline:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is online.",acceptors:[{expected:"online",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"shutting_down",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopped",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminating",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is stopped.",acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is terminated.",acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"ResourceNotFoundException",matcher:"error",state:"success"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]}}},a.apiLoader.services.rds={},a.RDS=a.Service.defineService("rds",["2013-01-10","2013-02-12","2013-09-09","2014-10-31"]), +a.apiLoader.services.rds["2014-10-31"]={version:"2.0",metadata:{apiVersion:"2014-10-31",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",signatureVersion:"v4",xmlNamespace:"http://rds.amazonaws.com/doc/2014-10-31/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}},http:{}},ApplyPendingMaintenanceAction:{input:{type:"structure",required:["ResourceIdentifier","ApplyAction","OptInType"],members:{ResourceIdentifier:{},ApplyAction:{},OptInType:{}}},output:{resultWrapper:"ApplyPendingMaintenanceActionResult",type:"structure",members:{ResourcePendingMaintenanceActions:{shape:"Sd"}}},http:{}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sj"}}},http:{}},CopyDBClusterSnapshot:{input:{type:"structure",required:["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],members:{SourceDBClusterSnapshotIdentifier:{},TargetDBClusterSnapshotIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sq"}}},http:{}},CopyDBParameterGroup:{input:{type:"structure",required:["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],members:{SourceDBParameterGroupIdentifier:{},TargetDBParameterGroupIdentifier:{},TargetDBParameterGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sv"}}},http:{}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},KmsKeyId:{},Tags:{shape:"S9"},CopyTags:{type:"boolean"}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sz"}}},http:{}},CopyOptionGroup:{input:{type:"structure",required:["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],members:{SourceOptionGroupIdentifier:{},TargetOptionGroupIdentifier:{},TargetOptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S13"}}},http:{}},CreateDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword"],members:{AvailabilityZones:{shape:"Sr"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},DBSubnetGroupName:{},Engine:{},EngineVersion:{},Port:{type:"integer"},MasterUsername:{},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},ReplicationSourceIdentifier:{},Tags:{shape:"S9"},StorageEncrypted:{type:"boolean"},KmsKeyId:{}}},output:{resultWrapper:"CreateDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},CreateDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBClusterParameterGroupResult",type:"structure",members:{DBClusterParameterGroup:{shape:"S1m"}}},http:{}},CreateDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","DBClusterIdentifier"],members:{DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sq"}}},http:{}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","DBInstanceClass","Engine"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S1q"},VpcSecurityGroupIds:{shape:"S1d"},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:{shape:"S9"},DBClusterIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},DBSubnetGroupName:{},StorageType:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sv"}}},http:{}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sj"}}},http:{}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sz"}}},http:{}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2h"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1w"}}},http:{}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S13"}}},http:{}},DeleteDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},DeleteDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{}}},http:{}},DeleteDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sq"}}},http:{}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}},http:{}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}},http:{}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sz"}}},http:{}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}},http:{}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}},http:{}},DescribeAccountAttributes:{input:{type:"structure",members:{}},output:{resultWrapper:"DescribeAccountAttributesResult",type:"structure",members:{AccountQuotas:{type:"list",member:{locationName:"AccountQuota",type:"structure",members:{AccountQuotaName:{},Used:{type:"long"},Max:{type:"long"}},wrapper:!0}}}},http:{}},DescribeCertificates:{input:{type:"structure",members:{CertificateIdentifier:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCertificatesResult",type:"structure",members:{Certificates:{type:"list",member:{locationName:"Certificate",type:"structure",members:{CertificateIdentifier:{},CertificateType:{},Thumbprint:{},ValidFrom:{type:"timestamp"},ValidTill:{type:"timestamp"}},wrapper:!0}},Marker:{}}},http:{}},DescribeDBClusterParameterGroups:{input:{type:"structure",members:{DBClusterParameterGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParameterGroupsResult",type:"structure",members:{Marker:{},DBClusterParameterGroups:{type:"list",member:{shape:"S1m",locationName:"DBClusterParameterGroup"}}}},http:{}},DescribeDBClusterParameters:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},Source:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParametersResult",type:"structure",members:{Parameters:{shape:"S3j"},Marker:{}}},http:{}},DescribeDBClusterSnapshotAttributes:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBClusterSnapshotAttributesResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3o"}}},http:{}},DescribeDBClusterSnapshots:{input:{type:"structure",members:{DBClusterIdentifier:{},DBClusterSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBClusterSnapshotsResult",type:"structure",members:{Marker:{},DBClusterSnapshots:{type:"list",member:{shape:"Sq",locationName:"DBClusterSnapshot"}}}},http:{}},DescribeDBClusters:{input:{type:"structure",members:{DBClusterIdentifier:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClustersResult",type:"structure",members:{Marker:{},DBClusters:{type:"list",member:{shape:"S1f",locationName:"DBCluster"}}}},http:{}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S42"},SupportedCharacterSets:{type:"list",member:{shape:"S42",locationName:"CharacterSet"}},ValidUpgradeTarget:{type:"list",member:{locationName:"UpgradeTarget",type:"structure",members:{Engine:{},EngineVersion:{},Description:{},AutoUpgrade:{type:"boolean"},IsMajorVersionUpgrade:{type:"boolean"}}}}}}}}},http:{}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"S1s",locationName:"DBInstance"}}}},http:{}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}},http:{}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"Sv",locationName:"DBParameterGroup"}}}},http:{}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S3j"},Marker:{}}},http:{}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sj",locationName:"DBSecurityGroup"}}}},http:{}},DescribeDBSnapshotAttributes:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBSnapshotAttributesResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4n"}}},http:{}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sz",locationName:"DBSnapshot"}}}},http:{}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S1w",locationName:"DBSubnetGroup"}}}},http:{}},DescribeEngineDefaultClusterParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultClusterParametersResult",type:"structure",members:{EngineDefaults:{shape:"S4y"}}},http:{}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{shape:"S4y"}}},http:{}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S38"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}},http:{}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}},http:{}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}},http:{}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}},http:{}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S38"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S13",locationName:"OptionGroup"}},Marker:{}}},http:{}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S1z",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"},SupportsStorageEncryption:{type:"boolean"},StorageType:{},SupportsIops:{type:"boolean"},SupportsEnhancedMonitoring:{type:"boolean"}},wrapper:!0}},Marker:{}}},http:{}},DescribePendingMaintenanceActions:{input:{type:"structure",members:{ResourceIdentifier:{},Filters:{shape:"S38"},Marker:{},MaxRecords:{type:"integer"}}},output:{resultWrapper:"DescribePendingMaintenanceActionsResult",type:"structure",members:{PendingMaintenanceActions:{type:"list",member:{shape:"Sd",locationName:"ResourcePendingMaintenanceActions"}},Marker:{}}},http:{}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S5y",locationName:"ReservedDBInstance"}}}},http:{}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S60"}},wrapper:!0}}}},http:{}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}},http:{}},FailoverDBCluster:{input:{type:"structure",members:{DBClusterIdentifier:{}}},output:{resultWrapper:"FailoverDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S38"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}},http:{}},ModifyDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},NewDBClusterIdentifier:{},ApplyImmediately:{type:"boolean"},BackupRetentionPeriod:{type:"integer"},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},Port:{type:"integer"},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{}}},output:{resultWrapper:"ModifyDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},ModifyDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","Parameters"],members:{DBClusterParameterGroupName:{},Parameters:{shape:"S3j"}}},output:{shape:"S6f",resultWrapper:"ModifyDBClusterParameterGroupResult"},http:{}},ModifyDBClusterSnapshotAttribute:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","AttributeName"],members:{DBClusterSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S3r"},ValuesToRemove:{shape:"S3r"}}},output:{resultWrapper:"ModifyDBClusterSnapshotAttributeResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3o"}}},http:{}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"S1q"},VpcSecurityGroupIds:{shape:"S1d"},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:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},CACertificateIdentifier:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},DBPortNumber:{type:"integer"},PubliclyAccessible:{type:"boolean"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S3j"}}},output:{shape:"S6l",resultWrapper:"ModifyDBParameterGroupResult"},http:{}},ModifyDBSnapshotAttribute:{input:{type:"structure",required:["DBSnapshotIdentifier","AttributeName"],members:{DBSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S3r"},ValuesToRemove:{shape:"S3r"}}},output:{resultWrapper:"ModifyDBSnapshotAttributeResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4n"}}},http:{}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2h"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1w"}}},http:{}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"S1q"},VpcSecurityGroupMemberships:{shape:"S1d"},OptionSettings:{type:"list",member:{shape:"S17",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S13"}}},http:{}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"S9"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S5y"}}},http:{}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}},http:{}},ResetDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3j"}}},output:{shape:"S6f",resultWrapper:"ResetDBClusterParameterGroupResult"},http:{}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3j"}}},output:{shape:"S6l",resultWrapper:"ResetDBParameterGroupResult"},http:{}},RestoreDBClusterFromSnapshot:{input:{type:"structure",required:["DBClusterIdentifier","SnapshotIdentifier","Engine"],members:{AvailabilityZones:{shape:"Sr"},DBClusterIdentifier:{},SnapshotIdentifier:{},Engine:{},EngineVersion:{},Port:{type:"integer"},DBSubnetGroupName:{},DatabaseName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},Tags:{shape:"S9"},KmsKeyId:{}}},output:{resultWrapper:"RestoreDBClusterFromSnapshotResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},RestoreDBClusterToPointInTime:{input:{type:"structure",required:["DBClusterIdentifier","SourceDBClusterIdentifier"],members:{DBClusterIdentifier:{},SourceDBClusterIdentifier:{},RestoreToTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},Port:{type:"integer"},DBSubnetGroupName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},Tags:{shape:"S9"},KmsKeyId:{}}},output:{resultWrapper:"RestoreDBClusterToPointInTimeResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},DomainIAMRoleName:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},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:{},CopyTagsToSnapshot:{type:"boolean"},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},DomainIAMRoleName:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sj"}}},http:{}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{ResourceIdentifier:{},PendingMaintenanceActionDetails:{type:"list",member:{locationName:"PendingMaintenanceAction",type:"structure",members:{Action:{},AutoAppliedAfterDate:{type:"timestamp"},ForcedApplyDate:{type:"timestamp"},OptInStatus:{},CurrentApplyDate:{type:"timestamp"},Description:{}}}}},wrapper:!0},Sj:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{}, +EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sq:{type:"structure",members:{AvailabilityZones:{shape:"Sr"},DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},VpcId:{},ClusterCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},PercentProgress:{type:"integer"},StorageEncrypted:{type:"boolean"},KmsKeyId:{}},wrapper:!0},Sr:{type:"list",member:{locationName:"AvailabilityZone"}},Sv:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},Sz:{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:{},SourceDBSnapshotIdentifier:{},StorageType:{},TdeCredentialArn:{},Encrypted:{type:"boolean"},KmsKeyId:{}},wrapper:!0},S13:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"S17",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"S18"},VpcSecurityGroupMemberships:{shape:"S1a"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S17:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S18:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},S1a:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S1d:{type:"list",member:{locationName:"VpcSecurityGroupId"}},S1f:{type:"structure",members:{AllocatedStorage:{type:"integer"},AvailabilityZones:{shape:"Sr"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroup:{},DBSubnetGroup:{},Status:{},PercentProgress:{},EarliestRestorableTime:{type:"timestamp"},Endpoint:{},Engine:{},EngineVersion:{},LatestRestorableTime:{type:"timestamp"},Port:{type:"integer"},MasterUsername:{},DBClusterOptionGroupMemberships:{type:"list",member:{locationName:"DBClusterOptionGroup",type:"structure",members:{DBClusterOptionGroupName:{},Status:{}}}},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},DBClusterMembers:{type:"list",member:{locationName:"DBClusterMember",type:"structure",members:{DBInstanceIdentifier:{},IsClusterWriter:{type:"boolean"},DBClusterParameterGroupStatus:{},PromotionTier:{type:"integer"}},wrapper:!0}},VpcSecurityGroups:{shape:"S1a"},HostedZoneId:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbClusterResourceId:{}},wrapper:!0},S1m:{type:"structure",members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1q:{type:"list",member:{locationName:"DBSecurityGroupName"}},S1s:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"},HostedZoneId:{}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"S18"},VpcSecurityGroups:{shape:"S1a"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S1w"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{},StorageType:{},CACertificateIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}},StorageType:{},TdeCredentialArn:{},DbInstancePort:{type:"integer"},DBClusterIdentifier:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbiResourceId:{},CACertificateIdentifier:{},DomainMemberships:{type:"list",member:{locationName:"DomainMembership",type:"structure",members:{Domain:{},Status:{},FQDN:{},IAMRoleName:{}}}},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},EnhancedMonitoringResourceArn:{},MonitoringRoleArn:{},PromotionTier:{type:"integer"}},wrapper:!0},S1w:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S1z"},SubnetStatus:{}}}}},wrapper:!0},S1z:{type:"structure",members:{Name:{}},wrapper:!0},S2h:{type:"list",member:{locationName:"SubnetIdentifier"}},S38:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S3j:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3o:{type:"structure",members:{DBClusterSnapshotIdentifier:{},DBClusterSnapshotAttributes:{type:"list",member:{locationName:"DBClusterSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S3r"}}}}},wrapper:!0},S3r:{type:"list",member:{locationName:"AttributeValue"}},S42:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S4n:{type:"structure",members:{DBSnapshotIdentifier:{},DBSnapshotAttributes:{type:"list",member:{locationName:"DBSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S3r"}},wrapper:!0}}},wrapper:!0},S4y:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S3j"}},wrapper:!0},S5y:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S60"}},wrapper:!0},S60:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S6f:{type:"structure",members:{DBClusterParameterGroupName:{}}},S6l:{type:"structure",members:{DBParameterGroupName:{}}}},paginators:{DescribeDBEngineVersions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBEngineVersions"},DescribeDBInstances:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBInstances"},DescribeDBLogFiles:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DescribeDBLogFiles"},DescribeDBParameterGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBParameterGroups"},DescribeDBParameters:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"Parameters"},DescribeDBSecurityGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBSecurityGroups"},DescribeDBSnapshots:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBSnapshots"},DescribeDBSubnetGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",output_token:"EngineDefaults.Marker",limit_key:"MaxRecords",result_key:"EngineDefaults.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"Events"},DescribeOptionGroupOptions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"OptionGroupOptions"},DescribeOptionGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"OptionGroupsList"},DescribeOrderableDBInstanceOptions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"OrderableDBInstanceOptions"},DescribeReservedDBInstances:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"ReservedDBInstances"},DescribeReservedDBInstancesOfferings:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"ReservedDBInstancesOfferings"},DownloadDBLogFilePortion:{input_token:"Marker",output_token:"Marker",limit_key:"NumberOfLines",more_results:"AdditionalDataPending",result_key:"LogFileData"},ListTagsForResource:{result_key:"TagList"}},waiters:{DBInstanceAvailable:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBInstanceDeleted:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"DBInstanceNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]}}},a.apiLoader.services.route53={},a.Route53=a.Service.defineService("route53",["2013-04-01"]),e("./services/route53"),a.apiLoader.services.route53["2013-04-01"]={version:"2.0",metadata:{apiVersion:"2013-04-01",endpointPrefix:"route53",globalEndpoint:"route53.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Route 53",serviceFullName:"Amazon Route 53",signatureVersion:"v4"},operations:{AssociateVPCWithHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/associatevpc"},input:{locationName:"AssociateVPCWithHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeResourceRecordSets:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/rrset/"},input:{locationName:"ChangeResourceRecordSetsRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","ChangeBatch"],members:{HostedZoneId:{location:"uri",locationName:"Id"},ChangeBatch:{type:"structure",required:["Changes"],members:{Comment:{},Changes:{shape:"Se"}}}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeTagsForResource:{http:{requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{locationName:"ChangeTagsForResourceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"},AddTags:{shape:"S14"},RemoveTagKeys:{type:"list",member:{locationName:"Key"}}}},output:{type:"structure",members:{}}},CreateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck",responseCode:201},input:{locationName:"CreateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference","HealthCheckConfig"],members:{CallerReference:{},HealthCheckConfig:{shape:"S1c"}}},output:{type:"structure",required:["HealthCheck","Location"],members:{HealthCheck:{shape:"S1x"},Location:{location:"header",locationName:"Location"}}}},CreateHostedZone:{http:{requestUri:"/2013-04-01/hostedzone",responseCode:201},input:{locationName:"CreateHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","CallerReference"],members:{Name:{},VPC:{shape:"S3"},CallerReference:{},HostedZoneConfig:{shape:"S2d"},DelegationSetId:{}}},output:{type:"structure",required:["HostedZone","ChangeInfo","DelegationSet","Location"],members:{HostedZone:{shape:"S2g"},ChangeInfo:{shape:"S8"},DelegationSet:{shape:"S2i"},VPC:{shape:"S3"},Location:{location:"header",locationName:"Location"}}}},CreateReusableDelegationSet:{http:{requestUri:"/2013-04-01/delegationset",responseCode:201},input:{locationName:"CreateReusableDelegationSetRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference"],members:{CallerReference:{},HostedZoneId:{}}},output:{type:"structure",required:["DelegationSet","Location"],members:{DelegationSet:{shape:"S2i"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicy:{http:{requestUri:"/2013-04-01/trafficpolicy",responseCode:201},input:{locationName:"CreateTrafficPolicyRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","Document"],members:{Name:{},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2r"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance",responseCode:201},input:{locationName:"CreateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","Name","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{HostedZoneId:{},Name:{},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance","Location"],members:{TrafficPolicyInstance:{shape:"S2w"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyVersion:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}",responseCode:201},input:{locationName:"CreateTrafficPolicyVersionRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Document"],members:{Id:{location:"uri",locationName:"Id"},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2r"},Location:{location:"header",locationName:"Location"}}}},DeleteHealthCheck:{http:{method:"DELETE",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",members:{}}},DeleteHostedZone:{http:{method:"DELETE",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},DeleteReusableDelegationSet:{http:{method:"DELETE",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicy:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicyInstance:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DisassociateVPCFromHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/disassociatevpc"},input:{locationName:"DisassociateVPCFromHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetChange:{http:{method:"GET",requestUri:"/2013-04-01/change/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetChangeDetails:{http:{method:"GET",requestUri:"/2013-04-01/changedetails/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}},deprecated:!0},output:{type:"structure",required:["ChangeBatchRecord"],members:{ChangeBatchRecord:{shape:"S3i"}},deprecated:!0},deprecated:!0},GetCheckerIpRanges:{http:{method:"GET",requestUri:"/2013-04-01/checkeripranges"},input:{type:"structure",members:{}},output:{type:"structure",required:["CheckerIpRanges"],members:{CheckerIpRanges:{type:"list",member:{}}}}},GetGeoLocation:{http:{method:"GET",requestUri:"/2013-04-01/geolocation"},input:{type:"structure",members:{ContinentCode:{location:"querystring",locationName:"continentcode"},CountryCode:{location:"querystring",locationName:"countrycode"},SubdivisionCode:{location:"querystring",locationName:"subdivisioncode"}}},output:{type:"structure",required:["GeoLocationDetails"],members:{GeoLocationDetails:{shape:"S3q"}}}},GetHealthCheck:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1x"}}}},GetHealthCheckCount:{http:{method:"GET",requestUri:"/2013-04-01/healthcheckcount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HealthCheckCount"],members:{HealthCheckCount:{type:"long"}}}},GetHealthCheckLastFailureReason:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S41"}}}},GetHealthCheckStatus:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/status"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S41"}}}},GetHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2g"},DelegationSet:{shape:"S2i"},VPCs:{type:"list",member:{shape:"S3",locationName:"VPC"}}}}},GetHostedZoneCount:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HostedZoneCount"],members:{HostedZoneCount:{type:"long"}}}},GetReusableDelegationSet:{http:{method:"GET",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["DelegationSet"],members:{DelegationSet:{shape:"S2i"}}}},GetTrafficPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2r"}}}},GetTrafficPolicyInstance:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S2w"}}}},GetTrafficPolicyInstanceCount:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstancecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["TrafficPolicyInstanceCount"],members:{TrafficPolicyInstanceCount:{type:"integer"}}}},ListChangeBatchesByHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/changes"},input:{type:"structure",required:["HostedZoneId","StartDate","EndDate"],members:{HostedZoneId:{location:"uri",locationName:"Id"},StartDate:{shape:"S4n",location:"querystring",locationName:"startDate"},EndDate:{shape:"S4n",location:"querystring",locationName:"endDate"},MaxItems:{location:"querystring",locationName:"maxItems"},Marker:{location:"querystring",locationName:"marker"}},deprecated:!0},output:{type:"structure",required:["MaxItems","Marker","ChangeBatchRecords"],members:{MaxItems:{},Marker:{},IsTruncated:{type:"boolean"},ChangeBatchRecords:{shape:"S4s"},NextMarker:{}},deprecated:!0},deprecated:!0},ListChangeBatchesByRRSet:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/rrsChanges"},input:{type:"structure",required:["HostedZoneId","Name","Type","StartDate","EndDate"],members:{HostedZoneId:{location:"uri",locationName:"Id"},Name:{location:"querystring",locationName:"rrSet_name"},Type:{location:"querystring",locationName:"type"},SetIdentifier:{location:"querystring",locationName:"identifier"},StartDate:{shape:"S4n",location:"querystring",locationName:"startDate"},EndDate:{shape:"S4n",location:"querystring",locationName:"endDate"},MaxItems:{location:"querystring",locationName:"maxItems"},Marker:{location:"querystring",locationName:"marker"}},deprecated:!0},output:{type:"structure",required:["MaxItems","Marker","ChangeBatchRecords"],members:{MaxItems:{},Marker:{},IsTruncated:{type:"boolean"},ChangeBatchRecords:{shape:"S4s"},NextMarker:{}},deprecated:!0},deprecated:!0},ListGeoLocations:{http:{method:"GET",requestUri:"/2013-04-01/geolocations"},input:{type:"structure",members:{StartContinentCode:{location:"querystring",locationName:"startcontinentcode"},StartCountryCode:{location:"querystring",locationName:"startcountrycode"},StartSubdivisionCode:{location:"querystring",locationName:"startsubdivisioncode"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["GeoLocationDetailsList","IsTruncated","MaxItems"],members:{GeoLocationDetailsList:{type:"list",member:{shape:"S3q",locationName:"GeoLocationDetails"}},IsTruncated:{type:"boolean"},NextContinentCode:{},NextCountryCode:{},NextSubdivisionCode:{},MaxItems:{}}}},ListHealthChecks:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HealthChecks","Marker","IsTruncated","MaxItems"],members:{HealthChecks:{type:"list",member:{shape:"S1x",locationName:"HealthCheck"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZones:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"},DelegationSetId:{location:"querystring",locationName:"delegationsetid"}}},output:{type:"structure",required:["HostedZones","Marker","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S53"},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZonesByName:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonesbyname"},input:{type:"structure",members:{DNSName:{location:"querystring",locationName:"dnsname"},HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HostedZones","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S53"},DNSName:{},HostedZoneId:{},IsTruncated:{type:"boolean"},NextDNSName:{},NextHostedZoneId:{},MaxItems:{}}}},ListResourceRecordSets:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/rrset"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"uri",locationName:"Id"},StartRecordName:{location:"querystring",locationName:"name"},StartRecordType:{location:"querystring",locationName:"type"},StartRecordIdentifier:{location:"querystring",locationName:"identifier"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["ResourceRecordSets","IsTruncated","MaxItems"],members:{ResourceRecordSets:{type:"list",member:{shape:"Sh",locationName:"ResourceRecordSet"}},IsTruncated:{type:"boolean"},NextRecordName:{},NextRecordType:{},NextRecordIdentifier:{},MaxItems:{}}}},ListReusableDelegationSets:{http:{method:"GET",requestUri:"/2013-04-01/delegationset"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["DelegationSets","Marker","IsTruncated","MaxItems"],members:{DelegationSets:{type:"list",member:{shape:"S2i",locationName:"DelegationSet"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListTagsForResource:{http:{method:"GET",requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"}}},output:{type:"structure",required:["ResourceTagSet"],members:{ResourceTagSet:{shape:"S5e"}}}},ListTagsForResources:{http:{requestUri:"/2013-04-01/tags/{ResourceType}"},input:{locationName:"ListTagsForResourcesRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceIds"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceIds:{type:"list",member:{locationName:"ResourceId"}}}},output:{type:"structure",required:["ResourceTagSets"],members:{ResourceTagSets:{type:"list",member:{shape:"S5e",locationName:"ResourceTagSet"}}}}},ListTrafficPolicies:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies"},input:{type:"structure",members:{TrafficPolicyIdMarker:{location:"querystring",locationName:"trafficpolicyid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicySummaries","IsTruncated","TrafficPolicyIdMarker","MaxItems"],members:{TrafficPolicySummaries:{type:"list",member:{locationName:"TrafficPolicySummary",type:"structure",required:["Id","Name","Type","LatestVersion","TrafficPolicyCount"],members:{Id:{},Name:{},Type:{},LatestVersion:{type:"integer"},TrafficPolicyCount:{type:"integer"}}}},IsTruncated:{type:"boolean"},TrafficPolicyIdMarker:{},MaxItems:{}}}},ListTrafficPolicyInstances:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances"},input:{type:"structure",members:{HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S5p"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/hostedzone"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"querystring",locationName:"id"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S5p"},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/trafficpolicy"},input:{type:"structure",required:["TrafficPolicyId","TrafficPolicyVersion"],members:{TrafficPolicyId:{location:"querystring",locationName:"id"},TrafficPolicyVersion:{location:"querystring",locationName:"version",type:"integer"},HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S5p"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyVersions:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies/{Id}/versions"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},TrafficPolicyVersionMarker:{location:"querystring",locationName:"trafficpolicyversion"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicies","IsTruncated","TrafficPolicyVersionMarker","MaxItems"],members:{TrafficPolicies:{type:"list",member:{shape:"S2r",locationName:"TrafficPolicy"}},IsTruncated:{type:"boolean"},TrafficPolicyVersionMarker:{},MaxItems:{}}}},UpdateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck/{HealthCheckId}" +},input:{locationName:"UpdateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"},HealthCheckVersion:{type:"long"},IPAddress:{},Port:{type:"integer"},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},FailureThreshold:{type:"integer"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1o"},EnableSNI:{type:"boolean"},Regions:{shape:"S1q"},AlarmIdentifier:{shape:"S1s"},InsufficientDataHealthStatus:{}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1x"}}}},UpdateHostedZoneComment:{http:{requestUri:"/2013-04-01/hostedzone/{Id}"},input:{locationName:"UpdateHostedZoneCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},Comment:{}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2g"}}}},UpdateTrafficPolicyComment:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{locationName:"UpdateTrafficPolicyCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Version","Comment"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"},Comment:{}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2r"}}}},UpdateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{locationName:"UpdateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{Id:{location:"uri",locationName:"Id"},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S2w"}}}}},shapes:{S3:{type:"structure",members:{VPCRegion:{},VPCId:{}}},S8:{type:"structure",required:["Id","Status","SubmittedAt"],members:{Id:{},Status:{},SubmittedAt:{type:"timestamp"},Comment:{}}},Se:{type:"list",member:{locationName:"Change",type:"structure",required:["Action","ResourceRecordSet"],members:{Action:{},ResourceRecordSet:{shape:"Sh"}}}},Sh:{type:"structure",required:["Name","Type"],members:{Name:{},Type:{},SetIdentifier:{},Weight:{type:"long"},Region:{},GeoLocation:{type:"structure",members:{ContinentCode:{},CountryCode:{},SubdivisionCode:{}}},Failover:{},TTL:{type:"long"},ResourceRecords:{type:"list",member:{locationName:"ResourceRecord",type:"structure",required:["Value"],members:{Value:{}}}},AliasTarget:{type:"structure",required:["HostedZoneId","DNSName","EvaluateTargetHealth"],members:{HostedZoneId:{},DNSName:{},EvaluateTargetHealth:{type:"boolean"}}},HealthCheckId:{},TrafficPolicyInstanceId:{}}},S14:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},S1c:{type:"structure",required:["Type"],members:{IPAddress:{},Port:{type:"integer"},Type:{},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},RequestInterval:{type:"integer"},FailureThreshold:{type:"integer"},MeasureLatency:{type:"boolean"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1o"},EnableSNI:{type:"boolean"},Regions:{shape:"S1q"},AlarmIdentifier:{shape:"S1s"},InsufficientDataHealthStatus:{}}},S1o:{type:"list",member:{locationName:"ChildHealthCheck"}},S1q:{type:"list",member:{locationName:"Region"}},S1s:{type:"structure",required:["Region","Name"],members:{Region:{},Name:{}}},S1x:{type:"structure",required:["Id","CallerReference","HealthCheckConfig","HealthCheckVersion"],members:{Id:{},CallerReference:{},HealthCheckConfig:{shape:"S1c"},HealthCheckVersion:{type:"long"},CloudWatchAlarmConfiguration:{type:"structure",required:["EvaluationPeriods","Threshold","ComparisonOperator","Period","MetricName","Namespace","Statistic"],members:{EvaluationPeriods:{type:"integer"},Threshold:{type:"double"},ComparisonOperator:{},Period:{type:"integer"},MetricName:{},Namespace:{},Statistic:{},Dimensions:{type:"list",member:{locationName:"Dimension",type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}}}}},S2d:{type:"structure",members:{Comment:{},PrivateZone:{type:"boolean"}}},S2g:{type:"structure",required:["Id","Name","CallerReference"],members:{Id:{},Name:{},CallerReference:{},Config:{shape:"S2d"},ResourceRecordSetCount:{type:"long"}}},S2i:{type:"structure",required:["NameServers"],members:{Id:{},CallerReference:{},NameServers:{type:"list",member:{locationName:"NameServer"}}}},S2r:{type:"structure",required:["Id","Version","Name","Type","Document"],members:{Id:{},Version:{type:"integer"},Name:{},Type:{},Document:{},Comment:{}}},S2w:{type:"structure",required:["Id","HostedZoneId","Name","TTL","State","Message","TrafficPolicyId","TrafficPolicyVersion","TrafficPolicyType"],members:{Id:{},HostedZoneId:{},Name:{},TTL:{type:"long"},State:{},Message:{},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"},TrafficPolicyType:{}}},S3i:{type:"structure",required:["Id","Status"],members:{Id:{},SubmittedAt:{type:"timestamp"},Status:{},Comment:{},Submitter:{},Changes:{shape:"Se"}},deprecated:!0},S3q:{type:"structure",members:{ContinentCode:{},ContinentName:{},CountryCode:{},CountryName:{},SubdivisionCode:{},SubdivisionName:{}}},S41:{type:"list",member:{locationName:"HealthCheckObservation",type:"structure",members:{Region:{},IPAddress:{},StatusReport:{type:"structure",members:{Status:{},CheckedTime:{type:"timestamp"}}}}}},S4n:{type:"string",deprecated:!0},S4s:{type:"list",member:{shape:"S3i",locationName:"ChangeBatchRecord"},deprecated:!0},S53:{type:"list",member:{shape:"S2g",locationName:"HostedZone"}},S5e:{type:"structure",members:{ResourceType:{},ResourceId:{},Tags:{shape:"S14"}}},S5p:{type:"list",member:{shape:"S2w",locationName:"TrafficPolicyInstance"}}},paginators:{ListHealthChecks:{input_token:"Marker",output_token:"NextMarker",more_results:"IsTruncated",limit_key:"MaxItems",result_key:"HealthChecks"},ListHostedZones:{input_token:"Marker",output_token:"NextMarker",more_results:"IsTruncated",limit_key:"MaxItems",result_key:"HostedZones"},ListResourceRecordSets:{more_results:"IsTruncated",limit_key:"MaxItems",result_key:"ResourceRecordSets",input_token:["StartRecordName","StartRecordType","StartRecordIdentifier"],output_token:["NextRecordName","NextRecordType","NextRecordIdentifier"]}},waiters:{ResourceRecordSetsChanged:{delay:30,maxAttempts:60,operation:"GetChange",acceptors:[{matcher:"path",expected:"INSYNC",argument:"ChangeInfo.Status",state:"success"}]}}},a.apiLoader.services.route53domains={},a.Route53Domains=a.Service.defineService("route53domains",["2014-05-15"]),a.apiLoader.services.route53domains["2014-05-15"]={version:"2.0",metadata:{apiVersion:"2014-05-15",endpointPrefix:"route53domains",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Route 53 Domains",signatureVersion:"v4",targetPrefix:"Route53Domains_v20140515"},operations:{CheckDomainAvailability:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},IdnLangCode:{}}},output:{type:"structure",required:["Availability"],members:{Availability:{}}},http:{}},DeleteTagsForDomain:{input:{type:"structure",required:["DomainName","TagsToDelete"],members:{DomainName:{},TagsToDelete:{type:"list",member:{}}}},output:{type:"structure",members:{}},http:{}},DisableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}},http:{}},DisableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},EnableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}},http:{}},EnableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},GetContactReachabilityStatus:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},status:{}}},http:{}},GetDomainDetail:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["DomainName","Nameservers","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},Nameservers:{shape:"So"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"},RegistrarName:{},WhoIsServer:{},RegistrarUrl:{},AbuseContactEmail:{},AbuseContactPhone:{},RegistryDomainId:{},CreationDate:{type:"timestamp"},UpdatedDate:{type:"timestamp"},ExpirationDate:{type:"timestamp"},Reseller:{},DnsSec:{},StatusList:{type:"list",member:{}}}},http:{}},GetOperationDetail:{input:{type:"structure",required:["OperationId"],members:{OperationId:{}}},output:{type:"structure",members:{OperationId:{},Status:{},Message:{},DomainName:{},Type:{},SubmittedDate:{type:"timestamp"}}},http:{}},ListDomains:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Domains"],members:{Domains:{type:"list",member:{type:"structure",required:["DomainName"],members:{DomainName:{},AutoRenew:{type:"boolean"},TransferLock:{type:"boolean"},Expiry:{type:"timestamp"}}}},NextPageMarker:{}}},http:{}},ListOperations:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Operations"],members:{Operations:{type:"list",member:{type:"structure",required:["OperationId","Status","Type","SubmittedDate"],members:{OperationId:{},Status:{},Type:{},SubmittedDate:{type:"timestamp"}}}},NextPageMarker:{}}},http:{}},ListTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["TagList"],members:{TagList:{shape:"S1y"}}},http:{}},RegisterDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},ResendContactReachabilityEmail:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},emailAddress:{},isAlreadyVerified:{type:"boolean"}}},http:{}},RetrieveDomainAuthCode:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["AuthCode"],members:{AuthCode:{shape:"S28"}}},http:{}},TransferDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},Nameservers:{shape:"So"},AuthCode:{shape:"S28"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateDomainContact:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateDomainContactPrivacy:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateDomainNameservers:{input:{type:"structure",required:["DomainName","Nameservers"],members:{DomainName:{},FIAuthKey:{},Nameservers:{shape:"So"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},TagsToUpdate:{shape:"S1y"}}},output:{type:"structure",members:{}},http:{}}},shapes:{So:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},GlueIps:{type:"list",member:{}}}}},Su:{type:"structure",members:{FirstName:{},LastName:{},ContactType:{},OrganizationName:{},AddressLine1:{},AddressLine2:{},City:{},State:{},CountryCode:{},ZipCode:{},PhoneNumber:{},Email:{},Fax:{},ExtraParams:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}},sensitive:!0},S1y:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S28:{type:"string",sensitive:!0}},paginators:{ListDomains:{limit_key:"MaxItems",input_token:"Marker",output_token:"NextPageMarker",result_key:"Domains"},ListOperations:{limit_key:"MaxItems",input_token:"Marker",output_token:"NextPageMarker",result_key:"Operations"}}},a.apiLoader.services.s3={},a.S3=a.Service.defineService("s3",["2006-03-01"]),e("./services/s3"),a.apiLoader.services.s3["2006-03-01"]={version:"2.0",metadata:{apiVersion:"2006-03-01",checksumFormat:"md5",endpointPrefix:"s3",globalEndpoint:"s3.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Amazon S3",serviceFullName:"Amazon Simple Storage Service",signatureVersion:"s3",timestampFormat:"rfc822"},operations:{AbortMultipartUpload:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CompleteMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MultipartUpload:{locationName:"CompleteMultipartUpload",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{ETag:{},PartNumber:{type:"integer"}}},flattened:!0}}},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"MultipartUpload"},output:{type:"structure",members:{Location:{},Bucket:{},Key:{},Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CopyObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},MetadataDirective:{location:"header",locationName:"x-amz-metadata-directive"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1b",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{CopyObjectResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},Expiration:{location:"header",locationName:"x-amz-expiration"},CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},VersionId:{location:"header",locationName:"x-amz-version-id"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyObjectResult"},alias:"PutObjectCopy"},CreateBucket:{http:{method:"PUT",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CreateBucketConfiguration:{locationName:"CreateBucketConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LocationConstraint:{}}},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"CreateBucketConfiguration"},output:{type:"structure",members:{Location:{location:"header",locationName:"Location"}}},alias:"PutBucket"},CreateMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}?uploads"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{locationName:"Bucket"},Key:{},UploadId:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}},alias:"InitiateMultipartUpload"},DeleteBucket:{http:{method:"DELETE",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketCors:{http:{method:"DELETE",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketLifecycle:{http:{method:"DELETE",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketPolicy:{http:{method:"DELETE",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketReplication:{http:{method:"DELETE",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketTagging:{http:{method:"DELETE",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketWebsite:{http:{method:"DELETE",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteObject:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MFA:{location:"header",locationName:"x-amz-mfa"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},VersionId:{location:"header",locationName:"x-amz-version-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},DeleteObjects:{http:{requestUri:"/{Bucket}?delete"},input:{type:"structure",required:["Bucket","Delete"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delete:{locationName:"Delete",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Objects"],members:{Objects:{locationName:"Object",type:"list",member:{type:"structure",required:["Key"],members:{Key:{},VersionId:{}}},flattened:!0},Quiet:{type:"boolean"}}},MFA:{location:"header",locationName:"x-amz-mfa"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Delete"},output:{type:"structure",members:{Deleted:{type:"list",member:{type:"structure",members:{Key:{},VersionId:{},DeleteMarker:{type:"boolean"},DeleteMarkerVersionId:{}}},flattened:!0},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},Errors:{locationName:"Error",type:"list",member:{type:"structure",members:{Key:{},VersionId:{},Code:{},Message:{}}},flattened:!0}}},alias:"DeleteMultipleObjects"},GetBucketAccelerateConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{}}}},GetBucketAcl:{http:{method:"GET",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Owner:{shape:"S2k"},Grants:{shape:"S2n",locationName:"AccessControlList"}}}},GetBucketCors:{http:{method:"GET",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{CORSRules:{shape:"S2w",locationName:"CORSRule"}}}},GetBucketLifecycle:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S39",locationName:"Rule"}}},deprecated:!0},GetBucketLifecycleConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S3p",locationName:"Rule"}}}},GetBucketLocation:{http:{method:"GET",requestUri:"/{Bucket}?location"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LocationConstraint:{}}}},GetBucketLogging:{http:{method:"GET",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LoggingEnabled:{shape:"S3x"}}}},GetBucketNotification:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S43"},output:{shape:"S44"},deprecated:!0},GetBucketNotificationConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S43"},output:{shape:"S4f"}},GetBucketPolicy:{http:{method:"GET",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Policy:{}},payload:"Policy"}},GetBucketReplication:{http:{method:"GET",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{ReplicationConfiguration:{shape:"S4y"}},payload:"ReplicationConfiguration"}},GetBucketRequestPayment:{http:{method:"GET",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Payer:{}}}},GetBucketTagging:{http:{method:"GET",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",required:["TagSet"],members:{TagSet:{shape:"S59"}}}},GetBucketVersioning:{http:{method:"GET",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{},MFADelete:{locationName:"MfaDelete"}}}},GetBucketWebsite:{http:{method:"GET",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{RedirectAllRequestsTo:{shape:"S5i"},IndexDocument:{shape:"S5l"},ErrorDocument:{shape:"S5n"},RoutingRules:{shape:"S5o"}}}},GetObject:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},ResponseCacheControl:{location:"querystring",locationName:"response-cache-control"},ResponseContentDisposition:{location:"querystring",locationName:"response-content-disposition"},ResponseContentEncoding:{location:"querystring",locationName:"response-content-encoding"},ResponseContentLanguage:{location:"querystring",locationName:"response-content-language"},ResponseContentType:{location:"querystring",locationName:"response-content-type"},ResponseExpires:{location:"querystring",locationName:"response-expires",type:"timestamp"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"integer"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentRange:{location:"header",locationName:"Content-Range"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header", +locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"}},payload:"Body"}},GetObjectAcl:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Owner:{shape:"S2k"},Grants:{shape:"S2n",locationName:"AccessControlList"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},GetObjectTorrent:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?torrent"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"Body"}},HeadBucket:{http:{method:"HEAD",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},HeadObject:{http:{method:"HEAD",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"integer"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"}}}},ListBuckets:{http:{method:"GET"},output:{type:"structure",members:{Buckets:{type:"list",member:{locationName:"Bucket",type:"structure",members:{Name:{},CreationDate:{type:"timestamp"}}}},Owner:{shape:"S2k"}}},alias:"GetService"},ListMultipartUploads:{http:{method:"GET",requestUri:"/{Bucket}?uploads"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxUploads:{location:"querystring",locationName:"max-uploads",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},UploadIdMarker:{location:"querystring",locationName:"upload-id-marker"}}},output:{type:"structure",members:{Bucket:{},KeyMarker:{},UploadIdMarker:{},NextKeyMarker:{},Prefix:{},Delimiter:{},NextUploadIdMarker:{},MaxUploads:{type:"integer"},IsTruncated:{type:"boolean"},Uploads:{locationName:"Upload",type:"list",member:{type:"structure",members:{UploadId:{},Key:{},Initiated:{type:"timestamp"},StorageClass:{},Owner:{shape:"S2k"},Initiator:{shape:"S75"}}},flattened:!0},CommonPrefixes:{shape:"S76"},EncodingType:{}}}},ListObjectVersions:{http:{method:"GET",requestUri:"/{Bucket}?versions"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},VersionIdMarker:{location:"querystring",locationName:"version-id-marker"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},KeyMarker:{},VersionIdMarker:{},NextKeyMarker:{},NextVersionIdMarker:{},Versions:{locationName:"Version",type:"list",member:{type:"structure",members:{ETag:{},Size:{type:"integer"},StorageClass:{},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"},Owner:{shape:"S2k"}}},flattened:!0},DeleteMarkers:{locationName:"DeleteMarker",type:"list",member:{type:"structure",members:{Owner:{shape:"S2k"},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"}}},flattened:!0},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S76"},EncodingType:{}}},alias:"GetBucketObjectVersions"},ListObjects:{http:{method:"GET",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},Marker:{location:"querystring",locationName:"marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Marker:{},NextMarker:{},Contents:{shape:"S7o"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S76"},EncodingType:{}}},alias:"GetBucket"},ListObjectsV2:{http:{method:"GET",requestUri:"/{Bucket}?list-type=2"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},ContinuationToken:{location:"querystring",locationName:"continuation-token"},FetchOwner:{location:"querystring",locationName:"fetch-owner",type:"boolean"},StartAfter:{location:"querystring",locationName:"start-key"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Contents:{shape:"S7o"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S76"},EncodingType:{},KeyCount:{type:"integer"},ContinuationToken:{},NextContinuationToken:{},StartAfter:{}}}},ListParts:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MaxParts:{location:"querystring",locationName:"max-parts",type:"integer"},PartNumberMarker:{location:"querystring",locationName:"part-number-marker",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{},Key:{},UploadId:{},PartNumberMarker:{type:"integer"},NextPartNumberMarker:{type:"integer"},MaxParts:{type:"integer"},IsTruncated:{type:"boolean"},Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{PartNumber:{type:"integer"},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"}}},flattened:!0},Initiator:{shape:"S75"},Owner:{shape:"S2k"},StorageClass:{},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutBucketAccelerateConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket","AccelerateConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},AccelerateConfiguration:{locationName:"AccelerateConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Status:{}}}},payload:"AccelerateConfiguration"}},PutBucketAcl:{http:{method:"PUT",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"S88",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"AccessControlPolicy"}},PutBucketCors:{http:{method:"PUT",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket","CORSConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},CORSConfiguration:{locationName:"CORSConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["CORSRules"],members:{CORSRules:{shape:"S2w",locationName:"CORSRule"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"CORSConfiguration"}},PutBucketLifecycle:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S39",locationName:"Rule"}}}},payload:"LifecycleConfiguration"},deprecated:!0},PutBucketLifecycleConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S3p",locationName:"Rule"}}}},payload:"LifecycleConfiguration"}},PutBucketLogging:{http:{method:"PUT",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket","BucketLoggingStatus"],members:{Bucket:{location:"uri",locationName:"Bucket"},BucketLoggingStatus:{locationName:"BucketLoggingStatus",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LoggingEnabled:{shape:"S3x"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"BucketLoggingStatus"}},PutBucketNotification:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},NotificationConfiguration:{shape:"S44",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"},deprecated:!0},PutBucketNotificationConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},NotificationConfiguration:{shape:"S4f",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"}},PutBucketPolicy:{http:{method:"PUT",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket","Policy"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},Policy:{}},payload:"Policy"}},PutBucketReplication:{http:{method:"PUT",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket","ReplicationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ReplicationConfiguration:{shape:"S4y",locationName:"ReplicationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"ReplicationConfiguration"}},PutBucketRequestPayment:{http:{method:"PUT",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket","RequestPaymentConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},RequestPaymentConfiguration:{locationName:"RequestPaymentConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Payer"],members:{Payer:{}}}},payload:"RequestPaymentConfiguration"}},PutBucketTagging:{http:{method:"PUT",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket","Tagging"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},Tagging:{locationName:"Tagging",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["TagSet"],members:{TagSet:{shape:"S59"}}}},payload:"Tagging"}},PutBucketVersioning:{http:{method:"PUT",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket","VersioningConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},MFA:{location:"header",locationName:"x-amz-mfa"},VersioningConfiguration:{locationName:"VersioningConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{MFADelete:{locationName:"MfaDelete"},Status:{}}}},payload:"VersioningConfiguration"}},PutBucketWebsite:{http:{method:"PUT",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket","WebsiteConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},WebsiteConfiguration:{locationName:"WebsiteConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{ErrorDocument:{shape:"S5n"},IndexDocument:{shape:"S5l"},RedirectAllRequestsTo:{shape:"S5i"},RoutingRules:{shape:"S5o"}}}},payload:"WebsiteConfiguration"}},PutObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentLength:{location:"header",locationName:"Content-Length",type:"integer"},ContentMD5:{location:"header",locationName:"Content-MD5"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Body"},output:{type:"structure",members:{Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{location:"header",locationName:"ETag"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutObjectAcl:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"S88",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},VersionId:{location:"querystring",locationName:"versionId"}},payload:"AccessControlPolicy"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},RestoreObject:{http:{requestUri:"/{Bucket}/{Key+}?restore"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RestoreRequest:{locationName:"RestoreRequest",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Days"],members:{Days:{type:"integer"}}},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"RestoreRequest"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}},alias:"PostObjectRestore"},UploadPart:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","PartNumber","UploadId"],members:{Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},ContentLength:{location:"header",locationName:"Content-Length",type:"integer"},ContentMD5:{location:"header",locationName:"Content-MD5"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Body"},output:{type:"structure",members:{ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},ETag:{location:"header",locationName:"ETag"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},UploadPartCopy:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key","PartNumber","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},CopySourceRange:{location:"header",locationName:"x-amz-copy-source-range"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1b",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},CopyPartResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyPartResult"}}},shapes:{Sj:{type:"string",sensitive:!0},S11:{type:"map",key:{},value:{}},S18:{type:"blob",sensitive:!0},S1b:{type:"blob",sensitive:!0},S2k:{type:"structure",members:{DisplayName:{},ID:{}}},S2n:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S2p"},Permission:{}}}},S2p:{type:"structure",required:["Type"],members:{DisplayName:{},EmailAddress:{},ID:{},Type:{locationName:"xsi:type",xmlAttribute:!0},URI:{}},xmlNamespace:{prefix:"xsi",uri:"http://www.w3.org/2001/XMLSchema-instance"}},S2w:{type:"list",member:{type:"structure",required:["AllowedMethods","AllowedOrigins"],members:{AllowedHeaders:{locationName:"AllowedHeader",type:"list",member:{},flattened:!0},AllowedMethods:{locationName:"AllowedMethod",type:"list",member:{},flattened:!0},AllowedOrigins:{locationName:"AllowedOrigin",type:"list",member:{},flattened:!0},ExposeHeaders:{locationName:"ExposeHeader",type:"list",member:{},flattened:!0},MaxAgeSeconds:{type:"integer"}}},flattened:!0},S39:{type:"list",member:{type:"structure",required:["Prefix","Status"],members:{Expiration:{shape:"S3b"},ID:{},Prefix:{},Status:{},Transition:{shape:"S3h"},NoncurrentVersionTransition:{shape:"S3j"},NoncurrentVersionExpiration:{shape:"S3k"},AbortIncompleteMultipartUpload:{shape:"S3l"}}},flattened:!0},S3b:{type:"structure",members:{Date:{shape:"S3c"},Days:{type:"integer"},ExpiredObjectDeleteMarker:{type:"boolean"}}},S3c:{type:"timestamp",timestampFormat:"iso8601"},S3h:{type:"structure",members:{Date:{shape:"S3c"},Days:{type:"integer"},StorageClass:{}}},S3j:{type:"structure",members:{NoncurrentDays:{type:"integer"},StorageClass:{}}},S3k:{type:"structure",members:{NoncurrentDays:{type:"integer"}}},S3l:{type:"structure",members:{DaysAfterInitiation:{type:"integer"}}},S3p:{type:"list",member:{type:"structure",required:["Prefix","Status"],members:{Expiration:{shape:"S3b"},ID:{},Prefix:{},Status:{},Transitions:{locationName:"Transition",type:"list",member:{shape:"S3h"},flattened:!0},NoncurrentVersionTransitions:{locationName:"NoncurrentVersionTransition",type:"list",member:{shape:"S3j"},flattened:!0},NoncurrentVersionExpiration:{shape:"S3k"},AbortIncompleteMultipartUpload:{shape:"S3l"}}},flattened:!0},S3x:{type:"structure",members:{TargetBucket:{},TargetGrants:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S2p"},Permission:{}}}},TargetPrefix:{}}},S43:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},S44:{type:"structure",members:{TopicConfiguration:{type:"structure",members:{Id:{},Events:{shape:"S47",locationName:"Event"},Event:{deprecated:!0},Topic:{}}},QueueConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S47",locationName:"Event"},Queue:{}}},CloudFunctionConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S47",locationName:"Event"},CloudFunction:{},InvocationRole:{}}}}},S47:{type:"list",member:{},flattened:!0},S4f:{type:"structure",members:{TopicConfigurations:{locationName:"TopicConfiguration",type:"list",member:{type:"structure",required:["TopicArn","Events"],members:{Id:{},TopicArn:{locationName:"Topic"},Events:{shape:"S47",locationName:"Event"},Filter:{shape:"S4i"}}},flattened:!0},QueueConfigurations:{locationName:"QueueConfiguration",type:"list",member:{type:"structure",required:["QueueArn","Events"],members:{Id:{},QueueArn:{locationName:"Queue"},Events:{shape:"S47",locationName:"Event"},Filter:{shape:"S4i"}}},flattened:!0},LambdaFunctionConfigurations:{locationName:"CloudFunctionConfiguration",type:"list",member:{type:"structure",required:["LambdaFunctionArn","Events"],members:{Id:{},LambdaFunctionArn:{locationName:"CloudFunction"},Events:{shape:"S47",locationName:"Event"},Filter:{shape:"S4i"}}},flattened:!0}}},S4i:{type:"structure",members:{Key:{locationName:"S3Key",type:"structure",members:{FilterRules:{locationName:"FilterRule",type:"list",member:{type:"structure",members:{Name:{},Value:{}}},flattened:!0}}}}},S4y:{type:"structure",required:["Role","Rules"],members:{Role:{},Rules:{locationName:"Rule",type:"list",member:{type:"structure",required:["Prefix","Status","Destination"],members:{ID:{},Prefix:{},Status:{},Destination:{type:"structure",required:["Bucket"],members:{Bucket:{},StorageClass:{}}}}},flattened:!0}}},S59:{type:"list",member:{locationName:"Tag",type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S5i:{type:"structure",required:["HostName"],members:{HostName:{},Protocol:{}}},S5l:{type:"structure",required:["Suffix"],members:{Suffix:{}}},S5n:{type:"structure",required:["Key"],members:{Key:{}}},S5o:{type:"list",member:{locationName:"RoutingRule",type:"structure",required:["Redirect"],members:{Condition:{type:"structure",members:{HttpErrorCodeReturnedEquals:{},KeyPrefixEquals:{}}},Redirect:{type:"structure",members:{HostName:{},HttpRedirectCode:{},Protocol:{},ReplaceKeyPrefixWith:{},ReplaceKeyWith:{}}}}}},S75:{type:"structure",members:{ID:{},DisplayName:{}}},S76:{type:"list",member:{type:"structure",members:{Prefix:{}}},flattened:!0},S7o:{type:"list",member:{type:"structure",members:{Key:{},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"},StorageClass:{},Owner:{shape:"S2k"}}},flattened:!0},S88:{type:"structure",members:{Grants:{shape:"S2n",locationName:"AccessControlList"},Owner:{shape:"S2k"}}}},paginators:{ListBuckets:{result_key:"Buckets"},ListMultipartUploads:{limit_key:"MaxUploads",more_results:"IsTruncated",output_token:["NextKeyMarker","NextUploadIdMarker"],input_token:["KeyMarker","UploadIdMarker"],result_key:["Uploads","CommonPrefixes"]},ListObjectVersions:{more_results:"IsTruncated",limit_key:"MaxKeys",output_token:["NextKeyMarker","NextVersionIdMarker"],input_token:["KeyMarker","VersionIdMarker"],result_key:["Versions","DeleteMarkers","CommonPrefixes"]},ListObjects:{more_results:"IsTruncated",limit_key:"MaxKeys",output_token:"NextMarker || Contents[-1].Key",input_token:"Marker",result_key:["Contents","CommonPrefixes"]},ListParts:{more_results:"IsTruncated",limit_key:"MaxParts",output_token:"NextPartNumberMarker",input_token:"PartNumberMarker",result_key:"Parts"}},waiters:{BucketExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:301,matcher:"status",state:"success"},{expected:403,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},BucketNotExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]},ObjectExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},ObjectNotExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]}}},a.apiLoader.services.ses={},a.SES=a.Service.defineService("ses",["2010-12-01"]),a.apiLoader.services.ses["2010-12-01"]={version:"2.0",metadata:{apiVersion:"2010-12-01",endpointPrefix:"email",protocol:"query",serviceAbbreviation:"Amazon SES",serviceFullName:"Amazon Simple Email Service",signatureVersion:"v4",signingName:"ses",xmlNamespace:"http://ses.amazonaws.com/doc/2010-12-01/"},operations:{CloneReceiptRuleSet:{input:{type:"structure",required:["RuleSetName","OriginalRuleSetName"],members:{RuleSetName:{},OriginalRuleSetName:{}}},output:{resultWrapper:"CloneReceiptRuleSetResult",type:"structure",members:{}},http:{}},CreateReceiptFilter:{input:{type:"structure",required:["Filter"],members:{Filter:{shape:"S5"}}},output:{resultWrapper:"CreateReceiptFilterResult",type:"structure",members:{}},http:{}},CreateReceiptRule:{input:{type:"structure",required:["RuleSetName","Rule"],members:{RuleSetName:{},After:{},Rule:{shape:"Sd"}}},output:{resultWrapper:"CreateReceiptRuleResult",type:"structure",members:{}},http:{}},CreateReceiptRuleSet:{input:{type:"structure", +required:["RuleSetName"],members:{RuleSetName:{}}},output:{resultWrapper:"CreateReceiptRuleSetResult",type:"structure",members:{}},http:{}},DeleteIdentity:{input:{type:"structure",required:["Identity"],members:{Identity:{}}},output:{resultWrapper:"DeleteIdentityResult",type:"structure",members:{}},http:{}},DeleteIdentityPolicy:{input:{type:"structure",required:["Identity","PolicyName"],members:{Identity:{},PolicyName:{}}},output:{resultWrapper:"DeleteIdentityPolicyResult",type:"structure",members:{}},http:{}},DeleteReceiptFilter:{input:{type:"structure",required:["FilterName"],members:{FilterName:{}}},output:{resultWrapper:"DeleteReceiptFilterResult",type:"structure",members:{}},http:{}},DeleteReceiptRule:{input:{type:"structure",required:["RuleSetName","RuleName"],members:{RuleSetName:{},RuleName:{}}},output:{resultWrapper:"DeleteReceiptRuleResult",type:"structure",members:{}},http:{}},DeleteReceiptRuleSet:{input:{type:"structure",required:["RuleSetName"],members:{RuleSetName:{}}},output:{resultWrapper:"DeleteReceiptRuleSetResult",type:"structure",members:{}},http:{}},DeleteVerifiedEmailAddress:{input:{type:"structure",required:["EmailAddress"],members:{EmailAddress:{}}},http:{}},DescribeActiveReceiptRuleSet:{input:{type:"structure",members:{}},output:{resultWrapper:"DescribeActiveReceiptRuleSetResult",type:"structure",members:{Metadata:{shape:"S1l"},Rules:{shape:"S1n"}}},http:{}},DescribeReceiptRule:{input:{type:"structure",required:["RuleSetName","RuleName"],members:{RuleSetName:{},RuleName:{}}},output:{resultWrapper:"DescribeReceiptRuleResult",type:"structure",members:{Rule:{shape:"Sd"}}},http:{}},DescribeReceiptRuleSet:{input:{type:"structure",required:["RuleSetName"],members:{RuleSetName:{}}},output:{resultWrapper:"DescribeReceiptRuleSetResult",type:"structure",members:{Metadata:{shape:"S1l"},Rules:{shape:"S1n"}}},http:{}},GetIdentityDkimAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityDkimAttributesResult",type:"structure",required:["DkimAttributes"],members:{DkimAttributes:{type:"map",key:{},value:{type:"structure",required:["DkimEnabled","DkimVerificationStatus"],members:{DkimEnabled:{type:"boolean"},DkimVerificationStatus:{},DkimTokens:{shape:"S1y"}}}}}},http:{}},GetIdentityMailFromDomainAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityMailFromDomainAttributesResult",type:"structure",required:["MailFromDomainAttributes"],members:{MailFromDomainAttributes:{type:"map",key:{},value:{type:"structure",required:["MailFromDomain","MailFromDomainStatus","BehaviorOnMXFailure"],members:{MailFromDomain:{},MailFromDomainStatus:{},BehaviorOnMXFailure:{}}}}}},http:{}},GetIdentityNotificationAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityNotificationAttributesResult",type:"structure",required:["NotificationAttributes"],members:{NotificationAttributes:{type:"map",key:{},value:{type:"structure",required:["BounceTopic","ComplaintTopic","DeliveryTopic","ForwardingEnabled"],members:{BounceTopic:{},ComplaintTopic:{},DeliveryTopic:{},ForwardingEnabled:{type:"boolean"}}}}}},http:{}},GetIdentityPolicies:{input:{type:"structure",required:["Identity","PolicyNames"],members:{Identity:{},PolicyNames:{shape:"S2d"}}},output:{resultWrapper:"GetIdentityPoliciesResult",type:"structure",required:["Policies"],members:{Policies:{type:"map",key:{},value:{}}}},http:{}},GetIdentityVerificationAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityVerificationAttributesResult",type:"structure",required:["VerificationAttributes"],members:{VerificationAttributes:{type:"map",key:{},value:{type:"structure",required:["VerificationStatus"],members:{VerificationStatus:{},VerificationToken:{}}}}}},http:{}},GetSendQuota:{output:{resultWrapper:"GetSendQuotaResult",type:"structure",members:{Max24HourSend:{type:"double"},MaxSendRate:{type:"double"},SentLast24Hours:{type:"double"}}},http:{}},GetSendStatistics:{output:{resultWrapper:"GetSendStatisticsResult",type:"structure",members:{SendDataPoints:{type:"list",member:{type:"structure",members:{Timestamp:{type:"timestamp"},DeliveryAttempts:{type:"long"},Bounces:{type:"long"},Complaints:{type:"long"},Rejects:{type:"long"}}}}}},http:{}},ListIdentities:{input:{type:"structure",members:{IdentityType:{},NextToken:{},MaxItems:{type:"integer"}}},output:{resultWrapper:"ListIdentitiesResult",type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"},NextToken:{}}},http:{}},ListIdentityPolicies:{input:{type:"structure",required:["Identity"],members:{Identity:{}}},output:{resultWrapper:"ListIdentityPoliciesResult",type:"structure",required:["PolicyNames"],members:{PolicyNames:{shape:"S2d"}}},http:{}},ListReceiptFilters:{input:{type:"structure",members:{}},output:{resultWrapper:"ListReceiptFiltersResult",type:"structure",members:{Filters:{type:"list",member:{shape:"S5"}}}},http:{}},ListReceiptRuleSets:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListReceiptRuleSetsResult",type:"structure",members:{RuleSets:{type:"list",member:{shape:"S1l"}},NextToken:{}}},http:{}},ListVerifiedEmailAddresses:{output:{resultWrapper:"ListVerifiedEmailAddressesResult",type:"structure",members:{VerifiedEmailAddresses:{shape:"S37"}}},http:{}},PutIdentityPolicy:{input:{type:"structure",required:["Identity","PolicyName","Policy"],members:{Identity:{},PolicyName:{},Policy:{}}},output:{resultWrapper:"PutIdentityPolicyResult",type:"structure",members:{}},http:{}},ReorderReceiptRuleSet:{input:{type:"structure",required:["RuleSetName","RuleNames"],members:{RuleSetName:{},RuleNames:{type:"list",member:{}}}},output:{resultWrapper:"ReorderReceiptRuleSetResult",type:"structure",members:{}},http:{}},SendBounce:{input:{type:"structure",required:["OriginalMessageId","BounceSender","BouncedRecipientInfoList"],members:{OriginalMessageId:{},BounceSender:{},Explanation:{},MessageDsn:{type:"structure",required:["ReportingMta"],members:{ReportingMta:{},ArrivalDate:{type:"timestamp"},ExtensionFields:{shape:"S3j"}}},BouncedRecipientInfoList:{type:"list",member:{type:"structure",required:["Recipient"],members:{Recipient:{},RecipientArn:{},BounceType:{},RecipientDsnFields:{type:"structure",required:["Action","Status"],members:{FinalRecipient:{},Action:{},RemoteMta:{},Status:{},DiagnosticCode:{},LastAttemptDate:{type:"timestamp"},ExtensionFields:{shape:"S3j"}}}}}},BounceSenderArn:{}}},output:{resultWrapper:"SendBounceResult",type:"structure",members:{MessageId:{}}},http:{}},SendEmail:{input:{type:"structure",required:["Source","Destination","Message"],members:{Source:{},Destination:{type:"structure",members:{ToAddresses:{shape:"S37"},CcAddresses:{shape:"S37"},BccAddresses:{shape:"S37"}}},Message:{type:"structure",required:["Subject","Body"],members:{Subject:{shape:"S40"},Body:{type:"structure",members:{Text:{shape:"S40"},Html:{shape:"S40"}}}}},ReplyToAddresses:{shape:"S37"},ReturnPath:{},SourceArn:{},ReturnPathArn:{}}},output:{resultWrapper:"SendEmailResult",type:"structure",required:["MessageId"],members:{MessageId:{}}},http:{}},SendRawEmail:{input:{type:"structure",required:["RawMessage"],members:{Source:{},Destinations:{shape:"S37"},RawMessage:{type:"structure",required:["Data"],members:{Data:{type:"blob"}}},FromArn:{},SourceArn:{},ReturnPathArn:{}}},output:{resultWrapper:"SendRawEmailResult",type:"structure",required:["MessageId"],members:{MessageId:{}}},http:{}},SetActiveReceiptRuleSet:{input:{type:"structure",members:{RuleSetName:{}}},output:{resultWrapper:"SetActiveReceiptRuleSetResult",type:"structure",members:{}},http:{}},SetIdentityDkimEnabled:{input:{type:"structure",required:["Identity","DkimEnabled"],members:{Identity:{},DkimEnabled:{type:"boolean"}}},output:{resultWrapper:"SetIdentityDkimEnabledResult",type:"structure",members:{}},http:{}},SetIdentityFeedbackForwardingEnabled:{input:{type:"structure",required:["Identity","ForwardingEnabled"],members:{Identity:{},ForwardingEnabled:{type:"boolean"}}},output:{resultWrapper:"SetIdentityFeedbackForwardingEnabledResult",type:"structure",members:{}},http:{}},SetIdentityMailFromDomain:{input:{type:"structure",required:["Identity"],members:{Identity:{},MailFromDomain:{},BehaviorOnMXFailure:{}}},output:{resultWrapper:"SetIdentityMailFromDomainResult",type:"structure",members:{}},http:{}},SetIdentityNotificationTopic:{input:{type:"structure",required:["Identity","NotificationType"],members:{Identity:{},NotificationType:{},SnsTopic:{}}},output:{resultWrapper:"SetIdentityNotificationTopicResult",type:"structure",members:{}},http:{}},SetReceiptRulePosition:{input:{type:"structure",required:["RuleSetName","RuleName"],members:{RuleSetName:{},RuleName:{},After:{}}},output:{resultWrapper:"SetReceiptRulePositionResult",type:"structure",members:{}},http:{}},UpdateReceiptRule:{input:{type:"structure",required:["RuleSetName","Rule"],members:{RuleSetName:{},Rule:{shape:"Sd"}}},output:{resultWrapper:"UpdateReceiptRuleResult",type:"structure",members:{}},http:{}},VerifyDomainDkim:{input:{type:"structure",required:["Domain"],members:{Domain:{}}},output:{resultWrapper:"VerifyDomainDkimResult",type:"structure",required:["DkimTokens"],members:{DkimTokens:{shape:"S1y"}}},http:{}},VerifyDomainIdentity:{input:{type:"structure",required:["Domain"],members:{Domain:{}}},output:{resultWrapper:"VerifyDomainIdentityResult",type:"structure",required:["VerificationToken"],members:{VerificationToken:{}}},http:{}},VerifyEmailAddress:{input:{type:"structure",required:["EmailAddress"],members:{EmailAddress:{}}},http:{}},VerifyEmailIdentity:{input:{type:"structure",required:["EmailAddress"],members:{EmailAddress:{}}},output:{resultWrapper:"VerifyEmailIdentityResult",type:"structure",members:{}},http:{}}},shapes:{S5:{type:"structure",required:["Name","IpFilter"],members:{Name:{},IpFilter:{type:"structure",required:["Policy","Cidr"],members:{Policy:{},Cidr:{}}}}},Sd:{type:"structure",required:["Name"],members:{Name:{},Enabled:{type:"boolean"},TlsPolicy:{},Recipients:{type:"list",member:{}},Actions:{type:"list",member:{type:"structure",members:{S3Action:{type:"structure",required:["BucketName"],members:{TopicArn:{},BucketName:{},ObjectKeyPrefix:{},KmsKeyArn:{}}},BounceAction:{type:"structure",required:["SmtpReplyCode","Message","Sender"],members:{TopicArn:{},SmtpReplyCode:{},StatusCode:{},Message:{},Sender:{}}},WorkmailAction:{type:"structure",required:["OrganizationArn"],members:{TopicArn:{},OrganizationArn:{}}},LambdaAction:{type:"structure",required:["FunctionArn"],members:{TopicArn:{},FunctionArn:{},InvocationType:{}}},StopAction:{type:"structure",required:["Scope"],members:{Scope:{},TopicArn:{}}},AddHeaderAction:{type:"structure",required:["HeaderName","HeaderValue"],members:{HeaderName:{},HeaderValue:{}}},SNSAction:{type:"structure",required:["TopicArn"],members:{TopicArn:{},Encoding:{}}}}}},ScanEnabled:{type:"boolean"}}},S1l:{type:"structure",members:{Name:{},CreatedTimestamp:{type:"timestamp"}}},S1n:{type:"list",member:{shape:"Sd"}},S1t:{type:"list",member:{}},S1y:{type:"list",member:{}},S2d:{type:"list",member:{}},S37:{type:"list",member:{}},S3j:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}},S40:{type:"structure",required:["Data"],members:{Data:{},Charset:{}}}},paginators:{ListIdentities:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxItems",result_key:"Identities"},ListVerifiedEmailAddresses:{result_key:"VerifiedEmailAddresses"}},waiters:{IdentityExists:{delay:3,operation:"GetIdentityVerificationAttributes",maxAttempts:20,acceptors:[{expected:"Success",matcher:"pathAll",state:"success",argument:"VerificationAttributes.*.VerificationStatus"}]}}},a.apiLoader.services.sns={},a.SNS=a.Service.defineService("sns",["2010-03-31"]),a.apiLoader.services.sns["2010-03-31"]={metadata:{apiVersion:"2010-03-31",endpointPrefix:"sns",serviceAbbreviation:"Amazon SNS",serviceFullName:"Amazon Simple Notification Service",signatureVersion:"v4",xmlNamespace:"http://sns.amazonaws.com/doc/2010-03-31/",protocol:"query"},operations:{AddPermission:{input:{type:"structure",required:["TopicArn","Label","AWSAccountId","ActionName"],members:{TopicArn:{},Label:{},AWSAccountId:{type:"list",member:{}},ActionName:{type:"list",member:{}}}},http:{}},ConfirmSubscription:{input:{type:"structure",required:["TopicArn","Token"],members:{TopicArn:{},Token:{},AuthenticateOnUnsubscribe:{}}},output:{resultWrapper:"ConfirmSubscriptionResult",type:"structure",members:{SubscriptionArn:{}}},http:{}},CreatePlatformApplication:{input:{type:"structure",required:["Name","Platform","Attributes"],members:{Name:{},Platform:{},Attributes:{shape:"Sf"}}},output:{resultWrapper:"CreatePlatformApplicationResult",type:"structure",members:{PlatformApplicationArn:{}}},http:{}},CreatePlatformEndpoint:{input:{type:"structure",required:["PlatformApplicationArn","Token"],members:{PlatformApplicationArn:{},Token:{},CustomUserData:{},Attributes:{shape:"Sf"}}},output:{resultWrapper:"CreatePlatformEndpointResult",type:"structure",members:{EndpointArn:{}}},http:{}},CreateTopic:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{resultWrapper:"CreateTopicResult",type:"structure",members:{TopicArn:{}}},http:{}},DeleteEndpoint:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},http:{}},DeletePlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}},http:{}},DeleteTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}},http:{}},GetEndpointAttributes:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},output:{resultWrapper:"GetEndpointAttributesResult",type:"structure",members:{Attributes:{shape:"Sf"}}},http:{}},GetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}},output:{resultWrapper:"GetPlatformApplicationAttributesResult",type:"structure",members:{Attributes:{shape:"Sf"}}},http:{}},GetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}},output:{resultWrapper:"GetSubscriptionAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}},http:{}},GetTopicAttributes:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}},output:{resultWrapper:"GetTopicAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}},http:{}},ListEndpointsByPlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{},NextToken:{}}},output:{resultWrapper:"ListEndpointsByPlatformApplicationResult",type:"structure",members:{Endpoints:{type:"list",member:{type:"structure",members:{EndpointArn:{},Attributes:{shape:"Sf"}}}},NextToken:{}}},http:{}},ListPlatformApplications:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListPlatformApplicationsResult",type:"structure",members:{PlatformApplications:{type:"list",member:{type:"structure",members:{PlatformApplicationArn:{},Attributes:{shape:"Sf"}}}},NextToken:{}}},http:{}},ListSubscriptions:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListSubscriptionsResult",type:"structure",members:{Subscriptions:{shape:"S1c"},NextToken:{}}},http:{}},ListSubscriptionsByTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{},NextToken:{}}},output:{resultWrapper:"ListSubscriptionsByTopicResult",type:"structure",members:{Subscriptions:{shape:"S1c"},NextToken:{}}},http:{}},ListTopics:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListTopicsResult",type:"structure",members:{Topics:{type:"list",member:{type:"structure",members:{TopicArn:{}}}},NextToken:{}}},http:{}},Publish:{input:{type:"structure",required:["Message"],members:{TopicArn:{},TargetArn:{},Message:{},Subject:{},MessageStructure:{},MessageAttributes:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{DataType:{},StringValue:{},BinaryValue:{type:"blob"}}}}}},output:{resultWrapper:"PublishResult",type:"structure",members:{MessageId:{}}},http:{}},RemovePermission:{input:{type:"structure",required:["TopicArn","Label"],members:{TopicArn:{},Label:{}}},http:{}},SetEndpointAttributes:{input:{type:"structure",required:["EndpointArn","Attributes"],members:{EndpointArn:{},Attributes:{shape:"Sf"}}},http:{}},SetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn","Attributes"],members:{PlatformApplicationArn:{},Attributes:{shape:"Sf"}}},http:{}},SetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn","AttributeName"],members:{SubscriptionArn:{},AttributeName:{},AttributeValue:{}}},http:{}},SetTopicAttributes:{input:{type:"structure",required:["TopicArn","AttributeName"],members:{TopicArn:{},AttributeName:{},AttributeValue:{}}},http:{}},Subscribe:{input:{type:"structure",required:["TopicArn","Protocol"],members:{TopicArn:{},Protocol:{},Endpoint:{}}},output:{resultWrapper:"SubscribeResult",type:"structure",members:{SubscriptionArn:{}}},http:{}},Unsubscribe:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}},http:{}}},shapes:{Sf:{type:"map",key:{},value:{}},S1c:{type:"list",member:{type:"structure",members:{SubscriptionArn:{},Owner:{},Protocol:{},Endpoint:{},TopicArn:{}}}}},paginators:{ListEndpointsByPlatformApplication:{input_token:"NextToken",output_token:"NextToken",result_key:"Endpoints"},ListPlatformApplications:{input_token:"NextToken",output_token:"NextToken",result_key:"PlatformApplications"},ListSubscriptions:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListSubscriptionsByTopic:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListTopics:{input_token:"NextToken",output_token:"NextToken",result_key:"Topics"}}},a.apiLoader.services.sqs={},a.SQS=a.Service.defineService("sqs",["2012-11-05"]),e("./services/sqs"),a.apiLoader.services.sqs["2012-11-05"]={version:"2.0",metadata:{apiVersion:"2012-11-05",endpointPrefix:"sqs",protocol:"query",serviceAbbreviation:"Amazon SQS",serviceFullName:"Amazon Simple Queue Service",signatureVersion:"v4",xmlNamespace:"http://queue.amazonaws.com/doc/2012-11-05/"},operations:{AddPermission:{input:{type:"structure",required:["QueueUrl","Label","AWSAccountIds","Actions"],members:{QueueUrl:{},Label:{},AWSAccountIds:{type:"list",member:{locationName:"AWSAccountId"},flattened:!0},Actions:{type:"list",member:{locationName:"ActionName"},flattened:!0}}},http:{}},ChangeMessageVisibility:{input:{type:"structure",required:["QueueUrl","ReceiptHandle","VisibilityTimeout"],members:{QueueUrl:{},ReceiptHandle:{},VisibilityTimeout:{type:"integer"}}},http:{}},ChangeMessageVisibilityBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"ChangeMessageVisibilityBatchRequestEntry",type:"structure",required:["Id","ReceiptHandle"],members:{Id:{},ReceiptHandle:{},VisibilityTimeout:{type:"integer"}}},flattened:!0}}},output:{resultWrapper:"ChangeMessageVisibilityBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"ChangeMessageVisibilityBatchResultEntry",type:"structure",required:["Id"],members:{Id:{}}},flattened:!0},Failed:{shape:"Sd"}}},http:{}},CreateQueue:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},Attributes:{shape:"Sh",locationName:"Attribute"}}},output:{resultWrapper:"CreateQueueResult",type:"structure",members:{QueueUrl:{}}},http:{}},DeleteMessage:{input:{type:"structure",required:["QueueUrl","ReceiptHandle"],members:{QueueUrl:{},ReceiptHandle:{}}},http:{}},DeleteMessageBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"DeleteMessageBatchRequestEntry",type:"structure",required:["Id","ReceiptHandle"],members:{Id:{},ReceiptHandle:{}}},flattened:!0}}},output:{resultWrapper:"DeleteMessageBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"DeleteMessageBatchResultEntry",type:"structure",required:["Id"],members:{Id:{}}},flattened:!0},Failed:{shape:"Sd"}}},http:{}},DeleteQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},http:{}},GetQueueAttributes:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"St"}}},output:{resultWrapper:"GetQueueAttributesResult",type:"structure",members:{Attributes:{shape:"Sh",locationName:"Attribute"}}},http:{}},GetQueueUrl:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},QueueOwnerAWSAccountId:{}}},output:{resultWrapper:"GetQueueUrlResult",type:"structure",members:{QueueUrl:{}}},http:{}},ListDeadLetterSourceQueues:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListDeadLetterSourceQueuesResult",type:"structure",required:["queueUrls"],members:{queueUrls:{shape:"Sz"}}},http:{}},ListQueues:{input:{type:"structure",members:{QueueNamePrefix:{}}},output:{resultWrapper:"ListQueuesResult",type:"structure",members:{QueueUrls:{shape:"Sz"}}},http:{}},PurgeQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},http:{}},ReceiveMessage:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"St"},MessageAttributeNames:{type:"list",member:{locationName:"MessageAttributeName"},flattened:!0},MaxNumberOfMessages:{type:"integer"},VisibilityTimeout:{type:"integer"},WaitTimeSeconds:{type:"integer"}}},output:{resultWrapper:"ReceiveMessageResult",type:"structure",members:{Messages:{type:"list",member:{locationName:"Message",type:"structure",members:{MessageId:{},ReceiptHandle:{},MD5OfBody:{},Body:{},Attributes:{shape:"Sh",locationName:"Attribute"},MD5OfMessageAttributes:{},MessageAttributes:{shape:"S19",locationName:"MessageAttribute"}}},flattened:!0}}},http:{}},RemovePermission:{input:{type:"structure",required:["QueueUrl","Label"],members:{QueueUrl:{},Label:{}}},http:{}},SendMessage:{input:{type:"structure",required:["QueueUrl","MessageBody"],members:{QueueUrl:{},MessageBody:{},DelaySeconds:{type:"integer"},MessageAttributes:{shape:"S19",locationName:"MessageAttribute"}}},output:{resultWrapper:"SendMessageResult",type:"structure",members:{MD5OfMessageBody:{},MD5OfMessageAttributes:{},MessageId:{}}},http:{}},SendMessageBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"SendMessageBatchRequestEntry",type:"structure",required:["Id","MessageBody"],members:{Id:{},MessageBody:{},DelaySeconds:{type:"integer"},MessageAttributes:{shape:"S19",locationName:"MessageAttribute"}}},flattened:!0}}},output:{resultWrapper:"SendMessageBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"SendMessageBatchResultEntry",type:"structure",required:["Id","MessageId","MD5OfMessageBody"],members:{Id:{},MessageId:{},MD5OfMessageBody:{},MD5OfMessageAttributes:{}}},flattened:!0},Failed:{shape:"Sd"}}},http:{}},SetQueueAttributes:{input:{type:"structure",required:["QueueUrl","Attributes"],members:{QueueUrl:{},Attributes:{shape:"Sh",locationName:"Attribute"}}},http:{}}},shapes:{Sd:{type:"list",member:{locationName:"BatchResultErrorEntry",type:"structure",required:["Id","SenderFault","Code"],members:{Id:{},SenderFault:{type:"boolean"},Code:{},Message:{}}},flattened:!0},Sh:{type:"map",key:{locationName:"Name"},value:{locationName:"Value"},flattened:!0,locationName:"Attribute"},St:{type:"list",member:{locationName:"AttributeName"},flattened:!0},Sz:{type:"list",member:{locationName:"QueueUrl"},flattened:!0},S19:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{StringValue:{},BinaryValue:{type:"blob"},StringListValues:{flattened:!0,locationName:"StringListValue",type:"list",member:{locationName:"StringListValue"}},BinaryListValues:{flattened:!0,locationName:"BinaryListValue",type:"list",member:{locationName:"BinaryListValue",type:"blob"}},DataType:{}}},flattened:!0}},paginators:{ListQueues:{result_key:"QueueUrls"}}},a.apiLoader.services.ssm={},a.SSM=a.Service.defineService("ssm",["2014-11-06"]),a.apiLoader.services.ssm["2014-11-06"]={version:"2.0",metadata:{apiVersion:"2014-11-06",endpointPrefix:"ssm",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon SSM",serviceFullName:"Amazon Simple Systems Management Service",signatureVersion:"v4",targetPrefix:"AmazonSSM"},operations:{CancelCommand:{input:{type:"structure",required:["CommandId"],members:{CommandId:{},InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{}},http:{}},CreateAssociation:{input:{type:"structure",required:["Name","InstanceId"],members:{Name:{},InstanceId:{},Parameters:{shape:"S8"}}},output:{type:"structure",members:{AssociationDescription:{shape:"Sd"}}},http:{}},CreateAssociationBatch:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{shape:"Sl",locationName:"entries"}}}},output:{type:"structure",members:{Successful:{type:"list",member:{shape:"Sd",locationName:"AssociationDescription"}},Failed:{type:"list",member:{locationName:"FailedCreateAssociationEntry",type:"structure",members:{Entry:{shape:"Sl"},Message:{},Fault:{}}}}}},http:{}},CreateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Name:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"Sv"}}},http:{}},DeleteAssociation:{input:{type:"structure",required:["Name","InstanceId"],members:{Name:{},InstanceId:{}}},output:{type:"structure",members:{}},http:{}},DeleteDocument:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}},http:{}},DescribeAssociation:{input:{type:"structure",required:["Name","InstanceId"],members:{Name:{},InstanceId:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"Sd"}}},http:{}},DescribeDocument:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Document:{shape:"Sv"}}},http:{}},DescribeDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{}}},output:{type:"structure",members:{AccountIds:{shape:"S1m"}}},http:{}},DescribeInstanceInformation:{input:{type:"structure",members:{InstanceInformationFilterList:{type:"list",member:{locationName:"InstanceInformationFilter",type:"structure",required:["key","valueSet"],members:{key:{},valueSet:{type:"list",member:{locationName:"InstanceInformationFilterValue"}}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{InstanceInformationList:{type:"list",member:{locationName:"InstanceInformation",type:"structure",members:{InstanceId:{},PingStatus:{},LastPingDateTime:{type:"timestamp"},AgentVersion:{},IsLatestVersion:{type:"boolean"},PlatformType:{},PlatformName:{},PlatformVersion:{}}}},NextToken:{}}},http:{}},GetDocument:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},Content:{}}},http:{}},ListAssociations:{input:{type:"structure",required:["AssociationFilterList"],members:{AssociationFilterList:{type:"list",member:{locationName:"AssociationFilter",type:"structure",required:["key","value"],members:{key:{},value:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Associations:{type:"list",member:{locationName:"Association",type:"structure",members:{Name:{},InstanceId:{}}}},NextToken:{}}},http:{}},ListCommandInvocations:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"S2g"},Details:{type:"boolean"}}},output:{type:"structure",members:{CommandInvocations:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},Comment:{},DocumentName:{},RequestedDateTime:{type:"timestamp"},Status:{},TraceOutput:{},CommandPlugins:{type:"list",member:{type:"structure",members:{Name:{},Status:{},ResponseCode:{type:"integer"},ResponseStartDateTime:{type:"timestamp"},ResponseFinishDateTime:{type:"timestamp"},Output:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}}}}},NextToken:{}}},http:{}},ListCommands:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"S2g"}}},output:{type:"structure",members:{Commands:{type:"list",member:{shape:"S31"}},NextToken:{}}},http:{}},ListDocuments:{input:{type:"structure",members:{DocumentFilterList:{type:"list",member:{locationName:"DocumentFilter",type:"structure",required:["key","value"],members:{key:{},value:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{DocumentIdentifiers:{type:"list",member:{locationName:"DocumentIdentifier",type:"structure",members:{Name:{},Owner:{},PlatformTypes:{shape:"S19"}}}},NextToken:{}}},http:{}},ModifyDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{},AccountIdsToAdd:{shape:"S1m"},AccountIdsToRemove:{shape:"S1m"}}},output:{type:"structure",members:{}},http:{}},SendCommand:{input:{type:"structure",required:["InstanceIds","DocumentName"],members:{InstanceIds:{shape:"S3"},DocumentName:{},DocumentHash:{},DocumentHashType:{},TimeoutSeconds:{type:"integer"},Comment:{},Parameters:{shape:"S8"},OutputS3BucketName:{},OutputS3KeyPrefix:{}}},output:{type:"structure",members:{Command:{shape:"S31"}}},http:{}},UpdateAssociationStatus:{input:{type:"structure",required:["Name","InstanceId","AssociationStatus"],members:{Name:{},InstanceId:{},AssociationStatus:{shape:"Sf"}}},output:{type:"structure",members:{AssociationDescription:{shape:"Sd"}}},http:{}}},shapes:{S3:{type:"list",member:{}},S8:{type:"map",key:{},value:{type:"list",member:{}}},Sd:{type:"structure",members:{Name:{},InstanceId:{},Date:{type:"timestamp"},Status:{shape:"Sf"},Parameters:{shape:"S8"}}},Sf:{type:"structure",required:["Date","Name","Message"],members:{Date:{type:"timestamp"},Name:{},Message:{},AdditionalInfo:{}}},Sl:{type:"structure",members:{Name:{},InstanceId:{},Parameters:{shape:"S8"}}},Sv:{type:"structure",members:{Sha1:{},Hash:{},HashType:{},Name:{},Owner:{},CreatedDate:{type:"timestamp"},Status:{},Description:{},Parameters:{type:"list",member:{locationName:"DocumentParameter",type:"structure",members:{Name:{},Type:{},Description:{},DefaultValue:{}}}},PlatformTypes:{shape:"S19"}}},S19:{type:"list",member:{locationName:"PlatformType"}},S1m:{type:"list",member:{locationName:"AccountId"}},S2g:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},S31:{type:"structure",members:{CommandId:{},DocumentName:{},Comment:{},ExpiresAfter:{type:"timestamp"},Parameters:{shape:"S8"},InstanceIds:{shape:"S3"},RequestedDateTime:{type:"timestamp"},Status:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}},paginators:{ListAssociations:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Associations"},ListCommandInvocations:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"CommandInvocations"},ListCommands:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Commands"},ListDocuments:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"DocumentIdentifiers"}}},a.apiLoader.services.storagegateway={},a.StorageGateway=a.Service.defineService("storagegateway",["2013-06-30"]),a.apiLoader.services.storagegateway["2013-06-30"]={version:"2.0",metadata:{apiVersion:"2013-06-30",endpointPrefix:"storagegateway",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Storage Gateway", +signatureVersion:"v4",targetPrefix:"StorageGateway_20130630"},operations:{ActivateGateway:{input:{type:"structure",required:["ActivationKey","GatewayName","GatewayTimezone","GatewayRegion"],members:{ActivationKey:{},GatewayName:{},GatewayTimezone:{},GatewayRegion:{},GatewayType:{},TapeDriveType:{},MediumChangerType:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},AddCache:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},AddTagsToResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sh"}}},output:{type:"structure",members:{ResourceARN:{}}},http:{}},AddUploadBuffer:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},AddWorkingStorage:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},CancelArchival:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},CancelRetrieval:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},CreateCachediSCSIVolume:{input:{type:"structure",required:["GatewayARN","VolumeSizeInBytes","TargetName","NetworkInterfaceId","ClientToken"],members:{GatewayARN:{},VolumeSizeInBytes:{type:"long"},SnapshotId:{},TargetName:{},NetworkInterfaceId:{},ClientToken:{}}},output:{type:"structure",members:{VolumeARN:{},TargetARN:{}}},http:{}},CreateSnapshot:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{VolumeARN:{},SnapshotId:{}}},http:{}},CreateSnapshotFromVolumeRecoveryPoint:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{SnapshotId:{},VolumeARN:{},VolumeRecoveryPointTime:{}}},http:{}},CreateStorediSCSIVolume:{input:{type:"structure",required:["GatewayARN","DiskId","PreserveExistingData","TargetName","NetworkInterfaceId"],members:{GatewayARN:{},DiskId:{},SnapshotId:{},PreserveExistingData:{type:"boolean"},TargetName:{},NetworkInterfaceId:{}}},output:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},TargetARN:{}}},http:{}},CreateTapeWithBarcode:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","TapeBarcode"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},TapeBarcode:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},CreateTapes:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","ClientToken","NumTapesToCreate","TapeBarcodePrefix"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},ClientToken:{},NumTapesToCreate:{type:"integer"},TapeBarcodePrefix:{}}},output:{type:"structure",members:{TapeARNs:{shape:"S1l"}}},http:{}},DeleteBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN","BandwidthType"],members:{GatewayARN:{},BandwidthType:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},DeleteChapCredentials:{input:{type:"structure",required:["TargetARN","InitiatorName"],members:{TargetARN:{},InitiatorName:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}},http:{}},DeleteGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},DeleteSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{}}},http:{}},DeleteTape:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},DeleteTapeArchive:{input:{type:"structure",required:["TapeARN"],members:{TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},DeleteVolume:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{}}},http:{}},DescribeBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},http:{}},DescribeCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},CacheAllocatedInBytes:{type:"long"},CacheUsedPercentage:{type:"double"},CacheDirtyPercentage:{type:"double"},CacheHitPercentage:{type:"double"},CacheMissPercentage:{type:"double"}}},http:{}},DescribeCachediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2a"}}},output:{type:"structure",members:{CachediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},SourceSnapshotId:{},VolumeiSCSIAttributes:{shape:"S2i"}}}}}},http:{}},DescribeChapCredentials:{input:{type:"structure",required:["TargetARN"],members:{TargetARN:{}}},output:{type:"structure",members:{ChapCredentials:{type:"list",member:{type:"structure",members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}}}}},http:{}},DescribeGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayId:{},GatewayName:{},GatewayTimezone:{},GatewayState:{},GatewayNetworkInterfaces:{type:"list",member:{type:"structure",members:{Ipv4Address:{},MacAddress:{},Ipv6Address:{}}}},GatewayType:{},NextUpdateAvailabilityDate:{},LastSoftwareUpdate:{}}},http:{}},DescribeMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"},Timezone:{}}},http:{}},DescribeSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{},Timezone:{}}},http:{}},DescribeStorediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2a"}}},output:{type:"structure",members:{StorediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},VolumeDiskId:{},SourceSnapshotId:{},PreservedExistingData:{type:"boolean"},VolumeiSCSIAttributes:{shape:"S2i"}}}}}},http:{}},DescribeTapeArchives:{input:{type:"structure",members:{TapeARNs:{shape:"S1l"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeArchives:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},CompletionTime:{type:"timestamp"},RetrievedTo:{},TapeStatus:{}}}},Marker:{}}},http:{}},DescribeTapeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},TapeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeRecoveryPointTime:{type:"timestamp"},TapeSizeInBytes:{type:"long"},TapeStatus:{}}}},Marker:{}}},http:{}},DescribeTapes:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},TapeARNs:{shape:"S1l"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Tapes:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},VTLDevice:{},Progress:{type:"double"}}}},Marker:{}}},http:{}},DescribeUploadBuffer:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},UploadBufferUsedInBytes:{type:"long"},UploadBufferAllocatedInBytes:{type:"long"}}},http:{}},DescribeVTLDevices:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},VTLDeviceARNs:{type:"list",member:{}},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},VTLDevices:{type:"list",member:{type:"structure",members:{VTLDeviceARN:{},VTLDeviceType:{},VTLDeviceVendor:{},VTLDeviceProductIdentifier:{},DeviceiSCSIAttributes:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},Marker:{}}},http:{}},DescribeWorkingStorage:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},WorkingStorageUsedInBytes:{type:"long"},WorkingStorageAllocatedInBytes:{type:"long"}}},http:{}},DisableGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},ListGateways:{input:{type:"structure",members:{Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Gateways:{type:"list",member:{type:"structure",members:{GatewayId:{},GatewayARN:{},GatewayType:{},GatewayOperationalState:{},GatewayName:{}}}},Marker:{}}},http:{}},ListLocalDisks:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},Disks:{type:"list",member:{type:"structure",members:{DiskId:{},DiskPath:{},DiskNode:{},DiskStatus:{},DiskSizeInBytes:{type:"long"},DiskAllocationType:{},DiskAllocationResource:{}}}}}},http:{}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ResourceARN:{},Marker:{},Tags:{shape:"Sh"}}},http:{}},ListTapes:{input:{type:"structure",members:{TapeARNs:{shape:"S1l"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},GatewayARN:{}}}},Marker:{}}},http:{}},ListVolumeInitiators:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{Initiators:{type:"list",member:{}}}},http:{}},ListVolumeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},VolumeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},VolumeUsageInBytes:{type:"long"},VolumeRecoveryPointTime:{}}}}}},http:{}},ListVolumes:{input:{type:"structure",members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},Marker:{},VolumeInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},GatewayARN:{},GatewayId:{},VolumeType:{},VolumeSizeInBytes:{type:"long"}}}}}},http:{}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{ResourceARN:{}}},http:{}},ResetCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},RetrieveTapeArchive:{input:{type:"structure",required:["TapeARN","GatewayARN"],members:{TapeARN:{},GatewayARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},RetrieveTapeRecoveryPoint:{input:{type:"structure",required:["TapeARN","GatewayARN"],members:{TapeARN:{},GatewayARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},SetLocalConsolePassword:{input:{type:"structure",required:["GatewayARN","LocalConsolePassword"],members:{GatewayARN:{},LocalConsolePassword:{type:"string",sensitive:!0}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},ShutdownGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},StartGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateChapCredentials:{input:{type:"structure",required:["TargetARN","SecretToAuthenticateInitiator","InitiatorName"],members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}},http:{}},UpdateGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},GatewayName:{},GatewayTimezone:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayName:{}}},http:{}},UpdateGatewaySoftwareNow:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN","HourOfDay","MinuteOfHour","DayOfWeek"],members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateSnapshotSchedule:{input:{type:"structure",required:["VolumeARN","StartAt","RecurrenceInHours"],members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{}}},output:{type:"structure",members:{VolumeARN:{}}},http:{}},UpdateVTLDeviceType:{input:{type:"structure",required:["VTLDeviceARN","DeviceType"],members:{VTLDeviceARN:{},DeviceType:{}}},output:{type:"structure",members:{VTLDeviceARN:{}}},http:{}}},shapes:{Sc:{type:"list",member:{}},Sh:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S1l:{type:"list",member:{}},S2a:{type:"list",member:{}},S2i:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},LunNumber:{type:"integer"},ChapEnabled:{type:"boolean"}}}},paginators:{DescribeCachediSCSIVolumes:{result_key:"CachediSCSIVolumes"},DescribeStorediSCSIVolumes:{result_key:"StorediSCSIVolumes"},DescribeTapeArchives:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeArchives"},DescribeTapeRecoveryPoints:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeRecoveryPointInfos"},DescribeTapes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Tapes"},DescribeVTLDevices:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VTLDevices"},ListGateways:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Gateways"},ListLocalDisks:{result_key:"Disks"},ListVolumeRecoveryPoints:{result_key:"VolumeRecoveryPointInfos"},ListVolumes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VolumeInfos"}}},a.apiLoader.services.sts={},a.STS=a.Service.defineService("sts",["2011-06-15"]),e("./services/sts"),a.apiLoader.services.sts["2011-06-15"]={version:"2.0",metadata:{apiVersion:"2011-06-15",endpointPrefix:"sts",globalEndpoint:"sts.amazonaws.com",protocol:"query",serviceAbbreviation:"AWS STS",serviceFullName:"AWS Security Token Service",signatureVersion:"v4",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/"},operations:{AssumeRole:{input:{type:"structure",required:["RoleArn","RoleSessionName"],members:{RoleArn:{},RoleSessionName:{},Policy:{},DurationSeconds:{type:"integer"},ExternalId:{},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"AssumeRoleResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"}}},http:{}},AssumeRoleWithSAML:{input:{type:"structure",required:["RoleArn","PrincipalArn","SAMLAssertion"],members:{RoleArn:{},PrincipalArn:{},SAMLAssertion:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithSAMLResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Subject:{},SubjectType:{},Issuer:{},Audience:{},NameQualifier:{}}},http:{}},AssumeRoleWithWebIdentity:{input:{type:"structure",required:["RoleArn","RoleSessionName","WebIdentityToken"],members:{RoleArn:{},RoleSessionName:{},WebIdentityToken:{},ProviderId:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithWebIdentityResult",type:"structure",members:{Credentials:{shape:"Sa"},SubjectFromWebIdentityToken:{},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Provider:{},Audience:{}}},http:{}},DecodeAuthorizationMessage:{input:{type:"structure",required:["EncodedMessage"],members:{EncodedMessage:{}}},output:{resultWrapper:"DecodeAuthorizationMessageResult",type:"structure",members:{DecodedMessage:{}}},http:{}},GetCallerIdentity:{input:{type:"structure",members:{}},output:{resultWrapper:"GetCallerIdentityResult",type:"structure",members:{UserId:{},Account:{},Arn:{}}},http:{}},GetFederationToken:{input:{type:"structure",required:["Name"],members:{Name:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"GetFederationTokenResult",type:"structure",members:{Credentials:{shape:"Sa"},FederatedUser:{type:"structure",required:["FederatedUserId","Arn"],members:{FederatedUserId:{},Arn:{}}},PackedPolicySize:{type:"integer"}}},http:{}},GetSessionToken:{input:{type:"structure",members:{DurationSeconds:{type:"integer"},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"GetSessionTokenResult",type:"structure",members:{Credentials:{shape:"Sa"}}},http:{}}},shapes:{Sa:{type:"structure",required:["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{},Expiration:{type:"timestamp"}}},Sf:{type:"structure",required:["AssumedRoleId","Arn"],members:{AssumedRoleId:{},Arn:{}}}}},a.apiLoader.services.waf={},a.WAF=a.Service.defineService("waf",["2015-08-24"]),a.apiLoader.services.waf["2015-08-24"]={version:"2.0",metadata:{apiVersion:"2015-08-24",endpointPrefix:"waf",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"WAF",serviceFullName:"AWS WAF",signatureVersion:"v4",targetPrefix:"AWSWAF_20150824"},operations:{CreateByteMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{ByteMatchSet:{shape:"S5"},ChangeToken:{}}},http:{}},CreateIPSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{IPSet:{shape:"Sh"},ChangeToken:{}}},http:{}},CreateRule:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{}}},output:{type:"structure",members:{Rule:{shape:"Sp"},ChangeToken:{}}},http:{}},CreateSizeConstraintSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"Sw"},ChangeToken:{}}},http:{}},CreateSqlInjectionMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S13"},ChangeToken:{}}},http:{}},CreateWebACL:{input:{type:"structure",required:["Name","MetricName","DefaultAction","ChangeToken"],members:{Name:{},MetricName:{},DefaultAction:{shape:"S17"},ChangeToken:{}}},output:{type:"structure",members:{WebACL:{shape:"S1a"},ChangeToken:{}}},http:{}},CreateXssMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S1g"},ChangeToken:{}}},http:{}},DeleteByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId","ChangeToken"],members:{ByteMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteIPSet:{input:{type:"structure",required:["IPSetId","ChangeToken"],members:{IPSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteRule:{input:{type:"structure",required:["RuleId","ChangeToken"],members:{RuleId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId","ChangeToken"],members:{SizeConstraintSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId","ChangeToken"],members:{SqlInjectionMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteWebACL:{input:{type:"structure",required:["WebACLId","ChangeToken"],members:{WebACLId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteXssMatchSet:{input:{type:"structure",required:["XssMatchSetId","ChangeToken"],members:{XssMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},GetByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId"],members:{ByteMatchSetId:{}}},output:{type:"structure",members:{ByteMatchSet:{shape:"S5"}}},http:{}},GetChangeToken:{input:{type:"structure",members:{}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},GetChangeTokenStatus:{input:{type:"structure",required:["ChangeToken"],members:{ChangeToken:{}}},output:{type:"structure",members:{ChangeTokenStatus:{}}},http:{}},GetIPSet:{input:{type:"structure",required:["IPSetId"],members:{IPSetId:{}}},output:{type:"structure",members:{IPSet:{shape:"Sh"}}},http:{}},GetRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"Sp"}}},http:{}},GetSampledRequests:{input:{type:"structure",required:["WebAclId","RuleId","TimeWindow","MaxItems"],members:{WebAclId:{},RuleId:{},TimeWindow:{shape:"S29"},MaxItems:{type:"long"}}},output:{type:"structure",members:{SampledRequests:{type:"list",member:{type:"structure",required:["Request","Weight"],members:{Request:{type:"structure",members:{ClientIP:{},Country:{},URI:{},Method:{},HTTPVersion:{},Headers:{type:"list",member:{type:"structure",members:{Name:{},Value:{}}}}}},Weight:{type:"long"},Timestamp:{type:"timestamp"},Action:{}}}},PopulationSize:{type:"long"},TimeWindow:{shape:"S29"}}},http:{}},GetSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId"],members:{SizeConstraintSetId:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"Sw"}}},http:{}},GetSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId"],members:{SqlInjectionMatchSetId:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S13"}}},http:{}},GetWebACL:{input:{type:"structure",required:["WebACLId"],members:{WebACLId:{}}},output:{type:"structure",members:{WebACL:{shape:"S1a"}}},http:{}},GetXssMatchSet:{input:{type:"structure",required:["XssMatchSetId"],members:{XssMatchSetId:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S1g"}}},http:{}},ListByteMatchSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},ByteMatchSets:{type:"list",member:{type:"structure",required:["ByteMatchSetId","Name"],members:{ByteMatchSetId:{},Name:{}}}}}},http:{}},ListIPSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},IPSets:{type:"list",member:{type:"structure",required:["IPSetId","Name"],members:{IPSetId:{},Name:{}}}}}},http:{}},ListRules:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Rules:{type:"list",member:{type:"structure",required:["RuleId","Name"],members:{RuleId:{},Name:{}}}}}},http:{}},ListSizeConstraintSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},SizeConstraintSets:{type:"list",member:{type:"structure",required:["SizeConstraintSetId","Name"],members:{SizeConstraintSetId:{},Name:{}}}}}},http:{}},ListSqlInjectionMatchSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},SqlInjectionMatchSets:{type:"list",member:{type:"structure",required:["SqlInjectionMatchSetId","Name"],members:{SqlInjectionMatchSetId:{},Name:{}}}}}},http:{}},ListWebACLs:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},WebACLs:{type:"list",member:{type:"structure",required:["WebACLId","Name"],members:{WebACLId:{},Name:{}}}}}},http:{}},ListXssMatchSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},XssMatchSets:{type:"list",member:{type:"structure",required:["XssMatchSetId","Name"],members:{XssMatchSetId:{},Name:{}}}}}},http:{}},UpdateByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId","ChangeToken","Updates"],members:{ByteMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","ByteMatchTuple"],members:{Action:{},ByteMatchTuple:{shape:"S8"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateIPSet:{input:{type:"structure",required:["IPSetId","ChangeToken","Updates"],members:{IPSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","IPSetDescriptor"],members:{Action:{},IPSetDescriptor:{shape:"Sj"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateRule:{input:{type:"structure",required:["RuleId","ChangeToken","Updates"],members:{RuleId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","Predicate"],members:{Action:{},Predicate:{shape:"Sr"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId","ChangeToken","Updates"],members:{SizeConstraintSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","SizeConstraint"],members:{Action:{},SizeConstraint:{shape:"Sy"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId","ChangeToken","Updates"],members:{SqlInjectionMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","SqlInjectionMatchTuple"],members:{Action:{},SqlInjectionMatchTuple:{shape:"S15"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateWebACL:{input:{type:"structure",required:["WebACLId","ChangeToken"],members:{WebACLId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","ActivatedRule"],members:{Action:{},ActivatedRule:{shape:"S1c"}}}},DefaultAction:{shape:"S17"}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateXssMatchSet:{input:{type:"structure",required:["XssMatchSetId","ChangeToken","Updates"],members:{XssMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","XssMatchTuple"],members:{Action:{},XssMatchTuple:{shape:"S1i"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}}},shapes:{S5:{type:"structure",required:["ByteMatchSetId","ByteMatchTuples"],members:{ByteMatchSetId:{},Name:{},ByteMatchTuples:{type:"list",member:{shape:"S8"}}}},S8:{type:"structure",required:["FieldToMatch","TargetString","TextTransformation","PositionalConstraint"],members:{FieldToMatch:{shape:"S9"},TargetString:{type:"blob"},TextTransformation:{},PositionalConstraint:{}}},S9:{type:"structure",required:["Type"],members:{Type:{},Data:{}}},Sh:{type:"structure",required:["IPSetId","IPSetDescriptors"],members:{IPSetId:{},Name:{},IPSetDescriptors:{type:"list",member:{shape:"Sj"}}}},Sj:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{}}},Sp:{type:"structure",required:["RuleId","Predicates"],members:{RuleId:{},Name:{},MetricName:{},Predicates:{type:"list",member:{shape:"Sr"}}}},Sr:{type:"structure",required:["Negated","Type","DataId"],members:{Negated:{type:"boolean"},Type:{},DataId:{}}},Sw:{type:"structure",required:["SizeConstraintSetId","SizeConstraints"],members:{SizeConstraintSetId:{},Name:{},SizeConstraints:{type:"list",member:{shape:"Sy"}}}},Sy:{type:"structure",required:["FieldToMatch","TextTransformation","ComparisonOperator","Size"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},ComparisonOperator:{},Size:{type:"long"}}},S13:{type:"structure",required:["SqlInjectionMatchSetId","SqlInjectionMatchTuples"],members:{SqlInjectionMatchSetId:{},Name:{},SqlInjectionMatchTuples:{type:"list",member:{shape:"S15"}}}},S15:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S17:{type:"structure",required:["Type"],members:{Type:{}}},S1a:{type:"structure",required:["WebACLId","DefaultAction","Rules"],members:{WebACLId:{},Name:{},MetricName:{},DefaultAction:{shape:"S17"},Rules:{type:"list",member:{shape:"S1c"}}}},S1c:{type:"structure",required:["Priority","RuleId","Action"],members:{Priority:{type:"integer"},RuleId:{},Action:{shape:"S17"}}},S1g:{type:"structure",required:["XssMatchSetId","XssMatchTuples"],members:{XssMatchSetId:{},Name:{},XssMatchTuples:{type:"list",member:{shape:"S1i"}}}},S1i:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S29:{type:"structure",required:["StartTime","EndTime"],members:{StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}}}}},{"./core":4,"./http/xhr":18,"./services/apigateway":42,"./services/cloudfront":43,"./services/cognitoidentity":44,"./services/dynamodb":45,"./services/ec2":46,"./services/iotdata":47,"./services/machinelearning":48,"./services/route53":49,"./services/s3":50,"./services/sqs":51,"./services/sts":52,"./xml/browser_parser":62}],2:[function(e,t,r){var a=e("crypto"),i=e("url"),s=e("../core"),n=s.util.base64.encode,o=s.util.inherit,u=function(e){var t={"+":"-","=":"_","/":"~"};return e.replace(/[\+=\/]/g,function(e){return t[e]})},p=function(e,t){var r=a.createSign("RSA-SHA1");return r.write(e),u(r.sign(t,"base64"))},c=function(e,t,r,a){var i=JSON.stringify({Statement:[{Resource:e,Condition:{DateLessThan:{"AWS:EpochTime":t}}}]});return{Expires:t,"Key-Pair-Id":r,Signature:p(i.toString(),a)}},m=function(e,t,r){return e=e.replace(/\s/gm,e),{Policy:u(n(e)),"Key-Pair-Id":t,Signature:p(e,r)}},l=function(e){var t=e.split("://");if(t.length<2)throw new Error("Invalid URL.");return t[0].replace("*","")},d=function(e){var t=i.parse(e);return t.path.replace(/^\//,"")+t.hash},y=function(e){switch(l(e)){case"http":case"https":return e;case"rtmp":return d(e);default:throw new Error("Invalid URI scheme. Scheme must be one of http, https, or rtmp")}},h=function(e,t){if(!t||"function"!=typeof t)throw e;t(e)},b=function(e,t){return t&&"function"==typeof t?void t(null,e):e};s.CloudFront.Signer=o({constructor:function(e,t){if(void 0===e||void 0===t)throw new Error("A key pair ID and private key are required");this.keyPairId=e,this.privateKey=t},getSignedCookie:function(e,t){var r="policy"in e?m(e.policy,this.keyPairId,this.privateKey):c(e.url,e.expires,this.keyPairId,this.privateKey),a={};for(var i in r)r.hasOwnProperty(i)&&(a["CloudFront-"+i]=r[i]);return b(a,t)},getSignedUrl:function(e,t){try{var r=y(e.url)}catch(a){return h(a,t)}var s=i.parse(e.url,!0),n=e.hasOwnProperty("policy")?m(e.policy,this.keyPairId,this.privateKey):c(r,e.expires,this.keyPairId,this.privateKey); +s.search=null;for(var o in n)n.hasOwnProperty(o)&&(s.query[o]=n[o]);try{var u="rtmp"===l(e.url)?d(i.format(s)):i.format(s)}catch(a){return h(a,t)}return b(u,t)}}),t.exports=s.CloudFront.Signer},{"../core":4,crypto:69,url:81}],3:[function(e,t,r){var a=e("./core");e("./credentials"),e("./credentials/credential_provider_chain"),a.Config=a.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),a.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:n.credentials)}function r(e,t){return new a.util.error(t||new Error,{code:"CredentialsError",message:e})}function i(){n.credentials.get(function(e){if(e){var a="Could not load credentials from "+n.credentials.constructor.name;e=r(a,e)}t(e)})}function s(){var e=null;n.credentials.accessKeyId&&n.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}var n=this;n.credentials?"function"==typeof n.credentials.get?i():s():n.credentialProvider?n.credentialProvider.resolve(function(e,a){e&&(e=r("Could not load credentials from any providers",e)),n.credentials=a,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),a.util.each.call(this,e,function(e,r){(t||this.keys.hasOwnProperty(e)||a.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(a.util.readFileSync(e)),r=new a.FileSystemCredentials(e),i=new a.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){a.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),"function"==typeof r?this[e]=r.call(this):this[e]=r):"httpOptions"===e&&this[e]?this[e]=a.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{base:100},useAccelerateEndpoint:!1},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=a.util.copy(e),e.credentials=new a.Credentials(e)),e},setPromisesDependency:function(e){a.util.addPromisesToRequests(a.Request,e)}}),a.config=new a.Config},{"./core":4,"./credentials":5,"./credentials/credential_provider_chain":7}],4:[function(e,t,r){var a={util:e("./util")},i={};i.toString(),t.exports=a,a.util.update(a,{VERSION:"2.3.17",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},util:e("./util"),apiLoader:function(){throw new Error("No API loader set")}}),e("./service"),e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/web_identity_credentials"),e("./credentials/cognito_identity_credentials"),e("./credentials/saml_credentials"),e("./config"),e("./http"),e("./sequential_executor"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),a.events=new a.SequentialExecutor},{"./config":3,"./credentials":5,"./credentials/cognito_identity_credentials":6,"./credentials/credential_provider_chain":7,"./credentials/saml_credentials":8,"./credentials/temporary_credentials":9,"./credentials/web_identity_credentials":10,"./event_listeners":16,"./http":17,"./json/builder":19,"./json/parser":20,"./model/api":21,"./model/operation":23,"./model/paginator":24,"./model/resource_waiter":25,"./model/shape":26,"./param_validator":27,"./protocol/json":28,"./protocol/query":29,"./protocol/rest":30,"./protocol/rest_json":31,"./protocol/rest_xml":32,"./request":36,"./resource_waiter":37,"./response":38,"./sequential_executor":40,"./service":41,"./signers/request_signer":54,"./util":61,"./xml/builder":63}],5:[function(e,t,r){var a=e("./core");a.Credentials=a.util.inherit({constructor:function(){if(a.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=a.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return this.expireTime&&t>this.expireTime?!0:this.expired||!this.accessKeyId||!this.secretAccessKey},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()}})},{"./core":4}],6:[function(e,t,r){var a=e("../core");a.CognitoIdentityCredentials=a.util.inherit(a.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this.identityId=null,this.loadCachedId()},refresh:function(e){var t=this;t.createClients(),t.data=null,t.identityId=null,t.getId(function(r){r?(t.clearCachedId(),e(r)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)})},clearCachedId:function(){this.identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},getId:function(e){var t=this;return"string"==typeof t.params.IdentityId?e(null,t.params.IdentityId):void t.cognito.getId(function(r,a){!r&&a.IdentityId?(t.params.IdentityId=a.IdentityId,e(null,a.IdentityId)):e(r)})},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity(function(r,a){r?t.clearCachedId():(t.cacheId(a),t.data=a,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,a){r?(t.clearCachedId(),e(r)):(t.cacheId(a),t.params.WebIdentityToken=a.Token,t.webIdentityCredentials.refresh(function(r){r?t.clearCachedId():(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(r)}))})},loadCachedId:function(){var e=this;if(a.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage("id");if(t&&e.params.Logins){var r=Object.keys(e.params.Logins),i=(e.getStorage("providers")||"").split(","),s=i.filter(function(e){return-1!==r.indexOf(e)});0!==s.length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){this.webIdentityCredentials=this.webIdentityCredentials||new a.WebIdentityCredentials(this.params),this.cognito=this.cognito||new a.CognitoIdentity({params:this.params}),this.sts=this.sts||new a.STS},cacheId:function(e){this.identityId=e.IdentityId,this.params.IdentityId=this.identityId,a.util.isBrowser()&&(this.setStorage("id",e.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]=t}catch(r){}},storage:function(){try{return a.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{}}catch(e){return{}}}()})},{"../core":4}],7:[function(e,t,r){var a=e("../core");a.CredentialProviderChain=a.util.inherit(a.Credentials,{constructor:function(e){e?this.providers=e:this.providers=a.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(e){function t(i,s){if(!i&&s||r===a.length)return void e(i,s);var n=a[r++];s="function"==typeof n?n.call():n,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}if(0===this.providers.length)return e(new Error("No providers")),this;var r=0,a=this.providers.slice(0);return t(),this}}),a.CredentialProviderChain.defaultProviders=[]},{"../core":4}],8:[function(e,t,r){var a=e("../core");a.SAMLCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithSAML(function(r,a){r||t.service.credentialsFrom(a,t),e(r)})},createClients:function(){this.service=this.service||new a.STS({params:this.params})}})},{"../core":4}],9:[function(e,t,r){var a=e("../core");a.TemporaryCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.loadMasterCredentials(),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.config.credentials=t.masterCredentials;var r=t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken;r.call(t.service,function(r,a){r||t.service.credentialsFrom(a,t),e(r)})},loadMasterCredentials:function(){for(this.masterCredentials=a.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials},createClients:function(){this.service=this.service||new a.STS({params:this.params})}})},{"../core":4}],10:[function(e,t,r){var a=e("../core");a.WebIdentityCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithWebIdentity(function(r,a){t.data=null,r||(t.data=a,t.service.credentialsFrom(a,t)),e(r)})},createClients:function(){this.service=this.service||new a.STS({params:this.params})}})},{"../core":4}],11:[function(e,t,r){function a(e){if("Object"===o(e)){var t={M:{}};for(var r in e)t.M[r]=a(e[r]);return t}if("Array"===o(e)){for(var s={L:[]},n=0;ns;s++)if(i(r[s])!==e.type)throw a.error(new Error,{code:"InvalidType",message:e.type+" Set contains "+i(r[s])+" value"})}});t.exports=s},{"../core":4,"./types":15}],14:[function(e,t,r){var a=e("../core").util,i=e("./converter"),s=function(e){e=e||{},this.attrValue=e.attrValue};s.prototype.translateInput=function(e,t){return this.mode="input",this.translate(e,t)},s.prototype.translateOutput=function(e,t){return this.mode="output",this.translate(e,t)},s.prototype.translate=function(e,t){var r=this;if(t&&void 0!==e){if(t.shape===r.attrValue)return i[r.mode](e);switch(t.type){case"structure":return r.translateStructure(e,t);case"map":return r.translateMap(e,t);case"list":return r.translateList(e,t);default:return r.translateScalar(e,t)}}},s.prototype.translateStructure=function(e,t){var r=this;if(null!=e){var i={};return a.each(e,function(e,a){var s=t.members[e];if(s){var n=r.translate(a,s);void 0!==n&&(i[e]=n)}}),i}},s.prototype.translateList=function(e,t){var r=this;if(null!=e){var i=[];return a.arrayEach(e,function(e){var a=r.translate(e,t.member);void 0===a?i.push(null):i.push(a)}),i}},s.prototype.translateMap=function(e,t){var r=this;if(null!=e){var i={};return a.each(e,function(e,a){var s=r.translate(a,t.value);void 0===s?i[e]=null:i[e]=s}),i}},s.prototype.translateScalar=function(e,t){return t.toType(e)},t.exports=s},{"../core":4,"./converter":11}],15:[function(e,t,r){function a(e){return null===e&&"object"==typeof e?"null":void 0!==e&&i(e)?"Binary":void 0!==e&&e.constructor?s.typeName(e.constructor):"undefined"}function i(e){var t=["Buffer","File","Blob","ArrayBuffer","DataView","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"];if(s.isNode()){var r=s.nodeRequire("stream").Stream;if(s.Buffer.isBuffer(e)||e instanceof r)return!0}else for(var a=0;a=600?this.emit("sign",[this],function(e){e?t(e):n()}):n()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r){r.httpResponse.statusCode=e,r.httpResponse.headers=t,r.httpResponse.body=new a.util.Buffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var i=t.date||t.Date;if(i){var s=Date.parse(i);r.request.service.config.correctClockSkew&&a.util.isClockSkewed(s)&&a.util.applyClockOffset(s)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(a.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],i={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[i,t])}t.httpResponse.buffers.push(new a.util.Buffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=a.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e("FINALIZE_ERROR","retry",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e("INVALIDATE_CREDENTIALS","retry",function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e("EXPIRED_SIGNATURE","retry",function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e("CLOCK_SKEWED","retry",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&a.config.isClockSkewed&&(e.error.retryable=!0)}),e("REDIRECT","retry",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new a.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount=this.HEADERS_RECEIVED&&!m){try{c.responseType="arraybuffer"}catch(e){}u.statusCode=c.status,u.headers=n.parseHeaders(c.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers),m=!0}this.readyState===this.DONE&&n.finishRequest(c,u)},!1),c.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),c.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),c.addEventListener("timeout",function(){s(a.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),c.addEventListener("error",function(){s(a.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),r(u),c.open(e.method,p,t.xhrAsync!==!1),a.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&c.setRequestHeader(e,t)}),t.timeout&&t.xhrAsync!==!1&&(c.timeout=t.timeout),t.xhrWithCredentials&&(c.withCredentials=!0);try{c.send(e.body)}catch(l){if(!e.body||"object"!=typeof e.body.buffer)throw l;c.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return a.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],a=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=a)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var i=e.response;r=new a.util.Buffer(i.byteLength);for(var s=new Uint8Array(i),n=0;n1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,a.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(a.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var a,i=0;e.required&&i= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+a+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation["enum"]&&void 0!==e["enum"]&&-1===e["enum"].indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e["enum"].join("|")+" for "+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var s=!1,n=0;n0){var a=JSON.parse(r.body.toString());(a.__type||a.code)&&(t.code=(a.__type||a.code).split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=a.message||a.Message||null}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=n.error(new Error,t)}function s(e){var t=e.httpResponse.body.toString()||"{}";if(e.request.service.config.convertResponseTypes===!1)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],a=r.output||{},i=new u;e.data=i.parse(t,a)}}var n=e("../util"),o=e("../json/builder"),u=e("../json/parser");t.exports={buildRequest:a,extractError:i,extractData:s}},{"../json/builder":19,"../json/parser":20,"../util":61}],29:[function(e,t,r){function a(e){var t=e.service.api.operations[e.operation],r=e.httpRequest;r.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",r.params={Version:e.service.api.apiVersion,Action:t.name};var a=new u;a.serialize(e.params,t.input,function(e,t){r.params[e]=t}),r.body=o.queryParamsToString(r.params)}function i(e){var t,r=e.httpResponse.body.toString();t=r.match("=0?"&":"?";var n=[];p.arrayEach(Object.keys(i).sort(),function(e){Array.isArray(i[e])||(i[e]=[i[e]]);for(var t=0;t0){t=new o.XML.Parser;var m=t.parse(a.toString(),s);u.update(e.data,m)}}var o=e("../core"),u=e("../util"),p=e("./rest");t.exports={buildRequest:i,extractError:s,extractData:n}},{"../core":4,"../util":61,"./rest":30}],33:[function(e,t,r){function a(){}function i(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function s(e,t,r,a){p.each(r.members,function(r,s){var n=t[r];if(null!==n&&void 0!==n){var o=i(s);o=e?e+"."+o:o,u(o,n,s,a)}})}function n(e,t,r,a){var i=1;p.each(t,function(t,s){var n=r.flattened?".":".entry.",o=n+i++ +".",p=o+(r.key.name||"key"),c=o+(r.value.name||"value");u(e+p,t,r.key,a),u(e+c,s,r.value,a)})}function o(e,t,r,a){var s=r.member||{};return 0===t.length?void a.call(this,e,null):void p.arrayEach(t,function(t,n){var o="."+(n+1);if("ec2"===r.api.protocol)o+="";else if(r.flattened){if(s.name){var p=e.split(".");p.pop(),p.push(i(s)),e=p.join(".")}}else o=".member"+o;u(e+o,t,s,a)})}function u(e,t,r,a){null!==t&&void 0!==t&&("structure"===r.type?s(e,t,r,a):"list"===r.type?o(e,t,r,a):"map"===r.type?n(e,t,r,a):a(e,r.toWireFormat(t).toString()))}var p=e("../util");a.prototype.serialize=function(e,t,r){s("",e,t,r)},t.exports=a},{"../util":61}],34:[function(e,t,r){t.exports={rules:{"*/*":{endpoint:"{service}.{region}.amazonaws.com"},"cn-*/*":{endpoint:"{service}.{region}.amazonaws.com.cn"},"*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{endpoint:"{service}.amazonaws.com",signatureVersion:"v2",globalEndpoint:!0},"*/route53":{endpoint:"https://{service}.amazonaws.com",signatureVersion:"v3https",globalEndpoint:!0},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{endpoint:"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3dash","us-west-1/s3":"s3dash","us-west-2/s3":"s3dash","eu-west-1/s3":"s3dash","ap-southeast-1/s3":"s3dash","ap-southeast-2/s3":"s3dash","ap-northeast-1/s3":"s3dash","sa-east-1/s3":"s3dash","us-east-1/s3":{endpoint:"{service}.amazonaws.com",signatureVersion:"s3"},"us-east-1/sdb":{endpoint:"{service}.amazonaws.com",signatureVersion:"v2"},"*/sdb":{endpoint:"{service}.{region}.amazonaws.com",signatureVersion:"v2"}},patterns:{globalSSL:{endpoint:"https://{service}.amazonaws.com",globalEndpoint:!0},globalGovCloud:{endpoint:"{service}.us-gov.amazonaws.com"},s3dash:{endpoint:"{service}-{region}.amazonaws.com",signatureVersion:"s3"}}}},{}],35:[function(e,t,r){function a(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}function i(e){var t=e.config.region,r=a(t),i=e.api.endpointPrefix;return[[t,i],[r,i],[t,"*"],[r,"*"],["*",i],["*","*"]].map(function(e){return e[0]&&e[1]?e.join("/"):null})}function s(e,t){o.each(t,function(t,r){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function n(e){for(var t=i(e),r=0;re){r.removeListener("httpData",a.EventListeners.Core.HTTP_DATA),r.removeListener("httpError",a.EventListeners.Core.HTTP_ERROR),r.on("httpError",function(e){s.error=e,s.error.retryable=!1});var n=s.httpResponse.createUnbufferedStream();2===a.HttpClient.streamsApiVersion?n.pipe(i):(n.on("data",function(e){i.emit("data",e)}),n.on("end",function(){i.emit("end")})),n.on("error",function(e){i.emit("error",e)})}}),this.on("error",function(e){i.emit("error",e)}),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response));var i=a.SequentialExecutor.prototype.emit;i.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new a.Signers.Presign).sign(this.toGet(),e,t)},toUnauthenticated:function(){return this.removeListener("validate",a.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",a.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),a.util.addPromisesToRequests(a.Request),a.util.mixin(a.Request,a.SequentialExecutor)}).call(this,e("_process"))},{"./core":4,"./state_machine":60,_process:76,jmespath:84}],37:[function(e,t,r){function a(e){var t=e.request._waiter,r=t.config.acceptors,a=!1,i="retry";r.forEach(function(r){if(!a){var s=t.matchers[r.matcher];s&&s(e,r.expected,r.argument)&&(a=!0,i=r.state)}}),!a&&e.error&&(i="failure"),"success"===i?t.setSuccess(e):t.setError(e,"retry"===i)}var i=e("./core"),s=i.util.inherit,n=e("jmespath");i.ResourceWaiter=s({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,r){var a=n.search(e.data,r);return n.strictDeepEqual(a,t)},pathAll:function(e,t,r){var a=n.search(e.data,r);Array.isArray(a)||(a=[a]);var i=a.length;if(!i)return!1;for(var s=0;i>s;s++)if(!n.strictDeepEqual(a[s],t))return!1;return!0},pathAny:function(e,t,r){var a=n.search(e.data,r);Array.isArray(a)||(a=[a]);for(var i=a.length,s=0;i>s;s++)if(n.strictDeepEqual(a[s],t))return!0;return!1},status:function(e,t){var r=e.httpResponse.statusCode;return"number"==typeof r&&r===t},error:function(e,t){return"string"==typeof t&&e.error?t===e.error.code:t===!!e.error}},listeners:(new i.SequentialExecutor).addNamedListeners(function(e){e("RETRY_CHECK","retry",function(e){var t=e.request._waiter;e.error&&"ResourceNotReady"===e.error.code&&(e.error.retryDelay=1e3*(t.config.delay||0))}),e("CHECK_OUTPUT","extractData",a),e("CHECK_ERROR","extractError",a)}),wait:function(e,t){"function"==typeof e&&(t=e,e=void 0);var r=this.service.makeRequest(this.config.operation,e);return r._waiter=this,r.response.maxRetries=this.config.maxAttempts,r.addListeners(this.listeners),t&&r.send(t),r},setSuccess:function(e){e.error=null,e.data=e.data||{},e.request.removeAllListeners("extractData")},setError:function(e,t){e.data=null,e.error=i.util.error(e.error||new Error,{code:"ResourceNotReady",message:"Resource is not in the state "+this.state,retryable:t})},loadWaiterConfig:function(e){if(!this.service.api.waiters[e])throw new i.util.error(new Error,{code:"StateNotFoundError",message:"State "+e+" not found."});this.config=this.service.api.waiters[e]}})},{"./core":4,jmespath:84}],38:[function(e,t,r){var a=e("./core"),i=a.util.inherit,s=e("jmespath");a.Response=i({constructor:function(e){this.request=e,this.data=null,this.error=null,this.retryCount=0,this.redirectCount=0,this.httpResponse=new a.HttpResponse,e&&(this.maxRetries=e.service.numRetries(),this.maxRedirects=e.service.config.maxRedirects)},nextPage:function(e){var t,r=this.request.service,i=this.request.operation;try{t=r.paginationConfig(i,!0)}catch(s){this.error=s}if(!this.hasNextPage()){if(e)e(this.error,null);else if(this.error)throw this.error;return null}var n=a.util.copy(this.request.params);if(this.nextPageTokens){var o=t.inputToken;"string"==typeof o&&(o=[o]);for(var u=0;ue.partSize&&(e.partSize=r)}else e.totalBytes=void 0},isDoneChunking:!1,partPos:0,totalChunkedBytes:0,totalUploadedBytes:0,totalBytes:void 0,numParts:0,totalPartNumbers:0,activeParts:0,doneParts:0,parts:null,completeInfo:null,failed:!1,multipartReq:null,partBuffers:null,partBufferLength:0,fillBuffer:function(){var e=this,t=i(e.body);if(0===t)return e.isDoneChunking=!0,e.numParts=1,void e.nextChunk(e.body);for(;e.activeParts=e.queueSize)){var t=e.body.read(e.partSize-e.partBufferLength)||e.body.read();if(t&&(e.partBuffers.push(t),e.partBufferLength+=t.length,e.totalChunkedBytes+=t.length),e.partBufferLength>=e.partSize){var a=1===e.partBuffers.length?e.partBuffers[0]:r.concat(e.partBuffers);if(e.partBuffers=[],e.partBufferLength=0,a.length>e.partSize){var i=a.slice(e.partSize);e.partBuffers.push(i),e.partBufferLength+=i.length,a=a.slice(0,e.partSize)}e.nextChunk(a)}e.isDoneChunking&&!e.isDoneSending&&(a=1===e.partBuffers.length?e.partBuffers[0]:r.concat(e.partBuffers),e.partBuffers=[],e.partBufferLength=0,e.totalBytes=e.totalChunkedBytes,e.isDoneSending=!0,(0===e.numParts||a.length>0)&&(e.numParts++,e.nextChunk(a))),e.body.read(0)}},nextChunk:function(e){var t=this;if(t.failed)return null;var r=++t.totalPartNumbers;if(t.isDoneChunking&&1===r){var i=t.service.putObject({Body:e});return i._managedUpload=t,i.on("httpUploadProgress",t.progress).send(t.finishSinglePart),null}if(t.service.config.params.ContentMD5){var s=a.util.error(new Error("The Content-MD5 you specified is invalid for multi-part uploads."),{code:"InvalidDigest",retryable:!1});return t.cleanup(s),null}return t.completeInfo[r]&&null!==t.completeInfo[r].ETag?null:(t.activeParts++,void(t.service.config.params.UploadId?t.uploadPart(e,r):t.multipartReq?t.queueChunks(e,r):(t.multipartReq=t.service.createMultipartUpload(),t.multipartReq.on("success",function(e){t.service.config.params.UploadId=e.data.UploadId,t.multipartReq=null}),t.queueChunks(e,r),t.multipartReq.on("error",function(e){t.cleanup(e)}),t.multipartReq.send())))},uploadPart:function(e,t){var r=this,i={Body:e,ContentLength:a.util.string.byteLength(e),PartNumber:t},s={ETag:null,PartNumber:t};r.completeInfo[t]=s;var n=r.service.uploadPart(i);r.parts[t]=n,n._lastUploadedBytes=0,n._managedUpload=r,n.on("httpUploadProgress",r.progress),n.send(function(e,t){if(delete r.parts[i.PartNumber],r.activeParts--,!(e||t&&t.ETag)){var n="No access to ETag property on response.";a.util.isBrowser()&&(n+=" Check CORS configuration to expose ETag header."),e=a.util.error(new Error(n),{code:"ETagMissing",retryable:!1})}return e?r.cleanup(e):(s.ETag=t.ETag,r.doneParts++,void(r.isDoneChunking&&r.doneParts===r.numParts?r.finishMultiPart():r.fillQueue.call(r)))})},queueChunks:function(e,t){var r=this;r.multipartReq.on("success",function(){r.uploadPart(e,t)})},cleanup:function(e){var t=this;t.failed||("function"==typeof t.body.removeAllListeners&&"function"==typeof t.body.resume&&(t.body.removeAllListeners("readable"),t.body.removeAllListeners("end"),t.body.resume()),t.service.config.params.UploadId&&!t.leavePartsOnError&&t.service.abortMultipartUpload().send(),a.util.each(t.parts,function(e,t){t.removeAllListeners("complete"),t.abort()}),t.activeParts=0,t.partPos=0,t.numParts=0,t.totalPartNumbers=0,t.parts={},t.failed=!0,t.callback(e))},finishMultiPart:function(){var e=this,t={MultipartUpload:{Parts:e.completeInfo.slice(1)}};e.service.completeMultipartUpload(t,function(t,r){return t?e.cleanup(t):void e.callback(t,r)})},finishSinglePart:function(e,t){var r=this.request._managedUpload,a=this.request.httpRequest,i=a.endpoint;return e?r.callback(e):(t.Location=[i.protocol,"//",i.host,a.path].join(""),t.key=this.request.params.Key,t.Key=this.request.params.Key,t.Bucket=this.request.params.Bucket,void r.callback(e,t))},progress:function(e){var t=this._managedUpload;"putObject"===this.operation?(e.part=1,e.key=this.params.Key):(t.totalUploadedBytes+=e.loaded-this._lastUploadedBytes,this._lastUploadedBytes=e.loaded,e={loaded:t.totalUploadedBytes,total:t.totalBytes,part:this.params.PartNumber,key:this.params.Key}),t.emit("httpUploadProgress",[e])}}),a.util.mixin(a.S3.ManagedUpload,a.SequentialExecutor),t.exports=a.S3.ManagedUpload}).call(this,e("buffer").Buffer)},{"../core":4,buffer:64}],40:[function(e,t,r){var a=e("./core");a.SequentialExecutor=a.util.inherit({constructor:function(){this._events={}},listeners:function(e){return this._events[e]?this._events[e].slice(0):[]},on:function(e,t){return this._events[e]?this._events[e].push(t):this._events[e]=[t],this},onAsync:function(e,t){return t._isAsync=!0,this.on(e,t)},removeListener:function(e,t){var r=this._events[e];if(r){for(var a=r.length,i=-1,s=0;a>s;++s)r[s]===t&&(i=s);i>-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var a=this.listeners(e),i=a.length;return this.callListeners(a,t,r),i>0},callListeners:function(e,t,r,i){function s(i){return i&&(o=a.util.error(o||new Error,i),n._haltHandlersOnError)?r.call(n,o):void n.callListeners(e,t,r,o)}for(var n=this,o=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(n,t.concat([s]));try{u.apply(n,t)}catch(p){o=a.util.error(o||new Error,p)}if(o&&n._haltHandlersOnError)return void r.call(n,o)}r.call(n,o)},addListeners:function(e){var t=this;return e._events&&(e=e._events),a.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),a.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r){return this[e]=r,this.addListener(t,r),this},addNamedAsyncListener:function(e,t,r){return r._isAsync=!0,this.addNamedListener(e,t,r)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),a.SequentialExecutor.prototype.addListener=a.SequentialExecutor.prototype.on,t.exports=a.SequentialExecutor},{"./core":4}],41:[function(e,t,r){var a=e("./core"),i=e("./model/api"),s=e("./region_config"),n=a.util.inherit;a.Service=n({constructor:function(e){if(!this.loadServiceClass)throw a.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});return t?new t(e):void this.initialize(e)},initialize:function(e){var t=a.config[this.serviceIdentifier];this.config=new a.Config(a.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||s(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(e){var t=e;if(a.util.isEmpty(this.api)){if(t.apiConfig)return a.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new a.Config(a.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&a.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?a.util.isType(e,Date)&&(e=a.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,makeRequest:function(e,t,r){if("function"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=a.util.copy(t),a.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var s=new a.Request(this,e,t);return this.addAllRequestListeners(s),r&&s.send(r),s},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var a=this.makeRequest(e,t).toUnauthenticated();return r?a.send(r):a},waitFor:function(e,t,r){var i=new a.ResourceWaiter(this,e);return i.wait(t,r)},addAllRequestListeners:function(e){for(var t=[a.events,a.EventListeners.Core,this.serviceInterface(),a.EventListeners.CorePost],r=0;r=500},networkingError:function(e){return"NetworkingError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},throttledError:function(e){switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new a.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw a.util.error(i,"No pagination configuration for "+e)}return null}return r}}),a.util.update(a.Service,{defineMethods:function(e){a.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){var r=e.prototype.api.operations[t];"none"===r.authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){a.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=n(a.Service,r||{});if("string"==typeof e){a.Service.addVersions(i,t);var s=i.serviceIdentifier||e;i.serviceIdentifier=s}else i.prototype.api=e,a.Service.defineMethods(i);return i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r0?50*Math.pow(2,e-1):0;return t}})},{"../core":4,"../dynamodb/document_client":12}],46:[function(e,t,r){var a=e("../core");a.util.update(a.EC2.prototype,{setupRequestListeners:function(e){e.removeListener("extractError",a.EventListeners.Query.EXTRACT_ERROR),e.addListener("extractError",this.extractError),"copySnapshot"===e.operation&&e.onAsync("validate",this.buildCopySnapshotPresignedUrl)},buildCopySnapshotPresignedUrl:function(e,t){if(e.params.PresignedUrl||e._subRequest)return t();e.params=a.util.copy(e.params),e.params.DestinationRegion=e.service.config.region;var r=a.util.copy(e.service.config);delete r.endpoint,r.region=e.params.SourceRegion;var i=new e.service.constructor(r),s=i[e.operation](e.params);s._subRequest=!0,s.presign(function(r,a){r?t(r):(e.params.PresignedUrl=a,t())})},extractError:function(e){var t=e.httpResponse,r=(new a.XML.Parser).parse(t.body.toString()||"");r.Errors?e.error=a.util.error(new Error,{code:r.Errors.Error.Code,message:r.Errors.Error.Message}):e.error=a.util.error(new Error,{code:t.statusCode,message:null}),e.error.requestId=r.RequestID||null}})},{"../core":4}],47:[function(e,t,r){var a=e("../core");a.util.update(a.IotData.prototype,{validateService:function(){if(!this.config.endpoint||this.config.endpoint.indexOf("{")>=0){var e="AWS.IotData requires an explicit `endpoint' configuration option.";throw a.util.error(new Error,{name:"InvalidEndpoint",message:e})}},setupRequestListeners:function(e){e.addListener("validateResponse",this.validateResponseBody)},validateResponseBody:function(e){var t=e.httpResponse.body.toString()||"{}",r=t.trim();r&&"{"===r.charAt(0)||(e.httpResponse.body="")}})},{"../core":4}],48:[function(e,t,r){var a=e("../core");a.util.update(a.MachineLearning.prototype,{setupRequestListeners:function(e){"predict"===e.operation&&e.addListener("build",this.buildEndpoint)},buildEndpoint:function(e){var t=e.params.PredictEndpoint;t&&(e.httpRequest.endpoint=new a.Endpoint(t))}})},{"../core":4}],49:[function(e,t,r){var a=e("../core");a.util.update(a.Route53.prototype,{setupRequestListeners:function(e){e.on("build",this.sanitizeUrl)},sanitizeUrl:function(e){var t=e.httpRequest.path;e.httpRequest.path=t.replace(/\/%2F\w+%2F/,"/")}})},{"../core":4}],50:[function(e,t,r){var a=e("../core");e("../s3/managed_upload");var i={completeMultipartUpload:!0,copyObject:!0,uploadPartCopy:!0},s=["AuthorizationHeaderMalformed","BadRequest","PermanentRedirect",301];a.util.update(a.S3.prototype,{validateService:function(){if(this.config.region||(this.config.region="us-east-1"),!this.config.endpoint&&this.config.s3BucketEndpoint){var e="An endpoint must be provided when configuring `s3BucketEndpoint` to true.";throw a.util.error(new Error,{name:"InvalidEndpoint",message:e})}},setupRequestListeners:function(e){e.addListener("validate",this.validateScheme),e.addListener("validate",this.validateBucketEndpoint),e.addListener("validate",this.correctBucketRegionFromCache),e.addListener("build",this.addContentType),e.addListener("build",this.populateURI),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("afterBuild",this.addExpect100Continue),e.removeListener("validate",a.EventListeners.Core.VALIDATE_REGION),e.addListener("extractError",this.extractError),e.onAsync("extractError",this.requestBucketRegion),e.addListener("extractData",this.extractData),e.addListener("extractData",a.util.hoistPayloadMember),e.addListener("beforePresign",this.prepareSignedUrl),a.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError)},validateScheme:function(e){var t=e.params,r=e.httpRequest.endpoint.protocol,i=t.SSECustomerKey||t.CopySourceSSECustomerKey;if(i&&"https:"!==r){var s="Cannot send SSE keys over HTTP. Set 'sslEnabled'to 'true' in your configuration";throw a.util.error(new Error,{code:"ConfigError",message:s})}},validateBucketEndpoint:function(e){if(!e.params.Bucket&&e.service.config.s3BucketEndpoint){var t="Cannot send requests to root API with `s3BucketEndpoint` set.";throw a.util.error(new Error,{code:"ConfigError",message:t})}},isValidAccelerateOperation:function(e){var t=["createBucket","deleteBucket","listBuckets"];return-1===t.indexOf(e)},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,a=e.service,i=t.endpoint;if(r&&!a.pathStyleBucketName(r)){a.config.useAccelerateEndpoint&&a.isValidAccelerateOperation(e.operation)?i.hostname=r+".s3-accelerate.amazonaws.com":a.config.s3BucketEndpoint||(i.hostname=r+"."+i.hostname);var s=i.port;80!==s&&443!==s?i.host=i.hostname+":"+i.port:i.host=i.hostname,t.virtualHostedBucket=r,a.removeVirtualHostedBucketFromPath(e)}},removeVirtualHostedBucketFromPath:function(e){var t=e.httpRequest,r=t.virtualHostedBucket;r&&t.path&&(t.path=t.path.replace(new RegExp("/"+r),""),"/"!==t.path[0]&&(t.path="/"+t.path))},addExpect100Continue:function(e){var t=e.httpRequest.headers["Content-Length"];a.util.isNode()&&t>=1048576&&(e.httpRequest.headers.Expect="100-continue")},addContentType:function(e){var t=e.httpRequest;if("GET"===t.method||"HEAD"===t.method)return void delete t.headers["Content-Type"];t.headers["Content-Type"]||(t.headers["Content-Type"]="application/octet-stream");var r=t.headers["Content-Type"];if(a.util.isBrowser())if("string"!=typeof t.body||r.match(/;\s*charset=/)){var i=function(e,t,r){return t+r.toUpperCase()};t.headers["Content-Type"]=r.replace(/(;\s*charset=)(.+)$/,i)}else{var s="; charset=UTF-8";t.headers["Content-Type"]+=s}},computableChecksumOperations:{putBucketCors:!0,putBucketLifecycle:!0,putBucketLifecycleConfiguration:!0,putBucketTagging:!0,deleteObjects:!0,putBucketReplication:!0},willComputeChecksums:function(e){if(this.computableChecksumOperations[e.operation])return!0;if(!this.config.computeChecksums)return!1;if(!a.util.Buffer.isBuffer(e.httpRequest.body)&&"string"!=typeof e.httpRequest.body)return!1;var t=e.service.api.operations[e.operation].input.members;return e.service.getSignerClass(e)===a.Signers.V4&&t.ContentMD5&&!t.ContentMD5.required?!1:t.ContentMD5&&!e.params.ContentMD5?!0:void 0},computeContentMd5:function(e){if(e.service.willComputeChecksums(e)){var t=a.util.crypto.md5(e.httpRequest.body,"base64");e.httpRequest.headers["Content-MD5"]=t}},computeSseCustomerKeyMd5:function(e){var t={SSECustomerKey:"x-amz-server-side-encryption-customer-key-MD5",CopySourceSSECustomerKey:"x-amz-copy-source-server-side-encryption-customer-key-MD5"};a.util.each(t,function(t,r){if(e.params[t]){var i=a.util.crypto.md5(e.params[t],"base64");e.httpRequest.headers[r]=i}})},pathStyleBucketName:function(e){return this.config.s3ForcePathStyle?!0:this.config.s3BucketEndpoint?!1:this.dnsCompatibleBucketName(e)?!(!this.config.sslEnabled||!e.match(/\./)):!0},dnsCompatibleBucketName:function(e){var t=e,r=new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/),a=new RegExp(/(\d+\.){3}\d+/),i=new RegExp(/\.\./);return t.match(r)&&!t.match(a)&&!t.match(i)},successfulResponse:function(e){var t=e.request,r=e.httpResponse;return i[t.operation]&&r.body.toString().match("")?!1:r.statusCode<300},retryableError:function(e,t){if(i[t.operation]&&200===e.statusCode)return!0;if(t._requestRegionForBucket&&t.service.bucketRegionCache[t._requestRegionForBucket])return!1;if(e&&"RequestTimeout"===e.code)return!0;if(e&&-1!=s.indexOf(e.code)&&e.region&&e.region!=t.httpRequest.region)return t.httpRequest.region=e.region,301===e.statusCode&&t.service.updateReqBucketRegion(t),!0;var r=a.Service.prototype.retryableError;return r.call(this,e,t)},updateReqBucketRegion:function(e,t){var r=e.httpRequest;if("string"==typeof t&&t.length&&(r.region=t),r.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)){var i=e.service,s=i.config,n=s.s3BucketEndpoint;n&&delete s.s3BucketEndpoint;var o=a.util.copy(s);delete o.endpoint,o.region=r.region,r.endpoint=new a.S3(o).endpoint,i.populateURI(e),s.s3BucketEndpoint=n,r.headers.Host=r.endpoint.host,"validate"===e._asm.currentState&&(e.removeListener("build",i.populateURI),e.addListener("build",i.removeVirtualHostedBucketFromPath))}},extractData:function(e){var t=e.request;if("getBucketLocation"===t.operation){var r=e.httpResponse.body.toString().match(/>(.+)<\/Location/);delete e.data._,r?e.data.LocationConstraint=r[1]:e.data.LocationConstraint=""}var a=t.params.Bucket||null;if("deleteBucket"!==t.operation||"string"!=typeof a||e.error){var i=e.httpResponse.headers||{},s=i["x-amz-bucket-region"]||null;if(!s&&"createBucket"===t.operation&&!e.error){var n=t.params.CreateBucketConfiguration;s=n?"EU"===n.LocationConstraint?"eu-west-1":n.LocationConstraint:"us-east-1"}s&&a&&s!==t.service.bucketRegionCache[a]&&(t.service.bucketRegionCache[a]=s)}else t.service.clearBucketRegionCache(a);t.service.extractRequestIds(e)},extractError:function(e){var t={304:"NotModified",403:"Forbidden",400:"BadRequest",404:"NotFound"},r=e.request,i=e.httpResponse.statusCode,s=e.httpResponse.body||"",n=e.httpResponse.headers||{},o=n["x-amz-bucket-region"]||null,u=r.params.Bucket||null,p=r.service.bucketRegionCache;o&&u&&o!==p[u]&&(p[u]=o);var c;if(t[i]&&0===s.length)u&&!o&&(c=p[u]||null,c!==r.httpRequest.region&&(o=c)),e.error=a.util.error(new Error,{code:t[i],message:null,region:o});else{var m=(new a.XML.Parser).parse(s.toString());m.Region&&!o?(o=m.Region,u&&o!==p[u]&&(p[u]=o)):!u||o||m.Region||(c=p[u]||null,c!==r.httpRequest.region&&(o=c)),e.error=a.util.error(new Error,{code:m.Code||i,message:m.Message||null,region:o})}r.service.extractRequestIds(e)},requestBucketRegion:function(e,t){var r=e.error,i=e.request,n=i.params.Bucket||null;if(!r||!n||r.region||"listObjects"===i.operation||a.util.isNode()&&"headBucket"===i.operation||400===r.statusCode&&"headObject"!==i.operation||-1===s.indexOf(r.code))return t();var o=i.service.listObjects({Bucket:n,MaxKeys:0});o._requestRegionForBucket=n,o.send(function(){var e=i.service.bucketRegionCache[n]||null;r.region=e,t()})},reqRegionForNetworkingError:function(e,t){if(!a.util.isBrowser())return t();var r=e.error,i=e.request,s=i.params.Bucket;if(!r||"NetworkingError"!==r.code||!s||"us-east-1"===i.httpRequest.region)return t();var n=i.service,o=n.bucketRegionCache,u=o[s]||null;if(u&&u!==i.httpRequest.region)n.updateReqBucketRegion(i,u),t();else if(n.dnsCompatibleBucketName(s))if(i.httpRequest.virtualHostedBucket){var p=n.listObjects({Bucket:s,MaxKeys:0});n.updateReqBucketRegion(p,"us-east-1"),p._requestRegionForBucket=s,p.send(function(){var e=n.bucketRegionCache[s]||null;e&&e!==i.httpRequest.region&&n.updateReqBucketRegion(i,e),t()})}else t();else n.updateReqBucketRegion(i,"us-east-1"),"us-east-1"!==o[s]&&(o[s]="us-east-1"),t()},bucketRegionCache:{},clearBucketRegionCache:function(e){var t=this.bucketRegionCache;e?"string"==typeof e&&(e=[e]):e=Object.keys(t);for(var r=0;r0&&t.throwInvalidChecksumError(e,s,"Invalid messages: "+i.join(", "))}},verifyReceiveMessageChecksum:function(e){if(e.data){var t=this.service,r=[];a.util.arrayEach(e.data.Messages,function(e){var a=e.MD5OfBody,i=e.Body;t.isChecksumValid(a,i)||r.push(e.MessageId)}),r.length>0&&t.throwInvalidChecksumError(e,r,"Invalid messages: "+r.join(", "))}},throwInvalidChecksumError:function(e,t,r){e.error=a.util.error(new Error,{retryable:!0,code:"InvalidChecksum",messageIds:t,message:e.request.operation+" returned an invalid MD5 response. "+r})},isChecksumValid:function(e,t){return this.calculateChecksum(t)===e},calculateChecksum:function(e){return a.util.crypto.md5(e,"hex")},buildEndpoint:function(e){var t=e.httpRequest.params.QueueUrl;if(t){e.httpRequest.endpoint=new a.Endpoint(t);var r=e.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);r&&(e.httpRequest.region=r[1])}}})},{"../core":4}],52:[function(e,t,r){var a=e("../core");a.util.update(a.STS.prototype,{credentialsFrom:function(e,t){return e?(t||(t=new a.TemporaryCredentials),t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretAccessKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration,t):null},assumeRoleWithWebIdentity:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithWebIdentity",e,t)},assumeRoleWithSAML:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithSAML",e,t)}})},{"../core":4}],53:[function(e,t,r){function a(e){var t=e.httpRequest.headers[o];if(delete e.httpRequest.headers["User-Agent"],delete e.httpRequest.headers["X-Amz-User-Agent"],e.service.getSignerClass()===s.Signers.V4){if(t>604800){var r="Presigning does not support expiry time greater than a week with SigV4 signing.";throw s.util.error(new Error,{code:"InvalidExpiryTime",message:r,retryable:!1})}e.httpRequest.headers[o]=t}else{if(e.service.getSignerClass()!==s.Signers.S3)throw s.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});e.httpRequest.headers[o]=parseInt(s.util.date.unixTimestamp()+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=s.util.urlParse(e.httpRequest.path),a={};r.search&&(a=s.util.queryStringParse(r.search.substr(1))),s.util.each(e.httpRequest.headers,function(e,t){e===o&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(e=e.toLowerCase()),a[e]=t}),delete e.httpRequest.headers[o];var i=a.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),a.AWSAccessKeyId=i[0],a.Signature=i[1];else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var n=i.join(" "),u=n.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];a["X-Amz-Signature"]=u,delete a.Expires}delete a.Authorization,delete a.Host,t.pathname=r.pathname,t.search=s.util.queryParamsToString(a)}var s=e("../core"),n=s.util.inherit,o="presigned-expires";s.Signers.Presign=n({sign:function(e,t,r){if(e.httpRequest.headers[o]=t||3600,e.on("build",a),e.on("sign",i),e.removeListener("afterBuild",s.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",s.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return s.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,s.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=s.Signers.Presign},{"../core":4}],54:[function(e,t,r){var a=e("../core"),i=a.util.inherit;a.Signers.RequestSigner=i({constructor:function(e){this.request=e}}),a.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return a.Signers.V2;case"v3":return a.Signers.V3;case"v4":return a.Signers.V4;case"s3":return a.Signers.S3;case"v3https":return a.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":4,"./presign":53,"./s3":55,"./v2":56,"./v3":57,"./v3https":58,"./v4":59}],55:[function(e,t,r){var a=e("../core"),i=a.util.inherit;a.Signers.S3=i(a.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,cors:1,lifecycle:1,"delete":1,location:1,logging:1,notification:1,partNumber:1,policy:1,requestPayment:1, +replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},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(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=a.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];a.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()=0?"&":"?";this.request.path+=s+a.util.queryParamsToString(i)},authorization:function(e,t){var r=[],a=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+a),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=null;if(this.signatureCache)var r=s[this.serviceName];var i=t.substr(0,8);if(!r||r.akid!==e.accessKeyId||r.region!==this.request.region||r.date!==i){var n=e.secretAccessKey,o=a.util.crypto.hmac("AWS4"+n,i,"buffer"),u=a.util.crypto.hmac(o,this.request.region,"buffer"),p=a.util.crypto.hmac(u,this.serviceName,"buffer"),c=a.util.crypto.hmac(p,"aws4_request","buffer");if(!this.signatureCache)return a.util.crypto.hmac(c,this.stringToSign(t),"hex");s[this.serviceName]={region:this.request.region,date:i,key:c,akid:e.accessKeyId}}var m=s[this.serviceName].key;return a.util.crypto.hmac(m,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&(t=a.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];a.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()=e.length)return t.push(null);var i=r+a;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,a=0,i=null;for(t=0;t>>8^t[255&(r^i)]}return(-1^r)>>>0},hmac:function(e,t,r,a){return r||(r="binary"),"buffer"===r&&(r=void 0),a||(a="sha256"),"string"==typeof t&&(t=new s(t)),i.createHmac(a,e).update(t).digest(r)},md5:function(e,t,r){return n.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return n.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,a){var i=n.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=new s(t));var o=n.arraySliceFn(t),u=s.isBuffer(t);if(n.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(u=!0),a&&"object"==typeof t&&"function"==typeof t.on&&!u)t.on("data",function(e){i.update(e)}),t.on("error",function(e){a(e)}),t.on("end",function(){a(null,i.digest(r))});else{if(!a||!o||u||"undefined"==typeof FileReader){n.isBrowser()&&"object"==typeof t&&!u&&(t=new s(new Uint8Array(t)));var p=i.update(t).digest(r);return a&&a(null,p),p}var c=0,m=524288,l=new FileReader;l.onerror=function(){a(new Error("Failed to read data."))},l.onload=function(){var e=new s(new Uint8Array(l.result));i.update(e),c+=e.length,l._continueReading()},l._continueReading=function(){if(c>=t.size)return void a(null,i.digest(r));var e=c+m;e>t.size&&(e=t.size),l.readAsArrayBuffer(o.call(t,c,e))},l._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),a.config.isClockSkewed):void 0},applyClockOffset:function(e){e&&(a.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromisesToRequests:function(e,t){return t=t||null,t||"undefined"==typeof Promise||(t=Promise),"function"!=typeof t?void delete e.prototype.promise:void(e.prototype.promise=function(){var e=this;return new t(function(t,r){e.on("complete",function(e){e.error?r(e.error):t(e.data)}),e.runTo()})})}};t.exports=n}).call(this,e("_process"))},{"./core":4,_process:76,buffer:64,crypto:69,querystring:80,url:81}],62:[function(e,t,r){function a(){}function i(e,t){switch(t||(t={}),t.type){case"structure":return s(e,t);case"map":return n(e,t);case"list":return o(e,t);case void 0:case null:return p(e);default:return u(e,t)}}function s(e,t){var r={};return null===e?r:(c.each(t.members,function(t,a){if(a.isXmlAttribute){if(e.attributes.hasOwnProperty(a.name)){var s=e.attributes[a.name].value;r[t]=i({textContent:s},a)}}else{var n=a.flattened?e:e.getElementsByTagName(a.name)[0];n?r[t]=i(n,a):a.flattened||"list"!==a.type||(r[t]=a.defaultValue)}}),r)}function n(e,t){for(var r={},a=t.key.name||"key",s=t.value.name||"value",n=t.flattened?t.name:"entry",o=e.firstElementChild;o;){if(o.nodeName===n){var u=o.getElementsByTagName(a)[0].textContent,p=o.getElementsByTagName(s)[0];r[u]=i(p,t.value)}o=o.nextElementSibling}return r}function o(e,t){for(var r=[],a=t.flattened?t.name:t.member.name||"member",s=e.firstElementChild;s;)s.nodeName===a&&r.push(i(s,t.member)),s=s.nextElementSibling;return r}function u(e,t){if(e.getAttribute){var r=e.getAttribute("encoding");"base64"===r&&(t=new m.create({type:r}))}var a=e.textContent;return""===a&&(a=null),"function"==typeof t.toType?t.toType(a):a}function p(e){if(void 0===e||null===e)return"";if(!e.firstElementChild)return null===e.parentNode.parentNode?{}:0===e.childNodes.length?"":e.textContent;for(var t={type:"structure",members:{}},r=e.firstElementChild;r;){var a=r.nodeName;t.members.hasOwnProperty(a)?t.members[a].type="list":t.members[a]={name:a},r=r.nextElementSibling}return s(e,t)}var c=e("../util"),m=e("../model/shape");a.prototype.parse=function(e,t){if(""===e.replace(/^\s+/,""))return{};var r,a;try{if(window.DOMParser){try{var s=new DOMParser;r=s.parseFromString(e,"text/xml")}catch(n){throw c.error(new Error("Parse error in document"),{originalError:n,code:"XMLParserError",retryable:!0})}if(null===r.documentElement)throw c.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var o=r.getElementsByTagName("parsererror")[0];if(o&&(o.parentNode===r||"body"===o.parentNode.nodeName||o.parentNode.parentNode===r||"body"===o.parentNode.parentNode.nodeName)){var u=o.getElementsByTagName("div")[0]||o;throw c.error(new Error(u.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(r=new window.ActiveXObject("Microsoft.XMLDOM"),r.async=!1,!r.loadXML(e))throw c.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(p){a=p}if(r&&r.documentElement&&!a){var m=i(r.documentElement,t),l=r.getElementsByTagName("ResponseMetadata")[0];return l&&(m.ResponseMetadata=i(l,{})),m}if(a)throw c.error(a||new Error,{code:"XMLParserError",retryable:!0});return{}},t.exports=a},{"../model/shape":26,"../util":61}],63:[function(e,t,r){function a(){}function i(e,t,r){switch(r.type){case"structure":return s(e,t,r);case"map":return n(e,t,r);case"list":return o(e,t,r);default:return u(e,t,r)}}function s(e,t,r){c.arrayEach(r.memberNames,function(a){var s=r.members[a];if("body"===s.location){var n=t[a],o=s.name;if(void 0!==n&&null!==n)if(s.isXmlAttribute)e.att(o,n);else if(s.flattened)i(e,n,s);else{var u=e.ele(o);p(u,s),i(u,n,s)}}})}function n(e,t,r){var a=r.key.name||"key",s=r.value.name||"value";c.each(t,function(t,n){var o=e.ele(r.flattened?r.name:"entry");i(o.ele(a),t,r.key),i(o.ele(s),n,r.value)})}function o(e,t,r){r.flattened?c.arrayEach(t,function(t){var a=r.member.name||r.name,s=e.ele(a);i(s,t,r.member)}):c.arrayEach(t,function(t){var a=r.member.name||"member",s=e.ele(a);i(s,t,r.member)})}function u(e,t,r){e.txt(r.toWireFormat(t))}function p(e,t){var r,a="xmlns";t.xmlNamespaceUri?(r=t.xmlNamespaceUri,t.xmlNamespacePrefix&&(a+=":"+t.xmlNamespacePrefix)):e.isRoot&&t.api.xmlNamespaceUri&&(r=t.api.xmlNamespaceUri),r&&e.att(a,r)}var c=e("../util"),m=e("xmlbuilder");a.prototype.toXML=function(e,t,r,a){var s=m.create(r);return p(s,t),i(s,e,t),s.children.length>0||a?s.root().toString():""},t.exports=a},{"../util":61,xmlbuilder:101}],64:[function(e,t,r){(function(t){"use strict";function a(){try{var e=new Uint8Array(1);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e){return this instanceof s?(s.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof e?n(this,e):"string"==typeof e?o(this,e,arguments.length>1?arguments[1]:"utf8"):u(this,e)):arguments.length>1?new s(e,arguments[1]):new s(e)}function n(e,t){if(e=h(e,0>t?0:0|b(t)),!s.TYPED_ARRAY_SUPPORT)for(var r=0;t>r;r++)e[r]=0;return e}function o(e,t,r){"string"==typeof r&&""!==r||(r="utf8");var a=0|g(t,r);return e=h(e,a),e.write(t,r),e}function u(e,t){if(s.isBuffer(t))return p(e,t);if(X(t))return c(e,t);if(null==t)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(t.buffer instanceof ArrayBuffer)return m(e,t);if(t instanceof ArrayBuffer)return l(e,t)}return t.length?d(e,t):y(e,t)}function p(e,t){var r=0|b(t.length);return e=h(e,r),t.copy(e,0,0,r),e}function c(e,t){var r=0|b(t.length);e=h(e,r);for(var a=0;r>a;a+=1)e[a]=255&t[a];return e}function m(e,t){var r=0|b(t.length);e=h(e,r);for(var a=0;r>a;a+=1)e[a]=255&t[a];return e}function l(e,t){return t.byteLength,s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):e=m(e,new Uint8Array(t)),e}function d(e,t){var r=0|b(t.length);e=h(e,r);for(var a=0;r>a;a+=1)e[a]=255&t[a];return e}function y(e,t){var r,a=0;"Buffer"===t.type&&X(t.data)&&(r=t.data,a=0|b(r.length)),e=h(e,a);for(var i=0;a>i;i+=1)e[i]=255&r[i];return e}function h(e,t){s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):e.length=t;var r=0!==t&&t<=s.poolSize>>>1;return r&&(e.parent=J),e}function b(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function S(e,t){if(!(this instanceof S))return new S(e,t);var r=new s(e,t);return delete r.parent,r}function g(e,t){"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var a=!1;;)switch(t){case"ascii":case"binary":case"raw":case"raws":return r;case"utf8":case"utf-8":return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(a)return z(e).length;t=(""+t).toLowerCase(),a=!0}}function f(e,t,r){var a=!1;if(t=0|t,r=void 0===r||r===1/0?this.length:0|r,e||(e="utf8"),0>t&&(t=0),r>this.length&&(r=this.length),t>=r)return"";for(;;)switch(e){case"hex":return x(this,t,r);case"utf8":case"utf-8":return A(this,t,r);case"ascii":return q(this,t,r);case"binary":return P(this,t,r);case"base64":return k(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function I(e,t,r,a){r=Number(r)||0;var i=e.length-r;a?(a=Number(a),a>i&&(a=i)):a=i;var s=t.length;if(s%2!==0)throw new Error("Invalid hex string");a>s/2&&(a=s/2);for(var n=0;a>n;n++){var o=parseInt(t.substr(2*n,2),16);if(isNaN(o))throw new Error("Invalid hex string");e[r+n]=o}return n}function N(e,t,r,a){return W(z(t,e.length-r),e,r,a)}function v(e,t,r,a){return W(j(t),e,r,a)}function C(e,t,r,a){return v(e,t,r,a)}function D(e,t,r,a){return W(H(t),e,r,a)}function T(e,t,r,a){return W(K(t,e.length-r),e,r,a)}function k(e,t,r){return 0===t&&r===e.length?Z.fromByteArray(e):Z.fromByteArray(e.slice(t,r))}function A(e,t,r){r=Math.min(e.length,r);for(var a=[],i=t;r>i;){var s=e[i],n=null,o=s>239?4:s>223?3:s>191?2:1;if(r>=i+o){var u,p,c,m;switch(o){case 1:128>s&&(n=s);break;case 2:u=e[i+1],128===(192&u)&&(m=(31&s)<<6|63&u,m>127&&(n=m));break;case 3:u=e[i+1],p=e[i+2],128===(192&u)&&128===(192&p)&&(m=(15&s)<<12|(63&u)<<6|63&p,m>2047&&(55296>m||m>57343)&&(n=m));break;case 4:u=e[i+1],p=e[i+2],c=e[i+3],128===(192&u)&&128===(192&p)&&128===(192&c)&&(m=(15&s)<<18|(63&u)<<12|(63&p)<<6|63&c,m>65535&&1114112>m&&(n=m))}}null===n?(n=65533,o=1):n>65535&&(n-=65536,a.push(n>>>10&1023|55296),n=56320|1023&n),a.push(n),i+=o}return R(a)}function R(e){var t=e.length;if(Y>=t)return String.fromCharCode.apply(String,e);for(var r="",a=0;t>a;)r+=String.fromCharCode.apply(String,e.slice(a,a+=Y));return r}function q(e,t,r){var a="";r=Math.min(e.length,r);for(var i=t;r>i;i++)a+=String.fromCharCode(127&e[i]);return a}function P(e,t,r){var a="";r=Math.min(e.length,r);for(var i=t;r>i;i++)a+=String.fromCharCode(e[i]);return a}function x(e,t,r){var a=e.length;(!t||0>t)&&(t=0),(!r||0>r||r>a)&&(r=a);for(var i="",s=t;r>s;s++)i+=O(e[s]);return i}function E(e,t,r){for(var a=e.slice(t,r),i="",s=0;se)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function w(e,t,r,a,i,n){if(!s.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");if(t>i||n>t)throw new RangeError("value is out of bounds");if(r+a>e.length)throw new RangeError("index out of range")}function L(e,t,r,a){0>t&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-r,2);s>i;i++)e[r+i]=(t&255<<8*(a?i:1-i))>>>8*(a?i:1-i)}function B(e,t,r,a){0>t&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);s>i;i++)e[r+i]=t>>>8*(a?i:3-i)&255}function _(e,t,r,a,i,s){if(r+a>e.length)throw new RangeError("index out of range");if(0>r)throw new RangeError("index out of range")}function U(e,t,r,a,i){return i||_(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(e,t,r,a,23,4),r+4}function G(e,t,r,a,i){return i||_(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(e,t,r,a,52,8),r+8}function V(e){if(e=F(e).replace($,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function F(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function O(e){return 16>e?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var r,a=e.length,i=null,s=[],n=0;a>n;n++){if(r=e.charCodeAt(n),r>55295&&57344>r){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(n+1===a){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(56320>r){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,128>r){if((t-=1)<0)break;s.push(r)}else if(2048>r){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(65536>r){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(1114112>r))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function j(e){for(var t=[],r=0;r>8,i=r%256,s.push(i),s.push(a);return s}function H(e){return Z.toByteArray(V(e))}function W(e,t,r,a){for(var i=0;a>i&&!(i+r>=t.length||i>=e.length);i++)t[i+r]=e[i];return i}var Z=e("base64-js"),Q=e("ieee754"),X=e("isarray");r.Buffer=s,r.SlowBuffer=S,r.INSPECT_MAX_BYTES=50,s.poolSize=8192;var J={};s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),s._augment=function(e){return e.__proto__=s.prototype,e},s.TYPED_ARRAY_SUPPORT?(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})):(s.prototype.length=void 0,s.prototype.parent=void 0),s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,a=t.length,i=0,n=Math.min(r,a);n>i;++i)if(e[i]!==t[i]){r=e[i],a=t[i];break}return a>r?-1:r>a?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!X(e))throw new TypeError("list argument must be an Array of Buffers.");if(0===e.length)return new s(0);var r;if(void 0===t)for(t=0,r=0;r0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},s.prototype.compare=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return s.compare(this,e)},s.prototype.indexOf=function(e,t){function r(e,t,r){for(var a=-1,i=0;r+i2147483647?t=2147483647:-2147483648>t&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(0>t&&(t=Math.max(this.length+t,0)),"string"==typeof e)return 0===e.length?-1:String.prototype.indexOf.call(this,e,t);if(s.isBuffer(e))return r(this,e,t);if("number"==typeof e)return s.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,e,t):r(this,[e],t);throw new TypeError("val must be string, number or Buffer")},s.prototype.write=function(e,t,r,a){if(void 0===t)a="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)a=t,r=this.length,t=0;else if(isFinite(t))t=0|t,isFinite(r)?(r=0|r,void 0===a&&(a="utf8")):(a=r,r=void 0);else{var i=a;a=t,t=0|r,r=i}var s=this.length-t;if((void 0===r||r>s)&&(r=s),e.length>0&&(0>r||0>t)||t>this.length)throw new RangeError("attempt to write outside buffer bounds");a||(a="utf8");for(var n=!1;;)switch(a){case"hex":return I(this,e,t,r);case"utf8":case"utf-8":return N(this,e,t,r);case"ascii":return v(this,e,t,r);case"binary":return C(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(n)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),n=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Y=4096;s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,0>e?(e+=r,0>e&&(e=0)):e>r&&(e=r),0>t?(t+=r,0>t&&(t=0)):t>r&&(t=r),e>t&&(t=e);var a;if(s.TYPED_ARRAY_SUPPORT)a=this.subarray(e,t),a.__proto__=s.prototype;else{var i=t-e;a=new s(i,void 0);for(var n=0;i>n;n++)a[n]=this[n+e]}return a.length&&(a.parent=this.parent||this),a},s.prototype.readUIntLE=function(e,t,r){e=0|e,t=0|t,r||M(e,t,this.length);for(var a=this[e],i=1,s=0;++s0&&(i*=256);)a+=this[e+--t]*i;return a},s.prototype.readUInt8=function(e,t){return t||M(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||M(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||M(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e=0|e,t=0|t,r||M(e,t,this.length);for(var a=this[e],i=1,s=0;++s=i&&(a-=Math.pow(2,8*t)),a},s.prototype.readIntBE=function(e,t,r){e=0|e,t=0|t,r||M(e,t,this.length);for(var a=t,i=1,s=this[e+--a];a>0&&(i*=256);)s+=this[e+--a]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||M(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||M(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||M(e,4,this.length),Q.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||M(e,4,this.length),Q.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||M(e,8,this.length),Q.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||M(e,8,this.length),Q.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,a){e=+e,t=0|t,r=0|r,a||w(this,e,t,r,Math.pow(2,8*r),0);var i=1,s=0;for(this[t]=255&e;++s=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t=0|t,!a){var i=Math.pow(2,8*r-1);w(this,e,t,r,i-1,-i)}var s=0,n=1,o=0>e?1:0;for(this[t]=255&e;++s>0)-o&255;return t+r},s.prototype.writeIntBE=function(e,t,r,a){if(e=+e,t=0|t,!a){var i=Math.pow(2,8*r-1);w(this,e,t,r,i-1,-i)}var s=r-1,n=1,o=0>e?1:0;for(this[t+s]=255&e;--s>=0&&(n*=256);)this[t+s]=(e/n>>0)-o&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),0>e&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,2147483647,-2147483648),0>e&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return G(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return G(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,a){if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&r>a&&(a=r),a===r)return 0;if(0===e.length||0===this.length)return 0;if(0>t)throw new RangeError("targetStart out of bounds");if(0>r||r>=this.length)throw new RangeError("sourceStart out of bounds");if(0>a)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-tr&&a>t)for(i=n-1;i>=0;i--)e[i+t]=this[i+r];else if(1e3>n||!s.TYPED_ARRAY_SUPPORT)for(i=0;n>i;i++)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+n),t);return n},s.prototype.fill=function(e,t,r){if(e||(e=0),t||(t=0),r||(r=this.length),t>r)throw new RangeError("end < start");if(r!==t&&0!==this.length){if(0>t||t>=this.length)throw new RangeError("start out of bounds");if(0>r||r>this.length)throw new RangeError("end out of bounds");var a;if("number"==typeof e)for(a=t;r>a;a++)this[a]=e;else{var i=z(e.toString()),s=i.length;for(a=t;r>a;a++)this[a]=i[a%s]}return this}};var $=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":65,ieee754:66,isarray:67}],65:[function(e,t,r){"use strict";function a(){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;r>t;++t)u[t]=e[t],p[e.charCodeAt(t)]=t;p["-".charCodeAt(0)]=62,p["_".charCodeAt(0)]=63}function i(e){var t,r,a,i,s,n,o=e.length;if(o%4>0)throw new Error("Invalid string. Length must be a multiple of 4");s="="===e[o-2]?2:"="===e[o-1]?1:0,n=new c(3*o/4-s),a=s>0?o-4:o;var u=0;for(t=0,r=0;a>t;t+=4,r+=3)i=p[e.charCodeAt(t)]<<18|p[e.charCodeAt(t+1)]<<12|p[e.charCodeAt(t+2)]<<6|p[e.charCodeAt(t+3)],n[u++]=i>>16&255,n[u++]=i>>8&255,n[u++]=255&i;return 2===s?(i=p[e.charCodeAt(t)]<<2|p[e.charCodeAt(t+1)]>>4,n[u++]=255&i):1===s&&(i=p[e.charCodeAt(t)]<<10|p[e.charCodeAt(t+1)]<<4|p[e.charCodeAt(t+2)]>>2,n[u++]=i>>8&255,n[u++]=255&i),n}function s(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function n(e,t,r){for(var a,i=[],n=t;r>n;n+=3)a=(e[n]<<16)+(e[n+1]<<8)+e[n+2],i.push(s(a));return i.join("")}function o(e){for(var t,r=e.length,a=r%3,i="",s=[],o=16383,p=0,c=r-a;c>p;p+=o)s.push(n(e,p,p+o>c?c:p+o));return 1===a?(t=e[r-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===a&&(t=(e[r-2]<<8)+e[r-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),s.push(i),s.join("")}r.toByteArray=i,r.fromByteArray=o;var u=[],p=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array;a()},{}],66:[function(e,t,r){r.read=function(e,t,r,a,i){var s,n,o=8*i-a-1,u=(1<>1,c=-7,m=r?i-1:0,l=r?-1:1,d=e[t+m];for(m+=l,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+m],m+=l,c-=8);for(n=s&(1<<-c)-1,s>>=-c,c+=a;c>0;n=256*n+e[t+m],m+=l,c-=8);if(0===s)s=1-p;else{if(s===u)return n?NaN:(d?-1:1)*(1/0);n+=Math.pow(2,a),s-=p}return(d?-1:1)*n*Math.pow(2,s-a)},r.write=function(e,t,r,a,i,s){var n,o,u,p=8*s-i-1,c=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=a?0:s-1,y=a?1:-1,h=0>t||0===t&&0>1/t?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,n=c):(n=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-n))<1&&(n--,u*=2),t+=n+m>=1?l/u:l*Math.pow(2,1-m),t*u>=2&&(n++,u/=2),n+m>=c?(o=0,n=c):n+m>=1?(o=(t*u-1)*Math.pow(2,i),n+=m):(o=t*Math.pow(2,m-1)*Math.pow(2,i),n=0));i>=8;e[r+d]=255&o,d+=y,o/=256,i-=8);for(n=n<0;e[r+d]=255&n,d+=y,n/=256,p-=8);e[r+d-y]|=128*h}},{}],67:[function(e,t,r){var a={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},{}],68:[function(e,t,r){function a(e,t){if(e.length%o!==0){var r=e.length+(o-e.length%o);e=n.concat([e,u],r)}for(var a=[],i=t?e.readInt32BE:e.readInt32LE,s=0;sd?t=e(t):t.lengths;s++)a[s]=54^t[s],i[s]=92^t[s];var n=e(o.concat([a,r]));return e(o.concat([i,n]))}function i(e,t){e=e||"sha1";var r=l[e],i=[],n=0;return r||s("algorithm:",e,"is not yet supported"),{update:function(e){return o.isBuffer(e)||(e=new o(e)),i.push(e),n+=e.length,this},digest:function(e){var s=o.concat(i),n=t?a(r,t,s):r(s);return i=null,e?n.toString(e):n}}}function s(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}function n(e,t){for(var r in e)t(e[r],r)}var o=e("buffer").Buffer,u=e("./sha"),p=e("./sha256"),c=e("./rng"),m=e("./md5"),l={sha1:u,sha256:p,md5:m},d=64,y=new o(d);y.fill(0),r.createHash=function(e){return i(e)},r.createHmac=function(e,t){return i(e,t)},r.randomBytes=function(e,t){if(!t||!t.call)return new o(c(e));try{t.call(this,void 0,new o(c(e)))}catch(r){t(r)}},n(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],function(e){r[e]=function(){s("sorry,",e,"is not implemented yet")}})},{"./md5":70,"./rng":71,"./sha":72,"./sha256":73,buffer:64}],70:[function(e,t,r){function a(e,t){e[t>>5]|=128<>>9<<4)+14]=t;for(var r=1732584193,a=-271733879,i=-1732584194,c=271733878,m=0;m>16)+(t>>16)+(r>>16);return a<<16|65535&r}function c(e,t){return e<>>32-t}var m=e("./helpers");t.exports=function(e){return m.hash(e,a,16)}},{"./helpers":68}],71:[function(e,t,r){!function(){var e,r,a=this;e=function(e){for(var t,t,r=new Array(e),a=0;e>a;a++)0==(3&a)&&(t=4294967296*Math.random()),r[a]=t>>>((3&a)<<3)&255;return r},a.crypto&&crypto.getRandomValues&&(r=function(e){var t=new Uint8Array(e);return crypto.getRandomValues(t),t}),t.exports=r||e}()},{}],72:[function(e,t,r){function a(e,t){e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;for(var r=Array(80),a=1732584193,u=-271733879,p=-1732584194,c=271733878,m=-1009589776,l=0;lg;g++){16>g?r[g]=e[l+g]:r[g]=o(r[g-3]^r[g-8]^r[g-14]^r[g-16],1);var f=n(n(o(a,5),i(g,u,p,c)),n(n(m,r[g]),s(g)));m=c,c=p,p=o(u,30),u=a,a=f}a=n(a,d),u=n(u,y),p=n(p,h),c=n(c,b),m=n(m,S)}return Array(a,u,p,c,m)}function i(e,t,r,a){return 20>e?t&r|~t&a:40>e?t^r^a:60>e?t&r|t&a|r&a:t^r^a}function s(e){return 20>e?1518500249:40>e?1859775393:60>e?-1894007588:-899497514}function n(e,t){var r=(65535&e)+(65535&t),a=(e>>16)+(t>>16)+(r>>16);return a<<16|65535&r}function o(e,t){return e<>>32-t}var u=e("./helpers");t.exports=function(e){return u.hash(e,a,20,!0)}},{"./helpers":68}],73:[function(e,t,r){var a=e("./helpers"),i=function(e,t){var r=(65535&e)+(65535&t),a=(e>>16)+(t>>16)+(r>>16);return a<<16|65535&r},s=function(e,t){return e>>>t|e<<32-t},n=function(e,t){return e>>>t},o=function(e,t,r){return e&t^~e&r},u=function(e,t,r){return e&t^e&r^t&r},p=function(e){return s(e,2)^s(e,13)^s(e,22)},c=function(e){return s(e,6)^s(e,11)^s(e,25)},m=function(e){return s(e,7)^s(e,18)^n(e,3)},l=function(e){return s(e,17)^s(e,19)^n(e,10)},d=function(e,t){var r,a,s,n,d,y,h,b,S,g,f,I,N=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),v=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),C=new Array(64);e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;for(var S=0;Sg;g++)16>g?C[g]=e[g+S]:C[g]=i(i(i(l(C[g-2]),C[g-7]),m(C[g-15])),C[g-16]),f=i(i(i(i(b,c(d)),o(d,y,h)),N[g]),C[g]),I=i(p(r),u(r,a,s)),b=h,h=y,y=d,d=i(n,f),n=s,s=a,a=r,r=i(f,I);v[0]=i(r,v[0]),v[1]=i(a,v[1]),v[2]=i(s,v[2]),v[3]=i(n,v[3]),v[4]=i(d,v[4]),v[5]=i(y,v[5]),v[6]=i(h,v[6]),v[7]=i(b,v[7])}return v};t.exports=function(e){return a.hash(e,d,32,!0)}},{"./helpers":68}],74:[function(e,t,r){function a(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function s(e){return"number"==typeof e}function n(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._maxListeners=void 0,a.defaultMaxListeners=10,a.prototype.setMaxListeners=function(e){if(!s(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},a.prototype.emit=function(e){var t,r,a,s,u,p;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(a=arguments.length,s=new Array(a-1),u=1;a>u;u++)s[u-1]=arguments[u];r.apply(this,s)}else if(n(r)){for(a=arguments.length,s=new Array(a-1),u=1;a>u;u++)s[u-1]=arguments[u];for(p=r.slice(),a=p.length,u=0;a>u;u++)p[u].apply(this,s)}return!0},a.prototype.addListener=function(e,t){var r;if(!i(t))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?n(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,n(this._events[e])&&!this._events[e].warned){var r;r=o(this._maxListeners)?a.defaultMaxListeners:this._maxListeners,r&&r>0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())}return this},a.prototype.on=a.prototype.addListener,a.prototype.once=function(e,t){function r(){this.removeListener(e,r),a||(a=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var a=!1;return r.listener=t,this.on(e,r),this},a.prototype.removeListener=function(e,t){var r,a,s,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,a=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(r)){for(o=s;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=o;break}if(0>a)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},a.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},a.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},a.listenerCount=function(e,t){var r;return r=e._events&&e._events[t]?i(e._events[t])?1:e._events[t].length:0}},{}],75:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],76:[function(e,t,r){function a(){if(!o){o=!0;for(var e,t=n.length;t;){e=n,n=[];for(var r=-1;++ri;)t=e.charCodeAt(i++),t>=55296&&56319>=t&&s>i?(r=e.charCodeAt(i++),56320==(64512&r)?a.push(((1023&t)<<10)+(1023&r)+65536):(a.push(t),i--)):a.push(t);return a}function u(e){return s(e,function(e){var t="";return e>65535&&(e-=65536,t+=B(e>>>10&1023|55296),e=56320|1023&e),t+=B(e)}).join("")}function p(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:v}function c(e,t){return e+22+75*(26>e)-((0!=t)<<5)}function m(e,t,r){var a=0;for(e=r?L(e/k):e>>1,e+=L(e/t);e>w*D>>1;a+=v)e=L(e/w);return L(a+(w+1)*e/(e+T))}function l(e){var t,r,a,s,n,o,c,l,d,y,h=[],b=e.length,S=0,g=R,f=A;for(r=e.lastIndexOf(q),0>r&&(r=0),a=0;r>a;++a)e.charCodeAt(a)>=128&&i("not-basic"),h.push(e.charCodeAt(a));for(s=r>0?r+1:0;b>s;){for(n=S,o=1,c=v;s>=b&&i("invalid-input"),l=p(e.charCodeAt(s++)),(l>=v||l>L((N-S)/o))&&i("overflow"),S+=l*o,d=f>=c?C:c>=f+D?D:c-f,!(d>l);c+=v)y=v-d,o>L(N/y)&&i("overflow"),o*=y;t=h.length+1,f=m(S-n,t,0==n),L(S/t)>N-g&&i("overflow"),g+=L(S/t),S%=t,h.splice(S++,0,g)}return u(h)}function d(e){var t,r,a,s,n,u,p,l,d,y,h,b,S,g,f,I=[];for(e=o(e),b=e.length,t=R,r=0,n=A,u=0;b>u;++u)h=e[u],128>h&&I.push(B(h));for(a=s=I.length,s&&I.push(q);b>a;){for(p=N,u=0;b>u;++u)h=e[u],h>=t&&p>h&&(p=h);for(S=a+1,p-t>L((N-r)/S)&&i("overflow"),r+=(p-t)*S,t=p,u=0;b>u;++u)if(h=e[u],t>h&&++r>N&&i("overflow"),h==t){for(l=r,d=v;y=n>=d?C:d>=n+D?D:d-n,!(y>l);d+=v)f=l-y,g=v-y,I.push(B(c(y+f%g,0))),l=L(f/g);I.push(B(c(l,0))),n=m(r,S,a==s),r=0,++a}++r,++t}return I.join("")}function y(e){return n(e,function(e){return P.test(e)?l(e.slice(4).toLowerCase()):e})}function h(e){return n(e,function(e){return x.test(e)?"xn--"+d(e):e})}var b="object"==typeof r&&r,S="object"==typeof t&&t&&t.exports==b&&t,g="object"==typeof e&&e;g.global!==g&&g.window!==g||(a=g);var f,I,N=2147483647,v=36,C=1,D=26,T=38,k=700,A=72,R=128,q="-",P=/^xn--/,x=/[^ -~]/,E=/\x2E|\u3002|\uFF0E|\uFF61/g,M={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=v-C,L=Math.floor,B=String.fromCharCode;if(f={version:"1.2.4",ucs2:{decode:o,encode:u},decode:l,encode:d,toASCII:h,toUnicode:y},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return f});else if(b&&!b.nodeType)if(S)S.exports=f;else for(I in f)f.hasOwnProperty(I)&&(b[I]=f[I]);else a.punycode=f}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],78:[function(e,t,r){"use strict";function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,s){t=t||"&",r=r||"=";var n={};if("string"!=typeof e||0===e.length)return n;var o=/\+/g;e=e.split(t);var u=1e3;s&&"number"==typeof s.maxKeys&&(u=s.maxKeys);var p=e.length;u>0&&p>u&&(p=u);for(var c=0;p>c;++c){var m,l,d,y,h=e[c].replace(o,"%20"),b=h.indexOf(r);b>=0?(m=h.substr(0,b),l=h.substr(b+1)):(m=h,l=""),d=decodeURIComponent(m),y=decodeURIComponent(l),a(n,d)?i(n[d])?n[d].push(y):n[d]=[n[d],y]:n[d]=y}return n};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],79:[function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a",'"',"`"," ","\r","\n"," "],b=["{","}","|","\\","^","`"].concat(h),S=["'"].concat(b),g=["%","/","?",";","#"].concat(S),f=["/","?","#"],I=255,N=/^[a-z0-9A-Z_-]{0,63}$/,v=/^([a-z0-9A-Z_-]{0,63})(.*)$/,C={javascript:!0,"javascript:":!0},D={javascript:!0,"javascript:":!0},T={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},k=e("querystring");a.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e;a=a.trim();var i=d.exec(a);if(i){i=i[0];var s=i.toLowerCase();this.protocol=s,a=a.substr(i.length)}if(r||i||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var n="//"===a.substr(0,2);!n||i&&D[i]||(a=a.substr(2),this.slashes=!0)}if(!D[i]&&(n||i&&!T[i])){for(var o=-1,p=0;pc)&&(o=c)}var m,y;y=-1===o?a.lastIndexOf("@"):a.lastIndexOf("@",o),-1!==y&&(m=a.slice(0,y),a=a.slice(y+1),this.auth=decodeURIComponent(m)),o=-1;for(var p=0;pc)&&(o=c)}-1===o&&(o=a.length),this.host=a.slice(0,o),a=a.slice(o),this.parseHost(),this.hostname=this.hostname||"";var h="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!h)for(var b=this.hostname.split(/\./),p=0,A=b.length;A>p;p++){var R=b[p];if(R&&!R.match(N)){for(var q="",P=0,x=R.length;x>P;P++)q+=R.charCodeAt(P)>127?"x":R[P];if(!q.match(N)){var E=b.slice(0,p),M=b.slice(p+1),w=R.match(v);w&&(E.push(w[1]),M.unshift(w[2])),M.length&&(a="/"+M.join(".")+a),this.hostname=E.join(".");break}}}if(this.hostname.length>I?this.hostname="":this.hostname=this.hostname.toLowerCase(),!h){for(var L=this.hostname.split("."),B=[],p=0;pp;p++){var V=S[p],F=encodeURIComponent(V);F===V&&(F=escape(V)),a=a.split(V).join(F)}var O=a.indexOf("#");-1!==O&&(this.hash=a.substr(O),a=a.slice(0,O));var z=a.indexOf("?");if(-1!==z?(this.search=a.substr(z),this.query=a.substr(z+1),t&&(this.query=k.parse(this.query)), +a=a.slice(0,z)):t&&(this.search="",this.query={}),a&&(this.pathname=a),T[s]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var U=this.pathname||"",_=this.search||"";this.path=U+_}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",a=this.hash||"",i=!1,s="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&p(this.query)&&Object.keys(this.query).length&&(s=k.stringify(this.query));var n=this.search||s&&"?"+s||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||T[t])&&i!==!1?(i="//"+(i||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):i||(i=""),a&&"#"!==a.charAt(0)&&(a="#"+a),n&&"?"!==n.charAt(0)&&(n="?"+n),r=r.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),n=n.replace("#","%23"),t+i+r+n+a},a.prototype.resolve=function(e){return this.resolveObject(i(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(u(e)){var t=new a;t.parse(e,!1,!0),e=t}var r=new a;if(Object.keys(this).forEach(function(e){r[e]=this[e]},this),r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol)return Object.keys(e).forEach(function(t){"protocol"!==t&&(r[t]=e[t])}),T[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r;if(e.protocol&&e.protocol!==r.protocol){if(!T[e.protocol])return Object.keys(e).forEach(function(t){r[t]=e[t]}),r.href=r.format(),r;if(r.protocol=e.protocol,e.host||D[e.protocol])r.pathname=e.pathname;else{for(var i=(e.pathname||"").split("/");i.length&&!(e.host=i.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==i[0]&&i.unshift(""),i.length<2&&i.unshift(""),r.pathname=i.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var s=r.pathname||"",n=r.search||"";r.path=s+n}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var o=r.pathname&&"/"===r.pathname.charAt(0),p=e.host||e.pathname&&"/"===e.pathname.charAt(0),l=p||o||r.host&&e.pathname,d=l,y=r.pathname&&r.pathname.split("/")||[],i=e.pathname&&e.pathname.split("/")||[],h=r.protocol&&!T[r.protocol];if(h&&(r.hostname="",r.port=null,r.host&&(""===y[0]?y[0]=r.host:y.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===i[0]?i[0]=e.host:i.unshift(e.host)),e.host=null),l=l&&(""===i[0]||""===y[0])),p)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,y=i;else if(i.length)y||(y=[]),y.pop(),y=y.concat(i),r.search=e.search,r.query=e.query;else if(!m(e.search)){if(h){r.hostname=r.host=y.shift();var b=r.host&&r.host.indexOf("@")>0?r.host.split("@"):!1;b&&(r.auth=b.shift(),r.host=r.hostname=b.shift())}return r.search=e.search,r.query=e.query,c(r.pathname)&&c(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!y.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var S=y.slice(-1)[0],g=(r.host||e.host)&&("."===S||".."===S)||""===S,f=0,I=y.length;I>=0;I--)S=y[I],"."==S?y.splice(I,1):".."===S?(y.splice(I,1),f++):f&&(y.splice(I,1),f--);if(!l&&!d)for(;f--;f)y.unshift("..");!l||""===y[0]||y[0]&&"/"===y[0].charAt(0)||y.unshift(""),g&&"/"!==y.join("/").substr(-1)&&y.push("");var N=""===y[0]||y[0]&&"/"===y[0].charAt(0);if(h){r.hostname=r.host=N?"":y.length?y.shift():"";var b=r.host&&r.host.indexOf("@")>0?r.host.split("@"):!1;b&&(r.auth=b.shift(),r.host=r.hostname=b.shift())}return l=l||r.host&&y.length,l&&!N&&y.unshift(""),y.length?r.pathname=y.join("/"):(r.pathname=null,r.path=null),c(r.pathname)&&c(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=y.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:77,querystring:80}],82:[function(e,t,r){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],83:[function(e,t,r){(function(t,a){function i(e,t){var a={seen:[],stylize:n};return arguments.length>=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),h(t)?a.showHidden=t:t&&r._extend(a,t),N(a.showHidden)&&(a.showHidden=!1),N(a.depth)&&(a.depth=2),N(a.colors)&&(a.colors=!1),N(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=s),u(a,e,a.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function n(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,a){if(e.customInspect&&t&&k(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(a,e);return f(i)||(i=u(e,i,a)),i}var s=p(e,t);if(s)return s;var n=Object.keys(t),h=o(n);if(e.showHidden&&(n=Object.getOwnPropertyNames(t)),T(t)&&(n.indexOf("message")>=0||n.indexOf("description")>=0))return c(t);if(0===n.length){if(k(t)){var b=t.name?": "+t.name:"";return e.stylize("[Function"+b+"]","special")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(D(t))return e.stylize(Date.prototype.toString.call(t),"date");if(T(t))return c(t)}var S="",g=!1,I=["{","}"];if(y(t)&&(g=!0,I=["[","]"]),k(t)){var N=t.name?": "+t.name:"";S=" [Function"+N+"]"}if(v(t)&&(S=" "+RegExp.prototype.toString.call(t)),D(t)&&(S=" "+Date.prototype.toUTCString.call(t)),T(t)&&(S=" "+c(t)),0===n.length&&(!g||0==t.length))return I[0]+S+I[1];if(0>a)return v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var C;return C=g?m(e,t,a,h,n):n.map(function(r){return l(e,t,a,h,r,g)}),e.seen.pop(),d(C,S,I)}function p(e,t){if(N(t))return e.stylize("undefined","undefined");if(f(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):b(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function m(e,t,r,a,i){for(var s=[],n=0,o=t.length;o>n;++n)x(t,String(n))?s.push(l(e,t,r,a,String(n),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(l(e,t,r,a,i,!0))}),s}function l(e,t,r,a,i,s){var n,o,p;if(p=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},p.get?o=p.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):p.set&&(o=e.stylize("[Setter]","special")),x(a,i)||(n="["+i+"]"),o||(e.seen.indexOf(p.value)<0?(o=b(r)?u(e,p.value,null):u(e,p.value,r-1),o.indexOf("\n")>-1&&(o=s?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n"))):o=e.stylize("[Circular]","special")),N(n)){if(s&&i.match(/^\d+$/))return o;n=JSON.stringify(""+i),n.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(n=n.substr(1,n.length-2),n=e.stylize(n,"name")):(n=n.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),n=e.stylize(n,"string"))}return n+": "+o}function d(e,t,r){var a=0,i=e.reduce(function(e,t){return a++,t.indexOf("\n")>=0&&a++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function y(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function b(e){return null===e}function S(e){return null==e}function g(e){return"number"==typeof e}function f(e){return"string"==typeof e}function I(e){return"symbol"==typeof e}function N(e){return void 0===e}function v(e){return C(e)&&"[object RegExp]"===R(e)}function C(e){return"object"==typeof e&&null!==e}function D(e){return C(e)&&"[object Date]"===R(e)}function T(e){return C(e)&&("[object Error]"===R(e)||e instanceof Error)}function k(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function R(e){return Object.prototype.toString.call(e)}function q(e){return 10>e?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[q(e.getHours()),q(e.getMinutes()),q(e.getSeconds())].join(":");return[e.getDate(),L[e.getMonth()],t].join(" ")}function x(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var E=/%[sdj%]/g;r.format=function(e){if(!f(e)){for(var t=[],r=0;r=s)return e;switch(e){case"%s":return String(a[r++]);case"%d":return Number(a[r++]);case"%j":try{return JSON.stringify(a[r++])}catch(t){return"[Circular]"}default:return e}}),o=a[r];s>r;o=a[++r])n+=b(o)||!C(o)?" "+o:" "+i(o);return n},r.deprecate=function(e,i){function s(){if(!n){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),n=!0}return e.apply(this,arguments)}if(N(a.process))return function(){return r.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var n=!1;return s};var M,w={};r.debuglog=function(e){if(N(M)&&(M=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!w[e])if(new RegExp("\\b"+e+"\\b","i").test(M)){var a=t.pid;w[e]=function(){var t=r.format.apply(r,arguments);console.error("%s %d: %s",e,a,t)}}else w[e]=function(){};return w[e]},r.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=y,r.isBoolean=h,r.isNull=b,r.isNullOrUndefined=S,r.isNumber=g,r.isString=f,r.isSymbol=I,r.isUndefined=N,r.isRegExp=v,r.isObject=C,r.isDate=D,r.isError=T,r.isFunction=k,r.isPrimitive=A,r.isBuffer=e("./support/isBuffer");var L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];r.log=function(){console.log("%s - %s",P(),r.format.apply(r,arguments))},r.inherits=e("inherits"),r._extend=function(e,t){if(!t||!C(t))return e;for(var r=Object.keys(t),a=r.length;a--;)e[r[a]]=t[r[a]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":82,_process:76,inherits:75}],84:[function(e,t,r){!function(e){"use strict";function t(e){return null!==e?"[object Array]"===Object.prototype.toString.call(e):!1}function r(e){return null!==e?"[object Object]"===Object.prototype.toString.call(e):!1}function a(e,i){if(e===i)return!0;var s=Object.prototype.toString.call(e);if(s!==Object.prototype.toString.call(i))return!1;if(t(e)===!0){if(e.length!==i.length)return!1;for(var n=0;n="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e}function o(e){return e>="0"&&"9">=e||"-"===e}function u(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||"_"===e}function p(){}function c(){}function m(e){this.runtime=e}function l(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[S]}]},avg:{_func:this._functionAvg,_signature:[{types:[T]}]},ceil:{_func:this._functionCeil,_signature:[{types:[S]}]},contains:{_func:this._functionContains,_signature:[{types:[f,I]},{types:[g]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[f]},{types:[f]}]},floor:{_func:this._functionFloor,_signature:[{types:[S]}]},length:{_func:this._functionLength,_signature:[{types:[f,I,N]}]},map:{_func:this._functionMap,_signature:[{types:[C]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[T,k]}]},merge:{_func:this._functionMerge,_signature:[{types:[N],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[C]}]},sum:{_func:this._functionSum,_signature:[{types:[T]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[f]},{types:[f]}]},min:{_func:this._functionMin,_signature:[{types:[T,k]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[C]}]},type:{_func:this._functionType,_signature:[{types:[g]}]},keys:{_func:this._functionKeys,_signature:[{types:[N]}]},values:{_func:this._functionValues,_signature:[{types:[N]}]},sort:{_func:this._functionSort,_signature:[{types:[k,T]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[C]}]},join:{_func:this._functionJoin,_signature:[{types:[f]},{types:[k]}]},reverse:{_func:this._functionReverse,_signature:[{types:[f,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[g]}]},to_string:{_func:this._functionToString,_signature:[{types:[g]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[g]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[g],variadic:!0}]}}}function d(e){var t=new c,r=t.parse(e);return r}function y(e){var t=new p;return t.tokenize(e)}function h(e,t){var r=new c,a=new l,i=new m(a);a._interpreter=i;var s=r.parse(t);return i.search(s,e)}var b;b="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var S=0,g=1,f=2,I=3,N=4,v=5,C=6,D=7,T=8,k=9,A="EOF",R="UnquotedIdentifier",q="QuotedIdentifier",P="Rbracket",x="Rparen",E="Comma",M="Colon",w="Rbrace",L="Number",B="Current",_="Expref",U="Pipe",G="Or",V="And",F="EQ",O="GT",z="LT",j="GTE",K="LTE",H="NE",W="Flatten",Z="Star",Q="Filter",X="Dot",J="Not",Y="Lbrace",$="Lbracket",ee="Lparen",te="Literal",re={".":X,"*":Z,",":E,":":M,"{":Y,"}":w,"]":P,"(":ee,")":x,"@":B},ae={"<":!0,">":!0,"=":!0,"!":!0},ie={" ":!0," ":!0,"\n":!0};p.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,a,i;this._current"===r?"="===e[this._current]?(this._current++,{type:j,value:">=",start:t}):{type:O,value:">",start:t}:"="===r&&"="===e[this._current]?(this._current++,{type:F,value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,a=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(a.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(i){return!1}}};var se={};se[A]=0,se[R]=0,se[q]=0,se[P]=0,se[x]=0,se[E]=0,se[w]=0,se[L]=0,se[B]=0,se[_]=0,se[U]=1,se[G]=2,se[V]=3,se[F]=5,se[O]=5,se[z]=5,se[j]=5,se[K]=5,se[H]=5,se[W]=9,se[Z]=20,se[Q]=21,se[X]=40,se[J]=45,se[Y]=50,se[$]=55,se[ee]=60,c.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if(this._lookahead(0)!==A){var r=this._lookaheadToken(0),a=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw a.name="ParserError",a}return t},_loadTokens:function(e){var t=new p,r=t.tokenize(e);r.push({type:A,value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),a=this._lookahead(0);et;){if(r===M)t++,this._advance();else{if(r!==L){var a=this._lookahead(0),i=new Error("Syntax error, unexpected token: "+a.value+"("+a.type+")");throw i.name="Parsererror",i}e[t]=this._lookaheadToken(0).value,this._advance()}r=this._lookahead(0)}return this._match(P),{type:"Slice",children:e}},_parseComparator:function(e,t){var r=this.expression(se[t]);return{type:"Comparator",name:t,children:[e,r]}},_parseDotRHS:function(e){var t=this._lookahead(0),r=[R,q,Z];return r.indexOf(t)>=0?this.expression(e):t===$?(this._match($),this._parseMultiselectList()):t===Y?(this._match(Y),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(se[this._lookahead(0)]<10)t={type:"Identity"};else if(this._lookahead(0)===$)t=this.expression(e);else if(this._lookahead(0)===Q)t=this.expression(e);else{if(this._lookahead(0)!==X){var r=this._lookaheadToken(0),a=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw a.name="ParserError",a}this._match(X),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];this._lookahead(0)!==P;){var t=this.expression(0);if(e.push(t),this._lookahead(0)===E&&(this._match(E),this._lookahead(0)===P))throw new Error("Unexpected token Rbracket")}return this._match(P),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,r,a,i=[],s=[R,q];;){if(e=this._lookaheadToken(0),s.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match(M),r=this.expression(0),a={type:"KeyValuePair",name:t,value:r},i.push(a),this._lookahead(0)===E)this._match(E);else if(this._lookahead(0)===w){this._match(w);break}}return{type:"MultiSelectHash",children:i}}},m.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,n){var o,u,p,c,m,l,d,y,h,b;switch(e.type){case"Field":return null===n?null:r(n)?(l=n[e.name],void 0===l?null:l):null;case"Subexpression":for(p=this.visit(e.children[0],n),b=1;bS&&(S=n.length+S),p=n[S],void 0===p&&(p=null),p;case"Slice":if(!t(n))return null;var g=e.children.slice(0),f=this.computeSliceParams(n.length,g),I=f[0],N=f[1],v=f[2];if(p=[],v>0)for(b=I;N>b;b+=v)p.push(n[b]);else for(b=I;b>N;b+=v)p.push(n[b]);return p;case"Projection":var C=this.visit(e.children[0],n);if(!t(C))return null;for(h=[],b=0;bm;break;case j:p=c>=m;break;case z:p=m>c;break;case K:p=m>=c;break;default:throw new Error("Unknown comparator: "+e.name)}return p;case W:var R=this.visit(e.children[0],n);if(!t(R))return null;var q=[];for(b=0;bi;return r=null===r?o?e-1:0:this.capSliceRange(e,r,i),a=null===a?o?-1:e:this.capSliceRange(e,a,i),s[0]=r,s[1]=a,s[2]=i,s},capSliceRange:function(e,t,r){return 0>t?(t+=e,0>t&&(t=0>r?-1:0)):t>=e&&(t=0>r?e-1:e),t}},l.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var a;if(r[r.length-1].variadic){if(t.length=0;i--)a+=r[i];return a}var s=e[0].slice(0);return s.reverse(),s},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],a=0;a=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,a=e[0],i=e[1],s=0;s0){var t=this._getTypeName(e[0][0]);if(t===S)return Math.max.apply(Math,e[0]);for(var r=e[0],a=r[0],i=1;i0){var t=this._getTypeName(e[0][0]);if(t===S)return Math.min.apply(Math,e[0]);for(var r=e[0],a=r[0],i=1;io?1:o>n?-1:e[0]-t[0]});for(var u=0;un&&(n=r,t=i[o]);return t},_functionMinBy:function(e){for(var t,r,a=e[1],i=e[0],s=this.createKeyFunction(a,[S,f]),n=1/0,o=0;or&&(n=r,t=i[o]);return t},createKeyFunction:function(e,t){var r=this,a=this._interpreter,i=function(i){var s=a.visit(e,i);if(t.indexOf(r._getTypeName(s))<0){var n="TypeError: expected one of "+t+", received "+r._getTypeName(s);throw new Error(n)}return s};return i}},e.tokenize=y, +e.compile=d,e.search=h,e.strictDeepEqual=a}("undefined"==typeof r?this.jmespath={}:r)},{}],85:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing attribute name of element "+e.name);if(null==r)throw new Error("Missing attribute value for attribute "+t+" of element "+e.name);this.name=this.stringify.attName(t),this.value=this.stringify.attValue(r)}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){return" "+this.name+'="'+this.value+'"'},e}()}).call(this)},{"lodash/object/create":144}],86:[function(e,t,r){(function(){var r,a,i,s,n;n=e("./XMLStringifier"),a=e("./XMLDeclaration"),i=e("./XMLDocType"),s=e("./XMLElement"),t.exports=r=function(){function e(e,t){var r,a;if(null==e)throw new Error("Root element needs a name");null==t&&(t={}),this.options=t,this.stringify=new n(t),a=new s(this,"doc"),r=a.element(e),r.isRoot=!0,r.documentObject=this,this.rootObject=r,t.headless||(r.declaration(t),null==t.pubID&&null==t.sysID||r.doctype(t))}return e.prototype.root=function(){return this.rootObject},e.prototype.end=function(e){return this.toString(e)},e.prototype.toString=function(e){var t,r,a,i,s,n,o,u;return i=(null!=e?e.pretty:void 0)||!1,t=null!=(n=null!=e?e.indent:void 0)?n:" ",a=null!=(o=null!=e?e.offset:void 0)?o:0,r=null!=(u=null!=e?e.newline:void 0)?u:"\n",s="",null!=this.xmldec&&(s+=this.xmldec.toString(e)),null!=this.doctype&&(s+=this.doctype.toString(e)),s+=this.rootObject.toString(e),i&&s.slice(-r.length)===r&&(s=s.slice(0,-r.length)),s},e}()}).call(this)},{"./XMLDeclaration":93,"./XMLDocType":94,"./XMLElement":95,"./XMLStringifier":99}],87:[function(e,t,r){(function(){var r,a,i,s=function(e,t){function r(){this.constructor=e}for(var a in t)n.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;i=e("lodash/object/create"),a=e("./XMLNode"),t.exports=r=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(r)}return s(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(a)}).call(this)},{"./XMLNode":96,"lodash/object/create":144}],88:[function(e,t,r){(function(){var r,a,i,s=function(e,t){function r(){this.constructor=e}for(var a in t)n.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;i=e("lodash/object/create"),a=e("./XMLNode"),t.exports=r=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing comment text");this.text=this.stringify.comment(r)}return s(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(a)}).call(this)},{"./XMLNode":96,"lodash/object/create":144}],89:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r,a,i,s){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");if(null==r)throw new Error("Missing DTD attribute name");if(!a)throw new Error("Missing DTD attribute type");if(!i)throw new Error("Missing DTD attribute default");if(0!==i.indexOf("#")&&(i="#"+i),!i.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");if(s&&!i.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(t),this.attributeName=this.stringify.attName(r),this.attributeType=this.stringify.dtdAttType(a),this.defaultValue=this.stringify.dtdAttDefault(s),this.defaultValueType=i}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/object/create":144}],90:[function(e,t,r){(function(){var r,a,i;a=e("lodash/object/create"),i=e("lodash/lang/isArray"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");r||(r="(#PCDATA)"),i(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.eleName(t),this.value=this.stringify.dtdElementValue(r)}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/lang/isArray":136,"lodash/object/create":144}],91:[function(e,t,r){(function(){var r,a,i;a=e("lodash/object/create"),i=e("lodash/lang/isObject"),t.exports=r=function(){function e(e,t,r,a){if(this.stringify=e.stringify,null==r)throw new Error("Missing entity name");if(null==a)throw new Error("Missing entity value");if(this.pe=!!t,this.name=this.stringify.eleName(r),i(a)){if(!a.pubID&&!a.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(a.pubID&&!a.sysID)throw new Error("System identifier is required for a public external entity");if(null!=a.pubID&&(this.pubID=this.stringify.dtdPubID(a.pubID)),null!=a.sysID&&(this.sysID=this.stringify.dtdSysID(a.sysID)),null!=a.nData&&(this.nData=this.stringify.dtdNData(a.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(a)}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/lang/isObject":140,"lodash/object/create":144}],92:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing notation name");if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(t),null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/object/create":144}],93:[function(e,t,r){(function(){var r,a,i,s,n=function(e,t){function r(){this.constructor=e}for(var a in t)o.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},o={}.hasOwnProperty;i=e("lodash/object/create"),s=e("lodash/lang/isObject"),a=e("./XMLNode"),t.exports=r=function(e){function t(e,r,a,i){var n;t.__super__.constructor.call(this,e),s(r)&&(n=r,r=n.version,a=n.encoding,i=n.standalone),r||(r="1.0"),null!=r&&(this.version=this.stringify.xmlVersion(r)),null!=a&&(this.encoding=this.stringify.xmlEncoding(a)),null!=i&&(this.standalone=this.stringify.xmlStandalone(i))}return n(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(a)}).call(this)},{"./XMLNode":96,"lodash/lang/isObject":140,"lodash/object/create":144}],94:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m;c=e("lodash/object/create"),m=e("lodash/lang/isObject"),r=e("./XMLCData"),a=e("./XMLComment"),i=e("./XMLDTDAttList"),n=e("./XMLDTDEntity"),s=e("./XMLDTDElement"),o=e("./XMLDTDNotation"),p=e("./XMLProcessingInstruction"),t.exports=u=function(){function e(e,t,r){var a,i;this.documentObject=e,this.stringify=this.documentObject.stringify,this.children=[],m(t)&&(a=t,t=a.pubID,r=a.sysID),null==r&&(i=[t,r],r=i[0],t=i[1]),null!=t&&(this.pubID=this.stringify.dtdPubID(t)),null!=r&&(this.sysID=this.stringify.dtdSysID(r))}return e.prototype.clone=function(){return c(e.prototype,this)},e.prototype.element=function(e,t){var r;return r=new s(this,e,t),this.children.push(r),this},e.prototype.attList=function(e,t,r,a,s){var n;return n=new i(this,e,t,r,a,s),this.children.push(n),this},e.prototype.entity=function(e,t){var r;return r=new n(this,!1,e,t),this.children.push(r),this},e.prototype.pEntity=function(e,t){var r;return r=new n(this,!0,e,t),this.children.push(r),this},e.prototype.notation=function(e,t){var r;return r=new o(this,e,t),this.children.push(r),this},e.prototype.cdata=function(e){var t;return t=new r(this,e),this.children.push(t),this},e.prototype.comment=function(e){var t;return t=new a(this,e),this.children.push(t),this},e.prototype.instruction=function(e,t){var r;return r=new p(this,e,t),this.children.push(r),this},e.prototype.root=function(){return this.documentObject.root()},e.prototype.document=function(){return this.documentObject},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c,m,l,d,y;if(u=(null!=e?e.pretty:void 0)||!1,i=null!=(c=null!=e?e.indent:void 0)?c:" ",o=null!=(m=null!=e?e.offset:void 0)?m:0,n=null!=(l=null!=e?e.newline:void 0)?l:"\n",t||(t=0),y=new Array(t+o+1).join(i),p="",u&&(p+=y),p+="0){for(p+=" [",u&&(p+=n),d=this.children,a=0,s=d.length;s>a;a++)r=d[a],p+=r.toString(e,t+1);p+="]"}return p+=">",u&&(p+=n),p},e.prototype.ele=function(e,t){return this.element(e,t)},e.prototype.att=function(e,t,r,a,i){return this.attList(e,t,r,a,i)},e.prototype.ent=function(e,t){return this.entity(e,t)},e.prototype.pent=function(e,t){return this.pEntity(e,t)},e.prototype.not=function(e,t){return this.notation(e,t)},e.prototype.dat=function(e){return this.cdata(e)},e.prototype.com=function(e){return this.comment(e)},e.prototype.ins=function(e,t){return this.instruction(e,t)},e.prototype.up=function(){return this.root()},e.prototype.doc=function(){return this.document()},e}()}).call(this)},{"./XMLCData":87,"./XMLComment":88,"./XMLDTDAttList":89,"./XMLDTDElement":90,"./XMLDTDEntity":91,"./XMLDTDNotation":92,"./XMLProcessingInstruction":97,"lodash/lang/isObject":140,"lodash/object/create":144}],95:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m=function(e,t){function r(){this.constructor=e}for(var a in t)l.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},l={}.hasOwnProperty;n=e("lodash/object/create"),c=e("lodash/lang/isObject"),u=e("lodash/lang/isArray"),p=e("lodash/lang/isFunction"),o=e("lodash/collection/every"),i=e("./XMLNode"),r=e("./XMLAttribute"),s=e("./XMLProcessingInstruction"),t.exports=a=function(e){function t(e,r,a){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing element name");this.name=this.stringify.eleName(r),this.children=[],this.instructions=[],this.attributes={},null!=a&&this.attribute(a)}return m(t,e),t.prototype.clone=function(){var e,r,a,i,s,o,u,p;a=n(t.prototype,this),a.isRoot&&(a.documentObject=null),a.attributes={},u=this.attributes;for(r in u)l.call(u,r)&&(e=u[r],a.attributes[r]=e.clone());for(a.instructions=[],p=this.instructions,i=0,s=p.length;s>i;i++)o=p[i],a.instructions.push(o.clone());return a.children=[],this.children.forEach(function(e){var t;return t=e.clone(),t.parent=a,a.children.push(t)}),a},t.prototype.attribute=function(e,t){var a,i;if(null!=e&&(e=e.valueOf()),c(e))for(a in e)l.call(e,a)&&(i=e[a],this.attribute(a,i));else p(t)&&(t=t.apply()),this.options.skipNullAttributes&&null==t||(this.attributes[e]=new r(this,e,t));return this},t.prototype.removeAttribute=function(e){var t,r,a;if(null==e)throw new Error("Missing attribute name");if(e=e.valueOf(),u(e))for(r=0,a=e.length;a>r;r++)t=e[r],delete this.attributes[t];else delete this.attributes[e];return this},t.prototype.instruction=function(e,t){var r,a,i,n,o;if(null!=e&&(e=e.valueOf()),null!=t&&(t=t.valueOf()),u(e))for(r=0,o=e.length;o>r;r++)a=e[r],this.instruction(a);else if(c(e))for(a in e)l.call(e,a)&&(i=e[a],this.instruction(a,i));else p(t)&&(t=t.apply()),n=new s(this,e,t),this.instructions.push(n);return this},t.prototype.toString=function(e,t){var r,a,i,s,n,u,p,c,m,d,y,h,b,S,g,f,I,N,v,C;for(h=(null!=e?e.pretty:void 0)||!1,s=null!=(S=null!=e?e.indent:void 0)?S:" ",y=null!=(g=null!=e?e.offset:void 0)?g:0,d=null!=(f=null!=e?e.newline:void 0)?f:"\n",t||(t=0),C=new Array(t+y+1).join(s),b="",I=this.instructions,i=0,p=I.length;p>i;i++)n=I[i],b+=n.toString(e,t+1);h&&(b+=C),b+="<"+this.name,N=this.attributes;for(m in N)l.call(N,m)&&(r=N[m],b+=r.toString(e));if(0===this.children.length||o(this.children,function(e){return""===e.value}))b+="/>",h&&(b+=d);else if(h&&1===this.children.length&&null!=this.children[0].value)b+=">",b+=this.children[0].value,b+="",b+=d;else{for(b+=">",h&&(b+=d),v=this.children,u=0,c=v.length;c>u;u++)a=v[u],b+=a.toString(e,t+1);h&&(b+=C),b+="",h&&(b+=d)}return b},t.prototype.att=function(e,t){return this.attribute(e,t)},t.prototype.ins=function(e,t){return this.instruction(e,t)},t.prototype.a=function(e,t){return this.attribute(e,t)},t.prototype.i=function(e,t){return this.instruction(e,t)},t}(i)}).call(this)},{"./XMLAttribute":85,"./XMLNode":96,"./XMLProcessingInstruction":97,"lodash/collection/every":102,"lodash/lang/isArray":136,"lodash/lang/isFunction":138,"lodash/lang/isObject":140,"lodash/object/create":144}],96:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m,l,d,y={}.hasOwnProperty;d=e("lodash/lang/isObject"),c=e("lodash/lang/isArray"),l=e("lodash/lang/isFunction"),m=e("lodash/lang/isEmpty"),n=null,r=null,a=null,i=null,s=null,u=null,p=null,t.exports=o=function(){function t(t){this.parent=t,this.options=this.parent.options,this.stringify=this.parent.stringify,null===n&&(n=e("./XMLElement"),r=e("./XMLCData"),a=e("./XMLComment"),i=e("./XMLDeclaration"),s=e("./XMLDocType"),u=e("./XMLRaw"),p=e("./XMLText"))}return t.prototype.clone=function(){throw new Error("Cannot clone generic XMLNode")},t.prototype.element=function(e,t,r){var a,i,s,n,o,u,p;if(n=null,null==t&&(t={}),t=t.valueOf(),d(t)||(u=[t,r],r=u[0],t=u[1]),null!=e&&(e=e.valueOf()),c(e))for(i=0,o=e.length;o>i;i++)a=e[i],n=this.element(a);else if(l(e))n=this.element(e.apply());else if(d(e))for(s in e)y.call(e,s)&&(p=e[s],l(p)&&(p=p.apply()),d(p)&&m(p)&&(p=null),!this.options.ignoreDecorators&&this.stringify.convertAttKey&&0===s.indexOf(this.stringify.convertAttKey)?n=this.attribute(s.substr(this.stringify.convertAttKey.length),p):!this.options.ignoreDecorators&&this.stringify.convertPIKey&&0===s.indexOf(this.stringify.convertPIKey)?n=this.instruction(s.substr(this.stringify.convertPIKey.length),p):d(p)?!this.options.ignoreDecorators&&this.stringify.convertListKey&&0===s.indexOf(this.stringify.convertListKey)&&c(p)?n=this.element(p):(n=this.element(s),n.element(p)):n=this.element(s,p));else n=!this.options.ignoreDecorators&&this.stringify.convertTextKey&&0===e.indexOf(this.stringify.convertTextKey)?this.text(r):!this.options.ignoreDecorators&&this.stringify.convertCDataKey&&0===e.indexOf(this.stringify.convertCDataKey)?this.cdata(r):!this.options.ignoreDecorators&&this.stringify.convertCommentKey&&0===e.indexOf(this.stringify.convertCommentKey)?this.comment(r):!this.options.ignoreDecorators&&this.stringify.convertRawKey&&0===e.indexOf(this.stringify.convertRawKey)?this.raw(r):this.node(e,t,r);if(null==n)throw new Error("Could not create any elements with: "+e);return n},t.prototype.insertBefore=function(e,t,r){var a,i,s;if(this.isRoot)throw new Error("Cannot insert elements at root level");return i=this.parent.children.indexOf(this),s=this.parent.children.splice(i),a=this.parent.element(e,t,r),Array.prototype.push.apply(this.parent.children,s),a},t.prototype.insertAfter=function(e,t,r){var a,i,s;if(this.isRoot)throw new Error("Cannot insert elements at root level");return i=this.parent.children.indexOf(this),s=this.parent.children.splice(i+1),a=this.parent.element(e,t,r),Array.prototype.push.apply(this.parent.children,s),a},t.prototype.remove=function(){var e,t;if(this.isRoot)throw new Error("Cannot remove the root element");return e=this.parent.children.indexOf(this),[].splice.apply(this.parent.children,[e,e-e+1].concat(t=[])),t,this.parent},t.prototype.node=function(e,t,r){var a,i;return null!=e&&(e=e.valueOf()),null==t&&(t={}),t=t.valueOf(),d(t)||(i=[t,r],r=i[0],t=i[1]),a=new n(this,e,t),null!=r&&a.text(r),this.children.push(a),a},t.prototype.text=function(e){var t;return t=new p(this,e),this.children.push(t),this},t.prototype.cdata=function(e){var t;return t=new r(this,e),this.children.push(t),this},t.prototype.comment=function(e){var t;return t=new a(this,e),this.children.push(t),this},t.prototype.raw=function(e){var t;return t=new u(this,e),this.children.push(t),this},t.prototype.declaration=function(e,t,r){var a,s;return a=this.document(),s=new i(a,e,t,r),a.xmldec=s,a.root()},t.prototype.doctype=function(e,t){var r,a;return r=this.document(),a=new s(r,e,t),r.doctype=a,a},t.prototype.up=function(){if(this.isRoot)throw new Error("The root node has no parent. Use doc() if you need to get the document object.");return this.parent},t.prototype.root=function(){var e;if(this.isRoot)return this;for(e=this.parent;!e.isRoot;)e=e.parent;return e},t.prototype.document=function(){return this.root().documentObject},t.prototype.end=function(e){return this.document().toString(e)},t.prototype.prev=function(){var e;if(this.isRoot)throw new Error("Root node has no siblings");if(e=this.parent.children.indexOf(this),1>e)throw new Error("Already at the first node");return this.parent.children[e-1]},t.prototype.next=function(){var e;if(this.isRoot)throw new Error("Root node has no siblings");if(e=this.parent.children.indexOf(this),-1===e||e===this.parent.children.length-1)throw new Error("Already at the last node");return this.parent.children[e+1]},t.prototype.importXMLBuilder=function(e){var t;return t=e.root().clone(),t.parent=this,t.isRoot=!1,this.children.push(t),this},t.prototype.ele=function(e,t,r){return this.element(e,t,r)},t.prototype.nod=function(e,t,r){return this.node(e,t,r)},t.prototype.txt=function(e){return this.text(e)},t.prototype.dat=function(e){return this.cdata(e)},t.prototype.com=function(e){return this.comment(e)},t.prototype.doc=function(){return this.document()},t.prototype.dec=function(e,t,r){return this.declaration(e,t,r)},t.prototype.dtd=function(e,t){return this.doctype(e,t)},t.prototype.e=function(e,t,r){return this.element(e,t,r)},t.prototype.n=function(e,t,r){return this.node(e,t,r)},t.prototype.t=function(e){return this.text(e)},t.prototype.d=function(e){return this.cdata(e)},t.prototype.c=function(e){return this.comment(e)},t.prototype.r=function(e){return this.raw(e)},t.prototype.u=function(){return this.up()},t}()}).call(this)},{"./XMLCData":87,"./XMLComment":88,"./XMLDeclaration":93,"./XMLDocType":94,"./XMLElement":95,"./XMLRaw":98,"./XMLText":100,"lodash/lang/isArray":136,"lodash/lang/isEmpty":137,"lodash/lang/isFunction":138,"lodash/lang/isObject":140}],97:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing instruction target");this.target=this.stringify.insTarget(t),r&&(this.value=this.stringify.insValue(r))}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/object/create":144}],98:[function(e,t,r){(function(){var r,a,i,s=function(e,t){function r(){this.constructor=e}for(var a in t)n.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;i=e("lodash/object/create"),r=e("./XMLNode"),t.exports=a=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing raw text");this.value=this.stringify.raw(r)}return s(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+=this.value,s&&(n+=a),n},t}(r)}).call(this)},{"./XMLNode":96,"lodash/object/create":144}],99:[function(e,t,r){(function(){var e,r=function(e,t){return function(){return e.apply(t,arguments)}},a={}.hasOwnProperty;t.exports=e=function(){function e(e){this.assertLegalChar=r(this.assertLegalChar,this);var t,i,s;this.allowSurrogateChars=null!=e?e.allowSurrogateChars:void 0,i=(null!=e?e.stringify:void 0)||{};for(t in i)a.call(i,t)&&(s=i[t],this[t]=s)}return e.prototype.eleName=function(e){return e=""+e||"",this.assertLegalChar(e)},e.prototype.eleText=function(e){return e=""+e||"",this.assertLegalChar(this.elEscape(e))},e.prototype.cdata=function(e){if(e=""+e||"",e.match(/]]>/))throw new Error("Invalid CDATA text: "+e);return this.assertLegalChar(e)},e.prototype.comment=function(e){if(e=""+e||"",e.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+e);return this.assertLegalChar(e)},e.prototype.raw=function(e){return""+e||""},e.prototype.attName=function(e){return""+e||""},e.prototype.attValue=function(e){return e=""+e||"",this.attEscape(e)},e.prototype.insTarget=function(e){return""+e||""},e.prototype.insValue=function(e){if(e=""+e||"",e.match(/\?>/))throw new Error("Invalid processing instruction value: "+e);return e},e.prototype.xmlVersion=function(e){if(e=""+e||"",!e.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+e);return e},e.prototype.xmlEncoding=function(e){if(e=""+e||"",!e.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/))throw new Error("Invalid encoding: "+e);return e},e.prototype.xmlStandalone=function(e){return e?"yes":"no"},e.prototype.dtdPubID=function(e){return""+e||""},e.prototype.dtdSysID=function(e){return""+e||""},e.prototype.dtdElementValue=function(e){return""+e||""},e.prototype.dtdAttType=function(e){return""+e||""},e.prototype.dtdAttDefault=function(e){return null!=e?""+e||"":e},e.prototype.dtdEntityValue=function(e){return""+e||""},e.prototype.dtdNData=function(e){return""+e||""},e.prototype.convertAttKey="@",e.prototype.convertPIKey="?",e.prototype.convertTextKey="#text",e.prototype.convertCDataKey="#cdata",e.prototype.convertCommentKey="#comment",e.prototype.convertRawKey="#raw",e.prototype.convertListKey="#list",e.prototype.assertLegalChar=function(e){var t,r;if(t=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,r=e.match(t))throw new Error("Invalid character ("+r+") in string: "+e+" at index "+r.index);return e},e.prototype.elEscape=function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/\r/g," ")},e.prototype.attEscape=function(e){return e.replace(/&/g,"&").replace(/r||null==a)return a;var n=t[r-2],o=t[r-1],u=t[3];r>3&&"function"==typeof n?(n=i(n,o,5),r-=2):(n=r>2&&"function"==typeof o?o:null,r-=n?1:0),u&&s(t[1],t[2],u)&&(n=3==r?null:n,r=2);for(var p=0;++pu))return!1;for(;c&&++o-1&&e%1==0&&t>e}var i=Math.pow(2,53)-1;t.exports=a},{}],128:[function(e,t,r){function a(e,t,r){if(!n(r))return!1;var a=typeof t;if("number"==a)var o=r.length,u=s(o)&&i(t,o);else u="string"==a&&t in r;if(u){var p=r[t];return e===e?e===p:p!==p}return!1}var i=e("./isIndex"),s=e("./isLength"),n=e("../lang/isObject");t.exports=a},{"../lang/isObject":140,"./isIndex":127,"./isLength":129}],129:[function(e,t,r){function a(e){return"number"==typeof e&&e>-1&&e%1==0&&i>=e}var i=Math.pow(2,53)-1;t.exports=a},{}],130:[function(e,t,r){function a(e){return e&&"object"==typeof e||!1}t.exports=a},{}],131:[function(e,t,r){function a(e){return e===e&&(0===e?1/e>0:!i(e))}var i=e("../lang/isObject");t.exports=a},{"../lang/isObject":140}],132:[function(e,t,r){(function(r){var a=e("../lang/isNative"),i=a(i=r.WeakMap)&&i,s=i&&new i;t.exports=s}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lang/isNative":139}],133:[function(e,t,r){function a(e){for(var t=u(e),r=t.length,a=r&&e.length,c=a&&o(a)&&(s(e)||p.nonEnumArgs&&i(e)),l=-1,d=[];++l0;++a= 0) { + var v = x*this[i++]+w[j]+c; + c = Math.floor(v/0x4000000); + w[j++] = v&0x3ffffff; + } + return c; +} +// am2 avoids a big mult-and-extract completely. +// Max digit bits should be <= 30 because we do bitwise ops +// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) +function am2(i,x,w,j,c,n) { + var xl = x&0x7fff, xh = x>>15; + while(--n >= 0) { + var l = this[i]&0x7fff; + var h = this[i++]>>15; + var m = xh*l+h*xl; + l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff); + c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); + w[j++] = l&0x3fffffff; + } + return c; +} +// Alternately, set max digit bits to 28 since some +// browsers slow down when dealing with 32-bit numbers. +function am3(i,x,w,j,c,n) { + var xl = x&0x3fff, xh = x>>14; + while(--n >= 0) { + var l = this[i]&0x3fff; + var h = this[i++]>>14; + var m = xh*l+h*xl; + l = xl*l+((m&0x3fff)<<14)+w[j]+c; + c = (l>>28)+(m>>14)+xh*h; + w[j++] = l&0xfffffff; + } + return c; +} +if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) { + BigInteger.prototype.am = am2; + dbits = 30; +} +else if(j_lm && (navigator.appName != "Netscape")) { + BigInteger.prototype.am = am1; + dbits = 26; +} +else { // Mozilla/Netscape seems to prefer am3 + BigInteger.prototype.am = am3; + dbits = 28; +} + +BigInteger.prototype.DB = dbits; +BigInteger.prototype.DM = ((1<= 0; --i) r[i] = this[i]; + r.t = this.t; + r.s = this.s; +} + +// (protected) set from integer value x, -DV <= x < DV +function bnpFromInt(x) { + this.t = 1; + this.s = (x<0)?-1:0; + if(x > 0) this[0] = x; + else if(x < -1) this[0] = x+this.DV; + else this.t = 0; +} + +// return bigint initialized to value +function nbv(i) { var r = nbi(); r.fromInt(i); return r; } + +// (protected) set from string and radix +function bnpFromString(s,b) { + var k; + if(b == 16) k = 4; + else if(b == 8) k = 3; + else if(b == 256) k = 8; // byte array + else if(b == 2) k = 1; + else if(b == 32) k = 5; + else if(b == 4) k = 2; + else { this.fromRadix(s,b); return; } + this.t = 0; + this.s = 0; + var i = s.length, mi = false, sh = 0; + while(--i >= 0) { + var x = (k==8)?s[i]&0xff:intAt(s,i); + if(x < 0) { + if(s.charAt(i) == "-") mi = true; + continue; + } + mi = false; + if(sh == 0) + this[this.t++] = x; + else if(sh+k > this.DB) { + this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh)); + } + else + this[this.t-1] |= x<= this.DB) sh -= this.DB; + } + if(k == 8 && (s[0]&0x80) != 0) { + this.s = -1; + if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this[this.t-1] == c) --this.t; +} + +// (public) return string representation in given radix +function bnToString(b) { + if(this.s < 0) return "-"+this.negate().toString(b); + var k; + if(b == 16) k = 4; + else if(b == 8) k = 3; + else if(b == 2) k = 1; + else if(b == 32) k = 5; + else if(b == 4) k = 2; + else return this.toRadix(b); + var km = (1< 0) { + if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); } + while(i >= 0) { + if(p < k) { + d = (this[i]&((1<>(p+=this.DB-k); + } + else { + d = (this[i]>>(p-=k))&km; + if(p <= 0) { p += this.DB; --i; } + } + if(d > 0) m = true; + if(m) r += int2char(d); + } + } + return m?r:"0"; +} + +// (public) -this +function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } + +// (public) |this| +function bnAbs() { return (this.s<0)?this.negate():this; } + +// (public) return + if this > a, - if this < a, 0 if equal +function bnCompareTo(a) { + var r = this.s-a.s; + if(r != 0) return r; + var i = this.t; + r = i-a.t; + if(r != 0) return (this.s<0)?-r:r; + while(--i >= 0) if((r=this[i]-a[i]) != 0) return r; + return 0; +} + +// returns bit length of the integer x +function nbits(x) { + var r = 1, t; + if((t=x>>>16) != 0) { x = t; r += 16; } + if((t=x>>8) != 0) { x = t; r += 8; } + if((t=x>>4) != 0) { x = t; r += 4; } + if((t=x>>2) != 0) { x = t; r += 2; } + if((t=x>>1) != 0) { x = t; r += 1; } + return r; +} + +// (public) return the number of bits in "this" +function bnBitLength() { + if(this.t <= 0) return 0; + return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM)); +} + +// (protected) r = this << n*DB +function bnpDLShiftTo(n,r) { + var i; + for(i = this.t-1; i >= 0; --i) r[i+n] = this[i]; + for(i = n-1; i >= 0; --i) r[i] = 0; + r.t = this.t+n; + r.s = this.s; +} + +// (protected) r = this >> n*DB +function bnpDRShiftTo(n,r) { + for(var i = n; i < this.t; ++i) r[i-n] = this[i]; + r.t = Math.max(this.t-n,0); + r.s = this.s; +} + +// (protected) r = this << n +function bnpLShiftTo(n,r) { + var bs = n%this.DB; + var cbs = this.DB-bs; + var bm = (1<= 0; --i) { + r[i+ds+1] = (this[i]>>cbs)|c; + c = (this[i]&bm)<= 0; --i) r[i] = 0; + r[ds] = c; + r.t = this.t+ds+1; + r.s = this.s; + r.clamp(); +} + +// (protected) r = this >> n +function bnpRShiftTo(n,r) { + r.s = this.s; + var ds = Math.floor(n/this.DB); + if(ds >= this.t) { r.t = 0; return; } + var bs = n%this.DB; + var cbs = this.DB-bs; + var bm = (1<>bs; + for(var i = ds+1; i < this.t; ++i) { + r[i-ds-1] |= (this[i]&bm)<>bs; + } + if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<>= this.DB; + } + if(a.t < this.t) { + c -= a.s; + while(i < this.t) { + c += this[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while(i < a.t) { + c -= a[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c -= a.s; + } + r.s = (c<0)?-1:0; + if(c < -1) r[i++] = this.DV+c; + else if(c > 0) r[i++] = c; + r.t = i; + r.clamp(); +} + +// (protected) r = this * a, r != this,a (HAC 14.12) +// "this" should be the larger one if appropriate. +function bnpMultiplyTo(a,r) { + var x = this.abs(), y = a.abs(); + var i = x.t; + r.t = i+y.t; + while(--i >= 0) r[i] = 0; + for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t); + r.s = 0; + r.clamp(); + if(this.s != a.s) BigInteger.ZERO.subTo(r,r); +} + +// (protected) r = this^2, r != this (HAC 14.16) +function bnpSquareTo(r) { + var x = this.abs(); + var i = r.t = 2*x.t; + while(--i >= 0) r[i] = 0; + for(i = 0; i < x.t-1; ++i) { + var c = x.am(i,x[i],r,2*i,0,1); + if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) { + r[i+x.t] -= x.DV; + r[i+x.t+1] = 1; + } + } + if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1); + r.s = 0; + r.clamp(); +} + +// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) +// r != q, this != m. q or r may be null. +function bnpDivRemTo(m,q,r) { + var pm = m.abs(); + if(pm.t <= 0) return; + var pt = this.abs(); + if(pt.t < pm.t) { + if(q != null) q.fromInt(0); + if(r != null) this.copyTo(r); + return; + } + if(r == null) r = nbi(); + var y = nbi(), ts = this.s, ms = m.s; + var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus + if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } + else { pm.copyTo(y); pt.copyTo(r); } + var ys = y.t; + var y0 = y[ys-1]; + if(y0 == 0) return; + var yt = y0*(1<1)?y[ys-2]>>this.F2:0); + var d1 = this.FV/yt, d2 = (1<= 0) { + r[r.t++] = 1; + r.subTo(t,r); + } + BigInteger.ONE.dlShiftTo(ys,t); + t.subTo(y,y); // "negative" y so we can replace sub with am later + while(y.t < ys) y[y.t++] = 0; + while(--j >= 0) { + // Estimate quotient digit + var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2); + if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out + y.dlShiftTo(j,t); + r.subTo(t,r); + while(r[i] < --qd) r.subTo(t,r); + } + } + if(q != null) { + r.drShiftTo(ys,q); + if(ts != ms) BigInteger.ZERO.subTo(q,q); + } + r.t = ys; + r.clamp(); + if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder + if(ts < 0) BigInteger.ZERO.subTo(r,r); +} + +// (public) this mod a +function bnMod(a) { + var r = nbi(); + this.abs().divRemTo(a,null,r); + if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); + return r; +} + +// Modular reduction using "classic" algorithm +function Classic(m) { this.m = m; } +function cConvert(x) { + if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); + else return x; +} +function cRevert(x) { return x; } +function cReduce(x) { x.divRemTo(this.m,null,x); } +function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } +function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + +Classic.prototype.convert = cConvert; +Classic.prototype.revert = cRevert; +Classic.prototype.reduce = cReduce; +Classic.prototype.mulTo = cMulTo; +Classic.prototype.sqrTo = cSqrTo; + +// (protected) return "-1/this % 2^DB"; useful for Mont. reduction +// justification: +// xy == 1 (mod m) +// xy = 1+km +// xy(2-xy) = (1+km)(1-km) +// x[y(2-xy)] = 1-k^2m^2 +// x[y(2-xy)] == 1 (mod m^2) +// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 +// should reduce x and y(2-xy) by m^2 at each step to keep size bounded. +// JS multiply "overflows" differently from C/C++, so care is needed here. +function bnpInvDigit() { + if(this.t < 1) return 0; + var x = this[0]; + if((x&1) == 0) return 0; + var y = x&3; // y == 1/x mod 2^2 + y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 + y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 + y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 + // last step - calculate inverse mod DV directly; + // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints + y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits + // we really want the negative inverse, and -DV < y < DV + return (y>0)?this.DV-y:-y; +} + +// Montgomery reduction +function Montgomery(m) { + this.m = m; + this.mp = m.invDigit(); + this.mpl = this.mp&0x7fff; + this.mph = this.mp>>15; + this.um = (1<<(m.DB-15))-1; + this.mt2 = 2*m.t; +} + +// xR mod m +function montConvert(x) { + var r = nbi(); + x.abs().dlShiftTo(this.m.t,r); + r.divRemTo(this.m,null,r); + if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); + return r; +} + +// x/R mod m +function montRevert(x) { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; +} + +// x = x/R mod m (HAC 14.32) +function montReduce(x) { + while(x.t <= this.mt2) // pad x so am has enough room later + x[x.t++] = 0; + for(var i = 0; i < this.m.t; ++i) { + // faster way of calculating u0 = x[i]*mp mod DV + var j = x[i]&0x7fff; + var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM; + // use am to combine the multiply-shift-add into one call + j = i+this.m.t; + x[j] += this.m.am(0,u0,x,i,0,this.m.t); + // propagate carry + while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } + } + x.clamp(); + x.drShiftTo(this.m.t,x); + if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); +} + +// r = "x^2/R mod m"; x != r +function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + +// r = "xy/R mod m"; x,y != r +function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } + +Montgomery.prototype.convert = montConvert; +Montgomery.prototype.revert = montRevert; +Montgomery.prototype.reduce = montReduce; +Montgomery.prototype.mulTo = montMulTo; +Montgomery.prototype.sqrTo = montSqrTo; + +// (protected) true iff this is even +function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; } + +// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) +function bnpExp(e,z) { + if(e > 0xffffffff || e < 1) return BigInteger.ONE; + var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; + g.copyTo(r); + while(--i >= 0) { + z.sqrTo(r,r2); + if((e&(1< 0) z.mulTo(r2,g,r); + else { var t = r; r = r2; r2 = t; } + } + return z.revert(r); +} + +// (public) this^e % m, 0 <= e < 2^32 +function bnModPowInt(e,m) { + var z; + if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); + return this.exp(e,z); +} + +// protected +BigInteger.prototype.copyTo = bnpCopyTo; +BigInteger.prototype.fromInt = bnpFromInt; +BigInteger.prototype.fromString = bnpFromString; +BigInteger.prototype.clamp = bnpClamp; +BigInteger.prototype.dlShiftTo = bnpDLShiftTo; +BigInteger.prototype.drShiftTo = bnpDRShiftTo; +BigInteger.prototype.lShiftTo = bnpLShiftTo; +BigInteger.prototype.rShiftTo = bnpRShiftTo; +BigInteger.prototype.subTo = bnpSubTo; +BigInteger.prototype.multiplyTo = bnpMultiplyTo; +BigInteger.prototype.squareTo = bnpSquareTo; +BigInteger.prototype.divRemTo = bnpDivRemTo; +BigInteger.prototype.invDigit = bnpInvDigit; +BigInteger.prototype.isEven = bnpIsEven; +BigInteger.prototype.exp = bnpExp; + +// public +BigInteger.prototype.toString = bnToString; +BigInteger.prototype.negate = bnNegate; +BigInteger.prototype.abs = bnAbs; +BigInteger.prototype.compareTo = bnCompareTo; +BigInteger.prototype.bitLength = bnBitLength; +BigInteger.prototype.mod = bnMod; +BigInteger.prototype.modPowInt = bnModPowInt; + +// "constants" +BigInteger.ZERO = nbv(0); +BigInteger.ONE = nbv(1); diff --git a/S3WebApp/S3/assets/js/jsbn2.js b/S3WebApp/S3/assets/js/jsbn2.js new file mode 100644 index 0000000..5b2b725 --- /dev/null +++ b/S3WebApp/S3/assets/js/jsbn2.js @@ -0,0 +1,656 @@ +// Copyright (c) 2005-2009 Tom Wu +// All Rights Reserved. +// See "LICENSE" for details. + +// Extended JavaScript BN functions, required for RSA private ops. + +// Version 1.1: new BigInteger("0", 10) returns "proper" zero +// Version 1.2: square() API, isProbablePrime fix + +// (public) +function bnClone() { var r = nbi(); this.copyTo(r); return r; } + +// (public) return value as integer +function bnIntValue() { + if(this.s < 0) { + if(this.t == 1) return this[0]-this.DV; + else if(this.t == 0) return -1; + } + else if(this.t == 1) return this[0]; + else if(this.t == 0) return 0; + // assumes 16 < DB < 32 + return ((this[1]&((1<<(32-this.DB))-1))<>24; } + +// (public) return value as short (assumes DB>=16) +function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; } + +// (protected) return x s.t. r^x < DV +function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); } + +// (public) 0 if this == 0, 1 if this > 0 +function bnSigNum() { + if(this.s < 0) return -1; + else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; + else return 1; +} + +// (protected) convert to radix string +function bnpToRadix(b) { + if(b == null) b = 10; + if(this.signum() == 0 || b < 2 || b > 36) return "0"; + var cs = this.chunkSize(b); + var a = Math.pow(b,cs); + var d = nbv(a), y = nbi(), z = nbi(), r = ""; + this.divRemTo(d,y,z); + while(y.signum() > 0) { + r = (a+z.intValue()).toString(b).substr(1) + r; + y.divRemTo(d,y,z); + } + return z.intValue().toString(b) + r; +} + +// (protected) convert from radix string +function bnpFromRadix(s,b) { + this.fromInt(0); + if(b == null) b = 10; + var cs = this.chunkSize(b); + var d = Math.pow(b,cs), mi = false, j = 0, w = 0; + for(var i = 0; i < s.length; ++i) { + var x = intAt(s,i); + if(x < 0) { + if(s.charAt(i) == "-" && this.signum() == 0) mi = true; + continue; + } + w = b*w+x; + if(++j >= cs) { + this.dMultiply(d); + this.dAddOffset(w,0); + j = 0; + w = 0; + } + } + if(j > 0) { + this.dMultiply(Math.pow(b,j)); + this.dAddOffset(w,0); + } + if(mi) BigInteger.ZERO.subTo(this,this); +} + +// (protected) alternate constructor +function bnpFromNumber(a,b,c) { + if("number" == typeof b) { + // new BigInteger(int,int,RNG) + if(a < 2) this.fromInt(1); + else { + this.fromNumber(a,c); + if(!this.testBit(a-1)) // force MSB set + this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this); + if(this.isEven()) this.dAddOffset(1,0); // force odd + while(!this.isProbablePrime(b)) { + this.dAddOffset(2,0); + if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this); + } + } + } + else { + // new BigInteger(int,RNG) + var x = new Array(), t = a&7; + x.length = (a>>3)+1; + b.nextBytes(x); + if(t > 0) x[0] &= ((1< 0) { + if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p) + r[k++] = d|(this.s<<(this.DB-p)); + while(i >= 0) { + if(p < 8) { + d = (this[i]&((1<>(p+=this.DB-8); + } + else { + d = (this[i]>>(p-=8))&0xff; + if(p <= 0) { p += this.DB; --i; } + } + if((d&0x80) != 0) d |= -256; + if(k == 0 && (this.s&0x80) != (d&0x80)) ++k; + if(k > 0 || d != this.s) r[k++] = d; + } + } + return r; +} + +function bnEquals(a) { return(this.compareTo(a)==0); } +function bnMin(a) { return(this.compareTo(a)<0)?this:a; } +function bnMax(a) { return(this.compareTo(a)>0)?this:a; } + +// (protected) r = this op a (bitwise) +function bnpBitwiseTo(a,op,r) { + var i, f, m = Math.min(a.t,this.t); + for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]); + if(a.t < this.t) { + f = a.s&this.DM; + for(i = m; i < this.t; ++i) r[i] = op(this[i],f); + r.t = this.t; + } + else { + f = this.s&this.DM; + for(i = m; i < a.t; ++i) r[i] = op(f,a[i]); + r.t = a.t; + } + r.s = op(this.s,a.s); + r.clamp(); +} + +// (public) this & a +function op_and(x,y) { return x&y; } +function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; } + +// (public) this | a +function op_or(x,y) { return x|y; } +function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; } + +// (public) this ^ a +function op_xor(x,y) { return x^y; } +function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; } + +// (public) this & ~a +function op_andnot(x,y) { return x&~y; } +function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; } + +// (public) ~this +function bnNot() { + var r = nbi(); + for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i]; + r.t = this.t; + r.s = ~this.s; + return r; +} + +// (public) this << n +function bnShiftLeft(n) { + var r = nbi(); + if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r); + return r; +} + +// (public) this >> n +function bnShiftRight(n) { + var r = nbi(); + if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r); + return r; +} + +// return index of lowest 1-bit in x, x < 2^31 +function lbit(x) { + if(x == 0) return -1; + var r = 0; + if((x&0xffff) == 0) { x >>= 16; r += 16; } + if((x&0xff) == 0) { x >>= 8; r += 8; } + if((x&0xf) == 0) { x >>= 4; r += 4; } + if((x&3) == 0) { x >>= 2; r += 2; } + if((x&1) == 0) ++r; + return r; +} + +// (public) returns index of lowest 1-bit (or -1 if none) +function bnGetLowestSetBit() { + for(var i = 0; i < this.t; ++i) + if(this[i] != 0) return i*this.DB+lbit(this[i]); + if(this.s < 0) return this.t*this.DB; + return -1; +} + +// return number of 1 bits in x +function cbit(x) { + var r = 0; + while(x != 0) { x &= x-1; ++r; } + return r; +} + +// (public) return number of set bits +function bnBitCount() { + var r = 0, x = this.s&this.DM; + for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x); + return r; +} + +// (public) true iff nth bit is set +function bnTestBit(n) { + var j = Math.floor(n/this.DB); + if(j >= this.t) return(this.s!=0); + return((this[j]&(1<<(n%this.DB)))!=0); +} + +// (protected) this op (1<>= this.DB; + } + if(a.t < this.t) { + c += a.s; + while(i < this.t) { + c += this[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while(i < a.t) { + c += a[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += a.s; + } + r.s = (c<0)?-1:0; + if(c > 0) r[i++] = c; + else if(c < -1) r[i++] = this.DV+c; + r.t = i; + r.clamp(); +} + +// (public) this + a +function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; } + +// (public) this - a +function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; } + +// (public) this * a +function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; } + +// (public) this^2 +function bnSquare() { var r = nbi(); this.squareTo(r); return r; } + +// (public) this / a +function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; } + +// (public) this % a +function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; } + +// (public) [this/a,this%a] +function bnDivideAndRemainder(a) { + var q = nbi(), r = nbi(); + this.divRemTo(a,q,r); + return new Array(q,r); +} + +// (protected) this *= n, this >= 0, 1 < n < DV +function bnpDMultiply(n) { + this[this.t] = this.am(0,n-1,this,0,0,this.t); + ++this.t; + this.clamp(); +} + +// (protected) this += n << w words, this >= 0 +function bnpDAddOffset(n,w) { + if(n == 0) return; + while(this.t <= w) this[this.t++] = 0; + this[w] += n; + while(this[w] >= this.DV) { + this[w] -= this.DV; + if(++w >= this.t) this[this.t++] = 0; + ++this[w]; + } +} + +// A "null" reducer +function NullExp() {} +function nNop(x) { return x; } +function nMulTo(x,y,r) { x.multiplyTo(y,r); } +function nSqrTo(x,r) { x.squareTo(r); } + +NullExp.prototype.convert = nNop; +NullExp.prototype.revert = nNop; +NullExp.prototype.mulTo = nMulTo; +NullExp.prototype.sqrTo = nSqrTo; + +// (public) this^e +function bnPow(e) { return this.exp(e,new NullExp()); } + +// (protected) r = lower n words of "this * a", a.t <= n +// "this" should be the larger one if appropriate. +function bnpMultiplyLowerTo(a,n,r) { + var i = Math.min(this.t+a.t,n); + r.s = 0; // assumes a,this >= 0 + r.t = i; + while(i > 0) r[--i] = 0; + var j; + for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t); + for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i); + r.clamp(); +} + +// (protected) r = "this * a" without lower n words, n > 0 +// "this" should be the larger one if appropriate. +function bnpMultiplyUpperTo(a,n,r) { + --n; + var i = r.t = this.t+a.t-n; + r.s = 0; // assumes a,this >= 0 + while(--i >= 0) r[i] = 0; + for(i = Math.max(n-this.t,0); i < a.t; ++i) + r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n); + r.clamp(); + r.drShiftTo(1,r); +} + +// Barrett modular reduction +function Barrett(m) { + // setup Barrett + this.r2 = nbi(); + this.q3 = nbi(); + BigInteger.ONE.dlShiftTo(2*m.t,this.r2); + this.mu = this.r2.divide(m); + this.m = m; +} + +function barrettConvert(x) { + if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m); + else if(x.compareTo(this.m) < 0) return x; + else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; } +} + +function barrettRevert(x) { return x; } + +// x = x mod m (HAC 14.42) +function barrettReduce(x) { + x.drShiftTo(this.m.t-1,this.r2); + if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); } + this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3); + this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2); + while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1); + x.subTo(this.r2,x); + while(x.compareTo(this.m) >= 0) x.subTo(this.m,x); +} + +// r = x^2 mod m; x != r +function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + +// r = x*y mod m; x,y != r +function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } + +Barrett.prototype.convert = barrettConvert; +Barrett.prototype.revert = barrettRevert; +Barrett.prototype.reduce = barrettReduce; +Barrett.prototype.mulTo = barrettMulTo; +Barrett.prototype.sqrTo = barrettSqrTo; + +// (public) this^e % m (HAC 14.85) +function bnModPow(e,m) { + var i = e.bitLength(), k, r = nbv(1), z; + if(i <= 0) return r; + else if(i < 18) k = 1; + else if(i < 48) k = 3; + else if(i < 144) k = 4; + else if(i < 768) k = 5; + else k = 6; + if(i < 8) + z = new Classic(m); + else if(m.isEven()) + z = new Barrett(m); + else + z = new Montgomery(m); + + // precomputation + var g = new Array(), n = 3, k1 = k-1, km = (1< 1) { + var g2 = nbi(); + z.sqrTo(g[1],g2); + while(n <= km) { + g[n] = nbi(); + z.mulTo(g2,g[n-2],g[n]); + n += 2; + } + } + + var j = e.t-1, w, is1 = true, r2 = nbi(), t; + i = nbits(e[j])-1; + while(j >= 0) { + if(i >= k1) w = (e[j]>>(i-k1))&km; + else { + w = (e[j]&((1<<(i+1))-1))<<(k1-i); + if(j > 0) w |= e[j-1]>>(this.DB+i-k1); + } + + n = k; + while((w&1) == 0) { w >>= 1; --n; } + if((i -= n) < 0) { i += this.DB; --j; } + if(is1) { // ret == 1, don't bother squaring or multiplying it + g[w].copyTo(r); + is1 = false; + } + else { + while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; } + if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; } + z.mulTo(r2,g[w],r); + } + + while(j >= 0 && (e[j]&(1< 0) { + x.rShiftTo(g,x); + y.rShiftTo(g,y); + } + while(x.signum() > 0) { + if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x); + if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y); + if(x.compareTo(y) >= 0) { + x.subTo(y,x); + x.rShiftTo(1,x); + } + else { + y.subTo(x,y); + y.rShiftTo(1,y); + } + } + if(g > 0) y.lShiftTo(g,y); + return y; +} + +// (protected) this % n, n < 2^26 +function bnpModInt(n) { + if(n <= 0) return 0; + var d = this.DV%n, r = (this.s<0)?n-1:0; + if(this.t > 0) + if(d == 0) r = this[0]%n; + else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n; + return r; +} + +// (public) 1/this % m (HAC 14.61) +function bnModInverse(m) { + var ac = m.isEven(); + if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO; + var u = m.clone(), v = this.clone(); + var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); + while(u.signum() != 0) { + while(u.isEven()) { + u.rShiftTo(1,u); + if(ac) { + if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); } + a.rShiftTo(1,a); + } + else if(!b.isEven()) b.subTo(m,b); + b.rShiftTo(1,b); + } + while(v.isEven()) { + v.rShiftTo(1,v); + if(ac) { + if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); } + c.rShiftTo(1,c); + } + else if(!d.isEven()) d.subTo(m,d); + d.rShiftTo(1,d); + } + if(u.compareTo(v) >= 0) { + u.subTo(v,u); + if(ac) a.subTo(c,a); + b.subTo(d,b); + } + else { + v.subTo(u,v); + if(ac) c.subTo(a,c); + d.subTo(b,d); + } + } + if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO; + if(d.compareTo(m) >= 0) return d.subtract(m); + if(d.signum() < 0) d.addTo(m,d); else return d; + if(d.signum() < 0) return d.add(m); else return d; +} + +var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997]; +var lplim = (1<<26)/lowprimes[lowprimes.length-1]; + +// (public) test primality with certainty >= 1-.5^t +function bnIsProbablePrime(t) { + var i, x = this.abs(); + if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) { + for(i = 0; i < lowprimes.length; ++i) + if(x[0] == lowprimes[i]) return true; + return false; + } + if(x.isEven()) return false; + i = 1; + while(i < lowprimes.length) { + var m = lowprimes[i], j = i+1; + while(j < lowprimes.length && m < lplim) m *= lowprimes[j++]; + m = x.modInt(m); + while(i < j) if(m%lowprimes[i++] == 0) return false; + } + return x.millerRabin(t); +} + +// (protected) true if probably prime (HAC 4.24, Miller-Rabin) +function bnpMillerRabin(t) { + var n1 = this.subtract(BigInteger.ONE); + var k = n1.getLowestSetBit(); + if(k <= 0) return false; + var r = n1.shiftRight(k); + t = (t+1)>>1; + if(t > lowprimes.length) t = lowprimes.length; + var a = nbi(); + for(var i = 0; i < t; ++i) { + //Pick bases at random, instead of starting at 2 + a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]); + var y = a.modPow(r,this); + if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { + var j = 1; + while(j++ < k && y.compareTo(n1) != 0) { + y = y.modPowInt(2,this); + if(y.compareTo(BigInteger.ONE) == 0) return false; + } + if(y.compareTo(n1) != 0) return false; + } + } + return true; +} + +// protected +BigInteger.prototype.chunkSize = bnpChunkSize; +BigInteger.prototype.toRadix = bnpToRadix; +BigInteger.prototype.fromRadix = bnpFromRadix; +BigInteger.prototype.fromNumber = bnpFromNumber; +BigInteger.prototype.bitwiseTo = bnpBitwiseTo; +BigInteger.prototype.changeBit = bnpChangeBit; +BigInteger.prototype.addTo = bnpAddTo; +BigInteger.prototype.dMultiply = bnpDMultiply; +BigInteger.prototype.dAddOffset = bnpDAddOffset; +BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; +BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; +BigInteger.prototype.modInt = bnpModInt; +BigInteger.prototype.millerRabin = bnpMillerRabin; + +// public +BigInteger.prototype.clone = bnClone; +BigInteger.prototype.intValue = bnIntValue; +BigInteger.prototype.byteValue = bnByteValue; +BigInteger.prototype.shortValue = bnShortValue; +BigInteger.prototype.signum = bnSigNum; +BigInteger.prototype.toByteArray = bnToByteArray; +BigInteger.prototype.equals = bnEquals; +BigInteger.prototype.min = bnMin; +BigInteger.prototype.max = bnMax; +BigInteger.prototype.and = bnAnd; +BigInteger.prototype.or = bnOr; +BigInteger.prototype.xor = bnXor; +BigInteger.prototype.andNot = bnAndNot; +BigInteger.prototype.not = bnNot; +BigInteger.prototype.shiftLeft = bnShiftLeft; +BigInteger.prototype.shiftRight = bnShiftRight; +BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; +BigInteger.prototype.bitCount = bnBitCount; +BigInteger.prototype.testBit = bnTestBit; +BigInteger.prototype.setBit = bnSetBit; +BigInteger.prototype.clearBit = bnClearBit; +BigInteger.prototype.flipBit = bnFlipBit; +BigInteger.prototype.add = bnAdd; +BigInteger.prototype.subtract = bnSubtract; +BigInteger.prototype.multiply = bnMultiply; +BigInteger.prototype.divide = bnDivide; +BigInteger.prototype.remainder = bnRemainder; +BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder; +BigInteger.prototype.modPow = bnModPow; +BigInteger.prototype.modInverse = bnModInverse; +BigInteger.prototype.pow = bnPow; +BigInteger.prototype.gcd = bnGCD; +BigInteger.prototype.isProbablePrime = bnIsProbablePrime; + +// JSBN-specific extension +BigInteger.prototype.square = bnSquare; + +// BigInteger interfaces not implemented in jsbn: + +// BigInteger(int signum, byte[] magnitude) +// double doubleValue() +// float floatValue() +// int hashCode() +// long longValue() +// static BigInteger valueOf(long val) diff --git a/S3WebApp/S3/assets/js/moment.min.js b/S3WebApp/S3/assets/js/moment.min.js new file mode 100644 index 0000000..d301ddb --- /dev/null +++ b/S3WebApp/S3/assets/js/moment.min.js @@ -0,0 +1,7 @@ +//! moment.js +//! version : 2.13.0 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return fd.apply(null,arguments)}function b(a){fd=a}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c0)for(c in hd)d=hd[c],e=b[d],m(e)||(a[d]=e);return a}function o(b){n(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),id===!1&&(id=!0,a.updateOffset(this),id=!1)}function p(a){return a instanceof o||null!=a&&null!=a._isAMomentObject}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=q(b)),c}function s(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&r(a[d])!==r(b[d]))&&g++;return g+f}function t(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function u(b,c){var d=!0;return g(function(){return null!=a.deprecationHandler&&a.deprecationHandler(null,b),d&&(t(b+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),d=!1),c.apply(this,arguments)},c)}function v(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),jd[b]||(t(c),jd[b]=!0)}function w(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}function x(a){return"[object Object]"===Object.prototype.toString.call(a)}function y(a){var b,c;for(c in a)b=a[c],w(b)?this[c]=b:this["_"+c]=b;this._config=a,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function z(a,b){var c,d=g({},a);for(c in b)f(b,c)&&(x(a[c])&&x(b[c])?(d[c]={},g(d[c],a[c]),g(d[c],b[c])):null!=b[c]?d[c]=b[c]:delete d[c]);return d}function A(a){null!=a&&this.set(a)}function B(a){return a?a.toLowerCase().replace("_","-"):a}function C(a){for(var b,c,d,e,f=0;f0;){if(d=D(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&s(e,c,!0)>=b-1)break;b--}f++}return null}function D(a){var b=null;if(!nd[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=ld._abbr,require("./locale/"+a),E(b)}catch(c){}return nd[a]}function E(a,b){var c;return a&&(c=m(b)?H(a):F(a,b),c&&(ld=c)),ld._abbr}function F(a,b){return null!==b?(b.abbr=a,null!=nd[a]?(v("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),b=z(nd[a]._config,b)):null!=b.parentLocale&&(null!=nd[b.parentLocale]?b=z(nd[b.parentLocale]._config,b):v("parentLocaleUndefined","specified parentLocale is not defined yet")),nd[a]=new A(b),E(a),nd[a]):(delete nd[a],null)}function G(a,b){if(null!=b){var c;null!=nd[a]&&(b=z(nd[a]._config,b)),c=new A(b),c.parentLocale=nd[a],nd[a]=c,E(a)}else null!=nd[a]&&(null!=nd[a].parentLocale?nd[a]=nd[a].parentLocale:null!=nd[a]&&delete nd[a]);return nd[a]}function H(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return ld;if(!c(a)){if(b=D(a))return b;a=[a]}return C(a)}function I(){return kd(nd)}function J(a,b){var c=a.toLowerCase();od[c]=od[c+"s"]=od[b]=a}function K(a){return"string"==typeof a?od[a]||od[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)f(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(b,c){return function(d){return null!=d?(O(this,b,d),a.updateOffset(this,c),this):N(this,b)}}function N(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function O(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)}function P(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=K(a),w(this[a]))return this[a](b);return this}function Q(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function R(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(sd[a]=e),b&&(sd[b[0]]=function(){return Q(e.apply(this,arguments),b[1],b[2])}),c&&(sd[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function S(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function T(a){var b,c,d=a.match(pd);for(b=0,c=d.length;c>b;b++)sd[d[b]]?d[b]=sd[d[b]]:d[b]=S(d[b]);return function(b){var e,f="";for(e=0;c>e;e++)f+=d[e]instanceof Function?d[e].call(b,a):d[e];return f}}function U(a,b){return a.isValid()?(b=V(b,a.localeData()),rd[b]=rd[b]||T(b),rd[b](a)):a.localeData().invalidDate()}function V(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(qd.lastIndex=0;d>=0&&qd.test(a);)a=a.replace(qd,c),qd.lastIndex=0,d-=1;return a}function W(a,b,c){Kd[a]=w(b)?b:function(a,d){return a&&c?c:b}}function X(a,b){return f(Kd,a)?Kd[a](b._strict,b._locale):new RegExp(Y(a))}function Y(a){return Z(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function Z(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=r(a)}),c=0;cd;++d)f=h([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,"").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,"").toLocaleLowerCase();return c?"MMM"===b?(e=md.call(this._shortMonthsParse,g),-1!==e?e:null):(e=md.call(this._longMonthsParse,g),-1!==e?e:null):"MMM"===b?(e=md.call(this._shortMonthsParse,g),-1!==e?e:(e=md.call(this._longMonthsParse,g),-1!==e?e:null)):(e=md.call(this._longMonthsParse,g),-1!==e?e:(e=md.call(this._shortMonthsParse,g),-1!==e?e:null))}function fa(a,b,c){var d,e,f;if(this._monthsParseExact)return ea.call(this,a,b,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function ga(a,b){var c;if(!a.isValid())return a;if("string"==typeof b)if(/^\d+$/.test(b))b=r(b);else if(b=a.localeData().monthsParse(b),"number"!=typeof b)return a;return c=Math.min(a.date(),ba(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a}function ha(b){return null!=b?(ga(this,b),a.updateOffset(this,!0),this):N(this,"Month")}function ia(){return ba(this.year(),this.month())}function ja(a){return this._monthsParseExact?(f(this,"_monthsRegex")||la.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex}function ka(a){return this._monthsParseExact?(f(this,"_monthsRegex")||la.call(this),a?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex}function la(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;12>b;b++)c=h([2e3,b]),d.push(this.monthsShort(c,"")),e.push(this.months(c,"")),f.push(this.months(c,"")),f.push(this.monthsShort(c,""));for(d.sort(a),e.sort(a),f.sort(a),b=0;12>b;b++)d[b]=Z(d[b]),e[b]=Z(e[b]),f[b]=Z(f[b]);this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+e.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")}function ma(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[Nd]<0||c[Nd]>11?Nd:c[Od]<1||c[Od]>ba(c[Md],c[Nd])?Od:c[Pd]<0||c[Pd]>24||24===c[Pd]&&(0!==c[Qd]||0!==c[Rd]||0!==c[Sd])?Pd:c[Qd]<0||c[Qd]>59?Qd:c[Rd]<0||c[Rd]>59?Rd:c[Sd]<0||c[Sd]>999?Sd:-1,j(a)._overflowDayOfYear&&(Md>b||b>Od)&&(b=Od),j(a)._overflowWeeks&&-1===b&&(b=Td),j(a)._overflowWeekday&&-1===b&&(b=Ud),j(a).overflow=b),a}function na(a){var b,c,d,e,f,g,h=a._i,i=$d.exec(h)||_d.exec(h);if(i){for(j(a).iso=!0,b=0,c=be.length;c>b;b++)if(be[b][1].exec(i[1])){e=be[b][0],d=be[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=ce.length;c>b;b++)if(ce[b][1].exec(i[3])){f=(i[2]||" ")+ce[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!ae.exec(i[4]))return void(a._isValid=!1);g="Z"}a._f=e+(f||"")+(g||""),Ca(a)}else a._isValid=!1}function oa(b){var c=de.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(na(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function pa(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 100>a&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function qa(a){var b=new Date(Date.UTC.apply(null,arguments));return 100>a&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ra(a){return sa(a)?366:365}function sa(a){return a%4===0&&a%100!==0||a%400===0}function ta(){return sa(this.year())}function ua(a,b,c){var d=7+b-c,e=(7+qa(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return 0>=j?(f=a-1,g=ra(f)+j):j>ra(a)?(f=a+1,g=j-ra(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return 1>g?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(ra(a)-d+e)/7}function ya(a,b,c){return null!=a?a:null!=b?b:c}function za(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function Aa(a){var b,c,d,e,f=[];if(!a._d){for(d=za(a),a._w&&null==a._a[Od]&&null==a._a[Nd]&&Ba(a),a._dayOfYear&&(e=ya(a._a[Md],d[Md]),a._dayOfYear>ra(e)&&(j(a)._overflowDayOfYear=!0),c=qa(e,0,a._dayOfYear),a._a[Nd]=c.getUTCMonth(),a._a[Od]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[Pd]&&0===a._a[Qd]&&0===a._a[Rd]&&0===a._a[Sd]&&(a._nextDay=!0,a._a[Pd]=0),a._d=(a._useUTC?qa:pa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Pd]=24)}}function Ba(a){var b,c,d,e,f,g,h,i;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=ya(b.GG,a._a[Md],wa(Ka(),1,4).year),d=ya(b.W,1),e=ya(b.E,1),(1>e||e>7)&&(i=!0)):(f=a._locale._week.dow,g=a._locale._week.doy,c=ya(b.gg,a._a[Md],wa(Ka(),f,g).year),d=ya(b.w,1),null!=b.d?(e=b.d,(0>e||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f),1>d||d>xa(c,f,g)?j(a)._overflowWeeks=!0:null!=i?j(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[Md]=h.year,a._dayOfYear=h.dayOfYear)}function Ca(b){if(b._f===a.ISO_8601)return void na(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=V(b._f,b._locale).match(pd)||[],c=0;c0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),sd[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),aa(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[Pd]<=12&&b._a[Pd]>0&&(j(b).bigHour=void 0),j(b).parsedDateParts=b._a.slice(0),j(b).meridiem=b._meridiem,b._a[Pd]=Da(b._locale,b._a[Pd],b._meridiem),Aa(b),ma(b)}function Da(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function Ea(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ef)&&(d=f,c=b));g(a,c||b)}function Fa(a){if(!a._d){var b=L(a._i);a._a=e([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),Aa(a)}}function Ga(a){var b=new o(ma(Ha(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function Ha(a){var b=a._i,e=a._f;return a._locale=a._locale||H(a._l),null===b||void 0===e&&""===b?l({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),p(b)?new o(ma(b)):(c(e)?Ea(a):e?Ca(a):d(b)?a._d=b:Ia(a),k(a)||(a._d=null),a))}function Ia(b){var f=b._i;void 0===f?b._d=new Date(a.now()):d(f)?b._d=new Date(f.valueOf()):"string"==typeof f?oa(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),Aa(b)):"object"==typeof f?Fa(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Ja(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,Ga(f)}function Ka(a,b,c,d){return Ja(a,b,c,d,!1)}function La(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Ka();for(d=b[0],e=1;ea&&(a=-a,c="-"),c+Q(~~(a/60),2)+b+Q(~~a%60,2)})}function Ra(a,b){var c=(b||"").match(a)||[],d=c[c.length-1]||[],e=(d+"").match(ie)||["-",0,0],f=+(60*e[1])+r(e[2]);return"+"===e[0]?f:-f}function Sa(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(p(b)||d(b)?b.valueOf():Ka(b).valueOf())-e.valueOf(),e._d.setTime(e._d.valueOf()+f),a.updateOffset(e,!1),e):Ka(b).local()}function Ta(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Ua(b,c){var d,e=this._offset||0;return this.isValid()?null!=b?("string"==typeof b?b=Ra(Hd,b):Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ta(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?jb(this,db(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ta(this):null!=b?this:NaN}function Va(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Wa(a){return this.utcOffset(0,a)}function Xa(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ta(this),"m")),this}function Ya(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ra(Gd,this._i)),this}function Za(a){return this.isValid()?(a=a?Ka(a).utcOffset():0,(this.utcOffset()-a)%60===0):!1}function $a(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function _a(){if(!m(this._isDSTShifted))return this._isDSTShifted;var a={};if(n(a,this),a=Ha(a),a._a){var b=a._isUTC?h(a._a):Ka(a._a);this._isDSTShifted=this.isValid()&&s(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ab(){return this.isValid()?!this._isUTC:!1}function bb(){return this.isValid()?this._isUTC:!1}function cb(){return this.isValid()?this._isUTC&&0===this._offset:!1}function db(a,b){var c,d,e,g=a,h=null;return Pa(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=je.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:r(h[Od])*c,h:r(h[Pd])*c,m:r(h[Qd])*c,s:r(h[Rd])*c,ms:r(h[Sd])*c}):(h=ke.exec(a))?(c="-"===h[1]?-1:1,g={y:eb(h[2],c),M:eb(h[3],c),w:eb(h[4],c),d:eb(h[5],c),h:eb(h[6],c),m:eb(h[7],c),s:eb(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=gb(Ka(g.from),Ka(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Oa(g),Pa(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function eb(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function fb(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function gb(a,b){var c;return a.isValid()&&b.isValid()?(b=Sa(b,a),a.isBefore(b)?c=fb(a,b):(c=fb(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function hb(a){return 0>a?-1*Math.round(-1*a):Math.round(a)}function ib(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(v(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=db(c,d),jb(this,e,a),this}}function jb(b,c,d,e){var f=c._milliseconds,g=hb(c._days),h=hb(c._months);b.isValid()&&(e=null==e?!0:e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&O(b,"Date",N(b,"Date")+g*d),h&&ga(b,N(b,"Month")+h*d),e&&a.updateOffset(b,g||h))}function kb(a,b){var c=a||Ka(),d=Sa(c,this).startOf("day"),e=this.diff(d,"days",!0),f=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse",g=b&&(w(b[f])?b[f]():b[f]);return this.format(g||this.localeData().calendar(f,this,Ka(c)))}function lb(){return new o(this)}function mb(a,b){var c=p(a)?a:Ka(a);return this.isValid()&&c.isValid()?(b=K(m(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)||0}function ub(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function vb(){var a=this.clone().utc();return 0f&&(b=f),Vb.call(this,a,b,c,d,e))}function Vb(a,b,c,d,e){var f=va(a,b,c,d,e),g=qa(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Wb(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Xb(a){return wa(a,this._week.dow,this._week.doy).week}function Yb(){return this._week.dow}function Zb(){return this._week.doy}function $b(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function _b(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function ac(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function bc(a,b){return c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]}function cc(a){return this._weekdaysShort[a.day()]}function dc(a){return this._weekdaysMin[a.day()]}function ec(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;7>d;++d)f=h([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=md.call(this._weekdaysParse,g),-1!==e?e:null):"ddd"===b?(e=md.call(this._shortWeekdaysParse,g),-1!==e?e:null):(e=md.call(this._minWeekdaysParse,g),-1!==e?e:null):"dddd"===b?(e=md.call(this._weekdaysParse,g),-1!==e?e:(e=md.call(this._shortWeekdaysParse,g),-1!==e?e:(e=md.call(this._minWeekdaysParse,g),-1!==e?e:null))):"ddd"===b?(e=md.call(this._shortWeekdaysParse,g),-1!==e?e:(e=md.call(this._weekdaysParse,g),-1!==e?e:(e=md.call(this._minWeekdaysParse,g),-1!==e?e:null))):(e=md.call(this._minWeekdaysParse,g),-1!==e?e:(e=md.call(this._weekdaysParse,g),-1!==e?e:(e=md.call(this._shortWeekdaysParse,g),-1!==e?e:null)))}function fc(a,b,c){var d,e,f;if(this._weekdaysParseExact)return ec.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;7>d;d++){if(e=h([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function gc(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=ac(a,this.localeData()),this.add(a-b,"d")):b}function hc(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function ic(a){return this.isValid()?null==a?this.day()||7:this.day(this.day()%7?a:a-7):null!=a?this:NaN}function jc(a){return this._weekdaysParseExact?(f(this,"_weekdaysRegex")||mc.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex}function kc(a){return this._weekdaysParseExact?(f(this,"_weekdaysRegex")||mc.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function lc(a){return this._weekdaysParseExact?(f(this,"_weekdaysRegex")||mc.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function mc(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],i=[],j=[],k=[];for(b=0;7>b;b++)c=h([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),i.push(e),j.push(f),k.push(d),k.push(e),k.push(f);for(g.sort(a),i.sort(a),j.sort(a),k.sort(a),b=0;7>b;b++)i[b]=Z(i[b]),j[b]=Z(j[b]),k[b]=Z(k[b]);this._weekdaysRegex=new RegExp("^("+k.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i")}function nc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function oc(){return this.hours()%12||12}function pc(){return this.hours()||24}function qc(a,b){R(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function rc(a,b){return b._meridiemParse}function sc(a){return"p"===(a+"").toLowerCase().charAt(0)}function tc(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function uc(a,b){b[Sd]=r(1e3*("0."+a))}function vc(){return this._isUTC?"UTC":""}function wc(){return this._isUTC?"Coordinated Universal Time":""}function xc(a){return Ka(1e3*a)}function yc(){return Ka.apply(null,arguments).parseZone()}function zc(a,b,c){var d=this._calendar[a];return w(d)?d.call(b,c):d}function Ac(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function Bc(){return this._invalidDate}function Cc(a){return this._ordinal.replace("%d",a)}function Dc(a){return a}function Ec(a,b,c,d){var e=this._relativeTime[c];return w(e)?e(a,b,c,d):e.replace(/%d/i,a)}function Fc(a,b){var c=this._relativeTime[a>0?"future":"past"];return w(c)?c(b):c.replace(/%s/i,b)}function Gc(a,b,c,d){var e=H(),f=h().set(d,b);return e[c](f,a)}function Hc(a,b,c){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return Gc(a,b,c,"month");var d,e=[];for(d=0;12>d;d++)e[d]=Gc(a,d,c,"month");return e}function Ic(a,b,c,d){"boolean"==typeof a?("number"==typeof b&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,"number"==typeof b&&(c=b,b=void 0),b=b||"");var e=H(),f=a?e._week.dow:0;if(null!=c)return Gc(b,(c+f)%7,d,"day");var g,h=[];for(g=0;7>g;g++)h[g]=Gc(b,(g+f)%7,d,"day");return h}function Jc(a,b){return Hc(a,b,"months")}function Kc(a,b){return Hc(a,b,"monthsShort")}function Lc(a,b,c){return Ic(a,b,c,"weekdays")}function Mc(a,b,c){return Ic(a,b,c,"weekdaysShort")}function Nc(a,b,c){return Ic(a,b,c,"weekdaysMin")}function Oc(){var a=this._data;return this._milliseconds=Le(this._milliseconds),this._days=Le(this._days),this._months=Le(this._months),a.milliseconds=Le(a.milliseconds),a.seconds=Le(a.seconds),a.minutes=Le(a.minutes),a.hours=Le(a.hours),a.months=Le(a.months),a.years=Le(a.years),this}function Pc(a,b,c,d){var e=db(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function Qc(a,b){return Pc(this,a,b,1)}function Rc(a,b){return Pc(this,a,b,-1)}function Sc(a){return 0>a?Math.floor(a):Math.ceil(a)}function Tc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*Sc(Vc(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=q(f/1e3),i.seconds=a%60,b=q(a/60),i.minutes=b%60,c=q(b/60),i.hours=c%24,g+=q(c/24),e=q(Uc(g)),h+=e,g-=Sc(Vc(e)),d=q(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function Uc(a){return 4800*a/146097}function Vc(a){return 146097*a/4800}function Wc(a){var b,c,d=this._milliseconds;if(a=K(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+Uc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(Vc(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function Xc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*r(this._months/12)}function Yc(a){return function(){return this.as(a)}}function Zc(a){ +return a=K(a),this[a+"s"]()}function $c(a){return function(){return this._data[a]}}function _c(){return q(this.days()/7)}function ad(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function bd(a,b,c){var d=db(a).abs(),e=_e(d.as("s")),f=_e(d.as("m")),g=_e(d.as("h")),h=_e(d.as("d")),i=_e(d.as("M")),j=_e(d.as("y")),k=e=f&&["m"]||f=g&&["h"]||g=h&&["d"]||h=i&&["M"]||i=j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,ad.apply(null,k)}function cd(a,b){return void 0===af[a]?!1:void 0===b?af[a]:(af[a]=b,!0)}function dd(a){var b=this.localeData(),c=bd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function ed(){var a,b,c,d=bf(this._milliseconds)/1e3,e=bf(this._days),f=bf(this._months);a=q(d/60),b=q(a/60),d%=60,a%=60,c=q(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var fd,gd;gd=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;c>d;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};var hd=a.momentProperties=[],id=!1,jd={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var kd;kd=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)f(a,b)&&c.push(b);return c};var ld,md,nd={},od={},pd=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,qd=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,rd={},sd={},td=/\d/,ud=/\d\d/,vd=/\d{3}/,wd=/\d{4}/,xd=/[+-]?\d{6}/,yd=/\d\d?/,zd=/\d\d\d\d?/,Ad=/\d\d\d\d\d\d?/,Bd=/\d{1,3}/,Cd=/\d{1,4}/,Dd=/[+-]?\d{1,6}/,Ed=/\d+/,Fd=/[+-]?\d+/,Gd=/Z|[+-]\d\d:?\d\d/gi,Hd=/Z|[+-]\d\d(?::?\d\d)?/gi,Id=/[+-]?\d+(\.\d{1,3})?/,Jd=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Kd={},Ld={},Md=0,Nd=1,Od=2,Pd=3,Qd=4,Rd=5,Sd=6,Td=7,Ud=8;md=Array.prototype.indexOf?Array.prototype.indexOf:function(a){var b;for(b=0;b=a?""+a:"+"+a}),R(0,["YY",2],0,function(){return this.year()%100}),R(0,["YYYY",4],0,"year"),R(0,["YYYYY",5],0,"year"),R(0,["YYYYYY",6,!0],0,"year"),J("year","y"),W("Y",Fd),W("YY",yd,ud),W("YYYY",Cd,wd),W("YYYYY",Dd,xd),W("YYYYYY",Dd,xd),$(["YYYYY","YYYYYY"],Md),$("YYYY",function(b,c){c[Md]=2===b.length?a.parseTwoDigitYear(b):r(b)}),$("YY",function(b,c){c[Md]=a.parseTwoDigitYear(b)}),$("Y",function(a,b){b[Md]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return r(a)+(r(a)>68?1900:2e3)};var ee=M("FullYear",!0);a.ISO_8601=function(){};var fe=u("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Ka.apply(null,arguments);return this.isValid()&&a.isValid()?this>a?this:a:l()}),ge=u("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Ka.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:l()}),he=function(){return Date.now?Date.now():+new Date};Qa("Z",":"),Qa("ZZ",""),W("Z",Hd),W("ZZ",Hd),$(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ra(Hd,a)});var ie=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var je=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,ke=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;db.fn=Oa.prototype;var le=ib(1,"add"),me=ib(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ne=u("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});R(0,["gg",2],0,function(){return this.weekYear()%100}),R(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Pb("gggg","weekYear"),Pb("ggggg","weekYear"),Pb("GGGG","isoWeekYear"),Pb("GGGGG","isoWeekYear"),J("weekYear","gg"),J("isoWeekYear","GG"),W("G",Fd),W("g",Fd),W("GG",yd,ud),W("gg",yd,ud),W("GGGG",Cd,wd),W("gggg",Cd,wd),W("GGGGG",Dd,xd),W("ggggg",Dd,xd),_(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=r(a)}),_(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),R("Q",0,"Qo","quarter"),J("quarter","Q"),W("Q",td),$("Q",function(a,b){b[Nd]=3*(r(a)-1)}),R("w",["ww",2],"wo","week"),R("W",["WW",2],"Wo","isoWeek"),J("week","w"),J("isoWeek","W"),W("w",yd),W("ww",yd,ud),W("W",yd),W("WW",yd,ud),_(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=r(a)});var oe={dow:0,doy:6};R("D",["DD",2],"Do","date"),J("date","D"),W("D",yd),W("DD",yd,ud),W("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),$(["D","DD"],Od),$("Do",function(a,b){b[Od]=r(a.match(yd)[0],10)});var pe=M("Date",!0);R("d",0,"do","day"),R("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),R("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),R("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),R("e",0,0,"weekday"),R("E",0,0,"isoWeekday"),J("day","d"),J("weekday","e"),J("isoWeekday","E"),W("d",yd),W("e",yd),W("E",yd),W("dd",function(a,b){return b.weekdaysMinRegex(a)}),W("ddd",function(a,b){return b.weekdaysShortRegex(a)}),W("dddd",function(a,b){return b.weekdaysRegex(a)}),_(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:j(c).invalidWeekday=a}),_(["d","e","E"],function(a,b,c,d){b[d]=r(a)});var qe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),re="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),se="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),te=Jd,ue=Jd,ve=Jd;R("DDD",["DDDD",3],"DDDo","dayOfYear"),J("dayOfYear","DDD"),W("DDD",Bd),W("DDDD",vd),$(["DDD","DDDD"],function(a,b,c){c._dayOfYear=r(a)}),R("H",["HH",2],0,"hour"),R("h",["hh",2],0,oc),R("k",["kk",2],0,pc),R("hmm",0,0,function(){return""+oc.apply(this)+Q(this.minutes(),2)}),R("hmmss",0,0,function(){return""+oc.apply(this)+Q(this.minutes(),2)+Q(this.seconds(),2)}),R("Hmm",0,0,function(){return""+this.hours()+Q(this.minutes(),2)}),R("Hmmss",0,0,function(){return""+this.hours()+Q(this.minutes(),2)+Q(this.seconds(),2)}),qc("a",!0),qc("A",!1),J("hour","h"),W("a",rc),W("A",rc),W("H",yd),W("h",yd),W("HH",yd,ud),W("hh",yd,ud),W("hmm",zd),W("hmmss",Ad),W("Hmm",zd),W("Hmmss",Ad),$(["H","HH"],Pd),$(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),$(["h","hh"],function(a,b,c){b[Pd]=r(a),j(c).bigHour=!0}),$("hmm",function(a,b,c){var d=a.length-2;b[Pd]=r(a.substr(0,d)),b[Qd]=r(a.substr(d)),j(c).bigHour=!0}),$("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[Pd]=r(a.substr(0,d)),b[Qd]=r(a.substr(d,2)),b[Rd]=r(a.substr(e)),j(c).bigHour=!0}),$("Hmm",function(a,b,c){var d=a.length-2;b[Pd]=r(a.substr(0,d)),b[Qd]=r(a.substr(d))}),$("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[Pd]=r(a.substr(0,d)),b[Qd]=r(a.substr(d,2)),b[Rd]=r(a.substr(e))});var we=/[ap]\.?m?\.?/i,xe=M("Hours",!0);R("m",["mm",2],0,"minute"),J("minute","m"),W("m",yd),W("mm",yd,ud),$(["m","mm"],Qd);var ye=M("Minutes",!1);R("s",["ss",2],0,"second"),J("second","s"),W("s",yd),W("ss",yd,ud),$(["s","ss"],Rd);var ze=M("Seconds",!1);R("S",0,0,function(){return~~(this.millisecond()/100)}),R(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),R(0,["SSS",3],0,"millisecond"),R(0,["SSSS",4],0,function(){return 10*this.millisecond()}),R(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),R(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),R(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),R(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),R(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),J("millisecond","ms"),W("S",Bd,td),W("SS",Bd,ud),W("SSS",Bd,vd);var Ae;for(Ae="SSSS";Ae.length<=9;Ae+="S")W(Ae,Ed);for(Ae="S";Ae.length<=9;Ae+="S")$(Ae,uc);var Be=M("Milliseconds",!1);R("z",0,0,"zoneAbbr"),R("zz",0,0,"zoneName");var Ce=o.prototype;Ce.add=le,Ce.calendar=kb,Ce.clone=lb,Ce.diff=sb,Ce.endOf=Eb,Ce.format=wb,Ce.from=xb,Ce.fromNow=yb,Ce.to=zb,Ce.toNow=Ab,Ce.get=P,Ce.invalidAt=Nb,Ce.isAfter=mb,Ce.isBefore=nb,Ce.isBetween=ob,Ce.isSame=pb,Ce.isSameOrAfter=qb,Ce.isSameOrBefore=rb,Ce.isValid=Lb,Ce.lang=ne,Ce.locale=Bb,Ce.localeData=Cb,Ce.max=ge,Ce.min=fe,Ce.parsingFlags=Mb,Ce.set=P,Ce.startOf=Db,Ce.subtract=me,Ce.toArray=Ib,Ce.toObject=Jb,Ce.toDate=Hb,Ce.toISOString=vb,Ce.toJSON=Kb,Ce.toString=ub,Ce.unix=Gb,Ce.valueOf=Fb,Ce.creationData=Ob,Ce.year=ee,Ce.isLeapYear=ta,Ce.weekYear=Qb,Ce.isoWeekYear=Rb,Ce.quarter=Ce.quarters=Wb,Ce.month=ha,Ce.daysInMonth=ia,Ce.week=Ce.weeks=$b,Ce.isoWeek=Ce.isoWeeks=_b,Ce.weeksInYear=Tb,Ce.isoWeeksInYear=Sb,Ce.date=pe,Ce.day=Ce.days=gc,Ce.weekday=hc,Ce.isoWeekday=ic,Ce.dayOfYear=nc,Ce.hour=Ce.hours=xe,Ce.minute=Ce.minutes=ye,Ce.second=Ce.seconds=ze,Ce.millisecond=Ce.milliseconds=Be,Ce.utcOffset=Ua,Ce.utc=Wa,Ce.local=Xa,Ce.parseZone=Ya,Ce.hasAlignedHourOffset=Za,Ce.isDST=$a,Ce.isDSTShifted=_a,Ce.isLocal=ab,Ce.isUtcOffset=bb,Ce.isUtc=cb,Ce.isUTC=cb,Ce.zoneAbbr=vc,Ce.zoneName=wc,Ce.dates=u("dates accessor is deprecated. Use date instead.",pe),Ce.months=u("months accessor is deprecated. Use month instead",ha),Ce.years=u("years accessor is deprecated. Use year instead",ee),Ce.zone=u("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Va);var De=Ce,Ee={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Fe={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Ge="Invalid date",He="%d",Ie=/\d{1,2}/,Je={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ke=A.prototype;Ke._calendar=Ee,Ke.calendar=zc,Ke._longDateFormat=Fe,Ke.longDateFormat=Ac,Ke._invalidDate=Ge,Ke.invalidDate=Bc,Ke._ordinal=He,Ke.ordinal=Cc,Ke._ordinalParse=Ie,Ke.preparse=Dc,Ke.postformat=Dc,Ke._relativeTime=Je,Ke.relativeTime=Ec,Ke.pastFuture=Fc,Ke.set=y,Ke.months=ca,Ke._months=Wd,Ke.monthsShort=da,Ke._monthsShort=Xd,Ke.monthsParse=fa,Ke._monthsRegex=Zd,Ke.monthsRegex=ka,Ke._monthsShortRegex=Yd,Ke.monthsShortRegex=ja,Ke.week=Xb,Ke._week=oe,Ke.firstDayOfYear=Zb,Ke.firstDayOfWeek=Yb,Ke.weekdays=bc,Ke._weekdays=qe,Ke.weekdaysMin=dc,Ke._weekdaysMin=se,Ke.weekdaysShort=cc,Ke._weekdaysShort=re,Ke.weekdaysParse=fc,Ke._weekdaysRegex=te,Ke.weekdaysRegex=jc,Ke._weekdaysShortRegex=ue,Ke.weekdaysShortRegex=kc,Ke._weekdaysMinRegex=ve,Ke.weekdaysMinRegex=lc,Ke.isPM=sc,Ke._meridiemParse=we,Ke.meridiem=tc,E("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===r(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=u("moment.lang is deprecated. Use moment.locale instead.",E),a.langData=u("moment.langData is deprecated. Use moment.localeData instead.",H);var Le=Math.abs,Me=Yc("ms"),Ne=Yc("s"),Oe=Yc("m"),Pe=Yc("h"),Qe=Yc("d"),Re=Yc("w"),Se=Yc("M"),Te=Yc("y"),Ue=$c("milliseconds"),Ve=$c("seconds"),We=$c("minutes"),Xe=$c("hours"),Ye=$c("days"),Ze=$c("months"),$e=$c("years"),_e=Math.round,af={s:45,m:45,h:22,d:26,M:11},bf=Math.abs,cf=Oa.prototype;cf.abs=Oc,cf.add=Qc,cf.subtract=Rc,cf.as=Wc,cf.asMilliseconds=Me,cf.asSeconds=Ne,cf.asMinutes=Oe,cf.asHours=Pe,cf.asDays=Qe,cf.asWeeks=Re,cf.asMonths=Se,cf.asYears=Te,cf.valueOf=Xc,cf._bubble=Tc,cf.get=Zc,cf.milliseconds=Ue,cf.seconds=Ve,cf.minutes=We,cf.hours=Xe,cf.days=Ye,cf.weeks=_c,cf.months=Ze,cf.years=$e,cf.humanize=dd,cf.toISOString=ed,cf.toString=ed,cf.toJSON=ed,cf.locale=Bb,cf.localeData=Cb,cf.toIsoString=u("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ed),cf.lang=ne,R("X",0,0,"unix"),R("x",0,0,"valueOf"),W("x",Fd),W("X",Id),$("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),$("x",function(a,b,c){c._d=new Date(r(a))}),a.version="2.13.0",b(Ka),a.fn=De,a.min=Ma,a.max=Na,a.now=he,a.utc=h,a.unix=xc,a.months=Jc,a.isDate=d,a.locale=E,a.invalid=l,a.duration=db,a.isMoment=p,a.weekdays=Lc,a.parseZone=yc,a.localeData=H,a.isDuration=Pa,a.monthsShort=Kc,a.weekdaysMin=Nc,a.defineLocale=F,a.updateLocale=G,a.locales=I,a.weekdaysShort=Mc,a.normalizeUnits=K,a.relativeTimeThreshold=cd,a.prototype=De;var df=a;return df}); \ No newline at end of file diff --git a/S3WebApp/S3/assets/js/sjcl.js b/S3WebApp/S3/assets/js/sjcl.js new file mode 100644 index 0000000..fd5c19d --- /dev/null +++ b/S3WebApp/S3/assets/js/sjcl.js @@ -0,0 +1,56 @@ +"use strict";function q(a){throw a;}var s=void 0,u=!1;var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toString=function(){return"CORRUPT: "+this.message};this.message=a},invalid:function(a){this.toString=function(){return"INVALID: "+this.message};this.message=a},bug:function(a){this.toString=function(){return"BUG: "+this.message};this.message=a},notReady:function(a){this.toString=function(){return"NOT READY: "+this.message};this.message=a}}}; +"undefined"!==typeof module&&module.exports&&(module.exports=sjcl);"function"===typeof define&&define([],function(){return sjcl}); +sjcl.cipher.aes=function(a){this.l[0][0][0]||this.F();var b,c,d,e,g=this.l[0][4],f=this.l[1];b=a.length;var h=1;4!==b&&(6!==b&&8!==b)&&q(new sjcl.exception.invalid("invalid aes key size"));this.b=[d=a.slice(0),e=[]];for(a=b;a<4*b+28;a++){c=d[a-1];if(0===a%b||8===b&&4===a%b)c=g[c>>>24]<<24^g[c>>16&255]<<16^g[c>>8&255]<<8^g[c&255],0===a%b&&(c=c<<8^c>>>24^h<<24,h=h<<1^283*(h>>7));d[a]=d[a-b]^c}for(b=0;a;b++,a--)c=d[b&3?a:a-4],e[b]=4>=a||4>b?c:f[0][g[c>>>24]]^f[1][g[c>>16&255]]^f[2][g[c>>8&255]]^f[3][g[c& +255]]}; +sjcl.cipher.aes.prototype={encrypt:function(a){return w(this,a,0)},decrypt:function(a){return w(this,a,1)},l:[[[],[],[],[],[]],[[],[],[],[],[]]],F:function(){var a=this.l[0],b=this.l[1],c=a[4],d=b[4],e,g,f,h=[],l=[],k,n,m,p;for(e=0;0x100>e;e++)l[(h[e]=e<<1^283*(e>>7))^e]=e;for(g=f=0;!c[g];g^=k||1,f=l[f]||1){m=f^f<<1^f<<2^f<<3^f<<4;m=m>>8^m&255^99;c[g]=m;d[m]=g;n=h[e=h[k=h[g]]];p=0x1010101*n^0x10001*e^0x101*k^0x1010100*g;n=0x101*h[m]^0x1010100*m;for(e=0;4>e;e++)a[e][g]=n=n<<24^n>>>8,b[e][m]=p=p<<24^p>>>8}for(e= +0;5>e;e++)a[e]=a[e].slice(0),b[e]=b[e].slice(0)}}; +function w(a,b,c){4!==b.length&&q(new sjcl.exception.invalid("invalid aes block size"));var d=a.b[c],e=b[0]^d[0],g=b[c?3:1]^d[1],f=b[2]^d[2];b=b[c?1:3]^d[3];var h,l,k,n=d.length/4-2,m,p=4,t=[0,0,0,0];h=a.l[c];a=h[0];var r=h[1],v=h[2],y=h[3],z=h[4];for(m=0;m>>24]^r[g>>16&255]^v[f>>8&255]^y[b&255]^d[p],l=a[g>>>24]^r[f>>16&255]^v[b>>8&255]^y[e&255]^d[p+1],k=a[f>>>24]^r[b>>16&255]^v[e>>8&255]^y[g&255]^d[p+2],b=a[b>>>24]^r[e>>16&255]^v[g>>8&255]^y[f&255]^d[p+3],p+=4,e=h,g=l,f=k;for(m=0;4> +m;m++)t[c?3&-m:m]=z[e>>>24]<<24^z[g>>16&255]<<16^z[f>>8&255]<<8^z[b&255]^d[p++],h=e,e=g,g=f,f=b,b=h;return t} +sjcl.bitArray={bitSlice:function(a,b,c){a=sjcl.bitArray.Q(a.slice(b/32),32-(b&31)).slice(1);return c===s?a:sjcl.bitArray.clamp(a,c-b)},extract:function(a,b,c){var d=Math.floor(-b-c&31);return((b+c-1^b)&-32?a[b/32|0]<<32-d^a[b/32+1|0]>>>d:a[b/32|0]>>>d)&(1<>b-1,1));return a},partial:function(a,b,c){return 32===a?b:(c?b|0:b<<32-a)+0x10000000000*a},getPartial:function(a){return Math.round(a/0x10000000000)||32},equal:function(a,b){if(sjcl.bitArray.bitLength(a)!==sjcl.bitArray.bitLength(b))return u;var c=0,d;for(d=0;d>>b),c=a[e]<<32-b;e=a.length?a[a.length-1]:0;a=sjcl.bitArray.getPartial(e);d.push(sjcl.bitArray.partial(b+a&31,32>>24|c>>>8&0xff00|(c&0xff00)<<8|c<<24;return a}}; +sjcl.codec.utf8String={fromBits:function(a){var b="",c=sjcl.bitArray.bitLength(a),d,e;for(d=0;d>>24),e<<=8;return decodeURIComponent(escape(b))},toBits:function(a){a=unescape(encodeURIComponent(a));var b=[],c,d=0;for(c=0;c>>e)>>>26),6>e?(f=a[c]<<6-e,e+=26,c++):(f<<=6,e-=6);for(;d.length&3&&!b;)d+="=";return d},toBits:function(a,b){a=a.replace(/\s|=/g,"");var c=[],d,e=0,g=sjcl.codec.base64.K,f=0,h;b&&(g=g.substr(0,62)+"-_");for(d=0;dh&&q(new sjcl.exception.invalid("this isn't base64!")),26>>e),f=h<<32-e):(e+=6,f^=h<<32-e);e&56&&c.push(sjcl.bitArray.partial(e&56,f,1));return c}};sjcl.codec.base64url={fromBits:function(a){return sjcl.codec.base64.fromBits(a,1,1)},toBits:function(a){return sjcl.codec.base64.toBits(a,1)}}; +sjcl.codec.bytes={fromBits:function(a){var b=[],c=sjcl.bitArray.bitLength(a),d,e;for(d=0;d>>24),e<<=8;return b},toBits:function(a){var b=[],c,d=0;for(c=0;cb;c++){for(d=2;d*d<=c;d++)if(0===c%d)continue a;8>b&&(this.O[b]=a(Math.pow(c,0.5)));this.b[b]=a(Math.pow(c,1/3));b++}}}; +function x(a,b){var c,d,e,g=b.slice(0),f=a.r,h=a.b,l=f[0],k=f[1],n=f[2],m=f[3],p=f[4],t=f[5],r=f[6],v=f[7];for(c=0;64>c;c++)16>c?d=g[c]:(d=g[c+1&15],e=g[c+14&15],d=g[c&15]=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+g[c&15]+g[c+9&15]|0),d=d+v+(p>>>6^p>>>11^p>>>25^p<<26^p<<21^p<<7)+(r^p&(t^r))+h[c],v=r,r=t,t=p,p=m+d|0,m=n,n=k,k=l,l=d+(k&n^m&(k^n))+(k>>>2^k>>>13^k>>>22^k<<30^k<<19^k<<10)|0;f[0]=f[0]+l|0;f[1]=f[1]+k|0;f[2]=f[2]+n|0;f[3]=f[3]+m|0;f[4]=f[4]+p|0;f[5]=f[5]+t|0;f[6]= +f[6]+r|0;f[7]=f[7]+v|0} +sjcl.mode.ccm={name:"ccm",s:[],listenProgress:function(a){sjcl.mode.ccm.s.push(a)},unListenProgress:function(a){a=sjcl.mode.ccm.s.indexOf(a);-1l&&q(new sjcl.exception.invalid("ccm: iv must be at least 7 bytes"));for(g=2;4>g&&k>>>8*g;g++);g<15-l&&(g=15-l);c=h.clamp(c,8*(15- +g));b=sjcl.mode.ccm.M(a,b,c,d,e,g);f=sjcl.mode.ccm.p(a,f,c,b,e,g);return h.concat(f.data,f.tag)},decrypt:function(a,b,c,d,e){e=e||64;d=d||[];var g=sjcl.bitArray,f=g.bitLength(c)/8,h=g.bitLength(b),l=g.clamp(b,h-e),k=g.bitSlice(b,h-e),h=(h-e)/8;7>f&&q(new sjcl.exception.invalid("ccm: iv must be at least 7 bytes"));for(b=2;4>b&&h>>>8*b;b++);b<15-f&&(b=15-f);c=g.clamp(c,8*(15-b));l=sjcl.mode.ccm.p(a,l,c,k,e,b);a=sjcl.mode.ccm.M(a,l.data,c,d,e,b);g.equal(l.tag,a)||q(new sjcl.exception.corrupt("ccm: tag doesn't match")); +return l.data},da:function(a,b,c,d,e,g){var f=[],h=sjcl.bitArray,l=h.g;d=[h.partial(8,(b.length?64:0)|d-2<<2|g-1)];d=h.concat(d,c);d[3]|=e;d=a.encrypt(d);if(b.length){c=h.bitLength(b)/8;65279>=c?f=[h.partial(16,c)]:0xffffffff>=c&&(f=h.concat([h.partial(16,65534)],[c]));f=h.concat(f,b);for(b=0;be||16n&&(sjcl.mode.ccm.W(f/ +l),n+=m),c[3]++,e=a.encrypt(c),b[f]^=e[0],b[f+1]^=e[1],b[f+2]^=e[2],b[f+3]^=e[3];return{tag:d,data:h.clamp(b,k)}}}; +sjcl.mode.ocb2={name:"ocb2",encrypt:function(a,b,c,d,e,g){128!==sjcl.bitArray.bitLength(c)&&q(new sjcl.exception.invalid("ocb iv must be 128 bits"));var f,h=sjcl.mode.ocb2.I,l=sjcl.bitArray,k=l.g,n=[0,0,0,0];c=h(a.encrypt(c));var m,p=[];d=d||[];e=e||64;for(f=0;f+4e.bitLength(c)&&(h=g(h,d(h)),c=e.concat(c,[-2147483648,0,0,0]));f=g(f,c);return a.encrypt(g(d(g(h, +d(h))),f))},I:function(a){return[a[0]<<1^a[1]>>>31,a[1]<<1^a[2]>>>31,a[2]<<1^a[3]>>>31,a[3]<<1^135*(a[0]>>>31)]}}; +sjcl.mode.gcm={name:"gcm",encrypt:function(a,b,c,d,e){var g=b.slice(0);b=sjcl.bitArray;d=d||[];a=sjcl.mode.gcm.p(!0,a,g,d,c,e||128);return b.concat(a.data,a.tag)},decrypt:function(a,b,c,d,e){var g=b.slice(0),f=sjcl.bitArray,h=f.bitLength(g);e=e||128;d=d||[];e<=h?(b=f.bitSlice(g,h-e),g=f.bitSlice(g,0,h-e)):(b=g,g=[]);a=sjcl.mode.gcm.p(u,a,g,d,c,e);f.equal(a.tag,b)||q(new sjcl.exception.corrupt("gcm: tag doesn't match"));return a.data},aa:function(a,b){var c,d,e,g,f,h=sjcl.bitArray.g;e=[0,0,0,0];g= +b.slice(0);for(c=0;128>c;c++){(d=0!==(a[Math.floor(c/32)]&1<<31-c%32))&&(e=h(e,g));f=0!==(g[3]&1);for(d=3;0>>1|(g[d-1]&1)<<31;g[0]>>>=1;f&&(g[0]^=-0x1f000000)}return e},h:function(a,b,c){var d,e=c.length;b=b.slice(0);for(d=0;de&&(a=b.hash(a));for(d=0;dd||0>c)&&q(sjcl.exception.invalid("invalid params to pbkdf2"));"string"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));e=e||sjcl.misc.hmac;a=new e(a);var g,f,h,l,k=[],n=sjcl.bitArray;for(l=1;32*k.length<(d||1);l++){e=g=a.encrypt(n.concat(b,[l]));for(f=1;ff;f++)e.push(0x100000000*Math.random()|0);for(f=0;f=1<this.k&&(this.k=g);this.G++; +this.b=sjcl.hash.sha256.hash(this.b.concat(e));this.B=new sjcl.cipher.aes(this.b);for(d=0;4>d&&!(this.f[d]=this.f[d]+1|0,this.f[d]);d++);}for(d=0;d>>=1;this.c[f].update([d,this.D++,2,b,g,a.length].concat(a))}break;case "string":b===s&&(b=a.length);this.c[f].update([d,this.D++,3,b,g,a.length]);this.c[f].update(a);break;default:l=1}l&&q(new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string"));this.j[f]+=b;this.d+=b;h===this.m&&(this.isReady()!==this.m&&C("seeded",Math.max(this.k,this.d)),C("progress",this.getProgress()))},isReady:function(a){a=this.J[a!==s?a:this.C];return this.k&&this.k>=a?this.j[0]>this.S&& +(new Date).valueOf()>this.P?this.w|this.u:this.u:this.d>=a?this.w|this.m:this.m},getProgress:function(a){a=this.J[a?a:this.C];return this.k>=a?1:this.d>a?1:this.d/a},startCollectors:function(){this.q||(this.a={loadTimeCollector:D(this,this.ca),mouseCollector:D(this,this.ea),keyboardCollector:D(this,this.ba),accelerometerCollector:D(this,this.V),touchCollector:D(this,this.ga)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,u),window.addEventListener("mousemove",this.a.mouseCollector, +u),window.addEventListener("keypress",this.a.keyboardCollector,u),window.addEventListener("devicemotion",this.a.accelerometerCollector,u),window.addEventListener("touchmove",this.a.touchCollector,u)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):q(new sjcl.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener? +(window.removeEventListener("load",this.a.loadTimeCollector,u),window.removeEventListener("mousemove",this.a.mouseCollector,u),window.removeEventListener("keypress",this.a.keyboardCollector,u),window.removeEventListener("devicemotion",this.a.accelerometerCollector,u),window.removeEventListener("touchmove",this.a.touchCollector,u)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress", +this.a.keyboardCollector)),this.q=u)},addEventListener:function(a,b){this.A[a][this.X++]=b},removeEventListener:function(a,b){var c,d,e=this.A[a],g=[];for(d in e)e.hasOwnProperty(d)&&e[d]===b&&g.push(d);for(c=0;cb&&!(a.f[b]=a.f[b]+1|0,a.f[b]);b++);return a.B.encrypt(a.f)}function D(a,b){return function(){b.apply(a,arguments)}}sjcl.random=new sjcl.prng(6); +a:try{var F,G,H,I;if(I="undefined"!==typeof module){var J;if(J=module.exports){var K;try{K=require("crypto")}catch(L){K=null}J=(G=K)&&G.randomBytes}I=J}if(I)F=G.randomBytes(128),F=new Uint32Array((new Uint8Array(F)).buffer),sjcl.random.addEntropy(F,1024,"crypto['randomBytes']");else if("undefined"!==typeof window&&"undefined"!==typeof Uint32Array){H=new Uint32Array(32);if(window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(H);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(H); +else break a;sjcl.random.addEntropy(H,1024,"crypto['getRandomValues']")}}catch(M){"undefined"!==typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(M))} +sjcl.json={defaults:{v:1,iter:1E3,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},$:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json,g=e.e({iv:sjcl.random.randomWords(4,0)},e.defaults),f;e.e(g,c);c=g.adata;"string"===typeof g.salt&&(g.salt=sjcl.codec.base64.toBits(g.salt));"string"===typeof g.iv&&(g.iv=sjcl.codec.base64.toBits(g.iv));(!sjcl.mode[g.mode]||!sjcl.cipher[g.cipher]||"string"===typeof a&&100>=g.iter||64!==g.ts&&96!==g.ts&&128!==g.ts||128!==g.ks&&192!==g.ks&&0x100!==g.ks||2>g.iv.length||4< +g.iv.length)&&q(new sjcl.exception.invalid("json encrypt: invalid parameters"));"string"===typeof a?(f=sjcl.misc.cachedPbkdf2(a,g),a=f.key.slice(0,g.ks/32),g.salt=f.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.publicKey&&(f=a.kem(),g.kemtag=f.tag,a=f.key.slice(0,g.ks/32));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));"string"===typeof c&&(g.adata=c=sjcl.codec.utf8String.toBits(c));f=new sjcl.cipher[g.cipher](a);e.e(d,g);d.key=a;g.ct="ccm"===g.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&& +b instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.encrypt(f,b,g.iv,c,g.ts):sjcl.mode[g.mode].encrypt(f,b,g.iv,c,g.ts);return g},encrypt:function(a,b,c,d){var e=sjcl.json,g=e.$.apply(e,arguments);return e.encode(g)},Z:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json;b=e.e(e.e(e.e({},e.defaults),b),c,!0);var g,f;g=b.adata;"string"===typeof b.salt&&(b.salt=sjcl.codec.base64.toBits(b.salt));"string"===typeof b.iv&&(b.iv=sjcl.codec.base64.toBits(b.iv));(!sjcl.mode[b.mode]||!sjcl.cipher[b.cipher]||"string"=== +typeof a&&100>=b.iter||64!==b.ts&&96!==b.ts&&128!==b.ts||128!==b.ks&&192!==b.ks&&0x100!==b.ks||!b.iv||2>b.iv.length||4=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=k(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(k(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=x(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=x(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=F(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=F(function(n,t,r){n[r]=t}),m.countBy=F(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):k(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:k(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=x(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var S=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=O(n);a>o;o++){var c=n[o];if(k(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=S(c,t,r));var f=0,l=c.length;for(u.length+=l;l>f;)u[i++]=c[f++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return S(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=x(r,e));for(var u=[],i=[],o=0,a=O(n);a>o;o++){var c=n[o],f=r?r(c,o,n):c;t?(o&&i===f||u.push(c),i=f):r?m.contains(i,f)||(i.push(f),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(S(arguments,!0,!0))},m.intersection=function(n){for(var t=[],r=arguments.length,e=0,u=O(n);u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=S(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,O).length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=O(n);u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=x(r,e,1);for(var u=r(t),i=0,o=O(n);o>i;){var a=Math.floor((i+o)/2);r(n[a])i;i++,n+=r)u[i]=n;return u};var E=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=j(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(g&&n.bind===g)return g.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return E(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var f=m.now();a||r.leading!==!1||(a=f);var l=t-(f-a);return e=this,u=arguments,0>=l||l>t?(o&&(clearTimeout(o),o=null),a=f,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,l)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var f=m.now()-o;t>f&&f>=0?e=setTimeout(c,t-f):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var f=r&&!e;return e||(e=setTimeout(c,t)),f&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var M=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(v)return v(n);var t=[];for(var r in n)m.has(n,r)&&t.push(r);return M&&e(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var r in n)t.push(r);return M&&e(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=_(m.allKeys),m.extendOwn=m.assign=_(m.keys),m.findKey=function(n,t,r){t=x(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=b(t,r)):(u=S(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var f=u[a],l=o[f];e(l,f,o)&&(i[f]=l)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(S(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=_(m.allKeys,!0),m.create=function(n,t){var r=j(n);return t&&m.extendOwn(r,t),r},m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var N=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=s.call(n);if(u!==s.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!N(n[c],t[c],r,e))return!1}else{var f,l=m.keys(n);if(c=l.length,m.keys(t).length!==c)return!1;for(;c--;)if(f=l[c],!m.has(t,f)||!N(n[f],t[f],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return N(n,t)},m.isEmpty=function(n){return null==n?!0:k(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=h||function(n){return"[object Array]"===s.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return s.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===s.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&p.call(n,t)},m.noConflict=function(){return u._=i,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=w,m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=b(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},T=m.invert(B),R=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=R(B),m.unescape=R(T),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var q=0;m.uniqueId=function(n){var t=++q+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\u2028|\u2029/g,L=function(n){return"\\"+z[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||K).source,(t.interpolate||K).source,(t.evaluate||K).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(D,L),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},f=t.variable||"obj";return c.source="function("+f+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var P=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return f.apply(n,arguments),P(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=o[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],P(this,r)}}),m.each(["concat","join","slice"],function(n){var t=o[n];m.prototype[n]=function(){return P(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this); diff --git a/S3WebApp/S3/factories/utils.js b/S3WebApp/S3/factories/utils.js new file mode 100644 index 0000000..fb02ac3 --- /dev/null +++ b/S3WebApp/S3/factories/utils.js @@ -0,0 +1,30 @@ +angular.module('chatApp.utils', []) + +.factory('$_', function() { + return window._; // assumes underscore has already been loaded on the page +}) + +.factory('$localstorage', ['$window', function($window) { + return { + set: function(key, value) { + $window.localStorage[key] = value; + }, + get: function(key, defaultValue) { + return $window.localStorage[key] || defaultValue; + }, + setObject: function(key, value) { + $window.localStorage[key] = JSON.stringify(value); + }, + getObject: function(key) { + return JSON.parse($window.localStorage[key] || '{}'); + }, + addLogEntry: function(value) { + var log = JSON.parse($window.localStorage["log"] || '[]'); + log.push(value); + $window.localStorage["log"] = JSON.stringify(log); + }, + clearLog: function() { + $window.localStorage.removeItem("log"); + } + } +}]); diff --git a/S3WebApp/S3/index.html b/S3WebApp/S3/index.html new file mode 100644 index 0000000..5f3b642 --- /dev/null +++ b/S3WebApp/S3/index.html @@ -0,0 +1,62 @@ + + + + + Zombie Chat Application + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/S3WebApp/S3/lib/CryptoJS/components/enc-base64.js b/S3WebApp/S3/lib/CryptoJS/components/enc-base64.js new file mode 100644 index 0000000..739f4a8 --- /dev/null +++ b/S3WebApp/S3/lib/CryptoJS/components/enc-base64.js @@ -0,0 +1,109 @@ +/* +CryptoJS v3.1.2 +code.google.com/p/crypto-js +(c) 2009-2013 by Jeff Mott. All rights reserved. +code.google.com/p/crypto-js/wiki/License +*/ +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex != -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2); + var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2); + words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + + return WordArray.create(words, nBytes); + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; +}()); diff --git a/S3WebApp/S3/lib/CryptoJS/components/hmac.js b/S3WebApp/S3/lib/CryptoJS/components/hmac.js new file mode 100644 index 0000000..b75cd0b --- /dev/null +++ b/S3WebApp/S3/lib/CryptoJS/components/hmac.js @@ -0,0 +1,131 @@ +/* +CryptoJS v3.1.2 +code.google.com/p/crypto-js +(c) 2009-2013 by Jeff Mott. All rights reserved. +code.google.com/p/crypto-js/wiki/License +*/ +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); +}()); diff --git a/S3WebApp/S3/lib/CryptoJS/rollups/hmac-sha256.js b/S3WebApp/S3/lib/CryptoJS/rollups/hmac-sha256.js new file mode 100644 index 0000000..c822cfb --- /dev/null +++ b/S3WebApp/S3/lib/CryptoJS/rollups/hmac-sha256.js @@ -0,0 +1,18 @@ +/* +CryptoJS v3.1.2 +code.google.com/p/crypto-js +(c) 2009-2013 by Jeff Mott. All rights reserved. +code.google.com/p/crypto-js/wiki/License +*/ +var CryptoJS=CryptoJS||function(h,s){var f={},g=f.lib={},q=function(){},m=g.Base={extend:function(a){q.prototype=this;var c=new q;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}}, +r=g.WordArray=m.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=s?c:4*a.length},toString:function(a){return(a||k).stringify(this)},concat:function(a){var c=this.words,d=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var e=0;e>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< +32-8*(c%4);a.length=h.ceil(c/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>3]|=parseInt(a.substr(b, +2),16)<<24-4*(b%8);return new r.init(d,c/2)}},n=l.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new r.init(d,c)}},j=l.Utf8={stringify:function(a){try{return decodeURIComponent(escape(n.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return n.parse(unescape(encodeURIComponent(a)))}}, +u=g.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;b=h.min(4*a,b);if(a){for(var g=0;gn;){var j;a:{j=k;for(var u=h.sqrt(j),t=2;t<=u;t++)if(!(j%t)){j=!1;break a}j=!0}j&&(8>n&&(m[n]=l(h.pow(k,0.5))),r[n]=l(h.pow(k,1/3)),n++);k++}var a=[],f=f.SHA256=q.extend({_doReset:function(){this._hash=new g.init(m.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],g=b[2],j=b[3],h=b[4],m=b[5],n=b[6],q=b[7],p=0;64>p;p++){if(16>p)a[p]= +c[d+p]|0;else{var k=a[p-15],l=a[p-2];a[p]=((k<<25|k>>>7)^(k<<14|k>>>18)^k>>>3)+a[p-7]+((l<<15|l>>>17)^(l<<13|l>>>19)^l>>>10)+a[p-16]}k=q+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&m^~h&n)+r[p]+a[p];l=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&g^f&g);q=n;n=m;m=h;h=j+k|0;j=g;g=f;f=e;e=k+l|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+g|0;b[3]=b[3]+j|0;b[4]=b[4]+h|0;b[5]=b[5]+m|0;b[6]=b[6]+n|0;b[7]=b[7]+q|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes; +d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=h.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=q.clone.call(this);a._hash=this._hash.clone();return a}});s.SHA256=q._createHelper(f);s.HmacSHA256=q._createHmacHelper(f)})(Math); +(function(){var h=CryptoJS,s=h.enc.Utf8;h.algo.HMAC=h.lib.Base.extend({init:function(f,g){f=this._hasher=new f.init;"string"==typeof g&&(g=s.parse(g));var h=f.blockSize,m=4*h;g.sigBytes>m&&(g=f.finalize(g));g.clamp();for(var r=this._oKey=g.clone(),l=this._iKey=g.clone(),k=r.words,n=l.words,j=0;j>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< +32-8*(c%4);a.length=h.ceil(c/4)},clone:function(){var a=j.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>3]|=parseInt(a.substr(b, +2),16)<<24-4*(b%8);return new q.init(d,c/2)}},k=v.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new q.init(d,c)}},l=v.Utf8={stringify:function(a){try{return decodeURIComponent(escape(k.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return k.parse(unescape(encodeURIComponent(a)))}}, +x=t.BufferedBlockAlgorithm=j.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=l.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;b=h.min(4*a,b);if(a){for(var m=0;mk;){var l;a:{l=u;for(var x=h.sqrt(l),w=2;w<=x;w++)if(!(l%w)){l=!1;break a}l=!0}l&&(8>k&&(j[k]=v(h.pow(u,0.5))),q[k]=v(h.pow(u,1/3)),k++);u++}var a=[],f=f.SHA256=g.extend({_doReset:function(){this._hash=new t.init(j.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],m=b[2],h=b[3],p=b[4],j=b[5],k=b[6],l=b[7],n=0;64>n;n++){if(16>n)a[n]= +c[d+n]|0;else{var r=a[n-15],g=a[n-2];a[n]=((r<<25|r>>>7)^(r<<14|r>>>18)^r>>>3)+a[n-7]+((g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10)+a[n-16]}r=l+((p<<26|p>>>6)^(p<<21|p>>>11)^(p<<7|p>>>25))+(p&j^~p&k)+q[n]+a[n];g=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&m^f&m);l=k;k=j;j=p;p=h+r|0;h=m;m=f;f=e;e=r+g|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+m|0;b[3]=b[3]+h|0;b[4]=b[4]+p|0;b[5]=b[5]+j|0;b[6]=b[6]+k|0;b[7]=b[7]+l|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes; +d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=h.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=g.clone.call(this);a._hash=this._hash.clone();return a}});s.SHA256=g._createHelper(f);s.HmacSHA256=g._createHmacHelper(f)})(Math); diff --git a/S3WebApp/S3/lib/apiGatewayCore/apiGatewayClient.js b/S3WebApp/S3/lib/apiGatewayCore/apiGatewayClient.js new file mode 100644 index 0000000..f138588 --- /dev/null +++ b/S3WebApp/S3/lib/apiGatewayCore/apiGatewayClient.js @@ -0,0 +1,53 @@ +/* + * Copyright 2010-2016 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 apiGateway = apiGateway || {}; +apiGateway.core = apiGateway.core || {}; + +apiGateway.core.apiGatewayClientFactory = {}; +apiGateway.core.apiGatewayClientFactory.newClient = function (simpleHttpClientConfig, sigV4ClientConfig) { + var apiGatewayClient = { }; + //Spin up 2 httpClients, one for simple requests, one for SigV4 + var sigV4Client = apiGateway.core.sigV4ClientFactory.newClient(sigV4ClientConfig); + var simpleHttpClient = apiGateway.core.simpleHttpClientFactory.newClient(simpleHttpClientConfig); + + apiGatewayClient.makeRequest = function (request, authType, additionalParams, apiKey) { + //Default the request to use the simple http client + var clientToUse = simpleHttpClient; + + //Attach the apiKey to the headers request if one was provided + if (apiKey !== undefined && apiKey !== '' && apiKey !== null) { + request.headers['x-api-key'] = apiKey; + } + + if (request.body === undefined || request.body === '' || request.body === null || Object.keys(request.body).length === 0) { + request.body = undefined; + } + + // If the user specified any additional headers or query params that may not have been modeled + // merge them into the appropriate request properties + request.headers = apiGateway.core.utils.mergeInto(request.headers, additionalParams.headers); + request.queryParams = apiGateway.core.utils.mergeInto(request.queryParams, additionalParams.queryParams); + + //If an auth type was specified inject the appropriate auth client + if (authType === 'AWS_IAM') { + clientToUse = sigV4Client; + } + + //Call the selected http client to make the request, returning a promise once the request is sent + return clientToUse.makeRequest(request); + }; + return apiGatewayClient; +}; diff --git a/S3WebApp/S3/lib/apiGatewayCore/sigV4Client.js b/S3WebApp/S3/lib/apiGatewayCore/sigV4Client.js new file mode 100644 index 0000000..34624e7 --- /dev/null +++ b/S3WebApp/S3/lib/apiGatewayCore/sigV4Client.js @@ -0,0 +1,213 @@ +/* + * Copyright 2010-2016 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 apiGateway = apiGateway || {}; +apiGateway.core = apiGateway.core || {}; + +apiGateway.core.sigV4ClientFactory = {}; +apiGateway.core.sigV4ClientFactory.newClient = function (config) { + var AWS_SHA_256 = 'AWS4-HMAC-SHA256'; + var AWS4_REQUEST = 'aws4_request'; + var AWS4 = 'AWS4'; + var X_AMZ_DATE = 'x-amz-date'; + var X_AMZ_SECURITY_TOKEN = 'x-amz-security-token'; + var HOST = 'host'; + var AUTHORIZATION = 'Authorization'; + + function hash(value) { + return CryptoJS.SHA256(value); + } + + function hexEncode(value) { + return value.toString(CryptoJS.enc.Hex); + } + + function hmac(secret, value) { + return CryptoJS.HmacSHA256(value, secret, {asBytes: true}); + } + + function buildCanonicalRequest(method, path, queryParams, headers, payload) { + return method + '\n' + + buildCanonicalUri(path) + '\n' + + buildCanonicalQueryString(queryParams) + '\n' + + buildCanonicalHeaders(headers) + '\n' + + buildCanonicalSignedHeaders(headers) + '\n' + + hexEncode(hash(payload)); + } + + function hashCanonicalRequest(request) { + return hexEncode(hash(request)); + } + + function buildCanonicalUri(uri) { + return encodeURI(uri); + } + + function buildCanonicalQueryString(queryParams) { + if (Object.keys(queryParams).length < 1) { + return ''; + } + + var sortedQueryParams = []; + for (var property in queryParams) { + if (queryParams.hasOwnProperty(property)) { + sortedQueryParams.push(property); + } + } + sortedQueryParams.sort(); + + var canonicalQueryString = ''; + for (var i = 0; i < sortedQueryParams.length; i++) { + canonicalQueryString += sortedQueryParams[i] + '=' + encodeURIComponent(queryParams[sortedQueryParams[i]]) + '&'; + } + return canonicalQueryString.substr(0, canonicalQueryString.length - 1); + } + + function buildCanonicalHeaders(headers) { + var canonicalHeaders = ''; + var sortedKeys = []; + for (var property in headers) { + if (headers.hasOwnProperty(property)) { + sortedKeys.push(property); + } + } + sortedKeys.sort(); + + for (var i = 0; i < sortedKeys.length; i++) { + canonicalHeaders += sortedKeys[i].toLowerCase() + ':' + headers[sortedKeys[i]] + '\n'; + } + return canonicalHeaders; + } + + function buildCanonicalSignedHeaders(headers) { + var sortedKeys = []; + for (var property in headers) { + if (headers.hasOwnProperty(property)) { + sortedKeys.push(property.toLowerCase()); + } + } + sortedKeys.sort(); + + return sortedKeys.join(';'); + } + + function buildStringToSign(datetime, credentialScope, hashedCanonicalRequest) { + return AWS_SHA_256 + '\n' + + datetime + '\n' + + credentialScope + '\n' + + hashedCanonicalRequest; + } + + function buildCredentialScope(datetime, region, service) { + return datetime.substr(0, 8) + '/' + region + '/' + service + '/' + AWS4_REQUEST + } + + function calculateSigningKey(secretKey, datetime, region, service) { + return hmac(hmac(hmac(hmac(AWS4 + secretKey, datetime.substr(0, 8)), region), service), AWS4_REQUEST); + } + + function calculateSignature(key, stringToSign) { + return hexEncode(hmac(key, stringToSign)); + } + + function buildAuthorizationHeader(accessKey, credentialScope, headers, signature) { + return AWS_SHA_256 + ' Credential=' + accessKey + '/' + credentialScope + ', SignedHeaders=' + buildCanonicalSignedHeaders(headers) + ', Signature=' + signature; + } + + var awsSigV4Client = { }; + if(config.accessKey === undefined || config.secretKey === undefined) { + return awsSigV4Client; + } + awsSigV4Client.accessKey = apiGateway.core.utils.assertDefined(config.accessKey, 'accessKey'); + awsSigV4Client.secretKey = apiGateway.core.utils.assertDefined(config.secretKey, 'secretKey'); + awsSigV4Client.sessionToken = config.sessionToken; + awsSigV4Client.serviceName = apiGateway.core.utils.assertDefined(config.serviceName, 'serviceName'); + awsSigV4Client.region = apiGateway.core.utils.assertDefined(config.region, 'region'); + awsSigV4Client.endpoint = apiGateway.core.utils.assertDefined(config.endpoint, 'endpoint'); + + awsSigV4Client.makeRequest = function (request) { + var verb = apiGateway.core.utils.assertDefined(request.verb, 'verb'); + var path = apiGateway.core.utils.assertDefined(request.path, 'path'); + var queryParams = apiGateway.core.utils.copy(request.queryParams); + if (queryParams === undefined) { + queryParams = {}; + } + var headers = apiGateway.core.utils.copy(request.headers); + if (headers === undefined) { + headers = {}; + } + + //If the user has not specified an override for Content type the use default + if(headers['Content-Type'] === undefined) { + headers['Content-Type'] = config.defaultContentType; + } + + //If the user has not specified an override for Accept type the use default + if(headers['Accept'] === undefined) { + headers['Accept'] = config.defaultAcceptType; + } + + var body = apiGateway.core.utils.copy(request.body); + if (body === undefined || verb === 'GET') { // override request body and set to empty when signing GET requests + body = ''; + } else { + body = JSON.stringify(body); + } + + //If there is no body remove the content-type header so it is not included in SigV4 calculation + if(body === '' || body === undefined || body === null) { + delete headers['Content-Type']; + } + + var datetime = new Date().toISOString().replace(/\.\d{3}Z$/, 'Z').replace(/[:\-]|\.\d{3}/g, ''); + headers[X_AMZ_DATE] = datetime; + var parser = document.createElement('a'); + parser.href = awsSigV4Client.endpoint; + headers[HOST] = parser.hostname; + + var canonicalRequest = buildCanonicalRequest(verb, path, queryParams, headers, body); + var hashedCanonicalRequest = hashCanonicalRequest(canonicalRequest); + var credentialScope = buildCredentialScope(datetime, awsSigV4Client.region, awsSigV4Client.serviceName); + var stringToSign = buildStringToSign(datetime, credentialScope, hashedCanonicalRequest); + var signingKey = calculateSigningKey(awsSigV4Client.secretKey, datetime, awsSigV4Client.region, awsSigV4Client.serviceName); + var signature = calculateSignature(signingKey, stringToSign); + headers[AUTHORIZATION] = buildAuthorizationHeader(awsSigV4Client.accessKey, credentialScope, headers, signature); + if(awsSigV4Client.sessionToken !== undefined && awsSigV4Client.sessionToken !== '') { + headers[X_AMZ_SECURITY_TOKEN] = awsSigV4Client.sessionToken; + } + delete headers[HOST]; + + var url = config.endpoint + path; + var queryString = buildCanonicalQueryString(queryParams); + if (queryString != '') { + url += '?' + queryString; + } + + //Need to re-attach Content-Type if it is not specified at this point + if(headers['Content-Type'] === undefined) { + headers['Content-Type'] = config.defaultContentType; + } + + var signedRequest = { + method: verb, + url: url, + headers: headers, + data: body + }; + return axios(signedRequest); + }; + + return awsSigV4Client; +}; diff --git a/S3WebApp/S3/lib/apiGatewayCore/simpleHttpClient.js b/S3WebApp/S3/lib/apiGatewayCore/simpleHttpClient.js new file mode 100644 index 0000000..3fb1e5a --- /dev/null +++ b/S3WebApp/S3/lib/apiGatewayCore/simpleHttpClient.js @@ -0,0 +1,81 @@ +/* + * Copyright 2010-2016 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 apiGateway = apiGateway || {}; +apiGateway.core = apiGateway.core || {}; + +apiGateway.core.simpleHttpClientFactory = {}; +apiGateway.core.simpleHttpClientFactory.newClient = function (config) { + function buildCanonicalQueryString(queryParams) { + //Build a properly encoded query string from a QueryParam object + if (Object.keys(queryParams).length < 1) { + return ''; + } + + var canonicalQueryString = ''; + for (var property in queryParams) { + if (queryParams.hasOwnProperty(property)) { + canonicalQueryString += encodeURIComponent(property) + '=' + encodeURIComponent(queryParams[property]) + '&'; + } + } + + return canonicalQueryString.substr(0, canonicalQueryString.length - 1); + } + + var simpleHttpClient = { }; + simpleHttpClient.endpoint = apiGateway.core.utils.assertDefined(config.endpoint, 'endpoint'); + + simpleHttpClient.makeRequest = function (request) { + var verb = apiGateway.core.utils.assertDefined(request.verb, 'verb'); + var path = apiGateway.core.utils.assertDefined(request.path, 'path'); + var queryParams = apiGateway.core.utils.copy(request.queryParams); + if (queryParams === undefined) { + queryParams = {}; + } + var headers = apiGateway.core.utils.copy(request.headers); + if (headers === undefined) { + headers = {}; + } + + //If the user has not specified an override for Content type the use default + if(headers['Content-Type'] === undefined) { + headers['Content-Type'] = config.defaultContentType; + } + + //If the user has not specified an override for Accept type the use default + if(headers['Accept'] === undefined) { + headers['Accept'] = config.defaultAcceptType; + } + + var body = apiGateway.core.utils.copy(request.body); + if (body === undefined) { + body = ''; + } + + var url = config.endpoint + path; + var queryString = buildCanonicalQueryString(queryParams); + if (queryString != '') { + url += '?' + queryString; + } + var simpleHttpRequest = { + method: verb, + url: url, + headers: headers, + data: body + }; + return axios(simpleHttpRequest); + }; + return simpleHttpClient; +}; \ No newline at end of file diff --git a/S3WebApp/S3/lib/apiGatewayCore/utils.js b/S3WebApp/S3/lib/apiGatewayCore/utils.js new file mode 100644 index 0000000..9bf7356 --- /dev/null +++ b/S3WebApp/S3/lib/apiGatewayCore/utils.js @@ -0,0 +1,80 @@ +/* + * Copyright 2010-2016 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 apiGateway = apiGateway || {}; +apiGateway.core = apiGateway.core || {}; + +apiGateway.core.utils = { + assertDefined: function (object, name) { + if (object === undefined) { + throw name + ' must be defined'; + } else { + return object; + } + }, + assertParametersDefined: function (params, keys, ignore) { + if (keys === undefined) { + return; + } + if (keys.length > 0 && params === undefined) { + params = {}; + } + for (var i = 0; i < keys.length; i++) { + if(!apiGateway.core.utils.contains(ignore, keys[i])) { + apiGateway.core.utils.assertDefined(params[keys[i]], keys[i]); + } + } + }, + parseParametersToObject: function (params, keys) { + if (params === undefined) { + return {}; + } + var object = { }; + for (var i = 0; i < keys.length; i++) { + object[keys[i]] = params[keys[i]]; + } + return object; + }, + contains: function(a, obj) { + if(a === undefined) { return false;} + var i = a.length; + while (i--) { + if (a[i] === obj) { + return true; + } + } + return false; + }, + copy: function (obj) { + if (null == obj || "object" != typeof obj) return obj; + var copy = obj.constructor(); + for (var attr in obj) { + if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; + } + return copy; + }, + mergeInto: function (baseObj, additionalProps) { + if (null == baseObj || "object" != typeof baseObj) return baseObj; + var merged = baseObj.constructor(); + for (var attr in baseObj) { + if (baseObj.hasOwnProperty(attr)) merged[attr] = baseObj[attr]; + } + if (null == additionalProps || "object" != typeof additionalProps) return baseObj; + for (attr in additionalProps) { + if (additionalProps.hasOwnProperty(attr)) merged[attr] = additionalProps[attr]; + } + return merged; + } +}; diff --git a/S3WebApp/S3/lib/axios/dist/axios.standalone.js b/S3WebApp/S3/lib/axios/dist/axios.standalone.js new file mode 100644 index 0000000..1916525 --- /dev/null +++ b/S3WebApp/S3/lib/axios/dist/axios.standalone.js @@ -0,0 +1,1089 @@ +/* +axios v0.7.0 +Copyright (c) 2014 Matt Zabriskie + +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. +*/ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["axios"] = factory(); + else + root["axios"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var defaults = __webpack_require__(2); + var utils = __webpack_require__(3); + var dispatchRequest = __webpack_require__(4); + var InterceptorManager = __webpack_require__(12); + + var axios = module.exports = function (config) { + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = utils.merge({ + url: arguments[0] + }, arguments[1]); + } + + config = utils.merge({ + method: 'get', + headers: {}, + timeout: defaults.timeout, + transformRequest: defaults.transformRequest, + transformResponse: defaults.transformResponse + }, config); + + // Don't allow overriding defaults.withCredentials + config.withCredentials = config.withCredentials || defaults.withCredentials; + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + axios.interceptors.request.forEach(function (interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + axios.interceptors.response.forEach(function (interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; + }; + + // Expose defaults + axios.defaults = defaults; + + // Expose all/spread + axios.all = function (promises) { + return Promise.all(promises); + }; + axios.spread = __webpack_require__(13); + + // Expose interceptors + axios.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + + // Provide aliases for supported request methods + (function () { + function createShortMethods() { + utils.forEach(arguments, function (method) { + axios[method] = function (url, config) { + return axios(utils.merge(config || {}, { + method: method, + url: url + })); + }; + }); + } + + function createShortMethodsWithData() { + utils.forEach(arguments, function (method) { + axios[method] = function (url, data, config) { + return axios(utils.merge(config || {}, { + method: method, + url: url, + data: data + })); + }; + }); + } + + createShortMethods('delete', 'get', 'head'); + createShortMethodsWithData('post', 'put', 'patch'); + })(); + + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(3); + + var PROTECTION_PREFIX = /^\)\]\}',?\n/; + var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/json' + }; + + module.exports = { + transformRequest: [function (data, headers) { + if(utils.isFormData(data)) { + return data; + } + if (utils.isArrayBuffer(data)) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data)) { + // Set application/json if no Content-Type has been specified + if (!utils.isUndefined(headers)) { + utils.forEach(headers, function (val, key) { + if (key.toLowerCase() === 'content-type') { + headers['Content-Type'] = val; + } + }); + + if (utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = 'application/json;charset=utf-8'; + } + } + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function (data) { + if (typeof data === 'string') { + data = data.replace(PROTECTION_PREFIX, ''); + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*' + }, + patch: utils.merge(DEFAULT_CONTENT_TYPE), + post: utils.merge(DEFAULT_CONTENT_TYPE), + put: utils.merge(DEFAULT_CONTENT_TYPE) + }, + + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN' + }; + + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + 'use strict'; + + /*global toString:true*/ + + // utils is a library of generic helper functions non-specific to axios + + var toString = Object.prototype.toString; + + /** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ + function isArray(val) { + return toString.call(val) === '[object Array]'; + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; + } + + /** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ + function isFormData(val) { + return toString.call(val) === '[object FormData]'; + } + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + return ArrayBuffer.isView(val); + } else { + return (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + } + + /** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ + function isString(val) { + return typeof val === 'string'; + } + + /** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ + function isNumber(val) { + return typeof val === 'number'; + } + + /** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ + function isUndefined(val) { + return typeof val === 'undefined'; + } + + /** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ + function isObject(val) { + return val !== null && typeof val === 'object'; + } + + /** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ + function isDate(val) { + return toString.call(val) === '[object Date]'; + } + + /** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ + function isFile(val) { + return toString.call(val) === '[object File]'; + } + + /** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ + function isBlob(val) { + return toString.call(val) === '[object Blob]'; + } + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ + function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); + } + + /** + * Determine if a value is an Arguments object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Arguments object, otherwise false + */ + function isArguments(val) { + return toString.call(val) === '[object Arguments]'; + } + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * typeof document.createelement -> undefined + */ + function isStandardBrowserEnv() { + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' && + typeof document.createElement === 'function' + ); + } + + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array or arguments callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ + function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Check if obj is array-like + var isArrayLike = isArray(obj) || isArguments(obj); + + // Force an array if not already something iterable + if (typeof obj !== 'object' && !isArrayLike) { + obj = [obj]; + } + + // Iterate over array values + if (isArrayLike) { + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } + // Iterate over object keys + else { + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function merge(/*obj1, obj2, obj3, ...*/) { + var result = {}; + forEach(arguments, function (obj) { + forEach(obj, function (val, key) { + result[key] = val; + }); + }); + return result; + } + + module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + trim: trim + }; + + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + /** + * Dispatch a request to the server using whichever adapter + * is supported by the current environment. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ + module.exports = function dispatchRequest(config) { + return new Promise(function (resolve, reject) { + try { + // For browsers use XHR adapter + if ((typeof XMLHttpRequest !== 'undefined') || (typeof ActiveXObject !== 'undefined')) { + __webpack_require__(6)(resolve, reject, config); + } + // For node use HTTP adapter + else if (typeof process !== 'undefined') { + __webpack_require__(6)(resolve, reject, config); + } + } catch (e) { + reject(e); + } + }); + }; + + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + // shim for using process in browser + + var process = module.exports = {}; + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = setTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + clearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + setTimeout(drainQueue, 0); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /*global ActiveXObject:true*/ + + var defaults = __webpack_require__(2); + var utils = __webpack_require__(3); + var buildUrl = __webpack_require__(7); + var parseHeaders = __webpack_require__(8); + var transformData = __webpack_require__(9); + + module.exports = function xhrAdapter(resolve, reject, config) { + // Transform request data + var data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Merge headers + var requestHeaders = utils.merge( + defaults.headers.common, + defaults.headers[config.method] || {}, + config.headers || {} + ); + + if (utils.isFormData(data)) { + // Content-Type needs to be sent in all requests so the mapping template can be applied + //delete requestHeaders['Content-Type']; // Let the browser set it + } + + // Create the request + var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP'); + request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function () { + if (request && request.readyState === 4) { + // Prepare the response + var responseHeaders = parseHeaders(request.getAllResponseHeaders()); + var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response; + var response = { + data: transformData( + responseData, + responseHeaders, + config.transformResponse + ), + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config + }; + + // Resolve or reject the Promise based on the status + (request.status >= 200 && request.status < 300 ? + resolve : + reject)(response); + + // Clean up request + request = null; + } + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + var cookies = __webpack_require__(10); + var urlIsSameOrigin = __webpack_require__(11); + + // Add xsrf header + var xsrfValue = urlIsSameOrigin(config.url) ? + cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + utils.forEach(requestHeaders, function (val, key) { + // Remove Content-Type if data is undefined + if (!data && key.toLowerCase() === 'content-type') { + delete requestHeaders[key]; + } + // Otherwise add header to the request + else { + request.setRequestHeader(key, val); + } + }); + + // Add withCredentials to request if needed + if (config.withCredentials) { + request.withCredentials = true; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + if (request.responseType !== 'json') { + throw e; + } + } + } + + if (utils.isArrayBuffer(data)) { + data = new DataView(data); + } + + // Send the request + request.send(data); + }; + + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(3); + + function encode(val) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ + module.exports = function buildUrl(url, params) { + if (!params) { + return url; + } + + var parts = []; + + utils.forEach(params, function (val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } + + if (!utils.isArray(val)) { + val = [val]; + } + + utils.forEach(val, function (v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } + else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + if (parts.length > 0) { + url += (url.indexOf('?') === -1 ? '?' : '&') + parts.join('&'); + } + + return url; + }; + + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(3); + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ + module.exports = function parseHeaders(headers) { + var parsed = {}, key, val, i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; + }; + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(3); + + /** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ + module.exports = function transformData(data, headers, fns) { + utils.forEach(fns, function (fn) { + data = fn(data, headers); + }); + + return data; + }; + + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * WARNING: + * This file makes references to objects that aren't safe in all environments. + * Please see lib/utils.isStandardBrowserEnv before including this file. + */ + + var utils = __webpack_require__(3); + + module.exports = { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * WARNING: + * This file makes references to objects that aren't safe in all environments. + * Please see lib/utils.isStandardBrowserEnv before including this file. + */ + + var utils = __webpack_require__(3); + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originUrl; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function urlResolve(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originUrl = urlResolve(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestUrl The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + module.exports = function urlIsSameOrigin(requestUrl) { + var parsed = (utils.isString(requestUrl)) ? urlResolve(requestUrl) : requestUrl; + return (parsed.protocol === originUrl.protocol && + parsed.host === originUrl.host); + }; + + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(3); + + function InterceptorManager() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + InterceptorManager.prototype.use = function (fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; + }; + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ + InterceptorManager.prototype.eject = function (id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `remove`. + * + * @param {Function} fn The function to call for each interceptor + */ + InterceptorManager.prototype.forEach = function (fn) { + utils.forEach(this.handlers, function (h) { + if (h !== null) { + fn(h); + } + }); + }; + + module.exports = InterceptorManager; + + +/***/ }, +/* 13 */ +/***/ function(module, exports) { + + 'use strict'; + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ + module.exports = function spread(callback) { + return function (arr) { + return callback.apply(null, arr); + }; + }; + + +/***/ } +/******/ ]) +}); +; +//# sourceMappingURL=axios.map \ No newline at end of file diff --git a/S3WebApp/S3/lib/url-template/url-template.js b/S3WebApp/S3/lib/url-template/url-template.js new file mode 100644 index 0000000..048c2c7 --- /dev/null +++ b/S3WebApp/S3/lib/url-template/url-template.js @@ -0,0 +1,438 @@ +/* + UriTemplates Template Processor - Version: @VERSION - Dated: @DATE + (c) marc.portier@gmail.com - 2011-2012 + Licensed under APLv2 (http://opensource.org/licenses/Apache-2.0) + */ + +; +var uritemplate = (function() { + +// Below are the functions we originally used from jQuery. +// The implementations below are often more naive then what is inside jquery, but they suffice for our needs. + + function isFunction(fn) { + return typeof fn == 'function'; + } + + function isEmptyObject (obj) { + for(var name in obj){ + return false; + } + return true; + } + + function extend(base, newprops) { + for (var name in newprops) { + base[name] = newprops[name]; + } + return base; + } + + /** + * Create a runtime cache around retrieved values from the context. + * This allows for dynamic (function) results to be kept the same for multiple + * occuring expansions within one template. + * Note: Uses key-value tupples to be able to cache null values as well. + */ + //TODO move this into prep-processing + function CachingContext(context) { + this.raw = context; + this.cache = {}; + } + CachingContext.prototype.get = function(key) { + var val = this.lookupRaw(key); + var result = val; + + if (isFunction(val)) { // check function-result-cache + var tupple = this.cache[key]; + if (tupple !== null && tupple !== undefined) { + result = tupple.val; + } else { + result = val(this.raw); + this.cache[key] = {key: key, val: result}; + // NOTE: by storing tupples we make sure a null return is validly consistent too in expansions + } + } + return result; + }; + + CachingContext.prototype.lookupRaw = function(key) { + return CachingContext.lookup(this, this.raw, key); + }; + + CachingContext.lookup = function(me, context, key) { + var result = context[key]; + if (result !== undefined) { + return result; + } else { + var keyparts = key.split('.'); + var i = 0, keysplits = keyparts.length - 1; + for (i = 0; i +
+ +
+ + +
+ + +
+
+

+ + {{chatuser.name}} +

+

+ +

+ +
+
+ +
+
+
+
+
+ +
diff --git a/S3WebApp/S3/modules/chat/chat.js b/S3WebApp/S3/modules/chat/chat.js new file mode 100644 index 0000000..05a6273 --- /dev/null +++ b/S3WebApp/S3/modules/chat/chat.js @@ -0,0 +1,85 @@ +angular.module('chatApp.chat', ['chatApp.utils']) +.controller('ChatCtrl', function($rootScope, $scope, $state, $_) { + + $scope.chatState = "Start Chatting"; + $rootScope.chatuser = { + name: "", + phone: "", + email: "" + }; + + var data = { + UserPoolId : USER_POOL_ID, + ClientId : CLIENT_ID + }; + var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(data); + var cognitoUser = userPool.getCurrentUser(); + + if (cognitoUser != null) { + cognitoUser.getSession(function(err, session) { + if (err) { + $state.go('signin', { }); + return; + } + console.log('session validity: ' + session.isValid()); + cognitoUser.getUserAttributes(function(err, result) { + if (err) { + console.log(err); + return; + } + var nm = $_.where(result, { Name: "name" }); + if (nm.length > 0) { + $rootScope.chatuser.name = nm[0].Value; + } + + var ph = $_.where(result, { Name: "phone_number" }); + if (ph.length > 0) { + $rootScope.chatuser.phone = ph[0].Value; + } + + var em = $_.where(result, { Name: "email" }); + if (em.length > 0) { + $rootScope.chatuser.email = em[0].Value; + } + $scope.$apply(); + + }); + }); + } + + + var login = function() { + $rootScope.chatting = true; + $rootScope.$emit('chatting'); + $scope.chatState = "Stop Chatting"; + + }; + + var logoff = function() { + $scope.chatState = "Start Chatting"; + $rootScope.chatting = false; + $rootScope.$emit('not chatting'); + }; + + $scope.toggleChatting = function() { + if($rootScope.chatting) { + logoff(); + } else { + login(); + } + }; + + $scope.signout = function() { + if (cognitoUser != null) { + console.log("logging user out"); + $scope.chatState = "Start Chatting"; + $rootScope.chatting = false; + $rootScope.$emit('not chatting'); + cognitoUser.signOut(); + AWS.config.credentials.clearCachedId(); + $state.go('signin', { }); + } + }; + + +}); diff --git a/S3WebApp/S3/modules/chat/chatMessages.html b/S3WebApp/S3/modules/chat/chatMessages.html new file mode 100644 index 0000000..638386c --- /dev/null +++ b/S3WebApp/S3/modules/chat/chatMessages.html @@ -0,0 +1,5 @@ +
+
+ +
+
diff --git a/S3WebApp/S3/modules/chat/chatMessages.js b/S3WebApp/S3/modules/chat/chatMessages.js new file mode 100644 index 0000000..57aaa73 --- /dev/null +++ b/S3WebApp/S3/modules/chat/chatMessages.js @@ -0,0 +1,78 @@ +angular.module('chatApp.chatMessages', []) +.controller('chatMessageCtrl', function($scope, $rootScope, $resource) { + + $scope.chatPlaceholder = "Save your brains, start chatting!"; + $scope.chatMessage = null; + + $rootScope.$on("chatting", function() { + $scope.chatPlaceholder = "Enter a message and save humanity"; + }); + $rootScope.$on("not chatting", function() { + $scope.chatMessage = null; + $scope.chatPlaceholder = "Save your brains, start chatting!"; + }); + + $scope.lastTalking = new Date; + + $scope.chatMessageKeyPressed = function(keyEvent) { + + var apigClient = apigClientFactory.newClient({ + region: AWS_REGION, // OPTIONAL: The region where the API is deployed, by default this parameter is set to us-east-1 + accessKey: AWS.config.credentials.accessKeyId, + secretKey: AWS.config.credentials.secretAccessKey, + sessionToken: AWS.config.credentials.sessionToken + }); + + if (keyEvent.which === 13) { + $scope.posting = true; + console.log('Sending Message: ' + $scope.chatMessage); + + var body = { + channel: 'default', + name: [$rootScope.chatuser.name, " (", $rootScope.chatuser.email, ")"].join(""), + message: $scope.chatMessage + }; + + var params = ''; + var additionalParams = ''; + + apigClient.zombieMessagePost(params, body, additionalParams) + .then(function(result){ + //This is where you would put a success callback + console.log('Message sent to database'); + console.log ('user email is ' + $rootScope.chatuser.email); + $scope.chatMessage = null; + $scope.posting = false; + $scope.chatPlaceholder = "Enter a message and save humanity"; + }).catch( function(result){ + console.log('there was an error POSTing'); + }); + + + } else { + var diff = Date.now() - $scope.lastTalking; + console.log(diff); + + // send talking update at max every .5 seconds + if (diff < 500) { + return; + } + + var talkersBody = { + channel: 'default', + name: $rootScope.chatuser.name + }; + + var talkersParams = ''; + var talkersAdditionalParams = ''; + + apigClient.zombieTalkersPost(talkersParams, talkersBody, talkersAdditionalParams) + .then(function(result){ + console.log('Posting to talkers.'); + $scope.lastTalking = new Date; + }).catch( function(result){ + }); + } + }; + +}); diff --git a/S3WebApp/S3/modules/chat/chatPanel.html b/S3WebApp/S3/modules/chat/chatPanel.html new file mode 100644 index 0000000..e8df6f1 --- /dev/null +++ b/S3WebApp/S3/modules/chat/chatPanel.html @@ -0,0 +1,7 @@ +
+
+
+ {{ message.name }} {{message.timestamp | date:'yyyy-MM-dd HH:mm:ss Z'}} - {{message.message}}
+
+
+
diff --git a/S3WebApp/S3/modules/chat/chatPanel.js b/S3WebApp/S3/modules/chat/chatPanel.js new file mode 100644 index 0000000..e585f05 --- /dev/null +++ b/S3WebApp/S3/modules/chat/chatPanel.js @@ -0,0 +1,52 @@ +angular.module('chatApp.chatPanel', ['chatApp.chatMessages']) +.controller('chatPanelCtrl', function($scope, $rootScope, $resource, $timeout) { + + $rootScope.$on("chatting", function() { + var Messages = $resource(MESSAGES_ENDPOINT); + + var poll = function() + { + $timeout(function() { + if($rootScope.chatting) + { + console.log('Retrieving Messages from Server'); + + var apigClient = apigClientFactory.newClient({ + region: AWS_REGION, // OPTIONAL: The region where the API is deployed, by default this parameter is set to us-east-1 + accessKey: AWS.config.credentials.accessKeyId, + secretKey: AWS.config.credentials.secretAccessKey, + sessionToken: AWS.config.credentials.sessionToken + }); + + var body = ''; + + var params = ''; + var additionalParams = ''; + + + apigClient.zombieMessageGet(params, body, additionalParams) + .then(function(result){ + if($rootScope.chatting) { + //console.log('result: ' + result.data.messages); + $scope.messages = result.data.messages; + + } else { + $scope.messages = null; + } + }).catch(function(result){ + console.log('error: ' + result); + }); + + poll(); + } + }, 2000); + }; + poll(); + }); + + $rootScope.$on("not chatting", function() { + //clear our model, which will clear out the messages from the panel + $scope.messages = null; + }); + +}); diff --git a/S3WebApp/S3/modules/chat/talkersPanel.html b/S3WebApp/S3/modules/chat/talkersPanel.html new file mode 100644 index 0000000..6813b61 --- /dev/null +++ b/S3WebApp/S3/modules/chat/talkersPanel.html @@ -0,0 +1,8 @@ +
+
+ Users Typing:
+
+ {{ talker }}
+
+
+
diff --git a/S3WebApp/S3/modules/chat/talkersPanel.js b/S3WebApp/S3/modules/chat/talkersPanel.js new file mode 100644 index 0000000..d27b347 --- /dev/null +++ b/S3WebApp/S3/modules/chat/talkersPanel.js @@ -0,0 +1,47 @@ +angular.module('chatApp.talkersPanel', []) +.controller('talkersPanelCtrl', function($scope, $rootScope, $resource, $timeout) { + + $rootScope.$on("chatting", function() { + var poll = function() { + $timeout(function() { + if($rootScope.chatting) { + console.log('Retrieving Talkers from Server'); + + var apigClient = apigClientFactory.newClient({ + region: AWS_REGION, // OPTIONAL: The region where the API is deployed, by default this parameter is set to us-east-1 + accessKey: AWS.config.credentials.accessKeyId, + secretKey: AWS.config.credentials.secretAccessKey, + sessionToken: AWS.config.credentials.sessionToken + }); + + var body = ''; + + var params = ''; + var additionalParams = ''; + + + apigClient.zombieTalkersGet(params, body, additionalParams) + .then(function(result){ + if($rootScope.chatting) { + console.log('talkers are: ' + result.data.Talkers); + $scope.talkers = result.data.Talkers; + + } else { + $scope.talkers = null; + } + }).catch(function(error){ + console.log('error: ' + error.data); + }); + + poll(); + } + }, 1000); + }; + poll(); + }); + $rootScope.$on("not chatting", function() { + //clear our model, which will clear out the messages from the panel + $scope.talkers = null; + }); + +}); diff --git a/S3WebApp/S3/modules/confirm/confirm.html b/S3WebApp/S3/modules/confirm/confirm.html new file mode 100644 index 0000000..8db0679 --- /dev/null +++ b/S3WebApp/S3/modules/confirm/confirm.html @@ -0,0 +1,41 @@ +
+
+
+ +
+ diff --git a/S3WebApp/S3/modules/confirm/confirm.js b/S3WebApp/S3/modules/confirm/confirm.js new file mode 100644 index 0000000..a3ec395 --- /dev/null +++ b/S3WebApp/S3/modules/confirm/confirm.js @@ -0,0 +1,45 @@ +angular.module('chatApp.confirm', []) +.controller('ConfirmCtrl', function($scope, $state) { + + $scope.errormessage = ""; + + $scope.user = { + email: "", + confirmCode: "" + }; + + $scope.confirmAccount = function(isValid) { + console.log($scope.user); + var _username = $scope.user.email.replace("@", "_").replace(".", "_"); + if (isValid) { + console.log("Confirmation code " + $scope.user.confirmCode); + + var poolData = { + UserPoolId : USER_POOL_ID, + ClientId : CLIENT_ID + }; + + var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); + var userData = { + Username : _username, + Pool : userPool + }; + + var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); + cognitoUser.confirmRegistration($scope.user.confirmCode, true, function(err, result) { + if (err) { + console.log(err); + $scope.errormessage = "An unexpected error has occurred. Please try again."; + return; + } + console.log('call result: ' + result); + $state.go('signin', { }); + }); + + } else { + $scope.errormessage = "There are still invalid fields."; + console.log("There are still invalid fields"); + } + }; + +}); diff --git a/S3WebApp/index.html b/S3WebApp/S3/modules/index.html old mode 100755 new mode 100644 similarity index 60% rename from S3WebApp/index.html rename to S3WebApp/S3/modules/index.html index 0aa6e51..45ace10 --- a/S3WebApp/index.html +++ b/S3WebApp/S3/modules/index.html @@ -1,33 +1,20 @@ - - -Zombie Chat Application - - + + + Zombie Chat Application + + - - + - - - - - - - - - - - - - -
-
- -
- -
+ +
+
+ +
+ +
@@ -97,5 +84,20 @@ + + + + + + + + + + + + + + + diff --git a/S3WebApp/S3/modules/signin/signin.html b/S3WebApp/S3/modules/signin/signin.html new file mode 100644 index 0000000..33d114c --- /dev/null +++ b/S3WebApp/S3/modules/signin/signin.html @@ -0,0 +1,55 @@ +
+
+
+ +
+ diff --git a/S3WebApp/S3/modules/signin/signin.js b/S3WebApp/S3/modules/signin/signin.js new file mode 100644 index 0000000..0832429 --- /dev/null +++ b/S3WebApp/S3/modules/signin/signin.js @@ -0,0 +1,94 @@ +angular.module('chatApp.signin', ['chatApp.utils']) +.controller('SigninCtrl', function($scope, $state, $localstorage) { + + $scope.errormessage = ""; + + $scope.user = { + email: "", + password: "" + }; + + $scope.signin = function(isValid) { + //console.log($scope.user); + if (isValid) { + + var authenticationData = { + Username : $scope.user.email, + Password : $scope.user.password, + }; + var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); + var poolData = { + UserPoolId : USER_POOL_ID, + ClientId : CLIENT_ID + }; + var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); + var userData = { + Username : $scope.user.email, + Pool : userPool + }; + var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); + try { + cognitoUser.authenticateUser(authenticationDetails, { + onSuccess: function (result) { + console.log(result); + console.log('access token + ' + result.getAccessToken().getJwtToken()); + console.log(cognitoUser); + + var login = 'cognito-idp.' + COGNITO_REGION + '.amazonaws.com/' + USER_POOL_ID; + + console.log('login string is: ' + login); + + AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + IdentityPoolId : IDENTITY_POOL_ID, // your identity pool id here + IdentityId: AWS.config.credentials.identityId + }); + AWS.config.credentials.params.Logins = {}; + AWS.config.credentials.params.Logins[login] = result.getIdToken().getJwtToken(); + + //console.log('aws config is: ' + AWS.config.credentials.params.Logins[login]); + + AWS.config.credentials.refresh(function (err) { + // now using authenticated credentials + if(err) + { + console.log('Error in authenticating to AWS '+ err); + + // Call error if we can't assume authenticated role. + $scope.errormessage = "Unable to sign in user. There was an error authenticating to identity provider."; + $scope.$apply(); + + } + else + { + console.log('identityId is: ' + AWS.config.credentials.identityId); + var awstoken = { + expireTime: AWS.config.credentials.expireTime, + accessKeyId: AWS.config.credentials.accessKeyId, + sessionToken: AWS.config.credentials.sessionToken, + secretAccessKey: AWS.config.credentials.secretAccessKey + }; + $localstorage.setObject('awstoken', awstoken); + $state.go('chat', { }); // if all went well then log them in. + + } + }); + }, + + + onFailure: function(err) { + console.log(err); + $scope.errormessage = "Unable to sign in user. Please check your username and password."; + $scope.$apply(); + } + + }); + } catch(e) { + console.log(e); + } + } else { + $scope.errormessage = "There are still invalid fields."; + console.log("There are still invalid fields"); + } + }; + +}); diff --git a/S3WebApp/S3/modules/signup/signup.html b/S3WebApp/S3/modules/signup/signup.html new file mode 100644 index 0000000..b532fd2 --- /dev/null +++ b/S3WebApp/S3/modules/signup/signup.html @@ -0,0 +1,107 @@ +
+
+
+ +
+ diff --git a/S3WebApp/S3/modules/signup/signup.js b/S3WebApp/S3/modules/signup/signup.js new file mode 100644 index 0000000..dd4a20e --- /dev/null +++ b/S3WebApp/S3/modules/signup/signup.js @@ -0,0 +1,93 @@ +angular.module('chatApp.signup', ['chatApp.utils']) +.controller('SignupCtrl', function($scope, $state) { + + $scope.errormessage = ""; + + $scope.user = { + name: "", + email: "", + phone: "", + password: "", + confirmPassword: "", + camp: "", + slackuser: "", + slackteamdomain: "" + }; + + $scope.register = function(isValid) { + console.log($scope.user); + var _username = $scope.user.email.replace("@", "_").replace(".", "_"); + console.log(_username); + if (isValid) { + console.log("Submitted " + $scope.user.name); + + var poolData = { + UserPoolId : USER_POOL_ID, + ClientId : CLIENT_ID + }; + + + var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); + + var attributeList = []; + + var dataEmail = { + Name : 'email', + Value : $scope.user.email + }; + var dataPhoneNumber = { + Name : 'phone_number', + Value : '+1' + $scope.user.phone + }; + var dataName = { + Name : 'name', + Value : $scope.user.name + }; + + var dataCamp = { + Name : 'custom:camp', + Value : $scope.user.camp + }; + + var dataSlackuser = { + Name : 'custom:slackuser', + Value : $scope.user.slackuser + }; + + var dataSlackteamdomain = { + Name : 'custom:slackteamdomain', + Value : $scope.user.slackteamdomain + }; + + var attributeEmail = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataEmail); + var attributePhoneNumber = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataPhoneNumber); + var attributeName = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataName); + var attributeCamp = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataCamp); + var attributeSlackuser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataSlackuser); + var attributeSlackteamdomain = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataSlackteamdomain); + + attributeList.push(attributeEmail); + attributeList.push(attributePhoneNumber); + attributeList.push(attributeName); + attributeList.push(attributeCamp); + attributeList.push(attributeSlackuser); + attributeList.push(attributeSlackteamdomain); + + userPool.signUp(_username, $scope.user.password, attributeList, null, function(err, result){ + if (err) { + console.log(err); + $scope.errormessage = "An unexpected error has occurred. Please try again."; + return; + } + cognitoUser = result.user; + console.log('user name is ' + cognitoUser.getUsername()); + $state.go('confirm', { }); + }); + + } else { + $scope.errormessage = "There are still invalid fields."; + console.log("There are still invalid fields"); + } + }; + +}); diff --git a/S3WebApp/app/app.js b/S3WebApp/app/app.js deleted file mode 100755 index 22ceb36..0000000 --- a/S3WebApp/app/app.js +++ /dev/null @@ -1,3 +0,0 @@ - -var myApp = angular.module('chatApp', ['ngResource']); - diff --git a/S3WebApp/app/controllers/chatMessageController.js b/S3WebApp/app/controllers/chatMessageController.js deleted file mode 100755 index f20d93b..0000000 --- a/S3WebApp/app/controllers/chatMessageController.js +++ /dev/null @@ -1,51 +0,0 @@ -myApp.controller('chatMessageCtrl', ['$scope', '$rootScope', '$resource', function($scope, $rootScope, $resource) { - - $rootScope.$on("chatting", function() { - document.getElementById('chat-message-input').placeholder = "Enter a message and save humanity"; - }); - $rootScope.$on("not chatting", function() { - document.getElementById('chat-message-input').value = null; - document.getElementById('chat-message-input').placeholder = "Save your brains, enter your user name"; - }); - - $scope.lastTalking = new Date; - - $scope.chatMessageKeyPressed = function(keyEvent) { - if (keyEvent.which === 13) { - $scope.posting = true; - console.log('Sending Message: ' + $scope.chatMessage); - var PostMessages = $resource(MESSAGES_ENDPOINT); - var message = { - channel: 'default', - name: document.getElementById('name-input').value, - message: $scope.chatMessage - }; - - PostMessages.save(message, function() { - $scope.chatMessage = null; - $scope.posting = false; - }) - } else { - var diff = Date.now() - $scope.lastTalking; - console.log(diff); - - // send talking update at max every .5 seconds - if (diff < 500) { - return; - } - - var PostTalkers = $resource(MESSAGES_ENDPOINT.replace("/message", "/talkers")) - - var message = { - channel: 'default', - name: document.getElementById('name-input').value - }; - - console.log('Posting to talkers.'); - PostTalkers.save(message, function() { - $scope.lastTalking = new Date; - }); - } - }; - -}]); diff --git a/S3WebApp/app/controllers/chatPanelController.js b/S3WebApp/app/controllers/chatPanelController.js deleted file mode 100755 index 3439708..0000000 --- a/S3WebApp/app/controllers/chatPanelController.js +++ /dev/null @@ -1,35 +0,0 @@ - -myApp.controller('chatPanelCtrl', ['$scope', '$rootScope', '$resource', '$timeout', function($scope, $rootScope, $resource, $timeout) { - - $rootScope.$on("chatting", function() { - var Messages = $resource(MESSAGES_ENDPOINT); - - var poll = function() - { - $timeout(function() { - if($rootScope.chatting) - { - console.log('Retrieving Messages from Server'); - Messages.get(null, function(messages) { - if($rootScope.chatting) - { - $scope.messages = messages.messages; - } - else - { - //just in case, for cleanup - $scope.messages = null; - } - }); - poll(); - } - }, 2000); - }; - poll(); - }); - $rootScope.$on("not chatting", function() { - //clear our model, which will clear out the messages from the panel - $scope.messages = null; - }); - -}]); \ No newline at end of file diff --git a/S3WebApp/app/controllers/loginController.js b/S3WebApp/app/controllers/loginController.js deleted file mode 100755 index d0f2968..0000000 --- a/S3WebApp/app/controllers/loginController.js +++ /dev/null @@ -1,28 +0,0 @@ -myApp.controller('usernameSectionCtrl', ['$scope', '$rootScope', function($scope, $rootScope) { - $scope.userName = 'Enter UserName'; - - $scope.toggleChatting = function() { - if($rootScope.chatting) - { - $scope.logoff(); - } - else - { - $scope.login(); - } - }; - - $scope.login = function() { - $rootScope.chatting = true; - $rootScope.$emit('chatting'); - //document.getElementById('name-input').disabled = true; - document.getElementById('chat-toggle').value = "Stop Chatting"; - }; - - $scope.logoff = function() { - document.getElementById('chat-toggle').value = "Start Chatting"; - //document.getElementById('name-input').disabled = false; - $rootScope.chatting = false; - $rootScope.$emit('not chatting'); - }; -}]); \ No newline at end of file diff --git a/S3WebApp/app/controllers/talkersPanelController.js b/S3WebApp/app/controllers/talkersPanelController.js deleted file mode 100644 index 5bcdd2b..0000000 --- a/S3WebApp/app/controllers/talkersPanelController.js +++ /dev/null @@ -1,36 +0,0 @@ - -myApp.controller('talkersPanelCtrl', ['$scope', '$rootScope', '$resource', '$timeout', function($scope, $rootScope, $resource, $timeout) { - - $rootScope.$on("chatting", function() { - var Talkers = $resource(MESSAGES_ENDPOINT.replace("/message", "/talkers")); - - var poll = function() - { - $timeout(function() { - if($rootScope.chatting) - { - console.log('Retrieving Talkers from Server'); - Talkers.get(null, function(talkers) { - console.log(talkers.Talkers); - if($rootScope.chatting) - { - $scope.talkers = talkers.Talkers; - } - else - { - //just in case, for cleanup - $scope.talkers = null; - } - }); - poll(); - } - }, 1000); - }; - poll(); - }); - $rootScope.$on("not chatting", function() { - //clear our model, which will clear out the messages from the panel - $scope.talkers = null; - }); - -}]); diff --git a/S3WebApp/assets/css/zombie.css b/S3WebApp/assets/css/zombie.css deleted file mode 100755 index 4b5cb61..0000000 --- a/S3WebApp/assets/css/zombie.css +++ /dev/null @@ -1,122 +0,0 @@ - -body{ - width:100%; - height:800px; - position:static; - background-repeat: no-repeat; - background: #272727; - background: -webkit-linear-gradient( #414141, #1c1b1b); - background: -moz-linear-gradient( #414141, #1c1b1b); - background: linear-gradient( #414141, #1c1b1b); - font-family: arial; - color:gray; - min-width:895px; -} - -#square { - position:absolute; - z-index:-1; - width:100%; - background-color:black; - height:80px; -} - -#zombie-logo { - float:left; - padding-top:4px;} - -#main-header { - text-align:left; - color:red; - font-size: 2.6em; - padding-top:12px; - display:inline; - width:60%; - float:left;} - -#logo { - padding-top:15px; - padding-right:10%; - float:right; -} - -#wrapper { - padding-left: 3em; - padding-right:3em;} - -#chat-toggle{ - border:none; - background-color:rgb(102,0,0); - color:white; - font-style:normal; - display:inline; -} - - -#chat-body { - overflow-y: scroll; - height:400px; - background-color:#2a2a2a; - border-style:solid; - border-width: 1px; - border-color:#414141; - font-style:normal; - -} - -#talkers-body { - background-color:#2a2a2a; - border-style:solid; - border-width: 1px; - border-color:#414141; - font-style:normal; -} - -#name-input { - background-color:#2a2a2a; - border-style:solid; - border-width: 1px; - border-color:#414141; -} - -p {display:inline;} - -#username { - float:none; - clear:both; - padding-top:3em; - Padding-left:1em; - padding-bottom:1.5em; -} - -.form-group { padding: 1em;} - -.panel-footer { - background-color:transparent;} - -#chat-message-input { - background-color:#2a2a2a; - border-style:solid; - border-width: 1px; - border-color:#414141; -} - -#chat-message-input::-webkit-input-placeholder { - font-style:italic; -} - -::-webkit-scrollbar { -background-color:#2a2a2a; -} - -#name-input::-webkit-input-placeholder { - font-style:italic; -} - -.mainLoginInput:-moz-placeholder { - font-style:italic; -} - -input::-webkit-input-placeholder { -background-color:#2a2a2a; -} diff --git a/S3WebApp/assets/js/constants.js b/S3WebApp/assets/js/constants.js deleted file mode 100755 index 8e78da2..0000000 --- a/S3WebApp/assets/js/constants.js +++ /dev/null @@ -1 +0,0 @@ -var MESSAGES_ENDPOINT = ""; \ No newline at end of file diff --git a/Slack/SlackService.js b/Slack/SlackService.js index da2ad54..312d36e 100644 --- a/Slack/SlackService.js +++ b/Slack/SlackService.js @@ -1,9 +1,28 @@ +/* == Imports == */ var AWS = require('aws-sdk'); var qs = require('querystring'); var https = require('https'); -var token = "INSERT YOUR TOKEN FROM SLACK HERE"; + +/* == Globals == */ +var API = { + region: 'INSERT YOUR REGION HERE', // the region code where you launched the stack + endpoint: 'INSERT YOUR API GATEWAY FQDN HERE INCLUDING THE HTTPS://' //i.e.: Something like ... https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com +}; + +var table = 'YOUR DYNAMODB USERS TABLE'; // Find this in the outputs of CFN +var index = 'YOUR slackindex DYNAMODB INDEX NAME'; // slackindex for Users table. Find this in outputs of CFN + +var token = "INSERT YOUR TOKEN FROM SLACK HERE"; // INSERT YOUR TOKEN FROM SLACK HERE. This is the token from your slack team channel when you created the Slack app integration. + + +var endpoint = new AWS.Endpoint(API.endpoint); +var creds = new AWS.EnvironmentCredentials('AWS'); +var docClient = new AWS.DynamoDB.DocumentClient({ + region: API.region +}); exports.handler = function (event, context) { + console.log('REQUEST RECEIVED:\n', JSON.stringify(event)); if (token) { processEvent(event, context); } else { @@ -15,7 +34,8 @@ var processEvent = function(event, context) { var body = event.body; var params = qs.parse(body); var requestToken = params.token; - + var slackUserAuthorized = false; // We need to explicitly authorize the username in the payload from Slack. + if (requestToken != token) { console.error("Request token (" + requestToken + ") does not match exptected token for Slack"); context.fail("Invalid request token"); @@ -24,53 +44,92 @@ var processEvent = function(event, context) { else { var from = params.user_name; var command = params.command; - var slackChannel = params.channel_name; + var slackTeamDomain = params.team_domain; var message = params.text; var timestamp = "" + new Date().getTime(); // Now that we have the Slack message formatted correctly, we make a request to our Chat Service var post_data = JSON.stringify({ - "message": "Incoming message from Slack user: " + message, + "message": message + " (Via Slack Slash Command)", "name": from, "channel": "default", "timestamp": timestamp - }); - - // Object of options to designate where to send our request - var post_options = { - host: 'INSERT YOUR API GATEWAY URL HERE EXCLUDING THE HTTPS://', - port: '443', - path: '/ZombieWorkshopStage/zombie/message', - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Content-Length': post_data.length + + /* == DynamoDB Users Index Params == */ + var ddbParams = { + TableName: table, + IndexName: index, + KeyConditionExpression: "slackuser = :slackuser and slackteamdomain = :slackteamdomain", + ProjectionExpression: "slackuser, slackteamdomain", + ExpressionAttributeValues: { + ":slackuser": from, + ":slackteamdomain": slackTeamDomain } }; - var req = https.request(post_options, function(res) { - var body = ''; - console.log('Status:', res.statusCode); - console.log('Headers:', JSON.stringify(res.headers)); - res.setEncoding('utf8'); - res.on('data', function(chunk) { - body += chunk; - }); + /* == Query Users table to confirm that incoming Slack username exists and is tied to an authorized survivor == */ + docClient.query(ddbParams, function(err, data) { + if (err) { + console.log('Error. Unable to send message from Slack. DynamoDB querying failed. RESULT: ' + JSON.stringify(err)); + context.fail(new Error('DynamoDB Error: ' + err)); + } + else { + + /* == FOR TESTING == */ + /* + console.log('Query response is: ' + JSON.stringify(data)); + console.log('count is: ' + data.Count); + console.log('slack username incoming is: ' + from); + console.log('slack team domain incoming is: ' + slackTeamDomain); + */ - res.on('end', function() { - console.log('Successfully processed HTTPS response'); - // If we know it's JSON, parse it - if (res.headers['content-type'] === 'application/json') { - body = JSON.parse(body); + // If no records returned then fail the message with not authorized message. + if (data.Count < 1) { + console.log('Unauthorized user. Invalid Slack username and team domain. No matching users found.'); + context.done('The incoming Slack username and team do not match any existing registered survivors. Please sign up to the suvivor chat first, and make sure to register your Slack User name and team domain (name) at sign up.'); + } else { + // Parse result and get Slack username. + data.Items.forEach(function(item) { + console.log('Incoming message from: ' + item.slackuser + ' with team domain: ' + item.slackteamdomain); + }); + // If Slack user is authorized then call /message API endpoint with Slash command payload + postToChatService(post_data, context); } - context.succeed("Your slack message was sent to survivors. Message sent was: " + message); - }); - + } }); - - req.on('error', context.fail); - req.write(post_data); - req.end(); } -}; \ No newline at end of file +} + +function postToChatService(post_data, context) { + // Create signed AWS request to API endpoint + var req = new AWS.HttpRequest(endpoint); + req.method = 'POST'; + req.port = '443'; + req.path = '/ZombieWorkshopStage/zombie/message'; + req.region = API.region; + req.headers['presigned-expires'] = false; + req.headers['Host'] = endpoint.host; + req.body = post_data; + + console.log('host is ' + endpoint.host); + var signer = new AWS.Signers.V4(req,'execute-api'); + signer.addAuthorization(creds, new Date()); + + var send = new AWS.NodeHttpClient(); + + send.handleRequest(req, null, function(httpResp) { + var respBody = ''; + httpResp.on('data', function (chunk) { + respBody += chunk; + }); + httpResp.on('end', function (chunk) { + console.log('Response: ' + respBody); + context.succeed("Your slack message was sent to survivors. Message sent was: " + JSON.parse(post_data).message); + }); + }, function(err) { + console.log('Error: ' + err); + context.fail('Lambda failed with error ' + err); + }); +} + \ No newline at end of file diff --git a/Twilio/TwilioProcessing.js b/Twilio/TwilioProcessing.js index 901baf8..422b00c 100644 --- a/Twilio/TwilioProcessing.js +++ b/Twilio/TwilioProcessing.js @@ -1,16 +1,47 @@ // This function processes incoming data from Twilio, formats it and makes an HTTPS POST request to the the Chat Service API endpoint +/* == Imports == */ var querystring = require('querystring'); -var https = require('https'); +var AWS = require('aws-sdk'); +var path = require('path'); + +/* == Globals == */ +var API = { + region: 'INSERT YOUR REGION CODE HERE', //i.e 'us-east-1' + endpoint: 'INSERT YOUR API GATEWAY URL HERE INCLUDING THE HTTPS://' // ie: 'https://xxxxxxx.execute-api.us-east-1.amazonaws.com' +}; + +var table = "YOUR DYNAMODB USERS TABLE"; //INSERT THE NAME OF YOUR DYNAMODB USERS TABLE +var index = "YOUR phoneindex DYNAMODB INDEX NAME"; //INSERT THE NAME OF YOUR phoneindex from DynamoDB. -exports.handler = function(event, context) { + +var endpoint = new AWS.Endpoint(API.endpoint); +var creds = new AWS.EnvironmentCredentials('AWS'); +var docClient = new AWS.DynamoDB.DocumentClient({ + region: API.region +}); + +exports.handler = function(event, context) { + var params = querystring.parse(event.postBody); var from = params.From; var timestamp = "" + new Date().getTime(); var numMedia = params.NumMedia; var message; var mediaURL; + var phoneAuthorized = false; //will set to true when incoming phone is validated + + /* == DynamoDB Params == */ + var ddbParams = { + TableName: table, + IndexName: index, + KeyConditionExpression: "phone = :from", + ProjectionExpression: "userid, phone", + ExpressionAttributeValues: { + ":from": from + } + }; // If Message sent and Image sent, concat image url to message. if (params.Body !== null || params.Body !== 'null') { @@ -25,7 +56,7 @@ exports.handler = function(event, context) { // If message was not sent but image URL was sent, then set message to image URL else if ((params.Body == null || params.Body == 'null') && numMedia > 0) { mediaURL = params.MediaUrl0; - message = "Image sent: " + mediaURL ; + message = "Image sent: " + mediaURL; } // If no message or media sent, throw error. @@ -39,41 +70,70 @@ exports.handler = function(event, context) { "name": from, "channel": "default", "timestamp": timestamp - }); - // Object of options to designate where to send our request - var post_options = { - host: 'INSERT YOUR API GATEWAY URL HERE EXCLUDING THE HTTPS:// ', - port: '443', - path: '/ZombieWorkshopStage/zombie/message', - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Content-Length': post_data.length + + /* == Query Users table to confirm that incoming phone number exists and is tied to an authorized survivor == */ + docClient.query(ddbParams, function(err, data) { + if (err) { + console.log('Error. Unable to insert text message. DynamoDB querying failed. RESULT: ' + JSON.stringify(err)); + context.fail(new Error('DynamoDB Error: ' + err)); } - }; + else { + + // FOR TESTING + //console.log('Query response is: ' + JSON.stringify(data)); + //console.log('count is: ' + data.Count); + + // If no records returned then fail the message with not authorized message. + if (data.Count < 1) { + context.done('Your phone number is not authorized to send texts to survivors. There were no phone numbers matching yours. Please sign up first.'); + console.log('Text from unauthorized number. No records matching that number'); + } else { + // Parse result and get phone. + data.Items.forEach(function(item) { + console.log('Incoming message from: ' + item.phone); + }); + phoneAuthorized = true; + } + } + }); - var req = https.request(post_options, function(res) { - var body = ''; - console.log('Status:', res.statusCode); - console.log('Headers:', JSON.stringify(res.headers)); - res.setEncoding('utf8'); - res.on('data', function(chunk) { - body += chunk; - }); + if (phoneAuthorized = true) { + postToChatService(post_data, context); + } else { + context.done('Your phone number is not authorized to send texts to survivors. There were no phone numbers matching yours. Please sign up first.'); + } + +} - res.on('end', function() { - console.log('Successfully processed HTTPS response'); - // If we know it's JSON, parse it - if (res.headers['content-type'] === 'application/json') { - body = JSON.parse(body); - } - context.succeed("Text received in chat room. Survivors have been notified. Message sent was: " + message); +function postToChatService(post_data, context) { + var req = new AWS.HttpRequest(endpoint); + + req.method = 'POST'; + req.path = '/ZombieWorkshopStage/zombie/message'; + req.port = '443'; + req.region = API.region; + req.headers['presigned-expires'] = false; + req.headers['Host'] = endpoint.host; + req.body = post_data; + + console.log('host is ' + endpoint.host); + var signer = new AWS.Signers.V4(req,'execute-api'); // es: service code + signer.addAuthorization(creds, new Date()); + + var send = new AWS.NodeHttpClient(); + send.handleRequest(req, null, function(httpResp) { + var respBody = ''; + httpResp.on('data', function (chunk) { + respBody += chunk; + }); + httpResp.on('end', function (chunk) { + console.log('Response: ' + respBody); + context.succeed('Text received in chat room. Survivors have been notified. Message sent was: ' + JSON.parse(post_data).message); }); - + }, function(err) { + console.log('Error: ' + err); + context.fail('Lambda failed with error ' + err); }); - req.on('error', context.fail); - req.write(post_data); - req.end(); } \ No newline at end of file diff --git a/cognitoLambdaTrigger/cognitoLambdaTrigger.zip b/cognitoLambdaTrigger/cognitoLambdaTrigger.zip new file mode 100644 index 0000000000000000000000000000000000000000..bd80d1bc77850400abee5f02db4a3a60fbbbae65 GIT binary patch literal 2232242 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νpv!yhhes}Hs2>-@y@vR}COFVQ+ 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%0A@nU8GX>L;8JWwEPf!j}u3Dt` z2Z)n2e9Qf0eNW3K=!pw~x0F2Xo(_O*LU+-siC(=_RRjLSQ}B3Z9#Zer zom;;KY;&T2r)0DZreY;WuboS|t}z*v9osi@iZ7bo4X5Q5376MCe_oU6VNW);PJ46` z==1U9TnxZvn?-F)3W~k%KB-Tr&r$fsdV&vnXD2M zbt5ZCVQePW1p{-X)h)q)w8s&Huoy>eKy8R4bSv!zv*>w(ru<&U4;W?eM>hC`Wy6Ev z0RH9gy)o>)I26A+UWP%1C*Jnv*5=06_QvLxciOG&ࠫyNHG-ga*j4^A0L2d#fm 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

P(_wwdISm0iRZ=NQqZqTFg;#W+nkHD%hz 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

eQHf6@NVwW1$}X^7 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

J$c5Zv_Vk0sieh4 zqzrwa3Dp$LJi=8{un)l*T6~5Si!;E4p*B5*0eF%x(Tj_%*d5-`-})v~Y0!%5U?>Or zgxhrV%=2os4lh~5;)q<~Vna8Cr};?x<{e zS%>wxscyWujZQ`7ZDtT`_D(Spt2bh%K{m-@EFs^EdWIms_e^F|OG2;VJ+o*F;a%f} zMCKKzWuRZf6i?=I-XrGa?CE5B)K-k>@?o(wwS9><15b*o^R0DczQOlG_Qnih z;$|7*APR{(Uo9ov(v=(a=S=6mo4l>nkAsv9^TLxrt~W?Vino4L-O+|X8h|RDRu@Lj{0hl8sJg442*s21 z90u!av%osF9Lj>^G%HbKR#&numnT)YWPUTpL$W zuHVBL!0w^fPj?iv>u_odWrixE%cMo(;dJj93qYr~qsOwmz}C9{dh8asDGc)Y5Q8bQ zH`j;8bBI9ZmYaqf`fC1I=^$F|-M??e)c%$ns0j_$gJ86+?RCC(2$ce>v5g*9ye+ZQ z5Vqcn@YQS!>ASGnpsnAlb$ROTXjNW#7eN!jUZ>NTg#4#atFKUHPtbs`*I-j&TDC5> zLd^Csq((-Kk%?{)5cpC;I(C0(rfZsAKk5=uSzGOt+4R0}Ajnf*R6O9WR9fddQJ4@S zoFL@)v@|~KaX<>#wTH!>ewbR4URgv()26F9XaafcydqIiW66C7h(6Jg42=U-VP?i+ zKm%JJ#?pxpt8F@d1O1x}O1HtP)*4u)(jy%np)-{?i*hrpTAo$(fjl*j2#}m_D_o9E zdqpE0ABB$m6*Peab3?dI1opvi41%JL+L7pVR8qAhbWOzmMHrg_s^rE1h*hPFiqgMg z>2$Ty&KzTlp;e70{E+XDJ7zzt;k~hvr4@IbvC{J@2gUrfbADew+`O%hJ_G0B6rg`CnI|YF3WE^cSOa)2 zZc@5jJMSwI2U{rQUhPLiLT?}Bfmni|3^h^Vs5Q%DDv}27S{XX#(o2rUiPNdaZS0${ zO4>Dk)QSKxdp=S}j<%4bh}%*^nBbk(?wH%$5E`=!Ys0IT*D?X)lbCz%&hcU!-I1SFKWoUX6;Vg{6wOMrw1(2 z{JSEpL~-7bU$LCFCdeQSjV801>T*WSmsGMVKrc|GqDg~$Ey`FaeAKX70O^xae6W3O@*Yg+=_a9y5LB=3H@AA za5>(#Ss{H`w*9sDyT&u!GZO=6DHSBXH;O4qG$xALxuh?fnhBfn{PrPo>TILV#KIhg zkODVIm@oQ4T!`h25qJqelPYtlQEUshOLw9q;Iw5WT;FxhWP#{dNbtQ_`#Thw}Dte-cUk> ze%MjC6dD&ZJ8tRQGS;fu#cMaGa2Vw0Fl>RM$38)o58s=KSa@uScySDwAV9(8H1&l7 z$sxIadtj0j-0ngo}w!40?bc*%{{bOdYGDN1FYKrj!!u{fIb_0(Z9 zyLfiuA4nlG{Dbu_2<5$F7p*2eKD^1qx9AnC#vN#YW%ucj@3)xgSF|fWgkRL>)rtp1 zF%c*$%HyhIm2h}w7Vgxu3CDKLe2jr@wiREAxKW$K6vay-B#ZaD+&pR8E2L1zY*!ex zZ2=Le(D3%aFH-|cNg{rzFE4SU31p)wEwKb$$&+%jy4lQUy#Y?Kx&0D)9ZcSke_uhk z834-nUBDs!=33VdGw8uHYb^+Lu2iU9x8eLnrVTAZIq$fUCGP?A&_Id>RG}r#odu7^ zGsX@#>gg=7X&o~{)(%4UM6|4e4f%VH+SOX^P5TYS23b#C03_>Z@dciNtX$k)$OPUm z$dr%B?~|)iOzI4V;g;u00^gr%#orSmq7sjjroo=Tdgj~pEVx?3SIXb^eFuOAhk8KE zib+1wM9o%n{Wp!gKN=>~!XcOfF>C3&Jg27mvH<-#xoTL(kcY;AOL;wyFKXF`v9iJT z8(FBR(anueT}Lp8w7a)?IE*39?O|LZB}ZJ@)qVnga|(WRMG3OWIp^Q2%3syIfDPj? z8+pdo_w_6Ta`tLy+Ef)^U#(@|gcYDBMutB@^@o!zkK;(n0~6xd74K$3+4(cxXQxf$RNJ%pn3O}v68K(E-$UjeHI7R(l93XCgo5ChOw%0UEr7n!rcMnE$1 zD5P3BCUGu$+6j6yK@HE0-#>EUoJ3O$E~ICZsMLrc1=xm((vk9g`6M zv<$M-`XMKCBbvb&^gRRN%xT5nIm^bI^#=zSbe*Cza|tV=9s3HcyR(cO$Swo*3lz`F zj~%B4IIV6mh!#40)zt}=osX7M0y2AO6cKI}!iho5#)>}WC&QMCdxhteW!Ythk7|c* z3x_rfzINdpmTk{H%pfE|1{L~W@+Y7j{a5hlKL(fBCgC$~x?K1D0~E@8ltb!jRAhA& zO30k}J}#oCtXX+PVHmhY-_jQ))ueL6B7K#wUMAS9W%Gf^F}Y@$X?eZW>yT~^cQ#Go^(6~X_Vya2}Za1{~! z2S|1D`>*^iZ~b{85y4HsH3Tuc)aCq;ssaQ;cC76A?~Sz0u3eY%TjXHX!cV`t?|h;- zY@O3KOj(QaIsL7vUDcMHg|YaQBG-}V9g z0`w53x(<(K2DzMW4tsf-C!lV#z2GJU=9I+Y2nIXLVh(q6Gzl5-da^{&;!beh>;1?o z#MBfe&q6`%ouJ53*!;nx^+r6q_y&yj*`mj%H7zSCl#Pxg4yu~G{5u}6PA z*3>ks#DnPl6kF0TeaSL**OkYIaY8A~koi(%JfQa6ZfHOT6m*u;u}_#0)0K?jOb+Gh z-X_71;*}Fr}El8XC9ziqMqCb`nb0{ z5%?aV;hQSYjbDb!qf6sl9u>h+R~&WJf%RxQ>ij@21a)2@9?=W#BNSFc4kxM# zoscX4UECyUhwvRI3Au}*+ARuMQb6MXy$l6Vz{pZeaE1pG&@jaN@sINE{OqBEOR4h` zX@y7Y#FYefl9%#d^1ionhWmzeHJeovxe2W6Hzjkob1GcGfFr@atwtbfa>=F{3!l_u zLZ}%jdq5uB78{)tKNenBO!506oUvCR@PT@&d_V{JEJNT_*|v-uYc9QR+h2&aVe+ zaZzIC6U4)#%;CgTZ_(aVyl*eoOQ{;^NVrVtIqn>luN<0hntZphBAqMJnru3KRb7&u zV9J^p$S#3q7l{*T^9D1yX^d+wEC;eav!V~H1n)^8O}(Bs_T;Xq;AHX+%-jyTUQ2_& ztnV_Ow6m0)ZNKzIZ8k3HX%5yZpBf6C;S_X28NNzLp^x|);^B5m@E69_cRB(NAB`!$ zAC8E5h5)6J3nAGJ(22^T>+l0fW-ltdLV)^Nz{8e$clT?&NoMRSflr&~10^!jlpKdg_+voNL#oRRx zl0tp5Qf0NXU#jdYQ<0O4j>|FFt*d9I2TQzwQKQ)zAik)nw*12oM%it6hXZf* zj5&H-`e}C)L_pT;dsVs?bP1(rV!K${+@r!A+E9{f(MEt3FsZlu`&`3$*ID?+!tQm& ztYO=$k&q|N!ZBRsH$t;4#8)Don(y!|a%XuqceaX#_+#zL>5~pkbe^li&D2hh{O%%O z3BUIztFB=g7_nM0k0@miHO=6qvc_qJWrYaH+$0lB>zCLn{SY#1)e@te(9+KEKmjw< z9GsczO8K$T_cpeE`QTIS-b~=8B=rj*u&Z_t!NzOdOVJ|#VG^A_n1gs^y>n8(NWL4f zWS3baDc~mIhqT?!k9(@mv9&E1&PhfpRznsqSu~NV@pI}2>sDa?C*Gtjr8jLP?Ns^i z!)WJt3{?~E+;YT`?uH!JBbM`ZMAwX(X?Jl5=r!>zDki#GYhf=V1$!0aFeoki{c@wK zy^Hj_bdUIm^me*)^hrMG)l|eoRpzN!M8KE{Y*#Vytqq^idQ% z+#GD4PZ4nK%t=7>U>FaBY=LvwudtaD*zom~WbLhJLf-eCCS3xSTj7E;Sln}$!D4CM zV1dzRZkA!#4+7M!h%D&DtYN&2p=tYtX4DBo?|XBXAUB{^uS7t@JMHsU_BMX$>n-a zW}A>?+X-^<4(0h29N-JnP^!!)EFgKV#xEC94u5_6wAPFPbALcvCl<>TO>@edx`6KE zkQu8S8=Ub5{*C#>9d!S#0Tlq?lI!o!3Vz=s|2Kzc{a-%7AGXW?3R1&#P2g%~x>4uvSS_#V(F*98oG z1FT>K`}5kEpPxUL-~RjZ*uVX=-~P`(m&gA8ruqNvv$wxpgGT$0@Bjbpr26NAcKUyJ z`TwRv{^#oRr$n=V7VJN8w@;zF^afafaGgh8NqR>AI%JIiGJnfi ziaeFDLnJFjm4@kQHgxgc;7)|+vIAp2x{76%icBKq1lm)Eh%iGLS?geFco8Hu8d1K` z=(=bDYiOOI9rX1GExD#clvs?aT~#`qqFe#wV1-V!#c{E-!#?vFvQI-ZZ}FmRF)5k5 zgKJ2|5GK#S-rasd__g^Z~|IK+5 zpYZ>;aQ)kA{qwZ={b~vR$7%7~b!fEzXyN|fPK>|e;_siuZ^!fh7B2qw2vnpb`5YYV zO!XWcej6bB8zB95Nd30}&XnV@_NRm2d_o~bjo=l=C=bakE2EK07FARZ#)e7MpX(=z zq*5>nj4GA%QPI_e8ReJSRqN{L(bsK4UHO!2G-fD$oXF@P&< zS>g@Rj-cpIz8zfLP{vvtS*FNBf7YRU1x+CFbu~|L0*p!xN?gmf(9G!P@7-DIW@+;o z#Z$4%7kG8QFz$`JQ_z}sX`6Z{U2wkzbo045X1?117ec)=FX|ATOP-ROgv?HOWo$b;P)14ydX*v?wTCxPy~1 zdh`i)mL9FM*+(f7pl-b)i76X`KwGV4-`AN;wye>uVkuv|iir;38j8r2zfm(W_hJ&g zUz7}Rem&CHW`+wOS`3K!h3F??1nKkuewQlkvw7*OF6#&l!Og;7rsS_reK+h?3*bl4 zd(g3bx*IaIyawQqn8<&uM!wEWX@wyCVubB2rPAj6&Nb8S5$p9yco)%8Y*s?gLHqm$ zp9(}nW_&4M###6fo)YRQa9$JlGuyiUSdnnYpu4?yxTMcHMiFu>HNEECv(g#A#z#QI z!*th*nCt;};iaQa82wTiH{O=aSs@0!J#pCiS2fdHX7R7F#iM^>5j@K_Kc~Kh&WT`> zC(vo^nzN;<;s7amYDD_1SY+^*6f=$lg8^w}UpEu@t*9cYb&jDLSxaV$*f&m!TaR#wpxvU((Vrs$? z<6AFg2tluWmWR(pn!#q#bLwyz;UMR8B&Ds?aeIN+i!CgRn^X3;QwvjKs&qzBh24LJ zi7TlYxRg&$_R~L@z5O00#Qyg%@yF@$X9Nk({}3bu1a%#B{|Q7yDrj2I(II>OtZrG8 zKx7hM>a3NUo+r>k$BzUnU{F-G6X5d0!8TTJIOw*2OO?z=l1p6eI?DPi3oizNxCup4 zDXDgff+I^P2Fm&CgnJp>!{Ml5@%u%>!GtW z^^kgHHZY<@=Vv2Jh-uT5abGkF+^&qv)GELh$eD4=Vv-}veFg7UW6kCe)6u4Gz$L65fjjvs_BJiyyS+Js~Qi2-Y7RGY6)d*u%nnye;<)bQwsZ}mG@^@}A4T;Vuin};k%I3#tUTMkC=e-2E-E;3a7>M@Xil6>cs?&Xm5K8|;jF*Dl`B6>q@eNci@o3)KzdUF%(%a^a$ll9S?Z(SFd1#j=!&;e~<*@zwAu7~%0 zf(i8ZZZjE~<1U+_gj=-g(yyFJ!S_m(3^#EXPfszSI-TChYIUl4Lnar!<^-%1Ru)or zJo81HBQj77^plox_d6!n7DKrxFoMIt@FigF*Nm5m(u{&)p@DkVn`CfFTM#VM5-Z`D z^mTve3==vya>WCcOP)@O-)4n0vUR~*Qtp2zdnJ(Cz7}Mn8luC69X?sq02K)>oASt+ zINk$wUfu?eA6J#74BhFNT8ISJArAjQ$z0vnPr86IZD?yi2})Jae{a!d+SHpyv2PBb zssvw8RTGsScx)HiG-;vODCT|bAN68>a36hUcJh>l|H05wka2c zAcf%M=1*L@5ZoQ5Bg*jo$SS`1k!lu{GW{(CATM?iXK2n!YyW=Q*oEbs6+_jtn)Bi$ zyy5Eu#-_adl`|WP1q#DP=!V%aLjIJ~MmO!xkef~Yq&@oN8nHTaVuSNEMxito>aafZ z-7gTd;JtQ_3d_0(E_q8LRagA={lHNTm3Vf zP~7^gCg8n(YTKR@hhi3|FLtwCtQu-`5=+jTqzsg{_3L404M|I``#2Jfb!Yh3 z+chi*_+&TUjz5!I+6+2hA*>JvvOUjaBMX=TM=g8)AkM-s&`HR#u5ZYZh?3@KMiFrI z1?==#jq0yoGxnFBzvv2XmhdD{5W@w)25Q&KJwiqit9^qGy6qrtnbC2wOZO8^9KD;; z_{hoyP4Boe`^LL4#~fA8tl_gULUo9Z>!R6b3PejQbI@>4L;@qEx4K7{DD4mF?d)k zlSmOrSg%s~9T?a>gOIlA8vVblZ=SI}U9aezxXZxfUtz=OdeCmZe{Zd1eIOgxfbUOg zZttI5YN83fcq!K!qB+qf)%feMTPJTe4!qCSNG-&_s%WJC_Z7{*&eT66X8osiji9x@ zf~(Cx>kW3QXj-o^BYQqp>%7Q})ewlB%$*hqpkWF4G{9^-sO&uP#g?Q5@|z(iPN=+X zjakbjor{{|;KvZ(tlRUrh~XHrgLDf(n~v*1UN&vV8DIpA1?2hplD!f~fbuEr1Q7W7 zBmA-k=+T$#&Bm*uJ)#dMy@}%FC@w@%o4L} zr_Sl<&L#3S483|op~0v`3=}8ZkCg_X;MwpDgh+>R;WdNT0D%0cf)DJaBQ@2qDiYKy zGV@}M)6ri6n$q{+VY5jO56nlmR{~GP6;vWo}3-^;c|EpD`-~ zWx2QRPiHfpZX<)4Q%WFl#WzjthksXx9~HMcP0Hjscg6%T>gfj&k~HK&S=drRw+J+jC&YvR~c#TKPB z(>4+8*J1J;Q;Oy1cHfs!$f74q>c#pX&_Oaw@>6b{?2K!3gZI5f2?9zSU3Zse1Ok0d%}R@fHm?ZGmPT|ey+!E{|@_WMnao>2HGMMFb93CSt{JQ=WT=S6HkO zlUDU%C;X}J9CUr`@+|y&@#qQ-3zXJo?XgND1fOlp^J6QIPF~OkFPDp7?)C%>i%wq5U_~~ z{Ekqpw-d5gX9fi=SI0JJxj*=YZ+%wFj`g=2qs%}*x=;jtA9vAkHjh#P)Xu%L_>9kH z{VlqapT9}gyoUb5G2hDUhi3BYGDV=F%noOCD$5vMWL3l8TBGN zIMc?5>q3=qaE{|D@+=e%&s%xtqlRxKbWti%7eYWRi;;bV6E{3>z}p-@8&f8w-w@wJ zF9E8N|LAP^3u@WlXT-nbx$x7X=1U^sg*zJ!dXqs{z$FgE zrrlSX6B?rRS`bMbwe4b6cL-K~e>8+)#kU*Fr;%iHUyn{xibRe&PvE}y69}LX*6hAG zsz0vxw8+PmJkHCwcEIjVk}k|$x6$DUWlj+?+hP5&K#9rWo-Y?}7CwABY0I@F;QbQd zL=+kxS4stNSqb=Ul0>DR)GTyfpoF(_y@6|;A#otG0ODkJU_ld_#XM_DlaYQ}5!!AzAvOk# zN63>1Yic@usE9{C8h6;?I%?=7xwA* zvlsAVAO*h54GAcxM6v-CY;SBVITJ#N`@J4vOlShNa2bib zP)^~XQearZJYViX*m2)Fr4jeAUzQ)-z-Kq#p^1$FG-PTY1$vD}Uwm2Cfq6XGVP#kg zl%=h9Gp@XU=P7|D3gCqjD|5xkfi-1USv7agg;S}z04||IG_Z9x zGp|TdmNknIoh~9!S(Z=cqrR2h44Cg{1fyu(d(Ja{1a~jCoYvenW(Q2nrwIHl0+Y~k z%L$!v+n$(@Sy{NZCUSnerlcPue5##DEnEGUQ%M&XY5*#Lm}!LiVd1vTW>8k~$fY0^ z)+k`y-99$eSoU%$LcAFm_ASAdo-ckEt2NFYZHq!+x<$n6h-^ASHoVt4Y$S^lwJLla}x$}fw z*t8$${gbcuhv;x{-)mXv_c4dxSLY=Df?D>Ekox}_WeHjs{((xj%=5AHh9c;8v#~~E ztTMNO5Agj}su-^#Tqo;2`;y6$ zN1(eZQUbSOSR#7dqkYD$h-|n71DOc;n;XE1LT~k#ehapA`?fqj;TW=xqlg3#IYn@ae-DeE8T85DyWOb^{!U zCu;}nXQfk>ps;JyTLw7_s0eTuCV3^fIC-Yl@IoNDDUg@qCl+IA z7FyPPauF7~w66VRVf|GixWyW=!o<$$7?rNdf!a2O*M1C;F!v?^W4cQYZ3Dz|qaDih zS-e+gx^q#pIuWAl_5kkY%MV+KL2oeg+#6VUV{B;8muxF9W|Ef-G6m-?&xZO3=0>Q{ z@7`;Hwn=tU9m?GAzy<@Ksg!zAdKcO7{!nE5Yk>ay`}^+*^glb%BA_53Xyst);QAXX zTc(oc&(g&6Kv{#_^1U?4w>BRtvQm&QOjPufEN}P}&zf1RV;p4~uJrm`)$QlYQw*5^ zvf=)%6=#CZAJC&HLoCk(_6FGlL6G-|F}^~MR$`;5UrK}0wJ2rN7RZ|e;6b1-`h;d@ z=`oI?NXhdn;g?75nx~T=EaS7TU~8xN5j@kM#feQZ6Y)vzs(op>fz6{4c1{V@SH=4- zK-bS#KjCX9F&0KA#*_`_(Bk}PO{e$KUc8QYpHWx#ETMIkLUHLN*^7I^1-J{JGp!`t zajuyB%B)xKaE_@8SS#c+1^!q^$?_3hAPj8t7Ld9SiJrUF$T4z@$Fht4obXEI1YpYG z20;X|CE9eP^j4;AEi5azocVjEpS;>M1iFN&sEYZ5^uT_K1xYX}^_^yq#$MCIM&sHC z7E>T9b97uZ;+=S<(eHDpTHT-z?OJonJ28!gWGthu!}PeEIN%Vdxrab1RqhJ3BiFnAXNY9^Ry|WtLX86C|Cz`yZDu+*cH=8i)j3 zgNA2a1BRDZQi_%l@;Lhkh6G{>B<9x#8K>SY9dYBm>1?7f#*B+t;lofxhfS3bOtWoc zG)Qp`$*^sbB2HxUY?go8{jPNG@^(G!*4`Wob)jM#$J`0GS)l%t2Y@@R@NyQ?!>n>!baL{Q6)CCQ_=H}jy43vk zTxa~6u@&%mCnb$5SC66nU^Wz`H*Egyy>>3~Ju`?%AVm4H#PLC(yr3OeL3UXfC6VE< zT>jv=*ELP3U>uxbCmL{@uv3?V`E6Qki!=E(>kk0urBaV1)(Fgq(`%t;GvEXr;|^HL zw^Cg(aTOWT-;$U7b>m)9B8HkoB?|^hNFk*GIbtrkVka>y;hfeWD5u)b_Y9nv+SmMS ztv9fxK&tbcP=DMqAIxLVPmrw(WHRdByBza6AYgHM0?pknPv%|1zV5FK(I{sFpdox8(&Wz2U`Etj z__Z=9%z*NQaQ^LSUNkMYVo++}A2xAK5;edI@8wMEAC@zJ!Q|2(f&1@Ba(}v+pdcV+ z?eKfegv9sU_w@H>!nf*{{ahbEk(uVk(W0u-A`we;veX7qcRZVls*>>t)A0Ep51F;1 z83hgLNPw-+=k4EcxEV0}ly^z>1Ia4PT98zOT0{sbkRtNnrb-Tsk)@FkSK&6L;Wp`# zE?@TD>N3Ux!W{7f1n}uH9!M>*b)gZwl_l~n_V6P|+jCXc^z(vD3dXu#enC1aKUcC|gRn)2*U}Sj}tAe}M9p{*nne zVyLH_b3@Jqfh@~s2T?MH4yQrGJou&r9tnBQjNNxfzvgYUEkkPk zl&)HdO`Jyrx1tYBhYZ3Pjb9arD({XhFoKp2%tMLPHN!us^hri)Cs1`Kiw1t5HD6$d zXH#vv?6ccAS{~gJ@PtC4eWop&R^wOOg8Ja$u6g}j2I?WLXvgZ-Gpn?c7(NKaPpCw# zo6E8OFQB_MWrWQfD;Ij;7_v<#Pd_r9#3<44tb}C`)zSE(q7N%Hr7?F(m)0H=7^KEc zWW)=2c#jpZ-scRA#tmmRr1?q1S$pR}foBN}pBsq#jca1R>P>9Q)*wj%xw!gLPK?5Y z#^#Ea0I#)`Qrd|(1|Ci`Tmp0?%~K9eN3HKRPQtFk6G^Elog@}=dB!(=ak|Vh>;3#) z$mS-ffuqY6U0yKVT%$MydmD;uXIT&Qj2?^@GS9uY#ad!nL9FbW)A@W1%65pSPp9Kq zZ-I+s$CEQ{jhZHDW(AFna}liKux8&{82pE%BHylTm=T6eH6S~=uq z$i4?EDHz024?k16ehK%RKGCRAi&K5#XXg+Lb4(N;EH{wg#(}RJ2Kjz6Zk;R#dGAGa zB*4{4eFR)d7*+i!*Zo8DGJ_eW{M@S&oov3ukk5{nfk=o&!Ga`!DVfiJ^>L}9V9GFTf?1*DM*Z=B-151nJ0v0>_A zX((UR5C{{MjtB759TNBW@C22x-Eg2?_E%){=?n~KopGqj_lBjt8WeTw>in$fP4zxH zhA#Qjlu2`abMtsx(e{0lvVV>p6?t>XI?fI@xW{_o<>kG8VOD9(%6E9&+o=AAoVSY9 zoZ*t)(F#>bHmhreZ_$I`P3jxKH1)?;W(Qc9{VWlKreIBY*n{c;@VrU4IrdsfNWSs` zs4ZLCq%l(C;&8URXPc`LU=PzR1dHMHV%U#%n$rnhWvwwVAx{y$VA(pTkIIJgjO=ri zH}SOnKp)9TvWl?xMYIgzV$4$SM#zW(7v-r7nxs$!U6PIM3CiTe$cR7jY&xpC6@t(U zTtibN!L4nO;sRyh2}52%0;$#kQg*OohgU@LF~qHJ z2{lTI=AFsBTk$1BY(tjdIGqsQ{@6SSXjrXK2B;1ECcPBg{cpRdsrW#*7rU_R{imaoRc3x2z{U$ebr} z*@Kn5QO?31W?fAre&jP~J|5bQWPvJCXd`%AE7Tjey3%USLG_OVOYHUjU6YeaVbAn^!>gDl(k8!oE@MV1^rZk3br*mY2PL$<(Q!>~{ zJJ~l*d#4az;`7XVs47dtDO*@N4NOY7c!!+ek+U`I-X%l*7o7VX17v6yS;mnW^wR`& z)*3J{=O3O?-NldYLEQ&7z2)_*wfx~_>Up)Z#6;gi7mJK&X}$*46S1L{Cn*_xv{go( zv?~KvLj5W#OABtE$cbX;p>`|>2jy3tLf%e0B z4|)()zkh+CaC~*x(VDG5Jx_mZgd(2zo1%0%!Nrn73QaW$k=% z@HQj4yC0@@0P4^kO7B#7mtG|sQdI~!0d-r2JVSmmfy{o@neVePSe0{P_ev&K$7<$L z!LoNFNBDDnt&HaS^2+3iyGQ?2tdBlIfQapfZt5>7q18B3OUnraGoNGwNd~P}m)53k zho(5MyD>n4nItw=dL^)2?jxYx80G708N%b!9Ugy_pFxigu)LtFP!L(_J{~P3X*W$L;Qmm0yNGm+0n8K9xPEL|ABR zfv!bd)7xFsVZ233gr`@ztR{ZnG-Ny6>RqdKk7Rdf@fyfw*C6KA-k~>$&_v^HUe`C`aotf7e9F-e1@Kz5x0cG;DtV#QQs*`#+tw z|4hS1%G%(!y7+sl;?^syAG_YC6WJQ*x5>wC7tZh`mj!Frnndb*fPCTV1cpXN@{;nl zQ7hk`VT0jh8z@JaBhGj9W_CM_zkV0V&W_hMk#Z$8;UgBe`%)w?);-8c1=0%c4M`*A zXPP*KZ|F*kyCDVc8o~N~r#V`AAvPq4Rquvv{6kc=X@(#!%-1<ub#fWR&q-Pm3^U2|$t{g4C3@~)wbKe+ODRq{PvxyFue zB!urBf{;QpeYAN}PP9Ys_^N`CSbsw~a`A2aDcqM>crLxvb_oHaoOuQVa?}sovS`Rq zQbQQ(@P>SJj8bSVTmI_7C{yB*f}CWXlCUp5mdv(zpR$x5eY)7sR<{*8anh!_m~TD}Sbx=w{G;)S(pLyB|6>3Yha)eZ#2^7L&sOu>ELI0U@(r>A_VS8FxlBN~{ zS!RLdQ^b<9`xD0_`D~a>u|9e!3Vuoa_&xW_K(1MZeiOmFx+1RyHv0y$WK~9{Nj))r zt^G$1;0CEz^HnQrvdPMo!3_$@?T|xC3?A!tF9aZK$S<5QpjAc2`vCS1uo{Ls%pt8e zTsY-4V~4lrb1sVt6eKi*U50YG@0Qk0=SUOXz15E5nt)Hxg1j)|#S!tFfCe3XAsD)} z9iQsqU2&`T7@;R7G?@KdXJ(z@c4F(d_rbq`XrlQV*dDJeHsdo=lrrCRs&l}IvxEuy z=jVM*>dkRlM=pz>JLjCm618_2xREhZYi^^Bs*_k?p!G>e*~1^FICg_2qs0Tv6O!S) z@UfemHEP+KVcof|=2UG|7Mr~}kmF{iXPTj2TVt@)%WggJPFX*QkY~L{&2WiGmJ`2O zgu{c5o_wGQd_>*`KiPCi*@y7-lRM4B(t&f?OK(jwZ09$~>#Ixi>5%Gea{_a*V$@ez z80hly`aZcLNqBZ*m5At`*A|$w~-|GgIf?$5a~?xJx%Ao34t*vGy?g zw5;y8+MX{tpy@Wh(@vBhHJF5C$qr(k8*Ctq50Z(+iP=7rU#c$dI8L?H4RpFa!Rz(d z#Wy*>VZgusZJ!nJSRb`=atGE(Jt!-P;)x&yR;IptDXb-Xm{ZMywmF_E`5^(uruG9J z>(@c}#;E9dJnC{E1X=20n;T-;E<(5RB!k$nrEj|l8Dxx`z+_T_Uv8EkEkjUY9YfaD zA!+^3A;a}Q_{l@~9-PJ!Q@<)u<#*^xIJlPsbk^lNF(3p0QvkFJr)5^{2wqSJ7xk3L z5+#YJH-{Ee)-e|GnjPu0oTV)b+F^b0;pz{ymQ7@cOk8$YnPh9y1KN2VZqI-mdAn%! zf3dl$9?jmi?Eb#piAa+SW*|iIk)ez}&)>#G>U@y>JTtZx_(uLZPRDBSIwy(%{?Pou zh1P_%xPM<{8Kpy`lj=+49{DXLj;@JumUFd>ix3q@ZBMh@h_vI6@%C)q~<}W_R5Q zJ;B95oQ+%c+EmgV0hBtS zd>8U-`kH0BiYJm<-*&Vj`v`@v@J>9^uH{l^iu)=*I3pyW zH_Z6ba6Mjrdp9C_c5&tH@+L7`9jVSTFa&XeX!MX?q?k75!q1%8(;lRKYXa)p*F-@d z7Z`UVi8_@Gg)TYUa}v5E88^BorC#95E2?@kbc!Z2)+ACwM>Z_9gtScQxjqGk-n42O zbsU6ouWq+IkTlaCU)dO7zjP(xbZ*=X>IJB$L#Zg(*4Hs$Z=lCW$jM}hSA0>H{-!uldL@T^VJ+w$EyhPqntnj^M zLt3xV^F%SQ`{=eTDJZ_&mylf*W)|nNjqVNRXUW3hjKWCvE>&=l{87mw^gr*}{?1|j zcdS=_Hn#puy(06EJY-WVV^J%62Rldo-y54&kThR;Z`?jBOW03ALa|*}+F~J!kp+T6 zlH~?#A-N`6ES{I;C(6$pc01qm-!Df^>*OOdSg&_v!i^hUrcy)|Zke~N^a*P&WNavq zq5})Qa?=o3oGTaxC{YG>Bl<{&UhX`du*@P`tLL6~m(1%N;G!vf4K=63%kd5*!hKtV z*rkkh(`?9~t`vA*l8gE<%8v5eqn+aVRS8_>onqm|2!I5pM# zcrAdt6^9bOx23mMdJ;O)qfgdJI=7MSiWPh;_a+Q69{u_2i>1hBXGT6x1c7-CjHi`Y zK|x6AmY^cuTJ6GHSvSzjMHP=Sgm4W6sMkFlpFwK;bcTWVftb}Qwm1V1j7!9q&P6() z#re<8DVnM8Yel$Dn}|Us_FU=B8|c ztlfTc)qx-r2DmQZb}9}$=|h&t`O7`d^3i5+7(=eyOZA{&bHob$l^q$+kyGJj>6@~I zxWK(RZZO5A%tkdhH%#ABjG-R%a9v;A&{S24L9iURURF6*qJ zi^xumKJ^5V)Ip$g_7)|>P?z-h5~hmj?$wYIW1I3$ z61XG=VFCRBk2$g^HGz0^8{uUlITPT8Mku7nyapj&I$(TK_;~>)*-SX1bEa8}io1NF zyn}QqMKqkRgFmPZj4=*_&u|yQBx-XW@4FeEEgcQM6vCXKS@3mT?1BY!@hv|U7u z7|1ti3PCyko z)IFz|UefVYUl0$Q1XHtMhQ$=d+rh!&RAyR%8pElTGIR)EO(Mqzr4GDzs|zcE8Sw8| zA#jFq)SzizC~__Eu&Q(Dxu*f4qf%yONLF%wM6Hl=Is`LcCR$zm0e; zSm#J zS_hUEuHl?E%ju4?Iyh@f({_`-#;ua`>`8U`y{v3!{@|U+-#d?&FSRSAJ^@Zw-sa7z zg=m;LMA=98sU~d3oycHU0G)o^pDA1VB7nib4FeoyMPC1TiICpu)qC=h|4nfBDP2l^ zvARvF$=nn3d-6~RyeH?nb=Di`PkJzqmpTo3rw6k?qzA$OIX(O~6#kB6@Ml|>^6!Qt zR>r1AriOOEK?;p3miF84ZHS5LMH`0TH6PI~O}-1c5pj~4+cdJ&bSdB&_$B~p%i+X5 z0LjM-&0+dYBrp~pVtw`UHR0z9rRgvuM6bLENc>W;9U_NE1HPjkWG}+4=~g>xig`la zs#~^t3zsSYPI$oXH#?S?K4W?BZFyN?vYtg_Y>%ME`+zyTf_nyVa>QO{EOq?-7*fb2 zC6N=J0Y(V2_}Vo;0^-`=VuquZHD*=y(rtKI{(gws`sqqwPU{ z3$Ojl@ycx|(Fu$bvjDqe(O3vWtjk!LaXAbGkg{}*PIq&Sfot^pec#lXs)c{C@wH`IhSXglVJs?__qM(YxHT>l^RVAJNoIqJ-YHeS zP;*WOa<)OKiTG=s#)X)Dt;24`j@{LKEio0$MMOB7sMt5TEi|>3ZqI<=1`|4%>|aGx zx=YGsFOn)=@iOrrVAbGf5^TC*aBXmD=Tu1Vr+Z{VcRzF-Qwc+D3815PbVAgC$Ce%h zv>clxak88C8-s#K$8(}v4;L@+uz$e}c^R*G238JAP%qEfJ>(9@xx~%=5^4v|BH;bG zSy`2}gRFhT#v^%5HL?d!S zyv~DOzn&0N-d014Yu`@#%LVEH_DbYuk)7;VM|(@|*rFR_{oCo9ZVJ&P^x!CQdt8Vc zkseiBzcj*Cr|Ad<&FPl5dmxjKGgx8~$~Rf(ccby^p7dR3Sq8lLk2+}CupOUd91%J? z58*KLsrG=qvOac+lMq6LH4DTesn)g-usKyn0Z6&U2S?|I>=z}UjAvbtXv*TThBe7rY+vG8f-yhIxV_?7w8TB z=}z>sw*&^(%jwaep?Avdv*%ooviB^d2KxoTx!1IrCI~fpVVrNdiw^1-S`k=%b8Eg( zslT`?g7Ws4WjT^$AnxF@%JZVm;oYKdK*g@w9Xl-3`y zc=LT)X3e}Tq)ud>Mfyq<>shuh@0Epx354U4-WQZ{&AKm25C`%L~!y!UB;b%Z~g&$Ll}M6P7Hn5PI>DeEA6ZE*1qLJAKlDI`1>RLs&K$tJz>q95G?0l@ zj&G?7gHmm%OlBKNi9q=FF$$$92yCn*aZ9qm*CbPoDS05=A`tyRAMwX2DQYqaOIN&| z9*9!XZD#xqF#L(F1KF}t$%YStb?QK&4Wk@P_~9UMEzNsjy3d>e)*jmSZD|I1EAAo6 zznTGs7BW3qjv_<)F+n|HH8i2aW?W7!HI2({x4hiHK#5s`KD&rau6(Kcki5$)D_sbuc%Yp@KXhp8F@BOXfa>)Bj zC^N*@(!qdCz9x=P?aX@NhSsX!=3Oq?DX=kH${W;qQ?L9$F^_m5>1QvhJ3}Ve(I5gBc-cVm;}C9NJDgyn%i)gUQHYS;TuC z=l+Lv++U#4{0<)e4wUd~qtgF=dh35)@BX$C&1I|s{QvAK%J|=vseYAQ>w}*Ci>2s$ zOtW?VKVq8Q%!p<^*Y5XyW>my!>80w~5N!OMA);!QN}f-gg9<9!5P-%{+{bj-q0CKj zog=aQ0^OmpQN>@r8#)Y8_j%p`Xn*$p4tjiHi+;7%qVi@`(XcZdxcLKsn#WkU-P?CZ z1#YSd0#nGm7boZF_{sz^1p9dF!-Nww>*mAHwC1Syv}Ort4*g)-UYzasv}Wf2NNdJ! z=t`Ax3UMUt@;|Zkc@CMrC|em=>z9~bZZoz5DCp}$0Fml)1bbRuns;4(pmu<0h{}18A27(-?HCX6@VF)bS$Tkl z$2`vJ>?%)p7kNrWLAR!WOlWm@y`2h$I;D*SmRolHnbw?om28P`Sn{&@p4R;JXIgV? z{$(bef1%sO+v3vbU7LS2=^eQ*tc_RqaV1h)+l8*RH59)V3$0k^GFm9N0B1+JJL|LU z{`1B@!F4r=f|+U4f2B3s3{gZ}AS{a2%V7X7=DO-S+%=$JgDEMtCCIs0N2NMT6yPCR-kWL<1op9wUgL+SX+ zp^_3lV3naDl&V>y6lx_R$t<*=ePB!8WZ71~U`^n*B+)tm9wMhOC8zY&mPhm{&QJRD z-on80c&9(se~D}U^=|+Cr?0X9M`ZJVZv6kZdG8-yvP(%LBL58f|F)X-FGBWDv&^5S zvh0HD%0Jy+e-1JHW1U~SA^*1@S^mp97S;y3_9nmSko=G3eof~;EuH@5A9S7Vsq78R zY5wKMe==SDm*4+mIbAzDUDyA;sN4Tx%M3?qD)i6aQu?o3RNutW%KV>{0czcsU+i?> zOU+-Ll%AC@jYw?I4BH!TmU9<#gROd+)IT!T@eipP4#%G|YNo$&ANN~vH1q%sB#~an zUdY~NnUbdV;`k|pe=zyMWfLiyVaS%uWi~9p%{EZa2=ruYFDP6g++o1ifqXwrk(DVZ z%bne?Jb%N*7w(zggru4;q?$XdlO^n4R?KHbSFO5X;B>aV4(+dIikr^cvg64w4$`j% zVu~~7gC8CgDWh(bCJEp&LX36J#1TQJ?sSnv~DbNED-_v09kYmQ+pmzPrS@&V^xR zM3GJ3#>^hv1L^5@0D6QuPSMWSNP;BCYTVjOl=Nv)GNzNbs}xEos= zK(c6|?XJTCThU&z_jf2(pm2=t9YF(@TR*bNJeYQ8EpthEVEJ6Y!I@R$ENu$P1u|W1 zX(I*dY?6kARf=jd*u0-sYPamdoeb8$(*Q-V_PR2E>AL?#JilK3AHK)GCLXna!|K%9zsEuUZy$5N{e@)T zztF#IsXu=n=v!O9$2tGA4)CAkY$z-FZWaC0=1!$E0R{BT3FCyjVTL-B@hnJYxThhO zj|cCTU-9i(0>KFl;p69Si z(JEgqJ$oQ1C<{Y!Wc(8Z8RsdK^f}WbH+U6QpaPLUXei29d~eEOJ~SU9L}jY(+!9K- zU(~trf2t44gb}B2w!ZtYE@Y2#+_Dd&L1lAOBrJb!phmhy@{t?KtLs`a|6A!OpI;k zhoA&k#+auV-`aDp*^>y!G>dDZXuR07meyo~6KW>SQhNofz54n7lAwY(?>+P*JFSNo z-LH<*Fd!3_4Z##MNr!@@>I2hUn5S)00R@3;X8pPSJ7iH1uE7lfTA>#=i#}zq<+kj_6SM z>(F6fYGh<+XK1DW&y$w_2@p?(;h%=mohKBahj?}QG9vP~F|&f<)WV-k!m!OyuLRJC zElA~v$c84StuJH}5ScWgQ9rU>j6VfoG}wejt&f)Bi?`vX_!i=1HY8w!$BLf~n<;$1 zDDf9f0(k2?6AoODf5ox&IaQtRY;;_Rxj%;x&#k(Nbsei|dH$3p2^L>ZI9xmfQgk_i z;AZE8UQ;~PB%?{@2vdS&A>(Mlg#5_FYd$WNq##t{KS4+BqME7CuMK>Up<3@ZqO!SJ zQn10Rn}$;9AjHwT>60yWFgSB`E4>dsCJUa>fp4=u()Tu}kFpwD@}a`0eu*6FyZi~8 z=50;dj>iX>C%tjOTN1znf!vfHbq`js1-V*@h4toh#&7EMmH1OB7^O&%`X@gQocrx5 zBP+`?R!8%v_4d9jvmB@9Z-2FY^-Q*6eG|Pz53^1ICUQ+U&OKzA$WIo0TavLCy_f&+ z>7{lPZFcZHCtKS4%LhH+=9e!owCOaQ{*QYwB3N<{dJ!mm&;f!OtJkqJ(zYoiGdme% z(^TIl?1mn;xZw_H9V8d{W%iZjYL!$0r(_LgP%zGyW%dI}aT>CzqZnMWdWY%#zd*fe z)ZL=SAJDqP^t#mT+Gi_(+{V{~{*_9Wc4x<~!6g-sDZ$R#<~Ob~p7Q^2mp`E>BKe#n<`k|G zR{{sZb&Hg9Hcm?^rbT8!DwbQq7_{Ym5f>Lx5||G)ymfkdZgWQoO+Pg)O=Qmp#4nx6 z$e1lCOW8=29~ky6UU@65S7@tt#tlBZX9u>($VPoIOsx?I!J^jN6r`Htw ztU6{e565e4vjBMHC~Vf=;x9BwXULVT!~@LsT!2ez zbK0d)MlLHV)uq;iCkLJb_{9d0a8|c*ma1UeF0W{i^7Cr-6o9t=7YJOav5h+!9Ee+L zJInJ|Mwh&Szm`Q}~?!fMN4xhTTUey|!$ z{m_T|iRwkB4!3~TVL_CCMil9boI1T)$)iZhSRcTT;d>5k2yq9pgs0@w1g2C?5MIt~ zu#}zYkNs32YBk0&Rg27$_Ud6*aXI9!S#4ZVbYi+YH0$V+FsJ-3A zwk5-1FentiPQ8SFF8}cfIVmw+D&-Dgqv0#^!fGStWTKXhyq)Z7UIomE)F-9+w!paN z01ITrykR$C{w4+w24XL+3{9HXbM5LJFj=OsAmU2=6U%`#a)K<==omWfN12->QBq6(yyAj_DpKOVAMJ4*K2;A*ltZm6DV-$-&76 zEZh^W>s61Rvw!4$bvJgh90Ck8nbXkwHZhdWV%=e$i-!VABak(O-x`Ew(otGCI7JIh zBBwelwj1B|%?1Oauh@x(hj!&%7Hco6B~B(BQ+yrI4B6}Cv|E(1hsHU5SQd# zNAfvH+99AsrkLZpGTOjGYN#4Cpfbi?#%wjX+}fM6#6&iM#6bmO1tNTnrumT`xm{2e zydOD8Yjh(0rQ3B%WQz#+>7w>k%JAUyB8}A5WJi?^Xo>S73g(LKW%8(%f?E1KT4d`V zHrY`b=qDZxMb8vLARE_w5I!X9^{W-FN|ZkE*lCC669pcUTL2SC8J-ds&p2^fexARZ zLb8!b5oxO0MOPHx#Kyf4;t2`AhEJ=y5mtfJjfWmzQ057%s47L1T8R8+)W=6WFM!pe zz`2UTa$u$+kOnJYB_fMc???X{82W?guzp}- zs5@m%h^#jC)<`G)qGBnF&4ik5k(h~WPbY&#XHW*;3nJNdkx(bZb62)`qKax+uz2ux zuZm=bmF_w`eLG|*@iIueYKz4vae*RZF|Zjd;aTZsd?#dZLPe~9wDWcdE^+D2ql>Qd z>GNdLVpF0uS1PxbJ&vz)UdgJ<;~n`f@++}&>PzY{rtnQX!1{+vFL;N`_wM=wtUH6S zj14G>JhSD{xi!7-655zFisUkr=bD-S^5iG8bN&n6uSr{E(E7Q^RzZM0GBSZoaj}7b zE1RJgap*?hx~kKE*iRr2+C~Na$Y!m-&|B^yXlc|HOD*cMMfmxZynI6WALL^S(SQF)nU0t=oRltsDN{8GYn4i>m`a*$*dDC=}5x_ z-9UTTV4rx4^qj*b#!soSGOvV_@ty0u!T+e#(Es=H-S2_=??`%oanbR6pQbSJm)m~O zg;&@SkyhS_rG5BL6YnGtSD^{itqv**QKSVkLSak-BHmTIbC6nxfvMk(KmrFH=je zVQZbHkaccIG+5BoY*mxIWqqIF3rviCPSr)p>ypsfdZj<1UqH^NSJWu^sAgbu0F=JW zH<5EkL%-`7+IH=1- zPyRT(4og5j-;%3!(E-mRB6TpcQ@R$WO=Ib3ss6ooXS!dtT6webE2J~~59h5LkT&%LgLB7SV5R_$;I#}~Qda+Xh+t;^2PW+PTY@pEeaSCOooiz6bcbQ4MAPZd zE&NnG2^XlOa>wP+evILUC~qz>-Ng2`GDZUWhlNoCm?SHGA7t4G(8YwFsS#+R`aOh3kUnMQh9q? zYsB~7Jt2p&=^jTG4~l@%!bs*$t)wBtFz$5}2UbqsOtbj)UtD2WXaW&f-#O3u4>|AO zSL6L2rvHv~_ZLbTMy3`PzaeEf%1MU*qH8L5bXFkhXK-25T9P5TndaU$Q8va!Ao^0Z zPLo=y{MaamYbPA7l1fW`Fj~jhr=)V4p87QRV4`!>tem7IsA-*GRHt^IUZ_<;;d`0z zj7}aG%02p^+FYX7iL57|1Vp4q19ohRI}TgKPf?kejN*-yJ(*>AQ7ULW?lWK8u-X@` zBd>dawrq2nciZ&X#?1lUc0CF~XFcH|7cl%UezYPrW#PVZl_ zJ2$6QE8+d7B>jgsrGJk|@jF}P?+Bp3uwF2FkDC?!RaEeQb_X*5!?5i@ zc@;xcOtij}X>{Ifx`5j;?OsXoOAma9pKjAILgBkxn1KSLjAm?Zci-`GZc)^uCxYafvm}h*Y#UxXSu0)5xR-^uztO zm&rneY0BGs>(ef>YH>wWoX~z1S$uJ#CRNVSDAXr%U)$4<(d2=_X0cLHh!`k@k&Qs+ zmwNZq?FBy0^wO;eyG6`8mv+{;Po)&8Ki(hvmZQhsmp$NXQL|&N*3~to?~mc-%90{$ z!oVdlo%XUYyfQt~#REBe0cqU zLPbsUm3Qadhw2vV?>)B5XO?*CqdGFE4iTM+a-;W-6>~|PqW1{XKOQtin|2rr8=w&= zwb!EUqbCy8i*R+(yX)#CRGz@iWgd&SAdBNk)$DX-Ae5+wxZ{_|!IN%W0qh?YZD5eo z_>6eU<38gLz{ySsIuX#X4*IMhnFAN;fVRBk>VYzSMM2gHMTX3`Bv0kf7^xeWwIS2{ znpnYeCCS^1AT}l`U^Rb33_e$jO-A z39x>;Sh}WYyXOO>WPX4X9=~r=B8-~LeA^aP81@6iPYFh)bdP~C$fQjvoq-aW!PNI@ z2m|+v5YudgZo+D`rs)5F?hjR1Yn-J_>I9#=wL7;R)^#cJcVF zR0)Aq>s)V$G6`_-q2ZYFGHt(nb487q%-a6trWVzFqyk5aQdsMHwONtM2X|vufO@!T z3MY!`1fim7d~^F-Q6JF-5}l4@Zo(wb4e2o>`9!~`kqkc$@nZdRFd{HHK*uOpt2mBOajYq;beBYA6JVFL6@=G%LB$xw zvwf^gIG6^<6>6P#^sZmX##FN?cVinWszC$}c*$f-`!xVA;SEPgF_hYzTJEe+nqdSq zX)o1UbC&O($v94o(IBI&(06wzeR!tu?Cu=IH}Hh<%|rW3G2CQ1$lmR+&tVO{r{$Rq z8zjt+>5=c{bbJ;Q`>VU`dHcxz&YHmDCw(_woRi&8os-UQ>9_nh1pbK*>KBfM8W`LB z>$MT%m$}=2rcS=nLy}#8z0|!kC#b-?E;uDCi5US~S7;Ka$4B`hh{|VzxV#UuIM6^7k#$Q1jDYyi=hL9r~kJ2IkDT2S0+H6|y~ zle1%=J{*79PrM{@{;{^L_PvsMD};Hnu73s1iTXE|>o4=Ro-Y~wkAvp#nT7k&!T*W& z_zP#@49v9c?DYThDaU_W z3`Il&G3w#8`j?gyQc`kiJJVrf-AUFljnz8FRwdCBB_j!979z%ZbA$+^-eY><7+bQC zVvZ|iOg(!(D@qsylZftKfZ9UZAp<5BXEFNF>cp+(@=_f!XEN;)^{4ES_%~&>w)a8C zq*U05nd}x6rUuQ>qL5H6kDWzkgB)mQx1i5Cm-VUaHCxG znC>E~A%`Q3I=|GnX1uFvZQIlf0Be3)QvaTzyB}NIp9n*RUzoT44MTo?{qGIhyo{xq zcE0eAFYBpE=)5|rQbLqHuMSjkKyn42frOpROf2eYmCAa86pB>0NmIfIi$+ zlkh?-wqMHaihra18xVB-nXq|?s&Z(pVNpS~#EgeI+rrIp4;HauF`YB;ap{>NHdMa! zLWrh1X!G=V-H>~`#pRONku`W-$BxC2=~1lBARV{Bx~3TiWXs1r6A58OiI^y&z#KdD z3(SYQ6NuQk^>ot~ucRMcl?Y74>PAgd z#WdT|#C{WdK0nSGeoqJR2jBirywhKpGQ5=7`c6^?-?>&dg@5igmCxY?#w{EHAC8UOvq18} z9C+H#X$#O6F=3fjQA$NlUgF;$;S&;CH#q>n3nSj%^b^yHWvt7hvhRtixs~Dqg|vYb zShI>m$~z$26DQhj(IpJyr;p|w`m{Rq5@$J3Ma^3y=FldClgEKlE~vyHDrEGQas$Oo za5H&Z5t>Vgy~bDZ3H9&+5I}}<&Jxw$XMYv{dV@hl7AmFdksyAESo-?}o$wB$9bpd-RWM%gWXyfrOj6ZxSmsjxaZ3J0v~(rjuhowj~au@c@Lkr4Wlg@uqRYp8WX zneEl=Z(zR6Vj4%+D$~i9P0PlHCQqxqvPI83mWe80#7&3y(*vjb$deJwiU->pxGAT9 zMiTl=Y9o&V8Zy?eNf135;h`(Q|hg5{rOlA_ws_FFz zY=c24+p`sLZr_HEit1ug7Q>Ou6%R>#U8p~^s1R+pY zb!DqO4&5{D@MOd`V#fSX@uz*K3C<=#HY50Jhp1~Yn!{9>W&RbXWl>E~u*I>(;cFP% zFmLklNcoI9F8IB?zRL$IXzHEzHk8Yp3hq8*@Ocat$dPIYYBNXMXNdDxyW7yjh@)CC z`_Cw2y1?8P>!=q3-BG#djh&+VOGG1#7Oln|vB!`W#)9W+CgrMQEJK|wP8cd!pM|Wr z-*GF_EME}efUW6!KJsyDg5bDFT(>Rccu{x<&Kg&OVPb{Ol&yQ(So&`7*St)Gi=DI1XD#5&M%dgRL0pAVMZyaYq?rrBX*3}k^ijYjvpjR(+>4y*0euJQQI6@u(-=bTQ zo<5n}OSZ=S({ldzWNbeM`~P__Xl!S!{ZB6OKTCOa=?;s|Z%ahvD^U5;cyT9}R;N0} zoqES9VbdPrvKuEa4i<1?>sXN zYWbpC=sv1x4G%9SmSl#ok)h5!)(r%Y4$sFftxy!Fq3W#*vN+Ewc)QpzH&XWUz?k_) z)BT9!s-we6yq~JUskhqt@g%xI`kCPXW3P}%q>ZtR7}11e|F{++fE!(``7_8tF9S=+ z=MDXBXXF{bDH4m7J&A;@>YZ1F@k`lQjwl)PUAE&}tmxudBv{b+sGT{B6EDlfnBpZF z(GP}!R(<>;*pk?I>0|q$Wmel=kkNiaP!whFLp6)qE%T=<2kRBljdY3X-8{v&-%Ku% z7{l8rKCPdMzE6hq_g}N1Ir@lu1M^y!ar7_>O-O-NoC%D=uxj4sb^TCzxmMlh&hsF3 zN<72Zeg^lLcE-2P6`jMYn%<-|s@7FHB@lD|43xLDSY(4RF9nttz%E;^~LPEGwa8wH&C#?xul;*1}f79&`ZSjaL2k} z)*^DxLnSdLlT3VeA-HnaAdf$V+q+KGxbrtusM1w^s7F{Aw-0C2d^Br*7m-50$TFNW zXj^CwtQaS}31ii^4T$G{RamlFT-8Lq6nC7zA4_jZ6I{S$XByD87o>jq%KiBmdqu0H z>W(uilVNc!;j79;YJI`|wwNaW8o-F5mCXls&*0-4__~y-GoW}+3SZE@>xgIUNVN+# z^XhYE;q646>vzWmgbM^n8=YJSWW-i#ASMhs(O$+mal$6?9I-2jTKCQ(wux72MN?*m-Hc#95()Dc;6$^Zzs_!{%_m%`&i^U|%)D8wz>L`gG-kfRHj+>%dl?CAcE$BnAE&b0`dgG({41oz zl@5TLN4P#tljSk=YKeo2++2zw_aLuwH1Gh=z+I2np+$UMt|f;5sZGa(M8Y(tiX zE<&X;&85uDALf#tb2w<^X6{RL)G*@NBSp@jzB$dpM5j|~#S6RAh*c82M+@VG78~Yb zqU&Sf)N(o3vJ@>e;nOD~!mFmd_aj(VJ$Q(?C}%@x`<4~z&dgP8|JSJddkW(poc*6@ zk-xBs_w7{vBA&ln9Q*!D_@g|JB|(??z+8RiXpT=#Yp#UEq$fjHyEaE&{u*gnLr`vgDvK=kP&cR;!;s5zP$DO{|A-rAxE?0WVA zUi*Ea0a|*Jq2;sN_L|cQfdc1idf9XpCv_Oikgo*jaYX77$**7_#ZnDBS%6LIq{J{| z%EuOUa#;MRtKMKtO3LxCbl=^wV9ER z`!987My=1Bx7t;0s0?*=*H!uMH3p4d(|)BogXztJgMu}+F0(ZBZq5cH?_uc9g$6n= zjuK1sC7iR$+DtN)=#_rDi&e@}n) z=cxJDlHz}-75B3aYuO;hsnnpT#D8>I#mmCm$zOsA=})_?s=p=8 z`QiWYC*JKZOmM91zdNe@?>J(GI!0vtwhp75uL^Nl+h3zH{Ouy+XBH*)E0wr z#N$_)$P|MX3hq~dI42RV(acNjKy^-XDD{uBosf`E7QP)Fq`C$9Sc!>4mn2(uEE17+ z3?JEo-$XBP52wuGlGvH5OS=aGA7D~?%Osiwcw%%pYKAx@o^stnm_7_2p&z#IJa?6c zAik4*fwb{VuOh@owmX+E~U(BVh$0sJsQ&x?Z@BH)9&=1weRJ_l_xauEE=EWEYL(_`HVrni&{^ z|NJcl7qwAxd>OFmF1kxXF4Vr@Te&+C;eiAug}dE6qBr2?gLDG-+Ont`thElJtu^sd z6w^3F_xx8dP2dl&kaBpuLLr>v7ix0w0@yK;3PBjEjjz`eC+*109jqxo27cHAPxaQu z+4i%PcVHifCRGox=?nEn)6L?b$eJmFUD=a7d#O%7F@I6v<2zorY`U-DoUPvu+8I~y znA1{e-R?nM30Z$cZR|2x5Lm9tjj@3R%ra#O5tCPysETO}8ZnZTi&uYBAFQz9*lc#N z1g6gCiPmWgh-ItaHKSD0x$s_=?cpw{*~3{FIXmzSG%kpbK_JV(PUtK9R;j`7|?b4?BQQ61+UT&%inFD z6>{;xDJFN|uYi$(@R=jyC17y=LtN_nnm)fLIsE}{{zPx`3nRt1Q{nkuq;Qjy2zz;D zyXAs>C)N}8uy#Q#tE4ebw558wkVAmPT1%@0J!!#@Xkn|(@c}M&T2X+v)^Nq;LSIU} z%M0y+BEE)X9h>0^yP@~0kVKS<@WROA(*IVdt z+6P!#D{KPYsAgY#wAvt#V@lMN!8;Nv4omsXSFnstgq&V|Z=ttz^U~~WCdSFwQELt9 zDljt|Z3$NpH}HWRUeKTh?TK~CxSuKJB@fa0jCZpU(wyk&c+xE(ZC=~{=$tjE&vkZn;^}CE%j6#`djk$mh^W=eNGMtkvF^gdX~N0dro?fxHMl)b!efNtB=&7>zFSm?~Zd9 z)Etiq9KD8MmV(`Na$G^s-4W^`Vf=(Z%;fE|#lxKl==2?*R?-~xWEUIP>h;Sjlq ziyEZH1n*et{Ie^FtITOU)gK`En2|=q57Ro}sV_j`#MjVG8+f3)5z9N#eaEFq-t+Aj z%hC|ihckiOrqX(oI@6WFqkl4yXsB6N#w9v`@&h}8*W=j{wmBd;!6G<~%H|-jf+C-X z_l!U$V#AuDK*RY@I5+m42Z~OG#^27qW5__ly@vYDHZ$QDx%|22B7Bh zjR0=#GaKx1>_J4!jZVI8iQ31lOJ=o;R|?)iYZ-Q?YX}D(J?st)TFuy&I}H+~59!#c zPfBcL>{fCdUYYlpCfG@EDXGxNXr$2E3uT(Akyqu4mYkyLF>$i{sQ$%uaqTIDs6O@` zb?t!ktqVC_SB_Jooi@91Rz4A1{T@Q2GEua_%T)9VYyI1JI|S`@&q|==4V|wBqg_7j zyll=cvudQpM)GF2q-oy!&Xc7y>J+oyOejvz?9*jL3kjP*MHot^t8&^Q@)ma*`0=gs;$7<=J7^NM#S-ADO;>g%w38927@*s|0vJeHjks+EcsAvOq zp**L(K10K_4+6JWMN1+Pg&9b7+|)TSrT=i0rc;I2?lxeI^$8k=BSfmBA#WG#ZWv*1 ziG@QI>Vp%&=$Pg46m;HZB0~vP%Z?Ma#X}!qh3(4rkhXXpE#|dK>a5-VXjA_)uP?_9 z`+@+RgoK!Hr@tUs*0SS_q7L@sU&2wBdtfW{FaFK@r(N3LFxLjCF;fnMdBC~u#Hs}L;0UxJpR_OhVx)iCZDlV=> zYaOn1fJs91-0jRl;!0)n=)z#$jCKqW&syX@l5k62Ll)5f$SjRDHcW;pY#0R_DX2wU z74al7p=05P745W~T0xKiCZ-`ph!l=6rxZXsbOuv@Rba<0E!W%(TSDwOVRps&A%cke z)7>YhFUA8}5@OG>U9qJLP_fv-$K<)VL(7fba)G;Lc6OQeAv~SiZ=;`A=GBP- z5pAq@&NvL%-Qj>SwD(4FRe7QKo|_q}`-@BnWAL-O%UPMWhUkEvvs*SJt@!J7P+LE` z9S+7FP^cma_yN}Wv6$m&WtAR}gX(sd@>pI5^s;KJ0daNg!DF1HS9{AJt+5r<5~9nh z%h4*OlLu)ojO)v+om5qSX)#He3Nr6h-A6UV3ZxobdYxb?Q>$&G%q6k#`Y9A}7PqA8 zQ~R=%+B%!hJ}(C80aV5&F`kP4bu!IXv&}>f ze4-B={)&!Hnvt{5d)!6{&Z6soCpCK4NOc4KiPq zlXK*Gbu{R)vH9G%u3sPQ?piek&dCIfm~0uZu*-8|uYqZT+*P--4&cj9SIv5_9j@Jw zCTpo0-cw-M?}8M5VN{FJPppr!|BCZ1xfKx1OeuQ-mhn%M+uyTM@FO$&6VdexSrA)G z8$10Ut_a5{yhw_0L$=(LJ6!r>j(33-9U z#fb*&_<8TEj!nnG(Ni7uf-be<{biC_)OAQ(pb!vKad?*S?BaP*f_lRyYAv~|p0nj&w zK=v5^c`i~;X9r_q>y@CsQ)E#1so?xxnMR{PmLX4152b0j(|q>{|r@EyxXyW(nmW|D1LY-!?&%?0WH@*@To#Vb93 z8-dt!6d3N5mK5K8zaoUE-%2*jn@FpMbN4uB5;0Bo9@a zq)%urkZznsT6NrV%v5AfRF!sDkt*llyP7h7^#GA{SpY5j+D+PFT~-+qomzKMJ|)+y zWqIe0*gkB8+9zhg{StRR9V$^Vr*`+KKGd@eFwHg4N*}8J+41*b&wU-K320${S^~c__x-8N~e?ytV zeUG($pU-xKb@U?psKUr`1jYf@<_i~l+uAb56ddU`lBs6|lwaQh_2n}q-xklS4y1Cc_yGI~v^uQ`0=Ql;SEg1X#p5ThSZ` zs^6Ex?vo@QihA1vdyTPioX@55?h~8GUjx$p>W2uDFYb^2r$QsYhnx91*8fCD_$?3n zMcmBaha>(^QusS0O^BS#%QiBs`^z?RU3bSEWMiDKnJI{OM>@?{WKoL6IOSkU=ZSa0 zB9E(%ktrirD)|xX+4rp{$99cTG~r;un*0j-Z@D^wUmE#29ouh15eh&<;1%e4C^|`A zJ<%2T?6npEj+RY4@n~o*+gq+J+Xq`=y&f<@Y6o|Zo!||T-v^v4+=9bf?oq_(?A(-V zw+)2?i22A350XAZGUVbTi!EBc6`ehrgy$ie5Eq`xKdl2^J7uoG?FU)@MSdO^s(?n& zj?|Jn2@opWfviT0`WdtTotrpZE=}(+$VUN(MztuAI^ybrOWc1Pl3K zR0rxtwU!Qb-lxA6S@xb?41)}Hoe-i(MrUvZ1M=p$P^;|@X=L>GN^4Z#SJAX07;_OW ztC;X|HlGlvIgb5sL%X+-q`G~PSZfN~SCyXx-j}MTIpnB4&=$Y_l?YJd#F^uCbTmX; z1TZPgs>=YLeVWVgj%3_w6;91GNUNCB2cqpZqn4Q3j46Gg@O<*rm=%Wp9UY|~_SO3B z)Mu;7d9|lFzSk$6GNxFUJkkf5B{aRZT{X(s?e8TH*8Y+@7ltb6-hD|_5PvFdtoK_8 zw*PL3eEn$^99JN-awHAN1*0ZFW4Oml}`Yr}XLXsqudB<^RuL zspm>vf3tCBeL*6B&*+(7L!i=OR{>R-pd~EU2@7YRw=fx04eKTfu2CW_FhI@ z>`oPdNRESEjr1P9c5MLuDRI+@Da&BHu;*ov|GVp`(vZQnijIWKgV{<*fnP zL!Z;v(1(+CSRSd&WpZ?h1)|o*+Yd;a>YuJL+#v-g5pRi$m69MRG)4j;)pp#SdaiB+ zJ~#+oH!~zsfNG5JvC-OnTKlG0-71u-EYP@4JJ6?e&t5zLs)?to-;aL548*_>=pCH= zc{NQ?a?Bv)!rCq60UX_V#IkHEyYH1^)C|efLzOr%umV-Tf7OgL2(uiS;bYV0_woh_ zJzYNyhDu7IJX4OE_qS|lbjTI@Y|pOhWaC}$GkP1t*~8pPj(I$}8vS0e)Kps$!gcno zf||9uHMf#eFQte;t$+slR?SE;h5Z}CIv+hWWSuyMP(L&Cn_RJn42~v^hvgPQp3%%X zQj?@=NOcDoo0f{MTeFWa2x`2D%FTHOOFm(mnq2QTLOqOLdkU3n29uzBQ|g6II945p-*~S(bhdIh zp0?)Uy~>Rr>P!;7|A5+Fd|~6y!1$J#eh28HFJNlV{{fXH7g?iQhI+`D8J-+BwTTcF^ zR}G1B?sXtt&j>E9fNM=gCXAU`sIj=|RM6t!IBT56^qi8QzG%My_$ET^aQ@cmVkg8A zpP{>REs!KgnINwGb%;{P6bqXFy4pASRvpeuG%0Vmu`qK@h=jG1kI7w5ji@0zRr8<* zR+%!&47ly}b7bDaMwGR1YGO%1$jX_Oz{U0aZxTvH%ip~yRr`c3XN>g^G)rX_Q{Wad z=F(+s!F5!GC<4>Tpf35HhQMF;;X-vQWXYBz@iWEkD3{?&6895L=Qegvc~>+DX6qdE z#;CXJ;RgW&or|6ky#jGXm!OdiH<9}=>**pJA7UAiw{IC*W+_G#B0VfeN+wSoWb6C-4Rc0DR_Ut zfOg|zB&(>Db@8Mw~CDpMyn1d8EQv%v9U&MaQGySaM1^~e!*u;f0f?-ezz{mK&1 z$p!oJl-LBk4%&rHQ2G=a8pUiuVtLgSddRWd#>;#M%54VyMYuK3cst8d`*Z9W+^26k z)qMc%%F+=~kr6onO=}UBf*e)5W3y1tq`TkL-uRxvlIO2o$2;-6L$nnW3NjpA1`?Ym z2qa=Yr0!>mP!WgSyy#Sq^3y=6)N#z*1zfD^9&o*R4yf=(aAIkDHCg#6Bz@(XK?6( z5eo*gzXaWq5(9Px7I%$l@4&wKIDDuEACedUruNe|%J0#r{;xp(6CK?zPBMPv<8l-_ zEdKIw*Pd;#8Uv!WO;wP;{wT36!uCt6`3pjwWUVPa+g@Xl2?P_HGU^sosGbTVG4@?AbAh$u|TEST;lO_N{ve_U&(*}a><{1zI z=i1N4l|EZ!$KVKlbPjS8lgDO_&c#Xi3|8{W0->c_iP50&*s$lu{65wBCl!0dZGAcL zOypy(w;-Z{)09wMR!u+@KEAxgBCJ-@c1|3Yz2IbTQ=kcs!z0~B!1phS4ZglRe=``k zJ0Luo-I!NG5O;hqXp}m>nY@ZYUi^7!6ub!WY8SI~Npq*M@Cuk}j*Mywl#;C8)~lp0 zoId|q-?ZLX#&Y9vDXe6$xOnMB(%OeO5SO z=uR2F6GF${+x>*FDb!=kBdd?;YnYOGmdUfAq=Zwc98h)=>p<($~eTa<54^)Qs=M8548jE%M5A-+kXht)rgM3G7~ZTWmLV9)%GegH*3= zE%hW-9@5w$$3TSjs+0hl4{5FfWmp2%miBe!8*p9oIxEGIj&!}A z9_x}?I0&u%?MEA;IClL62np)MwG4=E8Fo&@*5SWJWocr8A2(j=ESjIzS-*$P{*mSV ziGcitt>KqrvHlKo6Qd|*xhM$RdY~jOjr+kfcOP+&$8R5)2VzT_I6n&01av0|GYBK9 z>GQE{>_&ZC3;htG#DK-Z7u@hF`c>D9Eel_-n(`Z!=xvp3=JMCxX&A;kYS!eetQVG52H- zmTlz7ZY=bTP$b9bV#}(dyD%7GhrG#A_AyqIdckdX)V z^p}iP7Mc^rv&+Ehy3toeE#6ELQ-Bo9{ghUQ00s2l1Vg-EZf!4z_PbBiDly6Z0JiL?z-InVLJ0if=p-(M(USW=Gp&D}c5k zH$L}s)~}8opG-Eaf;h6GO~MLWwOY!54=d{I-907@eq5072^D%%0&>8nLA-yNs%N2w zAqv7ef*Z8jEqEQC!@joZ?g-v2WY0vFMQO3eRU@lZ>=XH;Kx|Gx&HU%*r);P~@g(-N ztjAjd`nQhO>xJha!Fz#(Ppzz)0ngQ{I7su{evVMvOm43@U_U&|0< z%eB#4Jjn$QbYRMyw3-9nA|ow1ceur$Uw1jj1?ir(ESZ+oP|4)G)bGbmfm4Zy?c8@% zrk5IDk9!@RXoI=A9gyF~6s0pkA|ZDT-h0d`Xj97Y`A7&(0Cl6G`Gc95Ke7{+=N`3V zNl{*w+p7$fA~n@NV?x$;F6Py>gca8GrR1Bet~`9evJE9x%7beTShEwrfsGv5Eq{2^ zY=wjY>c6PVbEWy*^xy7sBZxu7P4{^W-9 zBbN_3c13_D=SIhS42u!}h`Kid@5e-OCK|oZESf##9N^*Q%l zdN%Lr#`Ey>SoUoZdA`8ouv2mY5f(zZX~t&gj`D?gI{|RPzX^XQo?4SRQ#raY9W;94 zEx8MqO3A}$C*b^qxs+B9#}lp!rrJ4C7(9B1lv*(rr5jQ1%I)pi-LxDGY)Nls8zd(y7shg! zV9W^mLRx(hSU>!Gs>}H=f6Xt=3dNT2zfgkiFOQP{|E+HJ1K0K^I{aU_C-d!8?7v4H z{ge$H9-@%{mt{-1cQzcjJ_VEjF4P2Z@Fmj|sOU!J%EPc>n) zKZIPQv@Ks|HbZTcgRKsdc!@&;S=&tSBOKF6=8a{|@+C7bFYrla!#;Au25u^i^FjNx z35lTk8YhbAhesP#-Ew}4dUcq1*oAS|RlFJu&=z$Z@%hYyGcJ)v1B9nmxqTEsj0RoY zdn~h10;mzNhCz3A<5diiQ@xbXmC#ohQi{s8aYebT+l`uAg)NfHfCTJzz+?1x-2S=a zgmdcT9(V`|AWkIZ%uKa3xKIHfhXH)fuWX4J_bU1#Mdoz;2bbfdVZpsoRCtMF3LR>a zds>-9#t^9T+QrGM3-vf6X=ID0Qcu_OI+UBN7NMIsChEYCQ{K;6)#T#4?pPh?qY$t< zIe_GmhOlAW+n*~9TxLUH`c1)s4hx&G(7TH>DW#w8`7$UtcAURr4;W!G5lwT^Jliq3EL@&s~p_eTsSvKi8^Bc&gpQ#)nTN9q7=WVxFk4hqi?=m-?tYM5Z_j`8Bo0 zLGI94_$|)!YH^*dmI|_b7Fj*zTEsDuj#F*a2$HD6TaQoMY+Uy=Fc#1n;LOZV+Y@^_ zwMYJeJ83)2149&j){sfVz>4%SR;a4F1*PvI4A1m{*cmGY0xT@usBrQiT|=vOXVi}= z*6cqQac#=ea-k*ze%*$Phdo$Be4Rqohb+f_nRp1f{iHC{@zB~q*)g;W;<$lM6?2O_6BLybN4g{M%yO< zy~bC;0A1A2xyTJ7M2`>=hqf#G{Xz?L*MQN2kV?VJ`}Ogc1;siNg)}^Ic5one?a%7Qpvo71HbPk&USrPxfVZ(p@=t*6VorHV2xDv#HC zZ5Aq+O)IiPJj%$O)}rtSg&NUWe7o!*4R-~13g-ylx>GeSV?B#6g|OI93*q0RDEDKd z`xDV9@$1m&WNGuAO4v>AuQwuF4#;;52CPN0`$;X(QI1-;Co@4hXi$yy5MqS&g`K@N zJ*b)Ag?cG^;*K;sOI2BugQog+SXLT`ODllFaNp1gce-|>#tptD9Y4R8iPDMna%sMf zi==+mb$0y}w*yh)4;{m(6s?%g*yc%%MgaXB>UZ-|yANgv;-#H&5-DUAy_Y~f>% zejKa?t?nPI_vT8qp%F}3>I1oHG5#CPY3A7up{g1^iEqAduFMO-i0sKI(wF9R?_OsQJg&E@$v)bQg0w& zb^eUQrkYMNQ!o{?u;;R1E$HpA1cAHgx(tnIP&K@vJDN`1MLiwVmND}=?EChEgYA97 zlYCT0u;HJ)^SkJy9h)5w<q#Wgp1I(0i}=IkaGzOePh0;aE8MLT6JX`X0wMc5Od1 z^qG;4_Z)g;hgW6>2S@zN{w>Scsp!MpnttnytmeUuj|HPZ-&kb%ek~jvaE-L441NzWObmsA2jr}gC%X8#Z z^hqo&=^h%#<<-W2m1LH5$7HSZ*$~IE2CRJI7Zmb^o?deuaU~Ge#?*4|+1YVhxM;YNCq@lgQb3ejUFyw` z76vgl8j*Td_XT;$oPvFo{A|NFRDUnnBQyve*uB8x^Govh;~M_=z~lRt@F&9K7t+Nq zha&YOT_pR+A)6PvSm63DXo$!L6K~#2;S(Mr4s4K4o-Cnmfj&ew8ZCaC)!ypl1r3q> zX)is;b*&_q18){>S`D%gMaJH2?Knf=B!j81n&CQWtHz7mT8d!&Mlca=xL3Gz5so}G ziNY*7ACgH4E2t@rG~canQuD}p_nSjfWD z46ialTN~oWEOzRyc)ImIMPJ#y8%)Cq2cd>#DTEJlwR= zc}nnh^~X&GfonBf64N9AW=1)TP{vUOQVMG+bL_svV4LZC5S0g{{-vVLCdg6p^#!I| zKaFC)hw=QGMg9q3HBE&Oc^Pg0*Uz^a@7Kk8Dot%08*OI=Wyn{9FXQ(gU`mwI@;3>W&Ma+}~rL zhDyqm)UQ8_0vz4ZW=F!}FK&I>&7Jv`a(#hLYfo-Ll5H+CK$+ddJKHwFw^MsBf3nQn zS^!>+()|S4<68xqRU+eJ^x`d|eyVsV|2uH-otyuE8wxMn#mmqC_7OtA0t&iD+Qt^t z|JyVCILrDa9pk_M=wH9Ta~I~ae|3ysHken2B~|9gSr2Kly2{vT#)O+1NezR*MrV8K~dJS_~49)-JwQWv3$*LI!U_ zUD7Uomfc)q-L}$Ue18~Pm}cxB<$(3YdEY(@3)p6P4mcuLZo$a*6`I2J)DAY}jpIS| zWQZCFy2(Z!2bnWd>%R6DJvLt{ca#p}TBSPf_GwYp)s7%-Bt*!-uo(rF)P`-xD3VpG z<(JF0h;Vv1K8%wt2E>cK_fT?DMLk(*Q)YoBI8!IDUZG?Ih_t;eLBe3otK%+&-io-V zR<>9j|0-^d+cLrFaTmZObCjpcVVkq84VKNdjX}R_%>+_8a$jJBW=8bHBtun)--NR( zj#xUEo@>UH)VnvXC((zYrt>;r@*HD>y?+guwEC(qL`x&*)6_Ou?W~!)gWCXLWk`4s zAk3=9A}F0>L0|Be3Y)u+xJ|dWUANvY=Ow~*rC-Yi`aqHBdEuZf<|rcH1{>X=o=Bv& z*>0-M^W($o&PIX)agDzgVzu?l(NkWad-#uh{BQG2%=w=o>>FkD>q6MS?esNfiPE>v zw+QxQJN>n7mvV@(xVooAQ7gt85tcO zrug@BR4wj~&(ts8j`HR6>g~*DbV|p9<1)5jVE~dvt;dk9j{rqR4Gb7iNPkcIVx3R76*FR?2%H`VF zypQ$ zV^B51K9A@>e_SEm5_}VxAiTVP<8ZPv0PJjJGrVCZR~la+W{<^993Wbhqc22#L0hw$ zXfU)AVA3$@;7M2jBw0p5GI=$_K$P)efn}2kBJwMK5~jk!e)bo#=#pl+g$SGp*zj!B zo(7ZV8mEvmXyWQN>|}9;EG#fpFHl2fGif@Xo;@gmY!zoq9yZ^RzKpaf_SJu5nDCoRD%&L5$ej^D7^!&S4s}6P4BTHp^p?K z;uRZDN1HAJWG#44V{zvu59ff2p*r1B-bOAwsznX@CxJzV#s&PiP>K(BdZkhbBFe#xD|-IuN`}3R4n_hL zDFz7wUaFUdi|7@rrgh;dfswBaT#`mXDdSt9)AKBEgJmJ$6N_bbAeryZ|oLTc*Zn(G4Aoay}k6 zVU2#%(nkR!o$?`n0Lf8Q3-DYy4;q0V@B>+PI_e=*C<}AtzGIhpJ-=k$Y3papiT;hQ zX;m^x$7&W-dy@GE7W^;xg9(PU#N*~_d$kQiutWY=k+w2LDbifz_Y^#m*Evy2B^>X< zMhDnV5oJ(&mgWfGbWCbQAV8PP+$n42%~)a}uJ#E=7>d)^beC0WU@j9mlbO>IkA62=5wp>tg z!e5GhLSGW9&c*n1n&Z9ZJ??2e^EJzjg_WcD3dsiCi&n|IwulSJ^R-CpI^l@H!shyN z#0jI@?x@KIxi(9+C6cS0m(F^xR%H9qa-ien+M*afat)fboW*&-*;0K8K@PMNUq7Mk zY#@sdpzcnf(t1J5zdb|>k2uB|elW<-(Ah!qal$n;a3plqKEf@MnM8;T)R4j5hxm&; zeGzM%O9&24CbAyySlOt}44@5jxlo%JX-Y5*-mCt-N>}xv%;k>b$qOgd3S#Fs?fDUi zI5~FY{To)M#LbX##;U^Da}VgGWPVhnR#mShTpck%aimCNOKk-N^m-gX$g2GQs zZWf$DXe=UpQx;9c*9Ua7q6AOQ-Usn=0Q;)`iM4#JRcvmH$hwHQLWtZh08c2-61>j) z6bM5Q6aJJfV$yw9x9g+5WNh9_C?0uay<)i$gFgAt(HE71QPR@d_5+4HJnKx4HilV z1wpf2ko@43hIzp=PUvFM2Lld81(5N**HmP3ya&2PY`z<2XW)K0u5%W~K7Bal8|5`CM8L^b%$;&@uMPi)khmT!7% z6*gZ#ru2P83hF8gVG3B|l?|YlI*g=KA*l1dY#?y(T+Y;2Y7=LN z5R{(Eo#rqly23(9QgX6f#5Egkv3PZ$*SbdUnk=Oe&RtbR=r!>m-V(;-bVlm-sR{$r z11;2{yn>`V@HAcjlQxr-Efma7AQc@odfr>qmhTZrifkG&I1^5nOjI~BBx#BEyka{Jxg^qytEX8yB_g1vH*fXbUI0nos?_8P zd9`LT((dOCs%Of0<59Tlc$eKPmZwlZ;%0_*e~vKrWEQDD90+nK6Yqcpo-{ zQxY+;Y>zrQ6u!{N(fnZ>Ztw06-Qw#_DLX;;?ZMXWi00=>Ik;=e(@r9usvHL1VdI?> z%$LD0*8Nl3?s{%tRore~2`<~w$IC|WhUhIt+>m~VcWlF^qFUjj6(68wzc&B+y)Jdk z{vmPxapU6%^8fd-*iU1QKQR`2#;n=aQqTIo8EQlJi49Wz6=`qSoy*WXM%h%qjI@7G zBK0#V{zPz}r61>SDTtks)6-44A4J;!g-i-koLYjKLR#q`ZIaxe*m`u2;68!;^Hl12 zn>_v_mHN3PeMw9n7|Xu=YwLa9qUb-s{h&gR`QQ?EOgM1`^Mq9*?m{D=jnGwbNDKNf)@R zzHwiT8n>3~!h9HJ@#}IZ1StJ5Y7;T4mKEa;9ohi24yG%KSCDWJ7Z*^j0^ey!yMMD}$SGO+#Aa;$ax)W;6o)!as^Eh^j zMgcG8J~2c$kevv~24NLYT(DSDOPz?<(afr@lt3z(v_aThd}aJ>i6Z4ngm;8kUn>uG z6VR7v!WPq6s0X22P?^;1ce=A|E;>5=+hb;1D%K&p`e2@3vzE>IJTh$~L)yHh%==gp z#An-5by-}_M)U4H`$wE?s=TV+aYpwe7fz#+58rkhAlp^eJ41{xX)li2d}(1k7Ax$a z%QAA?9F;MR&+7b~sR2x9K_M^9OWs-F(`&~NP7^DB@cV4JvWj`oz2-%GT6oP`$3|YQ zR$l1KP&-FMX=T$}MKfj0Blwjp%SGC<#6pQ3qYy#E1E%{63QqM@-Szj4{mKv~m$8oo zCi*WcmA}V!eyk>cqU}7(5ZK>bii4@0;}0IaNVzKWE;{6eI}}!q-q~7oL2>aMiyQ|= z66J$rRiUJaTP%6Mht}%i+ML7D!y|{|OoxGZA_2d8W!Rk%jfr-A;^+YL^r{`o(Z<3z z9c8+&f{1a-aIi>&gXQQ4aS|sbomen5jI1|X92qNh)!b+0>IrYEKTc1m(_u$=epH~$ z|0+*gx??Lwk`aK>zZeRr@4u85Z^?Cwa>0DfwU<^fhGb3UHNulIcqX4U7+Z~-3epUT zbC`2}Z*Gj@B+n|3d+&kAGDEU;I`i<}4<=K1h7uCSYJH8S$1}{RF@>Fh7&HoKYdY%m zVz260-#46B@CpoBn?^-Dvom{UE%4>Ya0EfL(g3+4RQfEo*fK3gFf>d zMJ&nPZLr2{@-U8xh%g3@%ib?O@1s?Pai3~y=dN=2Opp4l|I3D%=iTD;A8*4?p!^dR z{23W?2ODt(8R;LW`0sl7e-A^!4wU=!)ce(PL-}

LGZun^Xmf8#wAi?v>Pl#(oi{=Vk!xj#c;|ZTKe0LmLALbQ}D*j4@!t$)EHum zSfgMqhj28`ER@s@DB*Av$Qh1q;nrXZgL1?-)zKTO>y;ZV zNjz7u|49Mc&BVCo$W@z|Kmb!oAPb9FxLB=66Y5q)N8%xX9}fwF*L&^RK`lL0VJ-_=XYEDS^E?6M^yL0i@yHFUSM1 z)#IX=2CcEySk+(DZ|1L=6F`v|#yYBH@BGpkU54PMZp9PR%-C|9l3N-4J|c9+EFU1J z)BqnT(u=FIEUvowFFi zkT5`au#m(6C8g(>-nOOfElgU+?aOd+W6=k^j0aBTTol876lZ}FgeJ*%D?)g8Z7vh( zqA`sks!b;221z4$%1S6Yd`f|8CIaeOH!&~ZGFgVTXK=2FzX3ieKeC!u0q?(5e*NDP zu>FVf{|w$gQTw0Y@5}zAZsI6EWWG-Kco2|$3zZW%^?(LS;uZNulY|7VJ9v*=hFBSa zgtnNpy7-c3L9FH5z#V;y^SdEBQfu82>icOhYfM%D4)0dFlo2$_Ks!_9RGYgW0V?|Yo0w^qSXv@DLVa)&rA{h$(|o0iC+aN%xLN*6)i z$m6?^adk<{e`?NAgCF2Hil<*&$F$)L?SI$+>yKPL_QIIo1Z?B32>QaOBbbPkuS|`1sEO<}kNN1Lmri?hf6Rcl=*-55DH}U? z6vd3Jh_Wjag@o#I$JZIaB;G8fD-XRmXymTY)l!rtkCg!gUYlozVt>-(j^I?E@sS5^~TnN~W^7$Vu)yDVym1{O)zy z1;x$xeQT3opcLJY7C7}wPVcuqKR;8kKhXf6$j|@d8N%`nRO)^NEx=A-ooKHCO9ZQMBOQGZNflw8X7|WD3M$LL>S*`L3p&1h{ch7i zAN(5sbr~80cYU#!X|PT)q!(;nAjD!eXNocD0i0khW0~N`4j+woUHSGe8P~XxpHn5z%chGo2+UE*?iYSKXaF zeO}{J{ND*Gv;TC2Lo24^De)0Hz7K08hKbFq`&f*Eh&u||fUlV9Fd-CnXlf-WH|71Y z3JNUhMud~GSxN~)k*$(DFbT^;M%Pa7yb@boVgYt5!J|4~ztNinR&^Bj^pn^YI>iZ0;2@I`- zHzG}>xS#5cB9$U9ZUpX8$zGgdnewC6ny^H2Ku zi|_v@D(LfvXUad})~w_@#Jl*ATaHx*%gn$b_No*i*LwUxK)6GwDt5zRh|;f|>LU~G zo71IYbCme!m8GGQ9K9R}PP)h;_Hql}s%|!#$CVC^TRBMmO*UKIg0<>2iUZcW zcl`n_{eH_`XV>)Uwfhv~#O(Jw8&J*$ZUF(AFAZKx%D8ZR_~@ZG&wK;_AcIiql3izW zr72Eoqk>+}xX?0kRwUjz=Sv1jWpgSBS|ppuT2R92-_?^E#~uZlGH}c8wC41F=snNN zF%C;seB`pyY5e1S#d#~wE_OIi(%~T9ra{#rnJ zCL5(wzDkNA=rixCwpD4mTjYS;(Le;ikygO5G~|O~TfNdCfH&D=wxHc2N?*B?98I#A zpvtMKV#>m?;%tdH$dgoii>`t(&nSJB0>&+B0plv?-qN8Bzihku{)p6daK0&id_-V> zNpC&(yyDNk-T&Ll^tXX9%YT|_mVB0|#>Udp$iU%oiSs{(7Ty0o&iwPI{dp>VfBj`W z%YXNpnapErUh!WG44q%?(vdzY6Y<~cdw=_2>HjoA_jEJ%87Jue`v0F?6UgHT-P6yn z$LOB9#Q4|0@HmqG!;kp?wqpNylJ42n%i8q^?(&yqsNs?S)EfA(-bDSc*JJ)pXn!cc zp9t;q6d3D%Gkw zo8-aMgf8@K6yMi#!FhSR`RuUKH%z0&xf0ah8&r=@0{!m{>Vv0 zUlN&~clKOk@}&UkgP-#?rmG9_X=?}+!H`XSzGfMsYKK4n(I}uwd*mwN4yx?qj!U(o z_w=UjWf(b5L;y!1dZb?y`YEI8URd!Jfx?+W$%s^qyiY>3Agy&XKFO3FMX(6ebuSgB ztOT(3OqdNfUWqew?xGU4+(?Vk1IkR+tG(QMx!-_vQF~ZfGRjqV!j#IqSvg@G5L|P8 z{$V@F`NZj%JUV*H#tyrTF<}UT1}sn~LD^6~w=;PFe}@|bRe`>jf!XDBy~VQ5m!2x! z%F9p6#=)i@scJd*H6hv3YJ!SlU5Q=1HSOLE0mW2-v|UD*fajJVx`V$Qi=m5OR>xOQ z`K!xu`4I_+@JXylu%!z`LDwua=g%aYW&mcJypB!Oy7mg~AE~v_1QLi#kMa2W+_7gd zEDKewk)yn3420{4+%QJ$q^jFT@a&SrIExy=gj{!D!P+?VUoyGap@$V|WfA&=w39aA zGs9CGe#$qjq0H*XGgcK{NBZOzhSX}G+BGTaLx6L1;1LUD+F0wN&9l+%ARZ^p>Ms-& ztc_`YnHJX~b^m>bN|F|n8rWlmA@j=}na^A~{!2X{z4DI~^iQ>>zD#M?M@bgqi|N1@#Hr9`)Uajr_ zU5E!IhRLPGsFnYLGZLz13&kVGWWU7unTvsc$?=5qPbK*ifqs5dcC>a7_)(1YbnEJ| zTfcRi(#1Xv1h&bEyS8t-yxj*o2(`XhTl(7To*kkh34ovS(h z2>E#;0zx{AV$<3n38@Pz4SDPz;Nl2MEX0FW)t!>asZ!%O_fQ}p(l{KWPpfg8< z0=^;bGhIe`2!2!VkDcj%Ws|^BM13(Wrt)4N*Oz^23-q6YV{Y3%#;J4lIzxd(UyW{>HK_ek-|P!6MrC4*UkS!R0_nB{7iX zR@UjFU@d0O4)-QZ*|!?7>g)t52+9^{AC^Cp`Z*qPrrg{&08}&&9Jdw%dElZoey|pD z&(qg1{O~eMSgkRBW0fM}o%7+g@wF|^o1s+#uFb5okFHt0if`JNHb>vEc_6Vsu?EVg zO=}Y3-kMbTY>Lhb+Tv&e0)V_c_k;_6z+cyo=-ZO+&>#mQrq6!StZ>wIDaSX-@5}IB zjjof^089O@y#aQF7m^yM6?EO%Vvcmx=FD{_+M%kkR0K}EFLUx^Q?|^>QD&A)_9>xe zrvsa2C;7V#eHrn@Nsyo`O>(Kbx&sF-sr&DQhy?Kw-_t!m_s0RzpQqlx^)>sM8UKk+ z?kU;-Kd<@x^$HjoIXvYk2&ok!~aE|!8u=ch9Ki2y&#{>{Hf za8LA?k)FYiR2pi zNmog>UB2Q`Pprf%MY%|Zw1R=EylPHB{WxaHl026;B`_3?Fh+y}a3{ZdB0`oJX6Z?8 zfyOv^L#l*3YV_(d^z+DC;%JHM4Mmz}q{!K>1F%8^Ih_V)jKr%tRQptjXb7Y0adWVx zq_!eGGb+iq`Ia0YiVggS*l6PY5%MXnW)2JnwOJqnaDw7^%mu?8n6ErK4oZN5v0rJW zGH;!TUITjQA-sE6!tg?eezXCxxH|>V-eaMnDr&WlS&t^_x(=A%!#I3;CcB5kcATHs zUclsYS25SSPgLU%SaHE>$tiRRXYX_C7Xz+A1N_wevP1W`CK5|!ofp{8UgP3;?()@2r92~-p5r9d-V(CyNi zA6d-Jh)ZK+Mx2Yk^IsBoAoVn=6&X8AtH^w*ZM=F6%1S;rPs|k{nv=gWU2@Vrpb}KK zUFa;swhT$hQVF$R`2j}KeVh9IAswCi$=OP*2bJ03?0k^2HA}#?`X0PPl+%o}?I~Se zn>nqgCvHr#m3TcYG}vTRQovFMog_r*g-kr|LIR(-MCTa`Dd$4IQ~Yc}FB$Un3tnjx z!El*YjwlmK&FyRJNXC1iZvKUDR4W*`J;s>5Bhhe-8!}^8Q5^;@nEo`0Vfe*k!k6?O z){2syQ6t-xS1$lcr7CvT)j4XTc(k2;;ho@5#m;eZ6;&f0g-reCl<_kI4cWS7^po@7 z5UiR}1uyBm4r3&%XbM~_|s zoca3j>J8=NWiYLU4Xhbr9yhX}=?0|PG2$NkEhY?mcVd`vl9SgiU2VMDzCt5j*f(zB zhF|jpm#IwG$|AtOx|=l<4F2J2~=gRxO>ckM1 zx8p(dT`e==hlEX7W^D}ZasniiZgXB=NNUDR-JDqb7_UT9J9B+=a|u%Pq6Wq_0QD3N z(M6O|DbB?{C8>+O2hG7iVhggp!BU2*$1p&DbiBrBl})u~Fk(4CSE&T&_(G5+xr+3& zfCA|ZiyTCEDFyk(VKBY6v{sNTQz42@T21ndXetDhV{ePlaNn?~-c)|f1SVP`5e-nR zn9Z$YCW~!OW0LJp$%okWnMKsfk9}hRp3I+&R-I7gD5BHMd_cNQGKp#{X$ciwZWLI| zxc#CCf)GA7buFaOc{POiC5!l&#{*b?4D{RnO3e=$EGVe*a|2zR^$=8xC4KpH zx-srOFm$&~qs*F@FdMz~0^wLVi&3skjy-Q8rZyI=M=i<=z$zvOsz1wHi-HKgOP6oV zHhAB>)cuVC&mu9gPMd8rUuw4w=o0|@IBE_p7|QUgQmY)2WoAWi$~n@Ojh3=Y%ISQk z@UcM$FkaBIvJ)Ic=cduLCavX-75~0^Yq@WZ=uGtM&2T&(=c{(Bmn#O$zM`UwT%MIVYads zhx^XB$7Vsb@+`}UmngabAUdJA&!QlBb1A21fG1LzyFw!kjGUb!;k(xkNPThe@Ez!g3e z$!iJu1P$ad8z;IjC8lxyy^DDo4?p8+D}mZCUD|I2p1i_qPPtO$A#w@mmh1u_q-yB`N5VkgBER?%*aZFYe%2c?|n1DF^DafTnggD19QKU0FG6g#kl z5yg%pCQY(*DYAfk44q_98VJ)at@x3~_%;z~rgYc2$UFZ9J4JU_X3Nan^|TLULrfzF zCXtR|Uz&UZwW`AyLDW)(=w3YU@YhGC# zuK0( z{Q%emK3@`Y0T`dJJ?RzaTU^2GeDE1#qw5zqU8I$M$dBzwHz!`;HNw0>8hUBUMSi2} z(xuy;&Y+H*_FrDc3QZ}ywS){Ran$7mc%t;Gk&{*)VmZ13&4q?wa$qC5b115gWdd1bzKSS6#H;LTh$=ZDcU2Sd?r4#UN``kLW-o6? zJwv}Nc{saKUt5>sl}2sDoVC5g30wi~L&b0bFu0V5Js@4gpY_^4Vn4!No(VBQ-MfA( znAO#cbj8&mV0~~;ox#s*3o3HR;li=)?yb-(qZMdt-pa0XKhkXvc$bCL$rUBy7+;Sf z;_@LEk?iG)<@w8})<(LX+)1%V4~PTte~FU#iIM+_{_nXfWKW+)QqTTJtfHs9luaHV zbn6+VhuWqf_@t8!LP=Ti*IM}ka~mZTP&&OdJ>5toV)L`*8Af=4<~ahQ1N0A<2f>$N zcna7{OS&y_oHKCf(n%R&g0w`WIXS0gyMLsKvHwadEVIP=Pcm>~) zSDh*de~Tt)Wx#UcQMO2V8XysaTX;-)p8SA(yI>SGkV+VT^Gh*$r_qDh7ckSNYSrTi z1+E6rTcw!k0%B4y8(=G-&`DTgk(4)|tMoH(DtkEu-Kg{qCo~&aVX#-N4Zm!c5h!)d zQ^#_&@fugyT`bX?HM4gJE0T1WQ8Zyw43wCPf2pjwzh)e%F2 z^YN*>F%A#R^H+x6IgCk%gOtEGpub3B;pTBvgG^WY?68Lh#28h)g2{u@UdMKAO1wLA6 z)V2<0A_&d0g>Po7ysx4A;TmG;U`3Ebj>4z#BhCWoB92gKwyR?&l(HV6VrVk=8uQMI z?`5{S?x9YQfgKeNpha9vG2_Z4dzDrGcAgW-hzhaov7b2l(fEGO1^&jWk!G;3yxxZZ>8~`sdWa zVek5|Aavy!f6blpXq5_Wlmit0aw;$R@}jX$P;hS;m{khNxY{vTu@V-ofPj6r7hc68 z$ugY^RRR0+c(3xve87($AC*iH5Mq6}z+E@tNM;N>2e=RnSrlg7aBOq1$e>a>tMEXJ zh+)3h04jNWYK*eJx?i#mA{vV@U$MH8dKn8$YsqSsVNDMB!Oxc{TXLu3^kajBNde6T zMB9buj`XfdA$QC)RgLD9NI^L5xC;&sCp5+o$cthMT1$qDpON2WV;LinVnU_iG+~K( zIOkpL84Yl9;o;^}?gLMdtaPd3cfLbSiizfGtO;u8+Ci&Dcx|5FtA`F`hfb7O&&E1! zD|j+C8b_<@^*+xH8t|ZnPxJgl-$yvWGTp(e{W6|0o!QMI(@u&Whcf~8m|`|+#*cUw zoul*S(}D zS-AX`k)Yo0KSBVPC5qftdC*WWjzy^w|v zBX04fQ^`L?>xD1Iu3p`=V7Jq8Z)Dd`9XZueLm5f8*By4d&`(t&&v8sD#jQsQw-PW7 zo-V5k^{`oX$#1|g>jAtyUfXw}XhtP_r7+vlIC_tJV#3Z7%~SXBlBo#v(8Qys6_)3X zadQyTgZk}gZ#yY{xc8`e*tY&Q-i{=DZOTfAcTKuQ7oYZ|4o#CB*~wM@^kki8Qa(i|G1dzsVF7$G#Pzd zfp)>ilVGgm24tlXpdKm_OJNOel`%y0`t?ECAyujFgZsy*co>kTtj%w665;9$RT)^hL>e#d#Enn90rEV*Y*#lK3M5$CKUfbAnnbK` zbtc}E3ekP0@+TJ`ei?3*MuQhfInYgoAB+ZPBNepaFrBeNZ#(D3}Cs0Tp zU|oRsxi4m9Lk6_k(owg07Wm$|srf3&&Q1fELh3rKGU|iCE!631M83*kX{Gf(V(8%{ zaU1Nb>ioFvzF=Z2l&}H7u2Y>U0bMApEXT3TlydL{WhA|o!%+sBqD2U88DRA|L-=`{YN{sP&SmKyEKCDi8o zl#G!8@b4+FxMA1m*%!!kIeS7grx60F=U@$R-_mLJ3e&ZPqhpWa*GchQAw9{9QoHg4NXX3HZk{Oj ziwzwd5HbQ-1i|mpotv&vO6^zSUSIV!m9@7Ya#@@_p~9XuecC{UHf~-R!mONQhDA2{1zV zuuqIIv8T*xOb3Dr=(*1lC~FE}=Vh!X5$!BPxy~vCMnrV9^zK09kdGp2+M6w5D5#Qv zINFyJA)*_iO*L{{=LcP;+*`7+`pwG(LyqTuQ;@mzI>4l)@K^$s^%Gw^(j-b-1XX=& za>dqWwr1AFy^+RN99havUrL{GV}01e_aA|vcUPt2P`c>mq$VgZvnUmT9e(-u`i+W` z=iFm_q4>)aaKEvG=;wy_C%UDlm5# zhuV}%?j^-5?Juk&hA_V8`_6PEfnG&&u%}n8+pabY?uEW)Ls1{pw0Td8Sz`Qpy}4)5 zu3l%@n#oF##1Rj`5yI`%7-4%!X!#6F(u8x8bSG^#(}pq*cCRm1DDg|dyMo1^?=Bb@6hvRa|2XaQE){^sLyplOyNKJI&lg5q@U7kG zfE_XLRuE+>|2rk1xh57!;3N`~!57Vk(2QL5yqK1CMaL4evxG<)jy?*=bx9NMiQ}RT zoF(&apO`FGdN|x#mw6_pEKHb^ry!Ov@cr3%kqnQs_(k=OVa(2z6r6*^bPz8gDNchYHav#meN z5XHe!oq%)zu<`r&3B3GGr&$EcpsqQ041NnVTehy@Ti{*+B}FZ`9tAXBN*W;EFCPWs z_}pLu(7=G)N!)G?TiOi);sFGm4h3Qa)-nY(&d;_8(v1BO8oDjRrC|Z>Eo0ZxWMc|f zWO8{lHGP2Cs#}kZe2J4)Ref&uM{r;Sn`u~&r*9_eM0Q3tS!iRdn5~Newi8=|Gv`ezfjIU(SDyhtT3^&akTwu zoAWx$L}YUc@ItjrakH=T#pR^~x*ysYi3<9Ta9DPF z82TUAu0Z4V``5~Qh(}TL00!l463NVV%x43iI~;= zaw^8sG4u+YS$=}6r4<{_lNPzoo)os(^~pSEc3~vDZrakxAiYFcwFzFtIkW=AdVjYfDTi1-_1`+3XIt)9u)emgNOY?J2$ZkX7MRi@_42L&oF$n*Nq4`-&>fN^xpxS=`Kl0?4rl%edvxYyn(-f&sA>O zEg4P_3u`@T~i*ir0->?3sw{>#ekZwzLBZtnl%46SL+tPLz34S&R) z{wkLq`ESnl{6?66F36t<^K)0I{{D4-G{Y6BBxf_p2JbaeffgX-WN%gt;s8etARPim zM25({*rkMWN)q3_G8=xFKz;aS9-XtlJg3zFcW##PY>4$N@{qDnZwR_Amf3olRo17M z7HFm+q=ssHJU2;l!&jn3k}w;W)!S^S+&dIrvhJH9hfACA=eeT~?It%J4-4ir^EWx7 z^9Sxd-9B3{W!~QhBo2vcv~We{a``eEe?t+7u2W!cWG#|YMxG~wsWpLbvm-F$1nzPJ z-o2*-3Ugvg5SSWt*aX&Pc=cr`tcjHSh_j9u@i^tM`i+%mFOeUxwxg;iOFJeRcV=8M z5KT^L0=!ThrCO)1=KD={;@gkxcj4-ZZ(gGG0N2mJ7R%oSnOP^~Z`goWjul_#y2yr> znZyCsTXUn8VtcAYn`8K+YWfJ;X^>gW-G_>bu$V~4F&do`i5St{ zRDj8p2Mbn9=T}1(P6f24Tu>!wr%Et6h?wiQoQj3?O6*|I&D&n1(a!S!tn1jgQ@WTE z&$XOA2R`U_5ee17P%wXcLn_QLEzT+xwKbBbUejxwdDtW9KNX8KetCy^s>7i;GxbJ4 zTjWy%o&6YXWWiUZ`YAaT88+=z!xMe>HEJRT$ZV$FUfG4b?$>~gx`n0r zx-M5r<4NQkP8WyOD;w!Fn!h`wPVOstw9-|ppne!!2f!k}NrD3MmFzBo**u1MmtyBC z0VdCT6FgL7I$l-5nb%lhVsLGZE$|~bSEJ-=N)!qD8CKZ#3gX=dR?k2Hp83TP%n-A4 zM-RZ)c~wygA!^}|%Xj^>IIQk@Ubl2ysE=Oo<2SU?;zg(NM>QSh!KxR=8HvpZ+OhefY&tILaHZJv_n2x#nZgSoPdK8D+P3UE%XE?l*BozQA)N1@LR$<^2_mYMQL$;1nph9K`$*DzKdi}1oXzzlvkyGchG~s^);!^qDr}wow55(h|6T2l(aaj4Bn--?EZU+^NsOtb3g;){ zLIv^SxGGsg6x~P|ijNXzh5KoE19~8r_ zV=%!Lvz@~jG!p5QuVAy3huyUrXDx&_T8t7I6w!SsRbsu`o{$ji$Oray1)KqZ)w=*+#Y^y(%|TRU@Dl zPcI>ya7d6sM^7gq1N3{Ry6BR4t&GRT*m>A}*|$7L~@cl!H{ntp}NRsM9vk_9O8zQ{F(CuTpH}j9a&#jBH3GZNt4pK8 zmohUue8a7iVgsPpfbPv$Llw_Pxh|61^#Mwtde02EM=CEpwnxZMFz&mSjz@{m7y~`g zD6SxRZ&67-_$w&&rUNi2k&MBs;Yjy-pz^nEDAEniGIm_Cj$nFdMX-v=-Uv8ecV$2u z1mG^We5f;(=9Rz2*Pgh6xwx6y47tN$<~TN&JZYN>vQAZ!slmDfd2&`2SyYF|kECSR zFP+tI4e)+ujenxAdhWJzGi&pIf2{GpSM&UhUA8}!;(s81O4XcfEPj-!c_w_H&JQ~F zf?Ub~4vHX>awg*_MWf43Mp1QUj8Lyi6-s}a&YvSi!G58fMXVL6U;VLE?bz4jw` zj9N}5-whb$%A*`KtmS?hJ~2M+qZbyIvg+`NVe(VVNy=nuM6iWpPU?`2AT+)fL+-Me z(bJ|)a~LLWVJAi3 zW45$xH-zcZ^g5Soxy*a)t%(7%nWN9+&2XZ!VM&g%>>~uENgQTQQBSB~PQBiB_Xvx1 zx%*MIV9Y{sv*0hwQ3RQ_W^%#B8=i7;^emiwB4zZA74$4-LRnKcln2%?pyT!YUVvR8 zSnlKN$#%v-qhIx<*Y##!0b%aMQ)v*>$*d^6;j5F>%1`OV}R5M z>}!nH-1_F-^39LzWr;*s)1?4I8gq%|G6AC%HC2_)>vdPj;Xrq41JP*O1-DJ@v_5ro1MW_w**pKM2njGGO zr#zmkUNdbZkw%6)L-8oK{UTkfyRNRm=MeKT>|FwT2P*RM%2(C)yeJef!427gWa_R! z3svx(2w2ps^XiW@{)G2-!f!vXF2W)+EivyHfGJP)rPSJvf;`?ZhjU%88r2}^E=8z| z^8onPWo|pjt{9S;vzViZW3X=ppNzoAR;Avez6UhNpN%ANM^BI|X=`FBf->ANNnuS1 z{c!uDfa^LbZq*hd)2tXgkpr(of~7tqeGIsGG%7@{ktBnO5YNbk4lVT|tXoePm}oW0`W^_jMp7$|M@4O3d7w42{iH4y^{!?aOSyS0g8$(47Ws zR_EGm3Ir~E%bV!woK`yyHZ#TOk=_N|*DBG2;g)TE=Qx_4M7`K_F)8rPh-6b;&tM06t^Qgf_>%m7~u!il2+4Ye;Bwi`ZTNYWO zbb4>ZKTWZgU_2>O+DdzxE&H`tCXa!~yH8G##yMjb0WWdbp`*%=B za;)6nYp<>wf~$Mv_m49maHA0 z?l8M{lnlMJV1l$W4@J)0?gHy5fN3@f^|M0|$0cRhQlA=$Krd&=(O#PZQ4TY_ zQFNlxFDg2v*z+-P0?aDtBkhO2Qu8xVny!&^cj8&vux$9qbUR@cR}%)8P)I*Q#Cl>RsYitjU6WxyXAk;9O5I_{k)=dy3`28OK~SJ_kGae9`;_L5 zCN$~(WA^|0mks^DaU0=}z0m*oXKPw3J(nMhGyRGXpLkqo*8c(#W$$qb&3A4mb!OuF zX@kVm&(GTje=E8_lHq^QeMI+%ch3GLx}zgQg9`uHWj4)<_wA`^@c$mZKa}E6#P_)e z0&Ml{9L%0JA^*UJ3zVg7zE}8F1`8^&!M|8n@8pQgfkGkgy5?q08qQ*;Jd(DGWxto^1_bQuvR?m?5Jc56BykmyX*)VLTia^iDBEu~xq?(vY*E zIi{YO@6oq+eD6bfbubJaf*LTr_M-SjX;sHG2Avi)HGCA{O;Pq_@v$Uuod8)rOA;-w zGD8U(xk4FAHS^n(+KH4;5hn@+#_m$V%9nKYgRU=0G3pxBzw-iWdd zfaC4j7gocn-MsG;nVcW*a*bz*V@v{Vosd}x12YjQ>3pRbK~?rIa*x?C%L^ypAI1bQACq25>dm-IC#2}sn^5H1o=JO$4wGBv~`H6 z6!bAcE7^t`pi2?V1EG@?ue3gnvu~qL-qRvpa({_TP#Br`w&|&8GACaBps6Bq7NNa; zTT|6JFnDKK`8n@izP(k0VMcxz$OG2v^-bnzuJ1PIo62Nb*qa_zDFJMgX*<|A)ctjF zA}Ncdpp&Oqd&zB%$uwhe*`E(RCB^HM=emaRUmEmncm)9=>PiZbnxL11TRKEUJKu}x z$ryBClk^+Ie94Lb+BQyjOK)%IqP@TO{BajO2%lGnW zBLa2cUPyIKef`-uwD<=xuGyl^tVJ-blc8YVLBz*Y-aeb!JE(AGirPFQLp(h!kdue>)@dn`OK`u z`&S!HBRIEuOvV=!*raT6C9Iajbss&7x~S5{&C=8!!p;J%nUCL0Fs$VYfasu9Mu`k; zQ$udrM@x^p(+hSj>7r>5TrydHZ-Fy&^lDns)Q%tM3`9*ycN-r(y@=FTk>lD+Xw?@#lgreRTHw<4i4Ezj<3d=dZ1) ztY=%BgQzL$U=pVBq+rkiraEZ^*P zqVD=`J&cDPm$X7lU6mb$zm4tNaAR4_UyHzwnfW{E`nWDZf{a+VMJ7!(e^eDLq+a~ zC$^`3%qBMLvFi}$(Y}5jZ2rbsm7nR(pJ-Rl&CJ^w89EyLkhcBD2CI`KHb$&cY$wwh zE3GO3PH2#@#jspu%id`MiBz6(P^tGc#Gt%*hhx~$m2G@8j#v3~2PN`fjn%s4{IlS$0r+~cQGZTifuk`lY!UQ_G= zweu={wSnq1h)%cq$*qg@U6+1Mke6i5$dLYrOlfUc&UqeHa{S8bPeX{MfS~Fm*xm9Y zqBJbp>cC2h<#s-*rNOJLI=p2(9OO;rAF;l#%V-Bq116G|mMN8+WbfvsvsR7o?;0C(LNzG4nsSgh$UbW$7ky{J9Xg3+?cw%~InC7E!#SfcmnXN82A z*@T5?gTA_|T%{bgX)$mkve=t&yCG_$Zae>Kkf(yfY=q1X1*v&Y`+SS%tkjq(tBrw_ zpo~Tfo%}SXPdo0Cc1K5s!Sk)86A%hJS0|WGY}f(@AbW0uv?NY=3S$ybILk_N0U`*P z1NMhfU9r<<6`YH`l#B}MkxM=mJy9bAe1Xq1B>e{*>$M4hnw%hIhSTtkl!4#dZ?cu- zUJ2;vm$eBwwZbWdU_ZPx@vm)mn#9#F@VT$VM_-gw)gDoNbX=sC-6-Gu@TBj#G5aDiz4;@WckP|EzLP5{_ftm;;?My+PIL5DXGMdSk*5D zvK>cbk??Ux2k@4LEA#z&9z0i#B_Un8E?w8@iwCR`+{5DXXd?|+a#yId?-slq^13&) z(z?->S=Hx~32RTWdq8>Sws$${G)Irnw-7E~$?#sVyWjJI;5OtBy~`OytFA_Jzj^R! zaRw$5f>dp~P~9Wk(qTCPhMblJhIX|iPsw(%6F%wEpD~zns}SRc@fBVl?)DRd95HI* zxDrlX4oi~J-`if#H;Guf#BkT{Ukdxr+zp*(5ulE5@jDWjv>HQtS7)Cb#Nzf}gk;Np zC5@GulhXE{z+#UhX=QN5dHv%eZEtXfL-59H*uRWB{)3+Ezs2vrk=)dNb1lT5i}QD- z5FQFE5zBP&9uvx=SZJ!Ev@3~nu2aPx8W1-y__{Ho+uMt?Ht@!YUgwKV+A0o&dCuE* z<7pUfthPX_=$@K7>xPYp1_nA1ps)4aoA!tU!7`}f+w@HXl7>`(u8yr;!ZdpkMvt#H z{1StYLp8@^c`R8`OBgPp^Z1|<#-6ONPQXKo$=B+!O9UY?40eA=ikyQy9kW-{7q?nL@sNpL?hRijiYu7H})z#7K zW?j5{3pvquytz@cT`06q_-R0_vL@+SxW>tpzl>qL7dCi(?u4n>T0*<}R{O}WP8-g| z7mwDMlC?|+JtTa-u@cGuMXT&v7F4MlG)+U*;Fpg&6Iis0*XZ!aMR!R(-ma6`MXUHju1jpEd)#*Sp2n#Jol?s{K$mGTQl|y{R#!i5Tty7yfA? z9;Pq^+9!kIkmH#8AtoJOaaEcZ?}M*Z#Va-!*o-jAK#0gLi5u(XOi4T!hi~9gI<4jK z{F`e`Hoo46wtPMHp|Jc@PSLyz<%j+mUaXXAgT>E+e>QkZdckieeG6Dk|1w}@@Xr-a z{MwTLjadKvLgsH$4D$aY8|s9zK9H{-Z_xzt8otNE_Z@(%nCvwwIx2M;H51~Om^jRy zn+~T$R~4z_T3(MT0UJZ3K>lh}OuupHAs=d-V5HKt2NO@>v#qCH4Av)oKFo4By#+%p0FipPV1a zBrr0xJSE6bX=0eglUnT8Xr7;+{Q-EiipL~86}RN$z@nj;(5R8T4n74Fi7FM9P!t&> zJh0pnp0R4@@o<5<3MD5#bPrbrFV7dn;AKnR5Wp{R?~7`HkuqEa-n!6-U#C@W!yY1| zw~QT`9o)(|Yh|Ij>@Dw2Nh;-@rm!Q)%xbG3G6{>;9~I>EQ=Hct+nH9sDZMFNAY-#W zoMstdNFyrt6{g08Yw?O$v#9jancKwv2m~9sg<%8KK&vHw)Q}pdcDFqbXszJkh^+tT z!R1~?=fq5KrDO?be-~05)FN-kb(ZwAtrNT$|meoqZ4MqB>e zM<@KWKx>5VJ%ZD^$X#?tDd&a{#I62zNfTS<{X36UkEv2RF91n9x>NKE_Q*=0b=i9R z?b(ao6NE1)_mtVhme26+RlJyu&J&ReHTx`R?-m0mw9QNdcqY4OCIaZB@J=ymljh;lgxjIM`Q*0?>`y=QpwgY9YLQnAYAqt@)dXzS!(KJFs6XUN7J1J2d2)g@A zkucM=3X$VpRllEmNVj<+)glLeMdi!fhhN@oschP%i}0Dz6b4#E=X$?ZsqBjtrH?HF z!P!bHJW(R6qUw@pPUDhSu>t(mTMP>Umml49sp+wn*m)+AHGI>x)#x@uxhQYg#wU{4 z#d6hP6m_h1 z+vGU?wRUtZKo{Nd5E8isgtv6jK1VTuUUXcI=;3ZU28ZKK_<{?3YZDI1bCl=_!Eo2F zmO;tOx|AMc3Q+!0v-x%ti+OLu6attPnTm_7hk6+Safy14J!dmkKqKyLl$Yn=h+cwi z=Kz3Zd>2$QMFk%7c6mrRho`8;QiT5^5Kb=)lt0bG<$IC10)vA9T>`IvH2_Wa&3Mp{ zB56s#>~pYA8ZgIkqBU?H*seE91 zOo=BucmPj1E3gtJDJ@nY{rm{3EaZ`NiBQ59%th6-&sx1^i;um%pB5z0pzcXhqtT1P z&8XMnNjh{NVpI84#gzj9x-#Lb4L(&_?4vL(tI6wgb9L*vSqjbFPLjfn4dz}hEm=G! z*kENy6TX#HdI001)}kVdA&OXS?R)XC!&KSXN}=&Gyp*rgxNQuAA0C{2^x-U{qQ$o- zac_6Vwu<5c{3Y{2jR2AD`K|%*;cfRlf)C9zO>6>aQ+(>DM^bAR|typnx{G*F>za9XR z+{3g`1*V<6^F9Gbt1^t}ywAQz>U`zy>xpAeN#_7>**br+a_a*O}&DgKRH{JRtM?Tj4^ z4S&k#4u3hV3rO_>dD8b41{6y~;$1`Hl!_^!RLvNYEOZjbY3g%(U)yS0;1BWBl332$ z(kpWD79o5i`B0j@nc!c(66t&tpOK&l%@aru4_o>e{F%F?!$#`V)Loo`-tbBh*&tL9 z7^;yJ85IT`#7E?#H%*sD;Bt)Al1aICwu(qIg;>$4(wE zWVAwMe-%kyKLCvMI1R|YV1ylyq&L2xN~!N}zqVMm+a9C$P6g&7vQE9?Vofxtd;v~f z0Zw?|F@!OeQ!SsJ!pnxr8fc{XlDB!Y3tRAUo#lcVB9G!?wD!b+73(wRT$d7b_%)+8 zknf~@ok74kJM56QOED4dCwB)F_jA_<8D;0_dkIwzP4g!%2!qD*hgjlX-WSWSOTMno zE;}_%9cH*3a_@T+jk~Yzz0$Ac1{_8!J2KisXk=#(b9TONH_hq8m_6cGd+B5=7loL?HngWai0ZfF3Y(ijTTyBV28D0RRfIDI;Yh0v2S7+$KoJ% z!)BN6Jg0FXFYd(5UIXhMpvL%7onl@Tg3RgQ(KkbUgq=y8Z$vAhM)#G>NaC3ocFpF& z;~9pjvXf@R!~Gqi#)odal`4=Ol;o6myB^34iwQ{4_D)*>Y(%8?Q)JlHW1vE&il&mj zky8pp+u`cVT)C>s#5JmJR>2<7Pfj;8(cIl0yOXC=RW=0~*0a>D&VvnjI^BN(b}}zU z0);YgACgroVH9*V$K2sqtq*=>pTW+BQ;kbeyNfg-a=R1e4+}u&woYVAHDG1yyJxB4 zC5VMclCXV=tUT$?-LRIE8*eMgw3xuYqDKlHW(1krjO^fI{s=~yf&I+Ml72kF&bthV zgkA0WxcumH!qnoyRei7x>`-BfQlLvJpp!`esM~0b$0r-H^8(@0g zG|JzHh5o@QHh*Ih|BaS6bz)`lGqj|?<){4LQ%$y@|Cnk5@?)yW%G*?vK10N^`X5tG za^I$!d>M?0@hsJ#2{wp1k9Nc)nCvCQkTi7{aKf{jUByrdl^F^w>3 zgioazRIC=XeM?@rNOJ22TjaH|BK{bhEj>z^tyFVCk(?GTRP)DF6BRuhGhQ0}4Rk64 zeC++*Bg|YX)|o~JFmVfQc9h~&DFDh+S+>bt*~8-QZqc%DVZP6w2&u64qyx~qedewu zHm1AeietvL2}|QmLCT6SfwRTPnABvJqfsz*y8s+QL9qpi1%`oPKPQ7>k;%_jPQv)x zVA?k9ODH!*QYw~MRqa}P<*CcF`uZ6w!5rvJXrHp>>8ot7-J-TIb|+iwo<2GZm4>fp z+2D}Lx=FAb8wBUm%6{S{(Lm4JAl_wBJx{VDJ82GCzg0sI`HBSj?y*@W`oW%9UBP27 z68!5}P*71Rmkxu%mY+EFrz)YxuOM-@i0_DdwgA~@kYVR@@-cnj`YcXe>`G;%N~!qT ziFA_&(ohcjXerLjhSA6l+%m9_;uUh2#bQ)HDOWH|9NLT@%tMeuz1H-*dhgppu)N4B z#3)GGZDl4sh^4~PfZp6+h12B(xN*C#h)34ejms=KMo+e8@$7Z!c1ht#&luU)7$eel_wEp?W5itClF~kFjo1R6wPF!f^jb>xpT(P@Eqvv$KBbi}@${@8=-@H}c=_b|%|d z+5UXg=pPIy1mAX|JW3veoxqo(4qfLEjtV|WAefqpmqckxWGP7#zecRrJ@0is>M0Ya z-y-P|J(TWpwVt}9;mFq`gx-pxScmYyNyWR9sAQTZIb)9>FIXl}hdv;2Fa&%Ux$#W! z?OPqTChoxNobjXGt6D&05Sxqqxqm-aY%WFKa$B6sd$gKvF^5ds&zy-3>PJQ8Uo^#mn${Y~cfP-=pQ_X00q75r z^p6nX`{HvElvrC?I9Xt4*C>Q5frN39v5caVIZ8Fh zCf5n0sVk>tKcm+xewQp-h$zspjKA41PnEP7H8_moV(aMrqdt+{cpvNWPJ+Uz1AnzS zoY?Fj(~%%46d&oAsOSW~eE~8%UE76N!0Hx85<_SMb7`ern{Q0ZN|Y5|WSgv2_MR=V zIK^bIeo=6Q1Ud9$7^z+U3^a9>F2VbeuRP>6&BPy|(Z=q^C+?bVoI%M0Y zIP=}p5ObuUwCHfWSc&RV>5;-i<0DoR%}h0?zkJ{l^|aS6<84@SPXyQbxCd=LRc|vf znjz?5C26tN9I$_c@YthZN|7p($*nlm$A&y~ZLvQ;hQJlFbEoD9Bru-`pcGy8d%Vmg*6N z{dRGiQdX{b-1jV)HDpS-TX1<#hUa%P)E0&0U7x5mzFoCAz0iXeZ5y}?h&{KUZ&^u)1hHI= zR!nROTkElX^s=4dfZ)JP@bdP2d?ez(Oma-VV?Y$T07|my6f+nDzyIIjC9hn{* zPfuFd_tn>PD-GifOmlfU!%Pb?KA;q+9uNV|r}S)bUPnuU(={C{uu=&-7~dV9R8k*~ zhx!&U{c%ZRo5`0U<=q$M8P5^8Sr=lx{s{4JAdqF9zwxvOf% z8yt>+z~8g?5hw23SgfAvcwwLzuVr)U^0YxyJQ?|B@FZfgWfE%n*iL!7$zVToCw`YR zdDOYfv73I?z10@3r^`hDoN$Pd|Ah5`h$1wDhrYfJY7M2e(9I+2sIgZHBIi!(oKD)W z>^QB&U!I<|gAqprIXSTUmbOncuYKRp-JB)ZVo8ldc-ioaZqp68tK4L%XqMP1S zNIq_Y0*y!qGTq%)3`B|8`DRm0%*T-fvssny7g4j-wl=Ev%h}W_wW2wI1X405zUN6L zVI&y~5mJvYM53T&e57%PQ(brZt)m7`Qo~H+9s^P!5|ZMw;KKkgcj=+wgIIA3wPHZ* z6a8gFd!J5(Vl8UvHO#>7SNjsE$-Wfu5i6B6J=E}! znp)Dranbkz>&}4+ zPY2h9D{#KuS>e}iD9gq5!HRK+cmvQaQ$caqL5y1<_yj~r)nNpSi426TpEuly@>OiG zvoxvJ+wRU{SLr}7X71%FuIk)mKqypvy16a#tr5o!uf)(5d@dglsM3T0CM%|$#H!AM z`jS<~+!g>H(({sdTaD5>(Ds=q(rA3NJw4xdvOTFOW12FWsYan*97EuHq?shn;2e-| z+C_u|)EI(N0QDxS!!&obQnZMb4*Dt$$?+^xFb+6A&(#Ph9*$Szt}2vA2KVYiKtcRFg=02?}p^)tbKfXz_= zy@Yg^Ohf32X*ceXh;Ny|Jb|9$hlo5&l7~{3bFijm8(3A4V|D96F3~w4xw^xDlq~O9 zCW~2@zXgg*3Ev^S$^E7W&~$mJmG_ZD>b6|-Yteaw-RNlE?x0`(?M&rr?opl;6Al7* z_c&>Lpz|EPBGH9pWte=Hk~{|!-Jr=m#zUKS|v^cbMCjR7aC6=WlEXEt7*R+>g@(5_%?7hw# z8Z%(iCKyDj8bd>hs*7I1FUTgg4@7v20bk zrZcPRe$<>;)sdDcCT8LUCz=3z9@p=T8G*PA_Kl2?4aXAk`IuGLRkiu@2{L9eK4+Pq zgbDF_O6TzwoAcn@U@=hvzmwsH7U9=rb8cozEQ}Sdo)=C0|1=hDJ zj9ET0V0tW{EbK_cMAM?3Ogc3=RUAYz(t}s&w!GkUhDLs48t0O)z)q7+BfvT=zMAna z2eOa1QpJ0|`_uu_LLe`|{N#%m?`l9P1v|Us+&7+k(^EDrR!@i65NN=4cRy!*P;3O| zlTtWCt%=msSRveW<#y^q18Mp##qb;C1gft2MIbKj?<{-Ce#bViq5^K<{9Jz7k6!0_X0QjqDEJ$qI1K2h7leL-W3{dnSgMCgB#8bhI&qkiWLunkbqnUwj@`R zbXa>ESPNe9=0<&NtodB;_OXXnE-_@XLx2LN*i1C)mcfg(*EPpm7nUZ&_s;v+S89%G zlMF@jcS{yb?F>XrZK1Mma$KcP|dM-)#H0Ezd!OJfN=s#FL^LIe_ zH;{yR29)SqhQwd5A3=UCElFN}X?Yde|Kq;g#>*PRiV>$M!aZHr30+OD-lp>F-i&-3a?4+n@wzvAdJY=6?#n^Iwr5R#8 znPh46q{_mQbg#q3!LkT35)retpYJ%&Lv9`pP?(47@w&Gnp553YrWScrJKR)FNvf)m zrN!!D1=Sl#80i6pAEc>%mksqU2h_6(P3FnXEC&IMXH&pBWkXLU6#2bX zG0{%VHE$7Z?UO1h`2OvOUCl+wSzh&x#?ps7K9B5&bPs^tIyMNiY^m@3%S%Z^?|XRF zZsWQfi;cDxMbZtRrr@BDysh&E`DMJ|Fxm< z=I48RRVMF<{PE>KK7@V;H1u`s4QT%dQDCRJ{6Q3dAN-d1ZNF)0<@A$%@QCS>+NFaI zIQIy71wJx12}IHr_El0NB7!{y8Rs`%GZ8>aBuY<4xj19Z269vT5`y^H@Vs;;<(6b! zn7f29e{oHZA$?q1e9YTo;c=awP?A%GmK2|$J5e^s@og6q@^F#g+`E#cDv=W3Sls$( z5`YRda==?1=lcK~Z&77YXgXbE+FisQpiSwQ7beXUk@y{t;MiCzhX6HXmCXR%LB%!w z%sfP=N<(ystN@MFPwY7h-BP~qf$G48I_(C18Nen7B{S*2*sYqfn7pDLB%+B^C30T{ z20m^W5Qh+bN6DdMd@vb;n8nMy+a(V%LfsPsutwySdH2o8|JeRNO)fS6e?6cvON&&GUXrdABWW6+un~J-@osm z{Nu-Iw0>@e|F!7=`5pM%-+!h9ncuoRG+I9v=sy#~zhPbevw{%$U6l0`y87QzV~h6X zWMn2rXq6k}$i%3r#;C;RWEN(mMX5yRz=BO}=hW-~{(##vOLsrh8;}2Z|GmZkNICm` z7XRm#{^TkCYwzlxO!S{sv)J$0RYM2MKZNpM2jKru%74Elzr|(q*YD~W+W*u=Y@zUH zzw8rAlBPjNq^7oh2lXuL&zgvx4xir%>U@|MBcO-|6kYiM`0ADzw@YRM=V{Ew!SI;1 zUxV?UY7ZW@oFFe%Pn=S(R&*+=E{6ztdGniNAw6kbbt1M?{J4eB(#K^e-<80Y^OZSQ zkB)UqrARC)go+IH;j}`*DboH>vXlvH(zI3i2>^Z&3^|OYtnLrutRl)F3`&f^dmW4E z`$4>FC!ZE6o(KFOTe(lm6s8f}$jqLJjs=0Dn9Rx~idQe4Lq}}26ZNDu;@W89GhnYRng}wmYSUNkS z^GYpgUslCPf4>=<-_j@!$EfTvDl;snhs}Eg$GQ2FE2^ZryjB%%1d5yGE@H>_{2|{w zvKD^*Zkj@VxEHO^{Y$dql8JXDJ)x|s5(QKLz4B3^!@z46byC7BE!B(4Ii`E4ms^h{w((Sc1V#a=% z4QCos;qL4k`F_JXIO)Oc&W-?&^{zb=&hC? z&DFBb#*>sk6KzWChe%&K|3>KbCI%otekBNgFGKx>iy!CC|2t9edppAY^$*Z!{T(#_ zYm?=l(%?TIfj^|d|FLJ`ueH&!b@|C5;vj!6{T9`F&gj_oP+O)EAIZaKoV5TChcJPL zut*_Mm@>1q;KU}a!7&DT-f(h+M6TWQjeopcZ{x_c8qBGb$na7##jHo~`If1qdY13P zrO;o)lovP=Gwqqc!?hTz8ScK*e)ciEcq3kVUN;w0rqNn z+p(lTSDM&m_yal#3&HK-_QKrILN2Y`>DQKL5r3=QIhepz1C5XXHg#qYCy8yOZ|ZxA z-$twzK1i?*W}`;-DJ&2-?b(ZOzBfxAbQ7W^cNFqWR<1qnB}Lz4mFo4Tvy$9Ww8(qs zA|q?PgR@Lx&%z`hrBRE5b@|2rOBp>>lqwi3g*Zx7US^Cfgx@0RLB1z~7iGDj`NTnE zh#|f|TAjv@zB-#LR<**`Syw}F^Myu=CnDKSfuV4e1la~iD)SpnPlo}KEtsQvvISG= z$7_K-!EVExjT?0|T>z@q>W@HhVWpTPi=S+ViNdQ*6g5UHT;lcdmYDTliv=u8a0rdG z*C8&MZ0VjrDjVJ3BCG>A3o7Qia8!!SwMg8}Kp*k4-U=NNA#pD`Nbj<9F>&>1YAMNl z3*-;u-n8ZJ@n#i{C0c#lDFP%x$B+nERKs+{{C^X>|Fgm!8KQ;zUq?k7A@N!KKgW@NZyLc;M`i1^E?kjxoO<~vU7o0n0F)6q?FN3MYe5A85^9FondOMAcmNH z8;1VK<)vkwP%<}TTBG@*)`LC0ryjWKqP7SVd_*N$AQ;U90OdQH-PTNGvCmVa{LFVb z99RN@?PsQ|SdLKdQzla<=+U}k8em^fB$o&TR=y{!$ zDJ+>9e4))wS1vGrm(P8Z5Hf1mY@hV5@vj}-Lzldysc;cv?_sc9%1K+w?_V^#fZUto zSWnGMzvyd_Mkae{#*V}eTg@}gmbsGCe#^bjPcBro6^l_?XzNAXV7D-4z0!fK*`@uV z7HxyPv>D&n-1e7j{(Do$|FY&cu>YMs{~Mt$`&-qT?%PzRpUAbhOhl`hw=RW`$`XBD zCZ=pTt7`eC?@%ZdK`!xO!TYe>5NYe2#?II+6u)gGFV(Fj$p!BsO25U7uM9t`>uA5p zv2y(gIxyc3H4|&Z!XpWaK%rn$W}@CeQQ+$#7|6hlFk?){iEJTJ&S`D=VC;>PVjjIr z--w#+o*A+f$-;{{T>vTm@)IF-zj*t)N*2`lj*0&S=&3?Gl?U8intyQ*x&?7-B=aNKA#;*Y)R_?l_A08EN)=>7+{U8DK$jB@bt^$ zm?qfCKZaR{Jlh8ojkKp1CXi+xOs-QWfBn~IC@)C-_Tc#-ahAfXIjU7cxiPhkh0{re6z52#6vU*>mz)zz7A`DrLBL5Uegox&AZ;MJ z%9(i~s2$_FY!uVr$sSVA$5FBGT7aDEk6#y{_a!+wTUx7v0y=1N5QurqWSXaB#GS9a zj$|9N%N^sqzUC712*P~-eQ`YT+VU-R`LU|t@nHtXeg|fpJH34)5`jcg-p7M9^As); zb1Ze$bKB%ImVKG5qt+^tAC);{(^Os77fQ`@LytWQpyOQpofk`K=i%_sR z{lGvkIEINPNxKkwuiv`Q7S>_}c%E-bVbpP~?aY*9CNXRQ^`_xw^0YFm^zPK+dBWs+7-cftXpO=cbI9{E0Kn-jHGf1jG zEUsbRhV=NNp{JbhYO-7WzO<<)o*Aq$b*N*_x`)Hr4IDEvmo$>pZLl``{Xc_zVKT?gr$8IHGS3ECgXAl}#Nqlh(n- z&)SYWldpF<*$wl_?_Fo$!%nPZC!iV)wbV$TZf7QmsW1p~_I`xu^ie@!)wXAD_*KO; z-VMbA%ny#ZoqM&heB%hL|8Ri)+_mz1lU)7+!keV|TPXZDP5f9Jaf6?Eq2d)K?cQbr zy;Z}NO2?t3q%}7<$5lN>Gsor)5gqB%zmEio5l3KxsC-AJ?r{A!Y!V(Zd3Z*NJxJ}e z-NWh<+}zJwLgh(i1p7x5#nZelmpGy?3b5gb4$aa*Qac!vq%36Ep3FHGQy&$XL?Por zSJZazOUj`bZ@)~NDA~JyNX-ugd9ti}SBSqLSwhW6qCt3??k|Vch`Y#mD1e_Pq8&ZX zOmrTo-0^Jx_-$;CcJ?dBL=Ifr%Y!(0=Hta<30$V8MjOP``Gm&?2G!<(W*7*7LE#@N z2jWfTT;ud<_^&oigUHzD*KpH0EjTr{sd~$R)Dl4`>R^Z$Q3vHjg%OyltdS%u^qH;7 z6{|YIP#CF_WJeFqABI!4TA#%nMO*-e`n|)rk|(ynlNqeu-AWK*0q_99U@9~7pq=}U z71o~2Tg)3znCpUfLd>iSg(1i1ov$F^7ocH`!nT+L*JU z;EG;qpJ{!R@?iPEWcfax2<@m+e@5-8juT3M{5#FF`MBEFB79-kxcaKGugv7j@bY`V z9b+HS^VH(IF-Yc|GrEAskQ6x$^5$h}M~9Z2bi$AMW=F=!(bZD({^7ps5o09I1Hwt1 z;R(qzR3=##>f%yRE2t_OYNTm_ZRV9jldY6n^{=V1k@L&uTYFiJk%$Gxo0l5rsW{HB z*V_RD(OvYVb!s(H`k&0wv)k4HlFMm#wKO6iNtZ-ps2r^&N54vDa#g)QdJPoQvYd1X zpt?doJm2hr--HiNPs8BMh%y z$4Bk}8}SL!8Jp7qyIK?WmCU>ipBOv0hxP{U-7k+@c(3f7U0)yu5%&WZDuwDCQCdIS z!R=;)ieJ^$bWFnvejt8y`^-Ie7=WoIboCCgCz>J9ilQ7guY-m(5fX{G#Gf;LHOfv7 zC$Jm6n+oHby<0XfZ}rJ55gyhAfz;wQd?*qGA~{KNPjn{@wtromQ5e zUW#258&W+66raUZau(prRQ=n`Oh8^}OiA@6bOC^IpU+E~n~P%g*~jq2jA|AF5iX~B z_8(shlI&xUg$t?-yE8rA6`&>dwULQQF52u3ARk%DsthBEfFyiBAp_b8lXkD<@ikTN z#i&8bsnS`9wt$zwGy@81?Tw3}Le@3}1yt(g)nw--eTy*$O< zpuMypAi*e}jwZ!D*M8?N{e4Qs5aiCwtdwDP0fg#_uy9C?{25#se@GasKow?%tNto( zy`a#O;_wNRWN<$Ed~^KHh}qifMQ#PO$x6p9{h7~_++~hFePSzCUscc{HatDl(w?Dz zVZGZUS|+&8N^2~ob1`xw>vJl+?Y?NM*S=z65L~Gx1$2EA#}K_#VwG^X3bZP;JG463 zXSzcLE3`~$4QCb{_-n8+Jm|$BvH?zlR-E(*VWXX?rbzyj?o*)E^nPp9o`)xNv8~t7 za`#p;A@%(lO_M6b8c!Uc+mqL6o$!TU5Z)@Mmn&%Z>_y=N z3_+{QC}Q4md}lXmxe=g+y>-%dUCytPc7I-&X;}u`vIb!Nwv#`J@3GS2XHuK1nBMLG zL6`WE+D6+Lkuw+nm>Nb*p`^8pt}9T;M2&i@)8zV(2`blXZu>WH0>1s1m;8S$fc$rO z{5LYykJP*07eM}FW&W-QdieiDS8AkhbftrfO0PD&jM5L9Z4id2yVTyRW-t`HTZ_Nj zaZa?799yUNMpyRdYb}LWWyt}b2y5;&YMO;$ePq6%aphFqStgM_KXld`X2+pd_hz|nu<*g;OQ+X4Ktvr;sXw(B>fXmMyt{LMJq|F z7T{`@BKuCyZm*uV_ebWaQ8?W;=t19PYYY|`g(B}U&jqQUJ;Fiwd@Aw<@xZbVbuvhS zvZVhs=J!CJIbf@syb+=OFN8ZWatIV8#G;IdlkLmUsdtS?|z; z0|5#f%I8hTpq!SS7EdrDJ19bN`vaL#AYnudy0UJb3jp_q6Tax>a8zO~WSDhh?2cA_ z8sa?4uNtjKq@^sSpWR5Pyoh95dk{NhBCXT?{fd zq<#^PP|vrEyw&kSdI1DmbgFz#cAWWVm?3EWzN_zvY_9Kxp$_VmGCn7K z%a$ok-Yzc;532ASCWUBGx<5-CEp%BuvQw+X3HBb5?-iVsR2b`+Ndn5p(!Br=3tt56 z^zh{4yzyaMp06*=;s+e7+`*oWmm9%PsW@M)@f+U?FhiKvCip^AfH~BhAwFUBC|7IY zfPoHloqSTz7biqkC^iP}zn7zw6gN_FMSKGNA%REm%JrMxC9goK_R?A3) zl_`+{>B_earvbEJ$J1IfZxU3&b-h3_Um(K1^Y~+_YMaUVVk%Bs7%fc-U z`i!v8FHE*A4Q0rng|%s6v_iQ@N90e%RlwO@rSRWQ9#JdeVkiQcOsOpq66Cr_Ct3>V z;?1u~Yb}+kXED;Ggt2_Co)!`lS(GcZI$S;MJZ>JDn#9Y`)Vezjb&lXj=CN9l3zoAQ zcpDRnD#>NkX=@7*>f=>a>C{RQFkg5NiOR?Z%~T=VhH<@(OV`l0BUU@$4dcuD(sx*V zxijBouvBFmD@C;_(7x=K~PnrJo0R-?x^_h*>pa!9M6OMV{!hjpLqo!r+ zmBF!sp*@vs<>QH@fvW4w%*C5`vuYIOm1;3?RHdaV^pz7UJ3qseV*23-4iN+uq>1$< zgdr-9iL1!HAIuj=AO(+&OCQ>lY?zGGTtx3yTS&pVYDYwi!PXs0aP5bbEKK9}Z!VFf zGmF212aCbL*}p0*q|NWL8=l8aj01)>8JEF_BfG)_1ov-U)!{mlyv?peWCI3!aM7(T zY!4i+=yM09kDuchY)lxYknGyDC*$ZVfD_qgYvc86;06!D`y^He-zP>Awx%E$em))l z;p>CFT5&nbjhY%0nO1>k591~qA;S2mn5drV#}$QUq#KO&x>?v#KfMxeMdjdtLpfp# z88)H0YT6Ev6lz_d2T4?DHy5jF?T>JS9WwzEXtz6<3s4Fb3D$bJY-^VJ&4H72r>2x~ zDm~mfU%SMN#dV8>mnhTvj8Y=La(AlFTXVS?NjC{bsC-Hs2b~*=09b$<`aA(^gr65e znUD?yMNZz8vLWzmjY*Y9)@kfL7Kio4uz2~btWkKvG{biw<4%%XcZImKUhHeVhK zjUll|++e)Y4Oo^siHh2|dzxFoK=j>B#D6!_E*qN^rJi$aIKD1||7n@_avih*?05jD zkE6=c?D`8+y3e8rMKGT!KZpo*{-No@g?3A^sdAXQsRiSb{S6Cye`RS42lK@MEl%;{ ztOdGJwJ4G)V=ZlRXVi*GWhi&Bo9+j1BdxK1Mg%uxDS<&I<~^twJks++BJ$(ndnD@~ z>c})&lj?-n&dB^3H|h`F@$SorRsOBw*vw{TXlfU%-n2$F5KnsXfxSk`wy@Zh!CEj| z*#@cUtxuKwz*uWG+@HYZOFd&6Y-sJ%hhdtHHiv_DIC_f*Cis;`q^4e)!Vgfcy!4c( z^^0M~>K$}(z{)LKc8+L~S|ot-Alxq%duI~?WnGz5$KEr1Ba}Vuf+h>6+9R&pQa3fb z>N#61_dRarCn481^*vIP6O^@x3Klgla`Li%&67T=y?6w|z{ER}tj{xtt_UI}!oeZ+ zglNH&MC4zf@gy-bro(UVde=)wFU;w%2=Km?70DS3wmsBgxH_!Ay?_I>wmL_Dl+cwK z2AhZjF<1Gcp&GMtjAxp83$sVX(UpPVLYk6sJ2$r0bHroa-FNjmv;5mQ>`CJX#z8kW}rz1>dg%rv+YbjCCUyOAUt9I)Px7Ef=K zti0H~8k2R3^I^~5)AURzb*krl=bvF6*1c~k-HOYStBw8UcQ*ShxICq+AEJhr zsOx1SeRsB<29rjlgl4Pl~mibpnRU=3E5-YIPJ)q_ZE-cHZqXRdFSw!0=I!|ER!=$P< zD;+PYZWpiNU=i*Bw-#FdiM{|zA|Vyv6eO~^iMqo!-|NZDFr;sTTj|u75BDH}#4p&y zB%F?t!LtFC?xX!$1k{kKm?W6a5lCG)|PM-^#7jmCGy*RK~x$=8nhgP*KGCPEk zoZ!r7-v^|4t>SN|t;YxNxMfi%>G@z=A^@GGe_ILAz4K-_f0YRhr2zoiC;O5+ggg;z z-SS}l6^`;7uf}fh`|Z;2+$n5iTVe|=2(S5{LF#dxeYvO3o6u#!a@6gW^#YvA6aqK{ z7SMA4oL41qXY=6rRtTt!`m0Kae=JSx7nTyj%%j`WA4p1eg8T3t#PkatLY&iIMIIOMY^O zg_SN8*eQH?y^mz9#rizOfs#k zshF}t@dbs4`)(9eP~1Q1Dz)e@)j*i4gOfh@WV^W-_3{Kk;~IQjXE#C$E)t!dWlrQR z$0%khuqoFnN=Rtb&~zeTsd}H2+(& zUoAM_Pw2&#+22QJWPC{g8{Istn2QJi!l$qRWFtH|=0guF5R?rc0O@yTQhyYGe`R2X zYBxw6`(Z;AXW!Uf!%P~=EDp_?9!w`v35O@MfFh9ITy-Wmuv1Zv)5|o|C z?Ql02n1S$N3Jl|#ARLB?dv`tIUTVM}y0-f4GunKRA;g*pDHisGO5ow=NTz&zzA5EC z*X{4#Cb`ami)2#_?^;^FIJuy~f*re|chT;BSnmnfbq{d&gi) zldfB|wr$(CZM(K@+qP@ltZi3q+qP}nw(suueCOPV6Wx9P^cy$&=UVHDSZig@k(o2+ z7<1@nl3)ifU~GoE^8v)+IrZAtjVP^*nkdeiOKlPwV`j00`akFg8MXnjH#M?^tyJ9f zGw*1JwGJC87<|7aT*uE>4qgUIJ)V3zR@4+4;?mPl)|z=7FkaDi5V4v0v``JI*%S}+ zbU6>ttNy+3SGTD)7?Ex~Z+`tBCXd^K7`f#aJ}UqJ!pEOS!M_n7|19tDFG%Fd@uL=B zTZhQwNBD9-gh0`HQmg{FlcrfpA#pf&w1~CDbgwML^JDa$*w0KS(~0?cahyhcYKIuE zbmgo z>bP}hVF9sN((5E5f>j?jV=c_-;jEL42ayA|S^In1yTg>YLM+>u@Sx&NA0{SH1-Z&Q zgiHff-6@Ex+7#4oQ=3neLDKC%w?3bd4`GIR7mg{%gFpznJrX zBN+Y>>y`gQ=lNq`{_4V8SzgAn_lt6WsCu;UhvOQn!%bj2xn6%m5CyiI{60I!Koe4T$067$kMR= zTvAiNxm*YnSmp)l07^(*ZYdRGN|8BdtiyF?8MI8Sw4!*r5Fp|?3Iq1eEDJU6UQ zaWg6j%qB>Jk1Z^(e&i2N!k1LNA5`%_V!0r%?saQ1a@nK$Z<&YiyCRs&2kiaKQ9kB| zt6aH4E&BjK4Xd{GRS{aE;(6C(ROZDHgA!m)H~Q}P0!JD3{2AnG!qWMux9z*a0T(8( zkVgn3ToMGTTKQZi=JdIn?3Ih_`+wDZw#qGP}8f5uUe4Y+X4{kZclSYqH_>U94zJRYkYzu4@|``Lh-wJX8R= zKaWvMx$K9hH@&tj>9rN;V!CM;Gdg#I)k^vw_pSc%mg5iD4!^d>jTH+;ha@`%nmLA~ z#pol*#GKsRy`8JI%NMg3R>w~sVP0TV;8^5fx&<#_K{Fd6#oX*!lmy?)I?4?N@DJzMUOq$Er98PQxIpuNeHMjY!5POykK6rkIQG0 zm_8vMAr z!saABZQ?nI!HTX!f5m|1PEUg=4fPwq4wAZ7{|zEOq;h$x)zc6NyO zmrDQUj%og|kE2Nbd89Y8<2gPXY$##Z9{UXFk491|VNuWxpgFXTmJ#!d1g4e>A#x=p zOz_dzJrn~oZbfX*WN^M1yWxSQ|9DwyUXU+QMT4nd((TMxt^vEDs5eo9y^3fibU!ZY z7Z#tR`W@$h44+*iU2MjI(*h@Yzf3+Q52ywgg1YM4#&h9I%qzmiHJB)hGx3y%xkbSZ zpeYJkgl$3PKcd{U(b`Arvjf8 zs?bYREmy|rr$k*=JA}5s59vTT$K{~V@&s_4ka$82*HHAntDD5jPlOKdz^ca3M%!+6 zkLj@cIw4>y5t7Su`e!LFFBddLK;$Blab5mHpMxIUh&wlT^SNhBI~$g}lorM(V||do zEZXH;g0<{-!@iRiGohA*15{r~(}%}{P|Y{ooZ3EVHrA#@A>o_nXZ?%0rj~LK^CUT5 zE4CN<2nGDSTT;}=rul7tWpeIr5AOzkmGc8*22G^(CkFU$ zur&zz0@rf?vJlnElD%LWLRTX9pfUn67GAm&t-y%(H%nK%CUa56qHWGWEHn}{mei^i zrS?;CbRKIvt$zGcEnyKAz-u`7e8vl36DdnJ7??)4Fk-$)0y&}Ng!r&qj&hfwaz zWK5#6S^4_1amy6BbYyHudsg6_UNa${oHZ4;<}=OM38zkSJ!n*IT-fMg1Xm!9;)q__ zTyNat*7@O$A&H-dnm<DQ5o=x<%({%gv;zYL>)Bf|dK z4BGb3OV!Tt0)ONS!IvK>E#)*s{@SBChF|%@*+x^?%nuG16Dsq@nNQwjiJv`7G(Jb3 z9`TH3aGqtEVs4-@x;*Y$+(yqOJk*Pl`=v<%C~Y2dkpRqd?KEi_AU4cEAlrbRlo(Wc zU`Ak%5)a=*sHwY_5t)_@$hZ?%QsK`FVzDyXxg9R8XF#nzfK_8a_IiI9UlCjmE438y zs)^JR*(dylvLQ#VBGc>#P7q7WQ*AU!qeoZ;UXV6^v8rCr_pQ`V$twH?cG$UXZ4kd= zUa85hTQB7xU44+*w8~l27a17rX~8AI@UwsS{o{hD2UM=*99q^MtQke!U?#+8r`<(; z?c4zSvhWmI!peW&LV-7h_5JPgFRXmnN+n=Lh%DyE>R-v9fBV8Jg1LUj*o9b;58#4^gX56EFFar)T^}o=(wV`AF1EJU6?$ zOVrQ9RHcvVD=AM%-L=)Jf}YW@o(#1=MNWDP0IyqsFjdSvg#E!q3NS^E(^$)6lVoyD#Fp^uHk=N4FzrDHTeWV$_u7zg7r16iCF5;Z zwg-vR5^*5&Yr68dQi$cxvFX~J=Y(8=+r9H1g}p;I1_^qToX0YQb?4P=r@S_MINxY~ zHF8-;+pTLu%I6uga6eQl=0HF2jQjbhtlG~x7S}S!B^wVzd`vaJW2p^@Uv5IBOf15* zERb`dIxGgiq`4no(u?>5;;F5RpG98fcQA=Z(}J#11Di=Id@mb-a=R1%g!CpolG{c! zc+ml!S`(7JMJP2M#7b1CWR`~`aygJCIQSUrln>w&Fuh*Tn-9LlM$P6V4ssKd11rCW z6sHZiFfEJt?uE{H^SAga2TOuJzMmn#;PF@JlJjuT6>!bD{;rZoV zupnArp%I3`%e=y_D-@b3_W2*z4))En#6P%U@PEq<`>&m4{~A^Q#uev}=CJ=9A@zU8 z=C5w(yp^P4e$vBt+)^EgCX3`qD#Jx7Sku17s#qr#o#g%w07}p+ul{9SgH`@z+rt{e z-$Z%#P5az#xM83$o1O!9f>Ru zCrm600sC&1!u~5-l9{5xs<-&!`QRN`)LoQA%F0xMRr?JF2g6;m=580ie@)c{s3-F$ zf`VCGo;uX~sPWpUz_~u2j-T(|M4R!o*)jnA(9?F$}EoPO9i3zj|E~BI&%krSn!Gh`;pyij8NaT+VV_L1u;GV$sT)m#ooFN^L{@Vj; zCaXQRlw}Pioo9NxzK)zio`o@Xt0eAJ-8GOpo~y$`9x$F(#bb4iyUk1vq=p&95_w2( z#GTLk@&j?Qootl#$6r*_LJYK;6Y2Mi%@eLH?zJtbQVah~_=~m+miW8~0-FOEtqa50 zvK}fo=eP?>4$`A`I~aoYMP9QDLD}0*d0UoiIz5jujW_fj9QSqY{73>1)a16>LJDeL zfcHSSv#Q}0bTK|owIVW>Gq)JQlKPf0jTS%p5SdX2*|aFAli^IuExADb6(lp$d&Xx% z&J<17Uc#R+K+)UUjp^S;rd2TMa@64vdJA8VRp#j9hYxP&`#zThnI}Yl0K|83`Sfs3 zJ4ouALvN0L)W{*r21q4+zprF|&QTB{qVG=8FhBLcBpVC-&$->ZwUIRLYdLxTTY0L{ ze~W7R{{fkQ_{Nwy3o51EPuUUcg;3BpY8&sSzkE9rcm?C-OOZWmZ+sp8Htlu zJIqgXqD0&(rVont!LZU~{4DiMNR&O4h@UjMnpJ?170Ugoq8Sk71hYa0mBecI;|B}} z^|U@{E%!3h_^U13qwDGFC7bKo`OeKO1hqeg7mPMFzEUP-#vJ4tERJ~nqTHG9-Gvyt zcq0(=Y6ZbQ`zpGUrb&QEt_;Qef*}J!>q??3M0s|H&PXF+U9 zqMVDZVi$z!MK6tyv6kdTb!j%bYn05CJD^Y%C(MSD=W~{KXRs3XBw9>jS^TJ?i4Nt1R zPx6Zatni-Y#&CJzcJqVQ^0-Iar7~p11_D4?NDh%h?H=+-^1UQN4Ohr4&k)UZwAWUI~sK+0wN&RatMX%h8iZ0DCjpxq* zCZp85zIiq0(xuH#S)G5ogfxMlSjAK{Hrw8U>NSTaw#Vj&mIM4H=$3cc8fTC67{27-)HlaGW5 ziqv^^pF_;f^Eb`cpC_-;T251rt7bAFG~4Ad+GUt(=D~Qq+xV6=Y^@fd+27%%@V~R< z#b2T7>K#uObwf@91q&HSjkfSt&XrBfPUuOkF`Q84IZh1PEm&f7|MUlHig1eT#Rwi-B-0Fq@>gdMp&!iK+8zMJm(Y7avYM!FDyy7VZ*_6-4qv(f;NmZ++hks#eUEUN&_e?QXqW7sbV&XI z1HendfzLe%lxIPbNs^gP%@a-9x-{vs7i>0k@|OY=M)2clWhZk%^6+~;!w!gkIdhx4 z*p?a3;>9Y|Bmr76g@|`u zL5+Cr=Ff7}8cYfqSl$MRv2B$v13giHMeQJvd8JC^D;4j;7!Kc2|Gs+0x2TutJkYhg zB0JYTYSStWl_X}hl917R@p~FuqI0I6Lfm)nn z?9>2JSt@19U|bqDGWIcAQ3q=(hj`aoSgnw2M>WiDq>0Wdv-YU;s0~0C8e<3(sY-ME2 zf;KM3c=2l28iwD#y$tXGYm}@Mu9k-wv@w?7o^>*`_RKUcywH%J563C$OQa^hyZu@P znTtox@&}LDw0K20Gk)r0NoB;{wr7dMNijqA($P;StVYt2xq{bT_8828Mi@ zl5?OQYX>}nUwmLDFLV!9BJv=9jP^)q=8C{<=ACUx9);+q($A~1zjuil9l~V@*MC0lgib_yUcn2Ot!`aFcehhqh^(uidt@8qH-xiCcZ~Wds*JwgYgy!mqgWdhnuC%tJa;}r$VdBi?d1O$yDg9@Fl=y!8w1E zkCZsENyw43IxcBZ!@09B5dw#D^X&J9>JXfZU=j=I3(XgPvna0Ltjx=WYWwU^tW~M! z4iL}1d-*l!aI|dX)GU}ot^Q4Jn$W@f;DSVVrs+PV%jgyk96jL1pe42o%iiMHpP$%K z$V;HOqw^9MK4UhMNcl54HH#a8U6viVi`{c{e@2xO5XPRPx)z{7cY>PNFz@}W)8yUI zk9{`gsnX8go^jX?C(4GD>=&H%8?I=j*ZOMznQRvMG5qq-`Y#2yve+59wMs`yv2qNp zkX6k3m~;#D=$kaIfaHH>f{0ft*hYf9bCc!1Al<{a>?v|7&FU zzgg-2joZLKTaIyc(6{@Oe9l^NHT)}|^L|tvQ#?0{f;rb*KeHjXqM)v$rtl`0%2V4F zE~EK1!;Y5x=1KA#4|PB5c96kjDmoL5K@P*%vl(I@1!|&qWlIH3YM;C>h=@6S@&<`4 zHv_&##x9BI)J9NGY>_e^>cCBrN1iRaogxBTkfRi(f~rqbqW>^1SO|UQ2?T?<8>t35 z%e}(k%Xdf@ad~^VKYRQ3^Yrf6uo$%)xdT)c6L?NYL~v-e2lbM`Pq=hbnn0Z)*I2{#828a8=eX`2 zLaGdsW<}ef_7$Be)>xG~6qkJ!(&kvK@5)0igFTZ9(Yxj`$>?E>K`^YA%wPFj$mR?J z>j?Jtufw1+lMt3GULJuZHM_a5ZeESa+C88r=1%QTn_B(`u^L3@B*%qv&k)2Hw%~4h zQ5DtMeVgCTqrKDIpN-OTY0?Iqh)H{Xjj zwT1tedSyYWK;-4Ch6MVzr?&rE4e2jp^4|c~|J%^xj~dcH*XjF!yhc@0oU=w}6x7T*RuLyfT z3QmL=vD@Z+*6!7=8*+gx^~wqFOt+<38cSQ_0L{~dY(b`tIv~hZ-hN*YH=D9nfTM=&#$H}QJ zn?@GN^O0=I{9f0$VNpr42&Rd7?mt8cD3#e$7>2d`R@{DxEOHYT%V9QKu6~zhrL;$L z{=0MW1n-Y6cWrbg|LMzx=MS3EUvIhptoPLa8=ZeL8UMxrmG~#hF<(vnjNSfcKrFs& zD{1xLmHu!9JM*^m#A>X*`jQMd&$8uFhsU2SIU9}g)=-mKczYUgn8%b6RSYH7u?!nG z7Z|fVJfG7YfI?TP=@4^BWM^@g_pgJ10_oACLm$+*yguN?uMYd(-^j9(Gd-Q{uwlW(&)d{! z5SQ0`O^x%`f5Pe3Hi>_8U#f47xMqG)OCI z-+s(>*r4Py*)Y=7+897~FinXW7o!^&g&F1F=Qt0lWG&f#l2@NZv}dlX+PdO}rk452 zrM{718NZJjwQ_&P!pzi|Pn}4=EbFz+Qjx9`<2WU>cMq0fADV(@$Eeq2!$eFkF~@uT zJaf6VXP^Xlco<~9EF^2E7C??q@dSf_b8td_#@ecX2n~&z9nJw-x27iReA|YT_!f&n?^o9p!WKHXHd`li6S z?)6TzzQ1?k@p->bD8Ed64%p&7**-q{JY9FOI_mOvEN}2Ft@;q)U2H(`x!qr^7CpE& zKKfQ|T`UbW-~hT_tXD=>W4t=eV3GC17o~<2d9Pu{j1@G_r*f})cf4QpcVBmZw5oCq z(z)oq+g%amG}4|wf#`Iuc~aHRSk(V^oEaZbH_gz>Fa;747Bm=^Fd?O)O1L#B!~DFy z@4k-4*aA9Q;aMea^LaISMTyoe1gV|6mF1j>jT}hnrKXTg(0QpGC1#WA^BQ7C=~()> z{Q4)WzV8Q5hj@=VXCtx84Og$X?Py@FuP8HJwseh~OZL$U4zFEXRa}@T`3(duHPVx2 z^>5c4t{rbg@VoBQ^KLw$(`)OSzU{tVRj+L5eue9DLQGEImZDb`>iWI(I61{VB{(^S zI^v)`&B?gvJhW{=+TE+$YhQOy(I#CU0Y0u7t^*8}U!Im&rhU9`-~zkYc6ZL*65%FR zOrBHtg_5C;U{f1L1Mi@};i0NAESoruAeLavXfPSN1A^ZG#NrUDelb~8+AJ3MM{8_Z0kv>fNzI|oL*`X%s-=k zMQ*6i&cq6xz73BI41-I%>dpVq`%QQ=?rX6Ld=`)%wklO5M}f!HZjZqY_;y8Mh*nV??=M_h7vu zj<3ooFoN#q&4H~{q_y3dWzGgBR_PiLEzMF*ZY!Rh<I3OF;E4I8l|UR*wL7bBn$7|}a1=pi*G*A| z!aQ51l|eX}Uo%#|VlZ)ZZyX>c%g+=f>HQ1yhbumLf zZ$I8s@>fH=HacyudvDJ7A9XE`>tqsESkLHqm;jfCu#BK)9X0eDc_p+;^?tA5YxqgSLB^u6N`unpUcRiDsx5>!O%4c!QUeLVi$xP!Y z2GOIDE@`;e?EdcL3y*|^X-%v5s%nW#Ovuf}gBP2bHl7(BaPzS+%I0i`a9~$_Tf-I{ z;3pK72A!VX+TXna^t0Z2@%{W&+wttk22l%__b6 zW4|GtN|tJhx+@|gA~{ZhwB4!BLKuYzDp}n4d8`QQN3F2gLKJ*a8 zawdoOELdfEcJ-0UPWHQg;&op%m}x9`gX-ri4+6IWcO3Ur8wbQ-sr8&!% zL(aV)ltC~sYO09P2T&S^g*l13hB^1L1|#1dNH;THGT-TdatvXPixtP zIj=OB**Gw>8v9RwbJyK&573;2#p_L&w@26yPqfc>*w6OR&y7Lf&&W?gz|+m$P6|Rt z$j=R?&kdHTWND^(c^Mc@b}Th-AuJWu2lKT9!|#mP0Jb3NGEwws9)=wN9JmT#-}{2q zmB?V-g7R_S`hjrXrUs#3$HX8=r${(fyInm4w!o5GpCteop&zk7X5wV|rDjtv$Ib$z89A!aJ=rskU(bP_=4 zYgd}3LUDn{!X%1OTQ51WZ_3i|F0-RQ%wmPYY~s@a6zg~VRfOZ!KJEdMlcn3y75}J< z*K&ItM}heI15DwzS|bH6FfQC7wzO1bajVb2Yyk>3iDmwDHPa0yhE&~%T}>0op9V9X z+)S4O{@3`(Pcvhc6=93822zcvd*(Qcf{ZYgn(#DnmeQE8g}U%mahaJ;;ZpT=se*LH z=B`1-+HF%P1wQb~oa;+cvXq>L^SiNUky7hxkdlvfmaX=AM_ivNMcn6u@utu9pLU-K z>9(JNji^-fZT;w8x5+a53DjXHDJuiqoY#CHMmxTDC4HX-6uAm=G;d32w)0|Ci+2ny z2k(Ryalu43s%nMt+6MY$wJmXJ5@&Wlne8|&g~r#<`mCTc%dBn5)Ku^d@UmmVubU31 zTb10$Q5w{&v`^wXEX)(q4`3>?eO@@m2M=hdUQ!0iT;c=piA7ynwi(%XYLb+bHD}0`0`PO#90MZDC5(P}KZh+xj?|QZ0 zuQGj_2H{Xg`FbO80K(*O9-AX*cy}j@pXQY7@wy_kk9Qxx9{uIRz74jDRF*1HyE%%) zUGTCUgl84Ob!8x@aW;a)ZS=C8`1M+iAqBPd>*+Kf_I)reVD_;}Bk(Kp9Nyio&V$MI zKR($!4)uK5?(lKzf&;uk7C@cZ(f;~*mv_B9?{>O;+*@D~B+*w~-Hb_OZtT-=I6hTP zdi`Nr@n2t&aTE&6w}fgR^ht|yeH=fUbrYDW)aR{vfSs+ta;%+^6X;kGEr;K{dI?@d zonn#F%vti2ElXCt++@l+7E`%=&lcdJF~puP5fpFx=f+ZpTO{4YS_Iz?)D+ujDIe`S zf{wT2qo-y`RB*@h$49S6oA)^z_KTs1ZI|X9B&MS#3DH*vsCAv~PIj#Ro{DV~`<~+CAMUmtcOHgx z5^VNhMoJ~*oe_jWy?GShm;s)1W`E|8^mv71y(kbwKVIsik9Arkud}z~J&hRv$2??6 zXnfOReG=;Y(9!X|jJaZ3u!*XHo*J3PF0eL2A>vK;0MG5CZD(Ej4Zss5z=qWA935}l znY4Lzi~4B;6K(^FGWUp~b{BEcw>gm8CFO-R=x>1!d56T1lZ^{_XCeA(+P*`4UN3R~ zF*0ZKo(~=S3=rYBl@~JDrTQbCY~Ugi%2u5+Fy_t$l+tMjHgw0-3kwhOx4)18UoWcO zHgp8Rk!eC^-X#aW*sI9=(1@Motb{cD|L-8t*HpZfxSV%^Badb^BnR9BheiHJ!fph^D1G} z=qRI_k{yOck1KB7Jl5+ZerYj4$ej3Z6Y^KWfjolf+%i@>wqEbXQCZfbyxhTl_YDrY zCvS6(yBw)5$qeTvT7ZL8NuG|8rlG;FWGn+6l~*zM_NSkNzlLdPpZ(Kq? zOFGl%X7rqn`__-`-2jMgiF9m|RaUcA`B%v0Y3a6npj@eNcaP$%*08=%Y#bkQ0~ z0|VnK;EIenK0ne#*>L2QEPXl*^|%x1iL=nq9WF)xt1z(%??uw+KG=kW+09K7^Um_i6O0F$)(B^axCL5w)yNCvq4)Z^@Oe6vcApz3l`k-c#7m~ zjM6N?!Ef_p!KJzwtFq(y9P5`9zKUJzt~ILNreKqTO1ahK-|8rVL3Z(QTl8us$0d$g zNwve6&Vst)p_Kxow4_dh={z`ZlzbNKureiLe%zq3kE^p)kDaf#Dv;E;HADg z!_MY4w2-)chwNK2U=GMElcAC-dpgKjz$Ep`a^_V6KMIn*!v?7r*s$p>VQ391PqaVQ zCe6gvLe4x;SN#DoPhWp$x*_1e$bs~09eP{Brte;= z4sOshsD0hYFrQ?88&}IpdSdK{jO-Na3m%20A(i7reH-;SZ&QQ)=Y;5+tY%ST58wGR zup2g2f6wzK1t=cVlA3WBe?c5lXp$GG=p8wzI@L1nlZws(R(;krZItG`-V76>tzOyq z0G2AT-*(B7k+C`fKo8N9(6#n>0d7^%YPN!!Y0@#6_TXqLy@)pCDRa~}(Vz^9- z%|=5oIJ%lyhWHzG)(RUcfC*q&be&<+!QI=rcpeXrjyIHvMqgd4sD?vPLM%qhf@ZKWF=g|}RJ7C(R+NZKT!pSAzwPZLYKOwU6ShF1yVep| zP>}%MYt#wL#5VvK(>kfc!4|TjdXDM~WUCdj=!KXd2p6)r%!B_%VJBz)kUjosd5f`i zbrf+2NuUR}^#&1W1YW@CqwAU0W>j;lDv=PE@m2Seh~q36FuwQW@?*TCZ=g;PBJyB3miC0PfUG7NY*K5Bwd^b(<#l%5Ah)6RjrW z#|d8@UdJ1OM%R>Jpx&_jt3-|do@?!CU-aAo{3G{g(93W^6lSumpW2E8H1G+4^3xVH zZ3d%|#=1>N>#0j4`*6Gy`xyX_KY{-@;pw~tSxF#PHe?~#dK{s03T*0IdD9s-Xb7*Z zbT87ER9A^$t$;Kh8V8|lK>4A>Jv<$6s7&6_1M=Di`@>c~sG%nWCu^CG{N@^cECVN< z7Y#LZ|7=`*-ntF*ppm0#bXlzO+C27C;~(30=es~0aEiBbHx~0Bh*vy{@U++JLPNI6uPg!4{*d$SDOD2w*5ttTz2Yh6zwO(>e8= z3Xfry>Yy%~2MZl9;KCC$&UsF>b`=<6Vj`iF06NL44sBD50{!Jvu0sz_?+_4><{kpr zI;b5%7dtw40f>?$$78!ioN9J9l@}w|;g;31m1h`qA)9BdrjNhr_XOi+jOY|rejhxX zpe><6A?O}5u>L-JlQxNLlyw~Op#@P6u;kk+h1P(~(haRSnGtHMHQ&*6v4-Z+K^)rP zDmJW{$ozGR7cZ`WQl0MJ{VuoIEhnEoD<`ZJ!7IPslpygt{XVHcA0Q3JLz~r%Cfki< zFR?jIsSj1xX1g_8*mAWVU2u~K&2&+r^U_bJ6&iV=PQU!&2F`J4gRPQIb$n7O;gCe) zl1^G*H-9A4tQWb-Rn+c7hncQn zN;?Dc)dC7ID99GNK=PNTFY8vI>m%C*5B;SZiyI8z($hzDOqBUscjmpMCftS6D%<6S z=!Unh_v6+i%G%|c`&CZBQ9GCKhmSi)p61ddy{Jf->1{)}>a@$x&{g}R11T(wQcPfY zaTT*3IlfWdu7@^II7+j zYq))tW@LeH*+#t^lb;|4P;0PptDx>Q!Dx-Zu;I&Cg*R($d~AE_jG7`;B?;J*XNv?w zO`@7M%27{*(+<&9S@FcYsCd$FUCr_RX$JIk-Y#TLbrUM~mFgl??0K1#&NJWJnF7fZ zDag%hsB5jhqe%H65gK#hED7-t&NXn@MW=oPv0C2nBk$wuXC)`=hW4k%0tl;QnKx(> z5l4@P0P^dJ@msJ2;A@d%LiKCm(KZ9ndhD?M4z05Ofhh@c5`L)KCYu>{FjuQejttWH zi_Ke%3{mXfBl*(Ir*O1+^Icf9D#H|)>d`{A^ZP5LBFQ!g_xl91nBPx%RqSb?G2TM_ zb@H)p$OA=Qv$uHa!lMSmUXgN>b?yZ}B_G$=%-_R$B-57V2wc7uJ(53czP?nUPl z`TmecU?m9M#-lgQQ8r08N>lbg@31hsMDc=8IV zxJ({odZ%KB;bzNCHt%7}``>EKZl_-}%Gwrppo-hnUJqsmL@o23D-Rw-*~gOK?}`02 zG3r97u)4xE=2{0F6i1k4;`BG3{j$$Bp|7i<8EM-Nw2|7>bmYx6gWXsrh|fFS7VMhp zu9k&;A_L8W81q74;+??) z|J)E~IMFP_9)?zk_ShN;7H=`*nbhe_oUIMb6jt#E=Q(L~%5Jyi$4{uFc}6fF!}bc_ z7>vBU%6P;Z;PT(c1XVZ0tME^)OD_tx)2h@!Tp^etge)cA#JUQcujb$|WtF}(x~lYA zdRSq6ThajUdjG&;Ei$7VR0NJ12CtVpmauq zffj-DxGRDOZ2Ao_$B;g;XUYL0@tt7!%*WQHaaQMo+pu|F=Mh6fL-1|zeiWkarskqM z9udPI%qEe+v_XF%`2$Q)VVaS&IfJj{YIwLk~BqdtIs)P_5^g|xV0&Rsi7tZ*lQ^Ww-lQgf4 z;`TRPI|CK{7Hn?CZ1?nvR;4e3^r*ckmb#`@v!W^ahy`}gaSj1=$=lr}SgUQ!=Gg__ zWyg|t^Xo~@xYiPO32l-FGMnkFJWtn~)jl^1?OuUphoww~0z$7t$YhkAwrv^Kvuk^r zl^VE8D?Z_hjxd)Ds+(iSwKyGX!$oL%`5^_+o75bUK>FwH#MuiFRa>_6r& zlTa{W`C>~_Qf!Rc5N&=Ou~^Ddemj3%G!TH8gv3Pw?>@H=;$~4qWTvBjSv;#LYZ$d{ zo`*Y-sE5E4qNkgc>!E)=E*@F*((613ygH@2+km6bNwI_VXKJxn_bU08dZ!#C#J?fN zskSsdWvAT?|A7U|SQ4VR0~;dps7Qo!Usy}z1^Fza5u&uLvyPP^IGa)?-4KI&-@fv$ z|EhOcyuRD6I{Bz`j`OzeTyir^@NjUy+MceFBv&g>l8`Rv?mL4v%_TBQvVaGbe+%#1 z{NA{G{{DX6*}8_#&fB|_XJ4GQ)?Rzon$dFOS($bIF^*gra7Fpn^uF_KUzT(=zdIO{ z5G76*hk>pF-6#oRw^(Byb+(#5y4>pM>+5#y@w)ZlI*76WDTdkZ%6*NiIe+uB-hsyu z1G)p#q0Wuq`lD3*F+*zr-wxW{I=cJ&))=_=?dStNj%{N$P&>}qhaUtBGtOFTgcJO7 zwnR&##czBX7_dEhI`d033P0l^yVXwh^F}uLzGwk;t44$e5PUBFq0-&v-zGqb+gm2w zmwRS*;Q~qLz#RqJKb%yN^{@hExiq0WNNp(>W8%39mFfywLi6(-nsUw3+@6me-Q%m_e1i#xq102refxIU>E$nyCVgP7nM zWkwDbQAw`vq9!v@BiubM7nd<1@Z>oCXtaV4!%vY>{8lrmsW?9(HIo^TS_+v^N)~*Lr%k32q@yI9<`Wug3*KiRtB0 zlZvh%4M}bLXfE>A_B0x6RY|}AgR&S9pU~y!Uls6(BLkLUv&r5TT`o%_bpheIOs5|b zQ-GlW^^F%UT_aVMT-@e<=@E4h8cLGFpc=|mgY=5>e&5F2ea`S#Z)?Au9h~j!#MVOc z<@z(U;(h}T!Xm6S9cWn{H`jt}X5GHFk>o68+ai=yg*7Kz zy*WxF8PIQfnED(nUYj!6EnJ|hUtKTh7<2FzOV1zlA~fEuTzNLVx-HO)aD2Tom2K5< z#qN_+KTr5H5WCQLiMr*Q5<@!Q6GQ6Rj=gg1_n`t<$^F~nTy`mTxn=p5I#Ib^^$-Hs zE^>3+8@KF`udPtAMD|36=6bL1LZEGVzj<-C^zoqsVEYm%kfkllR(sPM#&@o^XT32i zG@az83U;d+Bs>{1=CFx$X2(3Ij3wr)wegCBr2}&1n0SS!PNxC+%7_M)Me&4p9t#Hg zDi*h>%f+a*{>-jHc89?{c1NDsz2-Xa7MbOL_ewSv@}Q>OtF#`7JgGo9VJ7#;mpX$v zgL{9u@9%ndz%xowrk@n;Hxlm+jjw*In~RigE?7^`>c;i=MG-ErJ5!+Fj)UJN(ffD{ zYSHrewhQ#GI5+l0d5R|5QkZQr_+9V%0-YDShAHb%K;Tx9ej1tEws)>f>V+Xb`brKL z1`0)2>TpXiVu2blO`}aH_^au&x1`nVPg}P&T+cUVoDAc-wb^O)A&8g$K`T%>_Uw!- zL~9VM)Q_3OX*wO36`{uCraFUF(3Fd$XXvrt!N$9ftk;jgp9kLQ`lIn%hd;B_FCNnC ztk-){s)qec0i$Ss+DLV0+eytB<<>cM{#f`i$?@GPGAvtEI5Zm)8x}BdZ2HY8=wRKX z%W?nVT!5j&Tho3jK?;kf&opbD)?TtrUvweyp>{)7^3{?I=fH5TY#S-$JsGbDdx>kp zdF)5U{$!EkRUA$58J+AE;ABW7Z5SScYDlM1^CTRvZU`Hl+hP2sj=h_|^3k;^rcFIa zR&hGS_r6<(TBO8C$x&mo{k=eMb<7;!9jkzwqjRGJ7*mLX$;niJy?t67hi3r7gR4nj z*;N0e#B%vw!gGn%WflFDD)OSO-0Xs%ahsJ-g9VETy7&Pe-*LEkgUU{A|EsO>0vd{}xZ$`Ru z&LM!n_#vG*0Te|5Jdo^c3|kR z^q2GnhQ*a&v&kueZsCQ5H?SinI=iQYl*)5g>m+IV>Z`F;Py^XYm1;2=(ls{&qkv$9 zx!3SorAlz!lKSW7zfG-;77?W359m#Bns@LK4kHFgE)Zwc;iPgBmLe4c$rjJJ-YS{2QED4v&IzyeLemTeqau zI*QzuKoZ(iGdVR=3z-!$y=G+|o$Yl}wZ6tzNYBJzyb(hF%BrKS#2WC*i(kI5Hr}yY z3~ws5D`-O-&#cjnr_Tlrv9dA)BYzP(UGi-Qr2&+3G8re&^O2eGPs!`I7?}h^8$mP^ zxbQ(wz}K*3l74XlP6;QY;-WOGvng?$2^vs{kwq`xvMbx&hd_;xj+7l3Q>flXj-3ZJhFgAab+_{H9 z*%scsSZ{4?wARg#o6&Tzrgg3ipwo3(3b#PMY@s+vhe91t&=Z1#s*CJXC(F9*1Z_js zVnIm#iAgMHZc2os;(idl`3SY-zh>~rR# zLm#xH)gp4le;ez~WL;V8*!||IRrfT>fT^0>mogd{X3tkVKqz?aO@=-0L}epZ?N3bU z#_s;pWgsEYj06GjTw=y-3}Q~n9t#2~?V&$B8Wjbpw{K>z2blIc4bJw#rUrvj{6hAfzzTwNwafiNG&yCXy|^IS<+ra{?}UIeq%q!;l*w z9Qk1`Eb9k1A6Un+uYhsxa>XOkDtG*Jyj8vsFvB<4JLcyvDwGbci9YSORrDoi3*_5b znvQVZN10G+z&VI5`>kvzSX>v|*Zywf1{+Z*4YGE@dB~#pT+PH1_XP|voP}eH8~4g1 zwj$lAFKhPq(y_so+V`33uWRK3Ru;i&aE7Hz&o_~{xuauvGIN@XP%CnULl^`^4?cJE z5q{bT-y2qeP8#@iJ@`uZmfWf*t8oEq$x+uX+!;Ce5eq)A^v68A2tifPhHgU15Zd~I zS7vwSe4!|gP^w#@niKnRs@f9am@}2C*bWd0^7+?^BO>0&+-=urj33E>Q?J(TKJUT`|?I*eq@L3wW8if2r zE)R6@KdbGhU^$WCf1vqgys0scCKR&E{nipiZzTm*=n?isW2IIa@Oj&b|XW$QRrH{rBT%`>)>||NP_Li{0brFSdX1 zF{JVcsSDB;gc5YLCXvAz9ZLMQDX$;t*UKT?guZr|8rL7jzG9n!@JauD`9r0!T?;zu zo9o0a3$cm{#xDVFi3}S)geW1DhDMC)K)MVV4cDQS6$rkFUtvIQ`QgA~gF!JE@`0f( zB{imDNMy3g6{2*@qllN=Z=$5&h`$*VK^(W(S~D&VyiA8!u~9kD!csxG>z6O}axWN0mS{{$=HMXwC|L+kT>ySQ zA*h@6vhlP&wERv6k+TdIc%X;BeCD)gd$Qq-*tbjxMvFne2cYr3K+iRR&`ruo2U4${ znnS{6BrI)pi2LdA8Fs8;5UXTQ!_huZOZo`0F|e#Z3y0?8QQa)qDB(ELRu%oD%RS&Y(x3P#)vH*Jwr+&?zk(;vfnB51kOla=jp^!YIH zOR{9v$obNy=Xu`%)zfkl!>z$5bC`vo8ee2~f-_WQYQdX<(LAI=N0oFv^*m1ny~nh7 z(CK#4HzIQ9gScIa4P|~dAXA^>Q~>Er%_o=2U9-Jzw^M8MiWw@x{0VbRqpTXDj03x7 z{G1ZAS7ngE*n~@caxx_A0jxUA~ z@vLJA38f2eb(7u#>Cs9!QtD!z{z;Na%*&w{WXwRQRn9Cc?Fx)FHt=sIRU1|{+;%x? z)z(5|>{g#0>$KYqPH>guPdEc{vxZ;eR8kCcR$42Q5el$I+pfwUGe3*v2yI^E^G-3e zx82$zwQ5xff6=D0w*I(?EZHFVd4PF99Zu&@xZ0@Sno44^qII-rtm#J{<~aD6w^8(| zq$rgfD*+>~k855DsZZ?%nOK6|8mrW}A%cupn~h2rHDBBq$p|(YC*KQ^FECZ4 zd=M+Ef%504npn8}F~=wPn2jm~<3j3Mo!gu-^RG)dFj95V@#i8Pt&+BsGY3VW{k^D( zykPf1@Om)wLwVj;)}X#+rfvFliHKvCPp2e-7t6WupG8SHT+_*EF2ae)gb{*asj!*I zjlyqAGUWgGZ^?CrqYN{kUXfU)9o2h1mr-Y!mb62=_VDy?z02k~z7w&*SlfIv0_|60 zT(@kK(^yy3!zQ>}s3AfpLoLX*$oKz0kqB!t#>lO^$`VsUQ_r#F%@I}2MWbIccGEZq z5!PjjdFYX;qtaMfn2Wyx$LaKc-c$i73FVo?TiEL3? z^u+u{$dZZ3%K7sMcvrGqnNC!nW)hV%4ERbEQ+GQcA?l`G5AY;^YAk+`n>n?WV2C%* zb*RMSq?+7Y;qlcuOFsA=6G1+hlL+#`*C2wr*p@d=1do1OBH(Bd|2aF1Q!yT80ahbi}ELF~U+11heW?4CS7Wiaz$hWgd2ki71yD3-v0+vK8V}$(t2zux?RUglAly zVq^OhAR*WVn~CamGx2(I{j&icKs89X8;q#B913=Y@OrAKy5`ZGdEnfJsyn*)?y9O^ zePR8lDMx;l)rAS>eh-T)s>_*wh1IO3YcHkMRo42{tfiRhX#O=+qfz=gs|Z64{abEM zUr}E)xU|#{>Z0t16h?2&SpRnVqN}Tm^krJDgrsyzRSHyj9&J2IyoJJ8w2)!}?A**( z4zmgVy$iUWkv+pt_C~XtL25%zLq@g^zK3XxpVEDh10s2mrq{1ycJ@-0dL%cxRm|!L z2CF@jY-Fm3O^s>Q`i-tz^@zZwtF_(&Q!d@pO9cXf7M;G^w_g?GZ1Xk*vdK%8 zo`>?t`TcF9*FGet!^qI)e`kZj$lwBuWAVT;4?KS{a2T#njC~AtXSRrGtZfHk?n~I; zmcFLgP^ka~Hem)s1Itl{?;G`0%s#k6yjQ;#nZLf6P3dUg)?{cEvTw|$`_G?~TQMs- zszT;-%a+S|tHi#YYqi)wP0@VnvP5G0tORpN{xLZ_>$&uIw_WZS!iodP`#UcL0Os{L za!${4D;5@{h@h6TQSbI*exk(VFY8%_Iq##BN4ncpH zhQ$gVK@jqnEgpP#u2@CSmCLi0kY*8V)PZY;Sb!C;AQk{Sq%RtfQB&d|6grIxubxfn}DiHJg%`kR9F{T{Xm>NZu`*_3fcmH9S(h0Hf(a z&vPM;&_6|WH`(&kKYDHg8Hg%fkuQwnJb^fWDOp_dk9l{J+Vl>%4@d}@g+%Yq*6`1! zrQpQN_HmXhPF8(~N1qAD!y~h%k&tLP+bwN?VWCu99?0Ax_puP+Esq*s*W6IhIl+K{ zYG&^fNYj=#B+Hd<$vRs^?sl~!Doym=M1Mr`cauvCT?U(c5nHcQEES$+&gH zfXITHvVD2R^S6R`iQPIitAzgw$sqj8m*0E?46%}3Ky7C=%9!hH0Fpls1St$RDcz}rL=N0#Q2m3&Ps0zfrXg7 zs&_3?QgCJv6vY>mfDT&1N}le$dWP-UNX}*@;h;cFaV6;sPcK;?EWlj;Axm($ zeN%jHPrLns^%eXoxr*<`7vf&OR z#}E;axg~UR@*=O$v0BiM($v`0Q`Rh|%a~7nAP{d{ zS5V_W0;o;9cPb&fhr4h}%^^J-)>KM!Z+~A+pcSEUC;B$;40RB!lE> z)8w(ka%|SeHaTF7Qg93#k5Y~x@NR(>N73>6b;L_PEW$eARg@}5!HgH4BV^~s4Q~j zie&W(dVxn6hmWoXbZd&^QY@6dC&}8=A|3L4bfd>IJ05UdiPI6QYEgq3ir(X-)=P&6 zkqu)ar>gK|hI>wWMssq&;k#8}|7Bk%LuK2{9DGZ5J!+_L|S5;N#4Oo*De?0dZqKc&vJKG{mTz0Uj zn*NoCroTsC%THW4o?e#6~=lg{Kf(!Z?ei&3oZp#y= z9gK`QVQ?7S+DC_GyGtoj_4SEdYakf(UAHWpdAFRGh&jWJ74l`c7K;p;aw`tTi@w-( z>CoEGI+IbEf6RK9$*>rr83jj!Y?PA{F3WO=--&LVy&j{A(Rf^BdtxmTqYs>ASXz0G zDf5O`y6Llku^Ci5xmr54piqDhm zcdmrL&Nvgj>+_cDzh;n?h=#8NJx~;sjvwiVDbgO+hSf+?1?j4#DyE-CEUfu-8lqI0 zBtoP00tn1>TuwW%>@b%Sp7RBusfcO$&@CQv5R&=RjhvaCSd1r%P#i{VYmd1XX+91P zxc$7>%gf9R93?(R0BA(hiCdlteZme+hwW+{f7@>uwRuj>VSE4#gq`=ngr_@2G<^oh z^4Symh6m5GiA!sbBC~02q&h95^cOuHLt@7ZBuz;0fQdO8&)>b;Io{phf4zTvu=}@z zx)WrXjSmdchSPZK5F2cz!(s2TVFk`6cHk|HQX@oq`C;;fI&{S|qDto)lB#41#~nZs ztc%={eZsVbH(3GfrNqAJ@E+=1<9Zf&E;8Y8#c(uZ z(K4^*RS;~3!H}tI=t`(d!chF~^cd+qkC9V_eR)@!=14TE+)-WQILlMQ2*yJI+Q7aM z300S~K@WNE7&9x~8M=7{|5VRu(;+W(oj08c+7Jv2TC`S`WmmaZ|1A2Zt6#6*sHb0u zmc3tb2u-_V!4M7l4t<7Wz3S$Z>g_oNadKpRE4(_dQRC7vC631etaQvtg|^HTu%zff zF63+I#RCwyp=GVSzh+DThvK!?13OIo-=esgML`}4zmt_Q1)1pbn6(hRbucp?hNb_C z1HS=Y76u5JVUCIM+|jPdNd%y!MIr%71_S;}iYSic z*I1#qpFbNpSF>z-9Z0_dX_bCFmWCM?Kdn%?3bUqM38KHir;2SmynU=J@a%rlSb9bh?1vWYr&&lJ%VelJX>6<@n3GS_3LGGxK~A#q{DdUK3vSy3}0(BVDN| z%k?6Q%KQ-<7DEt!&6Lx$3(7k__d;7^KwA-}ti+TL%5j!8Q#|o~xp`+6bIHc^<1&qiouzbVvHCO$Fo!Nh2#5cnr z9y0@--RS!6rQ>nN9$iU_Np1CNHL%TU=#14>BUb^cK~Fu;+LHH9^vlf221Embavs-{jNA=*n24rl%(IPA zNgHQ?Z?2__(fcH=UUEpUCcoE^Z2pm*uXA7IA0#~v*?Y3CflR^#Jmo*qCPx&zd0VD6 zp5ccYiW%1g<_tVhLNfE4Gf1DQzj`JEYc)5M>ow*&cIe{M!R`2$8{uie&6_B5R<>NN zh`N7e#WwiJ6|9;f)dj^nlx^1}dE`rQF z-WxF;CR+(s{O{Of7iE@6nXm3m6xWt2@7NpClg@GpfpiO&P$U2YPe(QK0C2-&q+Q4+U<7n_Au=^Giw0| zzUE4^oqCk6tg_A0Iyb8xn3Hn1?_JJI$6x7^$AWThWOx>)eKF*uN>Bw$SXj6A?^XRD0Nrr(AYJK$hNf9T2T68r`0%Ve~wt zXT*J}GuDZ&$k1rVRQAHzn~G}D&T$bIE@1MQPOO8Q>XeO*bc?U6#Y*+i6*}^)9C#Vq zm@B6QQ(3LEI*o=r63XR9_33%J`%km*;^KraFW7zRYdA9(ee*pU$*(|0fg2V6nptOY zUuFa}#hY0>RsRgWChkVctZg$=eW(nMz!0F9!If%IYW$QVPRiozJfD|x3;>Q&1i(BN zNjAu!VcVlD0fuiL4av-vW*7Mg(UTA{BICQI@etNKFR!g7yPypu9U#VI!I%Uc34Sb{ zQeo%eV2f?(wQB$!fVh>kSJvCf$Fh~QSIrNzCk=`*bS@Q39k-TbHE$*B=uNqithu0O z@IbA^4E#*7120enje%lWrmkNCfoaFXpyQJPs*B80>gSMVHPZivH0$};FdwoXIA8<3 z79=X=^#>c^!He@|2Lf5086H}Zkzf*d>3{>uBm-T^$}%}IRWymUU!||wQ)YpF5q74j zTQbizW-5vV;W8p1L-ln&nyllg^)a4R6JDTaIDU!uDv49fIjrPF(HR`?z$)W#c?*ne zke>7~+=>8&`%v*O7MRM-m;^KCnKyG>sAIskQoy-q*HmT%FoIDPVK+0Plwr7 z>L#~?Iwt(J_Jerbip92s8W`8z6|Cp=wYCLZlX7a~MQLYx!EFLqt^u_dM0kj(UQI)l zQpm-o{LV9n2vaeE(qzcWEYb3hBP62c*fFhww=xDCco36N=_Wf;Ce9sJzI zBNw}+%2nXFp#W~*^+v7!G)evBf%N(*LsRXiw^MRAxpZAO6|iaDq+(OLsb^ewGe9Zq zrKKsu!njL8)Qk#UaY@^+Xvw^MYYqZ#oVX}f^0STDf*3T_P8aO8j91Jl0oM=(un1Nc zwN@vuP%yMEVMTp0?M{o^ymWkgL6we=m%>%1z{$|mfg|jEXx>OD>`2hyr@G$by^E^! zM11&>dp4GBH0h?s^a+iVE;PTy8V;&l{nHFa5cLeCbQFxTGzb2qbJ^+Toj?G0GO8)~ z+z1r?Vg$B2u*>j4Zh(6t+B`)gjFefHoR7!Da&v7hEAO?=jHoakt7rfYeS7#6)S4Pc~6`fZX^~?Bw(02o`^6RH8NIL;a2n$n%r#?4>#$FB&Txu zntP-+sYi^9VWWa7y}Lj$l&|f_4|OCQWs|3SZ?uq)(A#<<7HP zWTY*o;BOMSeo+yn8m%5ODg?=ts-nY;ILByr&tIm_CWYhWEFd#;tITh;1}j}kY$Y4h zc=~!xq7yI5yT?MrhMIUh#zn5i|Exw;i=7$*6E=NWr}(&w?K0~S9HwdbQqRp?RGK8n zvaQD>A{EZa$sM;8^v2XP7gXCRZ%X#?6q=w%wpLfRc2;T>@>Ax;Q`s*l99Ck@U2U1m z^j4R9k->rmD|efS6T_kti=TJ>#}bLL6@gv-Wc50y%Xmd`exoeH#?N-4BmJ0ebFImF zR^(#qQ7x}4lUcQ?*mb3n>L}!vFY;WK+OpBvyivseF9{hKx{S{72F2RHU+LoHS^>YA zX)h4)JG4?9PaV$KDg-i_k`}H0F2oO$&1;}`5k!x@<=asw$gD&dL_O0)mO$4urC{gx zcEL0(-1;!M(oq)&S08w6_OhBFspwTFH3HdShECHKiRm>fyvojycZns)Bc`^<)LE+v z3%)C1?a^}Pnek)fz*xxwrw@=}9B~`@Z`w(+CO}_}@30^f>ow{_EQLTk@~JW7zx~!j z*M$az*}FzEyQ?Lm3r`(-Z7pgs@RBx&#q9-fXZbp&0tos#h5}z>E14otSs4itpRx(z z_o!(Bez`Ga>%ZqN_I2$5W-w4YHS=wI^_NcG;mYabVyDf8@1^W!Glgr^g}@hXF~@Szfv9t2Tdn* zplyg_0B{j~5o?Dub`=|@cBrG(AVvc110Ir#M@#S-g5_)t$!g+O=Nz)4GJd&E*4|%g zu#3gVUi6SVoJW`PYbjA~MlGWCAr+^wxm6A>lAYzA))>W4Z+SKC!q5QUu5k#gX0oJf zxT|F`j>f#{7v21{E(-#rsFXa!HpWafC-Erj7ay+@hn_0Vm6rGo4wDT#Lx|MK68v>q z(qPVX9DsA2h9Q(@CK{C32sL-xhJT>yW}bkr`aW7^31-+LT?8g}RN)pV-m{N+F)1n7 z3?&ZEDdj=sX497CzI#Vxh`^DN23&WynQVOBnBpVDd5iuPvhTSNA*V24=Ev%=$W37) z%DIVN;w1HRy2vws^Zuj{;WJCz0`#sFsg_b;CG&S`wW*0YXb>3lDdfG6{DqfJ50wsj+NOXaK6KTxLVmHw({K)}25S434lzk8y8h0azDcuW}z7#@DNc zkrR-=QGC5$A%4c~FOXSe(uZ_Z#fbT7jyC3TLUi%NOtI&qqQB!%7K3#+T&MY{#4vZg z)cg%&>A@81For3S=X3;aCM;lGd_FrEbL3UrM`DcLYB%+$HX~!@0`<97HCH&ksqr-R zRBlCDRUG&UaP`UzvRp0~HLCok?OVg^S}j_&SLv$yRd_;~ji06CG|s}$jcjPx(NL^c z9mUUDosO(dVf(V^Z@Ir(f zJIK_iwV?hS=DBa(kOq7Ut>y@Ug@lw!u$A8?(8|p4Oo?M5b@q`{SAeS@nm^WPX(^UV zoh7BtjT^>w`6XGBww5++v(01)OPE*8fxC*+xq3Rv zvYG4oof$T(S&f?7Uo}hV%#i2{r7<<@KZT32twbl~^b(kQ_wHFXAg+P6{LH4YoThbo zT>;QdWH7CG^|%fNH=KgHoQR-;dkdxL5)OUumVVlIpyZ@pZ60iR6-e8EeA#pBK2 zhQN1rMf1gZn*7-8qeVszgiLDhkLWle+`KaGw3*7tCvOZ zV;1zY?)EXbUE#{zx|$K9{aHVU!?!KWWZ773A03w z;1RWLpP`{;r-`ejAb>bFAhHk|!6u%{O%1nE^#le^&T$_Bl8jdiqdz{Z_Le`ZaFP55 zByz5)RQTF8H%Ih$*8nWAx^74ucm@`4A4;(@t%S@yA+XY(SZ|yKiW!u+^-hf`=Mlc>^vIxozmMle zaqz48QSf+P)}$H|(gtxA(+=6(eI5hju_eVbahg#&fD}e8-~j^7O6~?TQ465L8a%

(Xm9bC-WHNT5@N3rYfW1*yD2OgtniZ_OeePYj3HlN_`OMH)I52 z%8c;~99#|5oWtErsnfGN;=92L+zDggz*|8vbmzooQ4ieMDosY4xY8a`=VM1u{m#_v z9}%2ldq<6~feZ^@=7R=QY9?;m-Fx+H_itB>r@O<-V>$N~gWjcRm&=+U<&jLE#4h|a z1aMp;D?#|_+x5)i6^ucB2OPLaZM|rhW*Wwep1z(D zc4ao$KuMoF5HsH^nHK|&kQZ?}a!Db=LnwDBI5K$kv5hJ=QVvdOc5g#IjVh*wM}gj9 zW3yu1A5oL4B4iY8hoG_wANug`*1(@(Cor?g=>`KK7T;B|n9oXZPLviiIjrJ$uXdF9 zwkqn)w$N}*0TjWjF4ja1+3~qtFAQ3mv%^U2h(eX)4YA~OW|*pEQ8}5Mo-TMOeu`DT za8-3v#xFo5hUV(7xum|wD4;?&ic`ol@Z%1YZ_w{*{v~|<*0~wb3ztBaW&oocsIp$l zfH&u<5#;)Rc?*$ylD0ye)z|Ngp!Z;#4gn{VF}fzT(V^o0ciUR}(-?ypXG6h)?cM=e z#ylmcsv0*a)Sxo(3_Hs)%YlUmIEB22!$OSWsyShQ4}@Us`U#&ygD-02fbk245@ymgUn= z*uI=TSN(>7Mf*zi({UU&e6g^lFSGBb6iO=!M&!cEHT_5ztX^E%f=3Dy^)}r0Z3}MT z9{HmXX@tKY+B!#Mad)O))wJaL>|d>i_^+%~VVZYWynBo4;uIPBy122o&J=$UfWUdu zyjNhpLa_abZ zS1q#q-142hpwYE9?Q+3A?OAIZR^5K&;aF`NK&_~8@)($UUCY5dDwxg0s6An2x^je@ zU6u2=Gmq1r0EbD>&PLgp9EX$*DO#Q2y}sw4Ch*wE!>%VzmMSI!Xqh{j3{Y+DT@r9^ z^-kb{2iEPQVsdt_y`>h{5g9RW9I-G5861#-wdJSdU-I1}<5 zkrQNQiqWhf3S=O(ZOb=k6q*X5>S@p(pyJM&e69}9RnAJ;fd+#)_k=cwzbI{ky%<3Q zN~_nZG}TP*hKCsmE~DcSR}M9Cy94;I-tgMHES$pxLE4gw1_!VbMjig6@wX?I;0~i+ z8&#va@vac7n&az+gPtGb5J)|~H+j?wIaXQbXJ(zafM2kbz4%=Xvn}J12~|1*us%}S z{QQL)k8l|JP>E_b&pH>7^R03&-H>Ya3%kaKCOm}lf69pYEbbH_fmUcoS`Q;hGk{0Q z9nPba#gjwSgvku!GV-L1j@adH>bPjbDau&C3k zCqAy8_TCHYFMRHvw^jt*t>n(s3nH%(hwUAOt=8KsRG-)nWDOo~z2U_<+W=iwtqzAq zk|LfkkJzEWC1zyJu+tEmd7?32o-$l6viV)pEINm5COYv)ghcPu5smBx>#o3D+#Rnm ziGwhCRM|RS@kP|&iCw`{g38WJ=MWDayC`o26GCyEM_ETKIV9HC*j|STD19r&Wb(D| z<_@`?qd9Nq=3t^H#l-Y>E)M$CG{lyU{^go~l-r?*5$sK29&{Zis94}^I$Pnorvvo; zhJ!yWRQLBvQhT zunjTV|40N)027HUp>Y;d!WrmWZwG zLJnG-4|K!f0+=-k&hQA%Z>Z>Sc1LWl1o55VaEB*fKm{~o3oTB@eNG8yhf6ms zO7n|2T8LrwPE3-KZ6fv!S{3z(#Q>~BoLGVPJc0CZE4Hmf&~?7Pj35Y7vD6mKJxtX| zmI^7tn_C`p5W=cDyn-|s-`bQ3fy#YVEAk|GUcbQkg?OR6qmemyK7aRW=XiI2|MmXy z!S3G<=H2z8^Xc#Cc3Q$io;{Ij%oTI=Ib-$M*U*#918L^BA}`ctcJkV__u$RMM#YQ` zLCs-EUxzQc_nY$&1Ycq`F>Hqy#R!6YO~#_@pclEJJ^@B|-it+wR381}Z(0e@T=Y*c zcQj~zpw-3s1=yV|!ZEOXLoljm8PwOh_;mpSh9mF*f)n}(9nzq?ZH&KyOZp0;>5fEk!)<#s>AmupB1OF8!UR08`&x!~Gb^3q6k z9ahQO@mVs52*T3{=Gl4rF}GfLRO@YhvfED^cUyN_cknt2v*>m+xS}dsAtl;O8j{8C ziS%Mq55kp6^(-6Hb`;!2v%G)%pUkHMp{JqNlXT&Sbyi`%Y0C0 z_|0K4t>L#Yb&h+f0`ho`FGS+D>RdFw%cUE3KpB0>tn^7cTtwmMOFda`$I zqXn###6vz7vAog%-_RZ{WT8-lBpf2;{|L@1oUu^&2M~VRv$t(7B@71%Ka(~S(t40618w0xo?8Pg*^KL(i z0G51;r_E~dr?1~dvB64olX&mZ? zEp8)AqS=KXIzbP;iUpIR|FAkRWZxzY-mD5K24-lsq8b4i=_lUEOlkB-HGf`xzD87F zqV?a1(PG&4v_{`(8mep6o2$e!xzAgUo}MIcw)YSAwqGE#Gxg-raX?R&bx^+DO8z$j z#?@267>v&(NR)THyBaCVYszja$!CAp2=Mz-p)04gT3|C(W8Bmf(yWYrGbDnhqh#J( zg){?HCBl=pWYtqxI;yLUpD(I99Nwq(H9Y)!7_b@M*s5B5a3*#Dy<|2avyzn>VTq#* z1ARyU6e?KH^gsYHTP(yUd8BPZs<2yXZ@P>Dyxuh^>b-#b*6jAnbKQ|@J=k@xNHOYA z3K4hzImxZ%H65+mc;4?y+#}Mjo5Dy6G*DJpMTs1a#zw@T+DRY914xHF=wQYLP6+5+ zPz4s$OFQPYY6E$J;ds`y=tWwbbxf4gAtOU^<3}7pjE3Jr_TqAdk~%djvFB^LAGUgk zL$S4#EFI~lC#C3$yE<&867>au7W83$^t4PB^53LgR_ZtHc7@3JQn@K&t)uzM#NTl3 zLRbmR3@Na@)P8KOUJO;=q8)Rud=5sGStD}Y#MB9w20q!c;j=}`UQyb%qz3ke6)~lX z!fFN^ecbW&ifJMYa1AHsbW8=zpk#Tk;aXfHc)}T$De*yLz3H&3bwCJB9j6>sIA%WA$^z&!EXWIO}X~9W#rf=Fp-f4;0h|cGorp1^U zeq$kI>o>+{W##-51^+7;i`59CHzE{;d_2ohodKF^G|?Wps8Yn+Jteq63s@04#MZmf z{+`v}Qpx+u;+^%HVWsJ5(d!i#lu6Ij-L!She;Z~yZy&c{MB4iO9rxZG8oW>6(I>nl zpu2N^V687+fcgwoSAU?Zs}CFZ)dvElzTRboc)Ikb``>w=!m1m0xJ5%rX2W(L?%d-R zQ-#Q{a#3)SRmtwF-Us|=D%Y=|R-dgopQ-B>KF4YhrB9wKjLsrXF-1%y%9GeHoKfF&YSHs${|<1Gca?@$>k2e-i41Jd>;`sIN@K|@*y3Q z9y!cxjp#CVLDD)$8C!z?;f9hkQqj-yx9=-%r0xrfEm)jJ)B<^;)Kr{235a=1g?QT_(g-v z?UlQ5q0M$N-qOlQy>eoT8PZ%B~Hs&wFB9y(W|s^78wCL;urv*(NvwKe-00olOW}P9`Hg-pzRu z*5MQ)f~5o^Gjo`OgbU`FBNNA~rcq8x2tOordVZD9(RWZ&sZ-+sc{4lq!9ri_}D~I$ zWp+(biop26BJGKoIxz2uOmfSjqn>Ay9i zaOS;5&bU)#;0@m8Xn);=dxrfdrAgW3&yZCk@AdLBGaFvlFYZHyP{A9dl3Q<^jhaL3 zN~#(o1syu4&?!Kle_YT2u_zcaV$w4^i%i(a0va{^duu5;G ztgJZ2VKq*RiY1Ajs5kP)a1FBsn|+%;(rX`_U1~DU(|vaCwKmpU_gmjhaoY)q2FHXZ z!n-&QN=>sFZ(0sIVfFVo1 z*kLkq2%UZmopBJYJ&FqE)ZL(tcNBFcU2Pg7S0PLsI{#s`_Bbjlaz|MKMkhu=vGt)V^7;TQ8}fULsN9UGcH6CN!q_I)373iKCxc=^PeH0^PoyLY zfU2PHO#I65!S-v;Nh*O@*j|CR?QVXG_v&NqZ%hm~BAPL?!Pbe@;LmTr_3&$WgMjJo zsBJUj)lbOvLJ+rvR_&RzPQB*MC5X1?MvcopjE$O?BUZ7PszLBHwVq`&=@7L0qa2pYA0=kV zADvl9vPS|p*b~{rQ*42iTa$LX?RLrb%~GIFN=${gGK<_7Io$V-rJPn32Fb2GjGPfr zI?~3g&v^=*HgiaWN4}Xv#m@>#o`6qtxgU!H$#)ZN{By9YTdMr2RAwNS1Dc*0R{l90z zG;2$kVZR;ZGq2;JQxI^m=GgiKtWu!-%XA1HWJNL5@#N4nB@Cv)#ajk~SR3PLR71(d zS0l2k*QfEt$RB^rwYVou{@$13=U6JtE3QcHw6`UVA&la<>0+HtUzR*o=$J}Br!7h; zO>2^yuUnEz?6He-2Bvc@O%wq0?4n5y5M<(e2|Ac`P-0f>ws;D(jbuC;b5^Nr&}}<& z$az<@Ocz38mm&^0C5Y78LxL9r)PTR!%8N?M^?;OZ_L=SVDW*g3Qo82@v!oV=woL6& z2JX_++zNn|;jyA$#cEVHRVBoq%-042YeHw64)f46VtRgeR}JjT?Sp68Sf|OUnoudD zJqIhQ$tgjJNd`?V_^l44autnIpbx9pw5|r4^_glw z9;-9TkJAsCw2+~1iA&&#BhJktl;x>lq*^E?IZfU(!}oc~*rf{zs z(@U-D%roE?tx{YK6zYH~3LtLewI3DSAATUm9oz0g6X1N6b4>Ajee($e^;a{VxBy;2 zp}$G8S=G|Q5Ueg?c^d3p{x|!HamkjT6oV~`Rm-baP;7^^=M!l6nh*Zr?L@XbI z6HEZ1B?%Ko*>iNBgAGxjFZ;uSn^P|>t(&RzPhMSVm)bec;3hd2pC>pdX1)9jZ=3KK z?|GNqkUpUUtuA&+T}5xM%V~1kz*vdCP653F*pkAYEcr!L`nlEMuPp%dD(z<=@S__D z+6`?c`unpC)Q`TeN8}F7%fE3tIAE?z@{H1PSP&H)YK(GCThF;jYn+wiMm7Jm4>)!| z2gW%tQ)>LJb7-kjYQU8o1d3*xoPw>OJyn2@-YA3J)WeM8Oua(EKJ0p;9X41?RtYm+ zBj(Rd|7?SigG(=&r6Idt#Z;9jE6z*(x3&Eu{i+guP3Vx9+kZQLyZsz40uFY6*xjd7 z^#ojA$aS?OH&(*XLu<~3RP870@#k7j$ZF&QAUwZHny?j5scuggF69kJ;Rrix7LgxV zgy)dpJ~l^ikRIvj|0Nq_vS!~r@+wc8YYdc9%{L4RHwjs6@3LSiUTNZo1^57fZIFdU zAEm)qcnUh9)KsUB1sQrwgQ6tA2pIla1u(yV$;=U(mzs2NWB*nuJbSR$s(&(B#M%Z< zB%oHIgNb+e6O#=*snCjC3fXi|85%jc!q>?RM}|566R-NnLPt)=9LgEj4)-s}X;HCt zx3DZ?>iA2PkXQ01ss2#?itPiM=vix>Fpi-RaEywnx0(w@Le;p!sN%HK@8VJ~W@f7W1efCZdKshP|xSFaDMHdTFZ|ovr=v zKg^ys=oX{X)3vO;zuFz8r{mW7xZnGx%sQ*%!gB<@T^oqzMmCNsGI?=Booih(^?oEP zq2L~dSCCMIT``Um&*aow71qBHeUy`YoQi}B%c8>uH0by5EHMo;X=SaXZOC@+tFW7& zgVPwk0;&e@xn}7tLfXN4DB{NFD_qTH8q{)jHs4(PF?cF(CXUzA`&!4>m*AmI;-JON z-UNb~4GDN{O4-zg*Okct7#Idl>WwnWwlVf%z;Q^H(nX-d?6Yw9rQ)zC(;B!ME8%9K z!~@Mq)=4425M9$r7IF?U(saQ;DA;%;s0YU}k$@~-){g`ZZxg-?>t>^t>6PCMg!2%{ ze$0<_a)yyF>;SrCm8Q)Pa`}O9f$dwfqD!*a#g-vzULQ^e=|GM!w_zLk2m*lE&+tGS zbY-kt$&bZ_DP&I37m!r}#&W>f*Z~#vR!++F)Gif6seOoL0cYL|^rEC_H!k``nVhE| z{XSDT7V35wT4dImWCb`<1}saR(bRUMrV<~o@D_}IR%_I0+I?aT)}M<^(8aI>VU9%9 zci7kjT?$N~<%M$8d1}8??V!XUyKp6JELBy}3l)t42T+dyF{C(bwJE;8yS@KIC6E`; zycDhtbQ)M8ofJ|-we?wn`do>CZC};Ix2}))O@6v+klZKFb~`Wkfv7wfuFDZ9?&GrW zkIaF98v^kOQQW3X?ctw~{0f&;dK<&h24x={1^wKiRRfv?LGPc>RrONX?KH8I#?P56Y=dta?8s7}YCtu1F6gQV56XA@U1|A( z3!P{Hryq^r2AisG%p;>{ypAqK;BX82j*_l1f6y3M=D=pMs6?c4`Vut<5I;E*m~WYb zk%Wsb(ofDV=u&G0vBbPI-;Dd+BYi*$gbP2Yjc~ZTs=NHckNl&t6j}Q8f3u5xYOnh~1xK#O}>8V)vsXrWX<|^!PdohV0MNhYXSW^O4-gMmkrE!X>t! zkC)7Op`Z48)^xeLlt`TPEKE2d$M>zvit z|MF!~GbZvz8!A^c|1JZ*TMbt18Ux+Le9y9LYWuHEeum7lE@Y(2?9t6yfsQ8Q^Gh8b z{Km=8-KtqM7IL+?2~xBc)s7k&l^UbXUuF0LwN@(eRm0$GqSO@fe6h7?Xs&__-KSRTgUXV8RE|ZHtL&rF zQhnyC%_(pw`a(S*{%#@RC0&usp8&GnV2x8N)E&KLB&5#ZEEB`9N?g#|BRCCs4Nbb- z4ruztP<=|AC(e}RgKjq$3`KA1;xKuR!@ce{r^?l7W5CKT}1WExk0`N^gR4s3 zo+iCwjER|(^1K*Xx*mc99T_0!eYg{X82Co?GW+ikZMM+F6T;JBh=_DRroS8k+(=J@ zF{o5SOL_Q=fyd9%(Fuh1Q1;$K&mgBTPgk@S>gjq^QS)a|s zw~`-U9~{4Zv;8Vrh4d3pWmUDU?RGqju&6JjIH;%=*V_zyURj}jKBhKz%nAIU>Yt9i zGo7k&l&(g(vV#{h*AP=PWf7qU%&u}?(haL%@#LUW@lDG6L)sWfn@X}!UcTv>Zi_=R zX`4IYO^iUxJ^M-w)!DUjxxmm#s0$2z0LiZp58p^$=c6MF5Rial&Tn{U1K15=3=)x5 z=D3k5&-4DC9=h;6D+Y+37P!U;sYWdZoMce-HZMb+7=3<`f3UYg~*(X!2gKstB_Q8vUWZc^|=aTQmCIQ&Gk;ZZ$ zOeM{8j)>x7phGf>Qy2O!iXb*M)#x4Ax_=ZJ&KQu9RXmDGyCn}%{u_o`|VB%Ok{Rj zC?_W>{6;KJu;Q^5`F>hR4p1FWA#=~vEOx4##!YDJW*7 z0bugU^hW#$%rYB#hs|kjCl*~FsVV&MuPStp#|MWhB9A>1dV4yScri;u;j1uQK%QDN zotX?54-Jr*Vvo-+)^ZK4cq*1X7Is5YiA#UsDnu+c4b$E=lM1?Ag0n5kWNXYckH*H* z`r%Q%LPib6qFR}T*K=jIgffOr(p9ryWV3_?8atG?hLiHV;YZK8n%yQP{weK_t#bd6 z!H`5@0Tr;QRu}NSiHj6w+&WoVdu;t2Q>;{Qs#z^6t$QFgSj~7$|I5R5Skd~j!JIbb zu?fqn^~rOkMz_vo0*erH+$5|v6Yu?kbM`AwRBVc7%u8IDyP-j`X@tl#3D`TExh%}z zxgL&${9e#g49j-I^l!n4@K^H1u(_CmaS;TR822Lm*CmJVx8(Q4wuMbMbTS1{NxncH zE%^?l?C~+@TRA>%ChleD+=$-r%IRX<$CNBnj*ly*OshBapBbmx=~Y`jYvSNCqX#4p zW>IIOVlt#D;JpSdr}BTf!v;uYUf>~nD^760&Zl?TWZ4yx1a{6RgAb%QIT4e5KF$hE z!KFfKC5SK```FLG2J7`{a%^9LGWM((T~fNTkS6PuhLxomTEauGw>HS|-39RM3GF_|15G;L%KI6gTeB{9tEr^8sbpNIftePFd;I%1_dlzmD; z4h)9$xP|2!hfC>_IXa!dKOOj|yL8k{?g-Pp4WjhcGzVH<)bC(g zQLWr=3LJLUU#{D$XNXTBTSAXjh%AT)>PvBCHT0>{(8u5{fbf4sc7tZM^PX?q@`iL+dC$-@ToeWYVr$noHPtv=Zvs(bSIx>c zE6uF7yGNC^xPc$<)-67U7V+7iahZEFls)Z$5x?;j(+-`E!arS9l)5#u*Iu2&xjU3fzdM8M52` zx^>3(>`gY&r7LS%VEuI5Ifo?*PhZ8=0rCyt$oI<&XYPBRp4bAkC ztEb{f0|=svIRkH8k3&chP{Y;j>Ni{Pcjjl5J=F0A1t+}hWb<4xA6F}FCf7Kt#5`Vj z;h)8|3ZfYKXv5BG{RcZ3cx++57%s3$K67Ki`Z`o0_R{~)-n*{1aU+YO|JPHrotYtJ zQqF(&vEP-&p3&5DrBUV=7XqArv;Z9*wD{+MeWrtm3+YJZhmoFl;4oS@ptv2WE_ zr;y0qqSO6ar^S6Xm%RC@zes&WP2{d8?Fn46QM}Nj$j-^}^N2r$kBQeabSSr4_H27HYaLfPo($wa>x>rW zp<^BH{6dv0Z9c)9=WvLPWZvo&C(l$Xl$}+}c`?h!wuh#6%@mze+;x@bq{;Bf0T>vZ zs3SlqedaQGxLHf{`3&asbl=J-9#JV9DBP?5;fyhOZ3FOg0v>h>QHH+7{Qda7OJHp02Mr0 z;gIKrJqPoI(0*xU3IoPjL2HjX^|u#3H@YM(x&qncKJv+KBc0gQO9H>67i@d4ue|7X zgFeOzL=7^Y~HV(3ryPcTZY*c$s^4sZyA?@_|=4bA1-C8$-QI1 z{g!m_+s=cev!70j?6lKMk`6vdyvGcgNMy;!UavvG? z)s1q?nhqH}R5E0JI`n}c@603Mie^zKkz92k6A15%6BlTFnpxvk$A&Rw#p84RxFn``;Tn!~4%ZwU2k@#gapZzRZb|NSK-9ZT+Rj^|su^Jg zQ*kv4H`Qq1oIGz_mDrK7$u~DP_yf!_=DgXP(m;~&oU(h?f={%QUQqToVds8LJl!py zRoVF9T6Dh_-LI19US;WYSm%_Vk?bC-isc?+(z|uwJume7)-d@pXQM)3Ys{kF(F48PaTbQfx54VU=#7{}-0ZT~>w7fNuL5H+rF<#C3HBP>6N~10UhU^a$j4tVsAt@H(3iD!hgwS=bQGgY?B+$& z*h#Py)nV?-THdUHX_P(8@!7Y?s+o!%q3jt0E?Y*4WaNT2=@Y0H^Kd?`;82bAP8=|} z%|t*O?a{vDs0;b4z3I1&I{rb(1hsNJ9o3;%^XUV7lBwS=@&i%C<02#`3*sT^Z9 zc6XzZT>NwN4N6hP;sH2RAwJAKJ%~@_I_!as`!wL$-Ba1!G-`WwhjF+om+#vSC+cxn zs8r~F9-e_ja8PLqWjhX~Y1HRREk*5oUfy|`*0H&GV#VcJf?yX>5`puW=2GO-Vvjj2 zr`-hbY^N{$Q@J;F}FI#1JN~PGJ3HXo)_wBQXu7Uwhi(l{;mta6XYU0q_AWy zLo?r=S0)Q*NmVHwcV_#RB%tzwgavLuGBXMcYm9`XQTA*UK(gZs=vXB@tAX`5hkuyV4BBT>Hxa(B zKWiMAP!NT{v|Y(a^$F+2vn80vn{z+#!ow$(vtPT{Gyov> zC74pczj5uG>N=&sWnSG@f&ktiCqclni4mQ&0M${tI4J-TG>B>yKh-c*>tp~dzHbFW zo1^q?!3yRC*zt;29Yzv>;4fCfbXD=Do=9<+5@q<1}{V)Ui!moXS2RVXU-p^(!@B)HM0!2l^28x$HC#w_c`QX|_+8H|qY|(fTYbT9!rp%E=kvBtgjrvEn+5Ilb=}m@^-Y=2 z5g)S#Aqvz};I`fz=tE!T#T)qTllJ_nEAHoSJm$z?UXpE2S}+*D)oF)m@w>bMyRp$4Rt{g-+nU?~ltv zT?tHnGG?l+h#F5|+o$yNbUdwXaTOT;l?pGLizJl%oqlh+H8z)1@XsTsplxa1bS=EW zbc4Eu!0*}s78%;tl1IR`T$YDfwTBtkHIRPRwYIfbud!A&&Iz^b>#)CJIR&j~QWkcJ zLH3l*r8EOZ@C(f=m|i^*mA%&_`A%L)=VNHJZx=009fPIK~-qE#vxeX?fM{dIm?uoI7+bpgj|}U>{ewF}4D! zdlz3AcW@Hn>%yJG1x2YXN}zvX!E5c(?$?TEH^#Na4fsK!SgZ=JNUYXuef>Pl|F)CE zxqHc@vU_G$bD@q8utH7QbsJLEQqQ={!xG*O_0(n!IX{+7_F>qoI89oa3U(oPm z^j7uzigKi{z;RwtF-ukVGv$0|z$)fs&?qYXvX6!uUV`j0(?S#eS1>O~6Gi&v9PP9* zpCmm9PR%3-!B4GHgIKtpPhyZak(G#@q8}?dLhd6CX8X?AgYc;ZZtEI}h+LSS~n6 z@HZmT0rI5}_vk}@Kp*aJCLfcJ(MU0iJL_GHpsYsIz<2eSmdbWgTJc|&)`mOVN6dGy zh0y~)_Go6yCO&BwW$fS&>-B+_3dfWWxH`M~(>?kL{)}Pc%PAIk*Wj<#G@|?=1W!Rz zJ^V5VU2ZFGi>f(^AZp)K*##|JJdS&?>oyPUHs7534;CF7J!)3%V$6BMtq-00= zAuwtyiC@cO92H6wq?l}S&7J>axwAP|AnNPUm+HuAbNwf4F z2&SKL#WI}0r;H|F-iCu1H$|@0YZbXYf|ZeiWtIGX^}0x2d82sOdS#@DoryXMCI5$1 zL%PU%M+;Bn=Tx%n^E``-N|r@VM~ix8@uStEWLe|UY*D$a;e1|~EIZ$#gH31GsoJ|Fxm)^EH$$xPU(IcltA2OXpmrEOeoKrl|$bRL;X&-}5R|cA>>Q z!Z^3D=&@|Yk>x6TG-DS>Ymt<4H41rL!Fpt8D@N8RwiqLT7GAWJG0n~{yeMGT-ip`4 z%eCKSn&tWd3drw)fgu*(17YZc{k0;;ZWopzBMe8SJH zz{Na(?6mgG5KUrx!;o~g=H*?2!fM|I`~O7l)!3M3JSzj2% z&gbE!M?RNujs7WSs?MfVJqa17mJNnAiVQ#*>b+k4-PV_Bx4^NWz^JWordU(+Uej6OdeTIkKwih z+Dt}zpom>lF9?#}&QJNf95`T}8j8ybSQ7b`=nX$@yip_UnGx3P)AqR<|Jstt2awiX zi(g1mkD2+f_mb%$+-&K~<~-y1+4;*u*&I~vav@wVce%F5TL>a-eW&mr)~|_FWwOX! z<;xax7Dzs@)!p!!;I?aP4#Wp;PPqli9|QrC76n{m5vb5hfiKnctZWhRGe@>yM(i}V zOBU9|MaN{uw924>O_yA>DF91;43uN814DtdDw7M4As3#w)y2kTg~m@HCwiwB$B*i% z@u~*u3^s~hp+cgLZ;x|`<-3S{WlNnc2wsewD8!VQDuWz&WQSp&94j*`Kf)}<*ssNw z4DP>dYN|=jPD;3l0AqYypd5d6yje2Z*?E_pZb_KZ7VZRmz9XOS?CxqM2_zN-q-Y)E z^ut)mFK(tom#;5zF4!Q*YqOl}gQ!*Fwqzq&6MfXlVjQ=3c6Z%g{+*L4+Q#^dClpWoyiU80bs14q+F4~&dMYa*LlEp-F(YCh(F7bQsg?W2>h)Tm82M5e?) z)on)*cVM2iDiM|BT5?ZU%PSYiSfL$H23@(=sVG;_70)@hsCBjySVO}Y0GJTMz`wS3 zTi%u)lUP5e{{eD{vYliwE=Or~G*Ik^McKRX1DcWZnb>g@py3hRlz6~1 z3IjS*aMM$S!rE$77{CYeD)4s8ni!&rHsDOmTL(=I`@zdueV-DnN>dKLHENe3034*Y@N z0knsv`9~Wt7iPA}plbY%QA@~sq}I!3*7mdOfLgqu9u6Szw{@1ix+n%OHK zeVY5|EWPs@NBSwQ^lC3~!O=q%V-z7Q5(BJQMSW8GGy6=sh73BDY>%9j6YDV9hp#`) z(3>Q)PG98kv7b!%&>AcaGOTHEWE{zE-gb&2_=$b%- zC5;xW+Hyoo6^m>lKAO%A6}!CqmPHOMdGCe^IYPBD;~$OLie`1?i#DWNCsP&o>jHUa{Yrl~qe>sE=hEC1BJQq$VW8 z1GX5AMUZ9zXOa)!b;a*^q1;nPG^WAH_B~|`d=h5FkZ$AD`XL+6QR3G(HwYS4hJJLz z%#mLV&5o4x6sFno_}Do4T^XWPRvtDEKeT^R;6Ox{E0vSsu9E*gqK!4q}$S+8aFWZibPtetwAaQf+|8Zpyi za&fF0M7vAu#{MhFnP0}}I?|`%4M%#uBCMi%p>3W5AqumZZWDp}hF|$n?IRE)K3p)F z`=%wPSG_V%@uL8+GG(KINWFR3HlhiL=6N~CBO)YBYAFG&S()m_r9e{$IR(DnPS2nJ zu*VNX$cAvV6UfI)+d0Yc;xabXDGa zxkzeMYAWej$Mt3U?^EGGejPl4lX51ay}f?jVr*(p(d}kn*Lnhs~7 zg%2+_{nWJ5{7^QX7eH_2Ki>TCy(q9h9JJnyx^18wV-b=Fg01!sC69q{1! z$!_8E34P-9iT5|^GM-i}7Y6Nv&`|#ET}IEUQ&l@m>(XeO8J6R5Mw1!zlYc_XV4=5A z9XBcQ#?Q7ENF44=wlR&7{>^?)^+O}f1jue>eMD;)I}lUN=#XQYU&2kG%0FDvjUM`T z1JAu$R5nZNC%QwWy=N_@S;z4yck{iq+PhaE?4`UbQhW_g=_wfhGo+{B&7g-9HyhR> zss)Jmq--aPp`hKmM_n|ljCVc(yxGBsD~7ejkF5`p;DNkiuUX}nVPAR{B#;S8a_I-` zY!o6_DsqY^Hm+x{7uVphA*V`*F^)_Q7WI6BZrbz0wl38QEm%h#jhW^A@W_t)k>gYI zt+0+ZfyC!;aYr=S9cQ_cm+|Klyf36+3IOMj*z@CNiS*typS?eEL}7XIhn!T>z7UDX5d z0@m_-=m`PW)0Z6Tc3uc96#=*m8lAGh1Sy@_NlE`8U!*b)e9P5B`T+J_gb6L~J5C>b z|B~&AVdDi$C-RBx65y^UshoU;2RL3zM``uLNuk&ezj&$k)bMd~`?l=|^*~v%lv|X} zP^O$G?c4Dv8@{XXMsF^dn%uet1K)DJa~&zyzJV6xOufEyb) za*0U)n|#DHzxrD=M_2~j3km4DsUcuhkGQ}_SqH;k`Mvz<(+RS2e1_iNM1ZkCyJzA!)IbG1TXmKrCT%u@E zW#eFU%(Zk;mo6gqS{l67b@8MV0e8OQ$#ViK@(F)XvcYN+#brtoH9wSV z5#m~e_(O>hSg`z}MF>tU`Z)^^o`VGMw0_)GTcP!;g+_;!!V8za-5am>w(*C7axqcK zV6V>>W4gMEk-E5|F@{!zA&i!M4VYR|QtX;jYjYlANf6)PtjV_)O7zm5r%Vz=udPVJ zgm5kbNh2O@H>xI$0I0UIh@BX9pF4|FsncPP}#V{1RZdsyjKY3nGZM-FGjh1px3UeBkOcyoJ=bEg9 zjP5%o{jT&mqgjNnK2G4R{r+^_22b6;T>n6sfm2obm=cp}VTK;x(&<=pqy1AI*gHP8 zc=Ezj{ZA^%!$EO!Hw{myZVJ~$Z*5_P)Dm;)kXz57#>xmjTMptsVpTMy|bMZL~I?>wYaM)!bzs?|&Nm>nJ8YV=N`!y%J98N@wy*xYmrOb5zSb*f0d(th(e7Ztu$!pejS!_{qFW3^X_(qymbD z6%O9_UZVH$T*CNow2tHFw~bH?e-av8*IlvM>7u%W!FqjGxP+cNDSk}aPAr7g!20{^ zWD^Sp5+B79V1n*#(*%n^W8kFe^ZW1cRrKnx$Jz7|_LNzB6#;8L{uJVIBjlb*I;>>0 zi72sMduk?EzqR~4Z29!DsI;*HMoG@sOx`-R;%)r=^H55k$PQFcNY3-$cl#|$jc2-IcRE|*Y`0IcB@AA@)46|0lt<9$N%zJzn zfZiv=_ZUz>$s+_FEWk*O|6mbD0ZqDwiB|*&3b;? zVmhNsn+jV57Eh!nlfHxr8D(82w6d}usKgV`I`Kk^a*zuQzi;6c#z~F%i|^s{ASs(Y zy7c)7$C!Eo20>DHF^|$uo)o7^IvV8&FVzA6CL0^-z?%1C9>5R~RNHN|@z$$VJ7@h} zbv?io_b41Ft|X#EuW`bk7l&7%%+e4jl2&AUWcPIig~U|EWH-F!p6sM3Dr}!FxTiMK z3}KCn5?Q;LL#t{t5mXzM7Dwyu?A#}X^uMV>nB-VR^BGq6sfU807JFY>D}}b6E>6MT zx`TeA_c5GN7$wl^tVGSDUrok29M(=?jLsHvggf}3yOgf3bFV`NJ+eK<%J|8kwvu3W zHkkDBMN^MR4c9wM)Ns}HN0D)e{?P0KDvE=G=<5$FzERcK#&vAiwK#w7;{10h+*O=p zT6wh5^@N@^ayy-r(|4R$ROq;33#hb4W3DEB$(k|fal8Qrfb!qR=|ulQmf?y&PBU^h zmTPOTUzNvoB=Hm}ge)W<=wVYHQY|6InDJ? zAN6lAmofdzStIdJII^(#_}6jzf&R(qd$=}`OVKYCav}>RS6{fe_jl&Qa^u?7iLQVj9ODJ)@mEPovmjEZg%{A*t1zp7P+4INbjZ;h8QT92=4 zqJi_$_T;dlGpGF!#$K52>9vn7mAi%mI6gghy)lxo;5d+^J|;Yv;z*eP^DSO6u>g=; z$z7v4)Z_%LMWL#08(5*#@3lMz+&Sc0xCqb^E`YXr+{%r;(N}$m+z0KROmPKN&|Gum zzIq{uh)xKor7Kjs=>6}~iMS`hU)rFr-KLxfouGHpqNsiC4YiCgrtdzIJ*k`_)gY#q z;9wnaeWR)p-Wo)6B!5rJfFMM#9Qbk|>8fo^4xr#IXV$$I0IvnWKej#h>P2lfsrAI7 zmdg7MSk1_6WWPMOh}Ue$Cxn0y%FdmD&To&0o=A5vW$xW&J&{}t!rn+bJOIPqfpKcs zoH-9dyX=YK=&h!hwFP+)76q;0ypB~Jt%h>0va%}U4>hRE2p`WS0~5*)_U<<(J1~)L zJdJ?u$Eqn%7hldbGgAcfdLD!*uE9zOJ1uc-FXJ^J*@PXV;Vz@b)0G6N(3cwH9E|KB z2X2A@xE1hpvx9%2tFGC)gP88_J`7sq|CY^|A!?~$0Ha8hh?B+jbF@e+2)J->`7vKz z!de`{vLbkx+ua*p$nQmj>7Gkh%K(_(z|mCK8H|BAr1hZP4Ku3}$P7~xj9x4DeU z=xJ6wj;*%n^kr&~8FH68f%Imj@hzuX zHkXArZ(g-z2(66>V;O6^Pl5KPaOM#^3aAUgSgssfJx~#{b5VM)-7#hGD&tl z+POAuUz@hCP1~PGmV9>cSS<%(Q=>l@X&hV(zT3d> z<_8C1G`US*<0&zzIoz!hrHZdQ-P;AnpZ44iJ_oTaEbSb01U1nVf#ovq1`!w-FqvFf zetVu*pq;J%4+7AVE%)W%{hgokcliWZPikWJv!Z{ZzNLtL{Ip?%+7lS(8J>SJtVHJ8 zTF}x9+fvX{G}3f_QTyGZ-|oatW1Z6U@o9B(;*w?pu`m8iXcH6Bq>GLJ3sa2Y= zt5)~+?c9l3_LIOP69gFU38XI8F{gy`1m?yz^{}C6%cNv|-&UWo;jRJl@xQ$G^t&@l z0TGGqZa#VXF}2G7oz+V#U+Xz^*g`c{=Xw96+4BF>591GOP~Rr-v;v zF;O~lmL3#PGFfwyn^``!>8y2aCto$ccHg|Vaa|P~msFlE^wL~gy;iL}U7TtTh3q9e z*V5A%`qbUwg43H)b6N~2@zT?QY(Xnko^F}5zpc;XO4cq~fGbsZ+Q#Uz%1(#IY@gJ5MtOBMcUXL|Y%s5spea)KoorpWYj6fTCDa1in!0Eyd81)u=NLWWa^Uj}mx znWwagRHacsQ@CqLCP##N^6Fku{yvx@5X*bvMddU<%!_nP4Fy%45oXz|`=Os9Jo!4? z(6xATCB&P{7iJjT>QSirk`23qgiZ#k@xi^M1Rxq9xl983pG*9zu-CTsEef7)9~ncr zdn>eqHe~c6!?a}$TYWeRiSdVv1j9rIT`amuOlotWO6+$X@7h{!TkhpeR?PL^ZtWm$ z2Rg)r8-m|5=oJMNH&3Gf7NDXSY8JV3vt0&kDULZ44bvtb3wlx@DapC5?mc1X)q}J&+6?=B?RtUR1LzrJ!P9=Cx#xpT*tR z@Atb5MS$(>u6?BWR$?o&XHL%^D2VQ#8jgh5On#8Fb3fi6aFd~Q>UC9?>&mHyN55Un z1#{8yG>tr2!@ScP=H2EP9gaa`N__(CL%8w|!;|rL;b84?NvWzSRPN4~Zb;hQFHOuG zeA=`>-P?>Mdosv`n8X?RHRk7noikaVEPl)n$Mj>hbJu0K{9B#fQd@Lmr9aSZo*$NN zgk;Pen<+}a*ej3WMn9l(R*N8d&OWU)yqFsFKU-^-L+g^v3RbQYWhr6FVQPzA>nu=t=eYFO3l8;3z<)oK(Qe96CtZUo++LtO=l3+oir8Hnl z50Q*AxASMgR~0jD#Y=0w#b$}!Wyi3;w}S(MJn%Z7gFA|Z1Y8xa+@6EB=gRFleIr)} z#wuHw3=qH|MC)j8!3F?t5TfTWi)U^UX7ca_D(lLa+>+u6ra30wrzcNBEyYE$yCW!&?52D>gVe!+1FLF&)b{*T>Q()&@rp1 z($P^lnVe#!qg7qbZD9K;>Ynq8QkB4kQCcOG;$i%I{gW1Tv=^1Pj=Gn}htYT|RNMNA zdsoa!`^wq4*UQ$pvFxha{Vn zCOKJmEBQxSz@2uQZ2k4WHq z`|nQ56PJ>ZbKt6U*ZPOq>}`ImD>8q4cnNe9h{)T|VB(n(6}SQZ ziiy#OnPe14i638sxb`@C(^7`Uvry4<@A<>`r7t{Bdc*;%q2s(1iYD24Lm)0aX*(_? zSOYubf@6W3!SwVm2i3`0mr9$XMnUiErxHP6}mLyuXyFaKa}_% zr#{1PXylI#FD!I$T?7-FB`q_ia-@M|)ri|E@a`$q+sSJr2547lP(_`P1RQ4s$3AWv z7H&CU*YOuO22=7PUwCMJUq~V^`#bTYz~+`uuwUaTp_l&?BCfZ9!L#YKoOYl8`2Ewp zXRlxX@Otm@%-1nr@v)+QPgfJse30hTn^ zXqK$WYalv)1wU*?BsT1iADRPw>iWCa$0pt)qO{}p)DOW~mW0QNwMQ5%q${~epiIxI z)h6eHuhXBVl)FukdGh*y_MX3d^0!{Xo_m4+F7`bNU(a&s^_165?bRK1O-+(o3p{Wf zIuvA;+}63@fy_wAEa({W4WGQ3?^mE~TZ%T{#F%$C0N6Z#D{m-;0+m8j7q?C+b@?I$ ztSD#HGD1XA!nIT!qTj{U7AJoBU-JwOOXmyVf}OQKF!IiDoDbi1@EEde)V<$B9{Chg z6Ax!^%a?gItDQ(O^&>9@!eQ2XkJA|sXL@fznx2JEtPEAVb4`$1z%TGW^%ib(w?4w^ zkM$@b!FloRTE|)DW-~cA>ZqO}Y5B|9Wj#^OgF1(Dfz$VNfflE1l2QDHQv!(;6zFPS z^+a-Imj9-^i9`(Q0$abSsfi4k3e+zJ|MEWxhS)_y6*8>Xcu z74C4FW$Lif8K*B`61`-CU(HkJ@%olIfU03~JL$mx-e$irG;6`%R$rqqh4eu&ac&2E zze3G+aTvP!408&7$ zzlLJvRG!Gvb{H0kK)IaGs%(7Fqqpl5P-T>hVD$XOkmA9j2)-0fKCJ zUSb|+YD}FuDY{A_hNh3!2M9S=A;6Y>!7*%vQy5Wad^aiVWNoAva*H_oMU=d9r1o?3 zH%=47Dg&%{%i^Ptecva=ZhZ$RtB=`*N?|0wuB>q5VhFKedOC(mDM<&8cxy!7kd*sR zOme*VmC0$Xr_Vl`bKf%d7dpK|ag_p{sILQfbr6GmUBO zYq3Rad7TO8l4qaR+{NqZchXOOw4bqOznIC{DQe#%$ z!)tSDv`E|wS9x|~Ud%;e%U`sLSm_9Jd#%SdwdESzo=fx}^i<{u!B+Y^6+TOm72w(S&CeIUeXF+$Dlhink za@c|I!7?nZC~bQ3PLshf1!&`e;*8`0hTky8*~oHfsrtz)X1Mf#GNJEWot-mQN`@mY ze!&y1j>`FXWH}}$CEq?{xL?G{XQR|XU$beNk14&-=uoG!kp;pDm-CtJ!Q;B_j55@j zheo?NFCQLrnP3Gt!JJK|1BLNGEezegoIR#j_v_Wm#@GbsD-(q_<5N6l^qoCFD|wt1 zeb39w&dliZME=gB`Bdk-aF@}WBN;)zO<|Xlr{xr`fTJ>C1szT2lXQGs(kcO6DO>1< z!fhQEWgXp5X0vg&{ywkf>3BW+0LQ9etBu|pG{~|w)MTh+Logb3D;I;o-b3|nF zhC`qY8*&e!zE=ZO7@wvZ>p1=J6U>+~g%A1h{Fu3up?)&tvn;x=?FpLIh!Z^f?!`RT z>XTH5XB!V&e3GhJyIHo7Y3k>2kyHcsZu-82qctq6*%%#V$3rY#M4QTviwOJ#SZH~| z$$V)gl7sR5g90LNW88?J#(}7fiGwUT=_czySat>g`3!MzAtQdU< zOEfSqX7o&!WbftG>>!__@koZirL8;`?BUq?VgeK0FF(|L`ZStqR1B`&?71(LOqD7E z%=$%br3%>6QeSX_Sy9cA7w=;L)XVbF=EKY#`2yZb_*f!Mn7wu8MPUydp|?#m@C?`H z4Smz?Y*aJ2bB{ZG!(FC7f0`a{#7i1FNAE>}SPc45gnvS(GKQ>Q*sQ zKRYQhaX5TlkRXi?K*ZpTk89r3hlN(3m!unhj>gb#0kRuf&wjt3&M4VrGAVN)@_{vd zA|pmqU+31(eI4C_o|-_wVfe!HH0>RM7)ME0NA@2{6F^PF z$z27q+*7uqZzr1`Qh1b5sicSY05H8*mUh$1&374BTczWiFf#OyUBZICpeh#jMCi(_I zPO}g!y8&*e{kKK*@G($T#hmv{(r*vI;9qslEDNqz7UpJl z5!d;KTod+Fy)Xs7EVkuBs>i`dPZ>g8K)8B(gojO}P0Q{O4fa*|G#zSMj3x$TvrRP< z;GDdO>lQH2%^|T_S2Hgau-39QbEQR`wswBnv0iuXi`Hq`lVQWwa!BLh@FrogEW>-k zTq|^L+$BZ&h_I!@v*CmYCoI#u=!B>Ukz($R<% z(A55=|}VUhk1b{FN*6mCrKLAZ({hdU7Z5YFEyoD;T3cZCr%^^^H$IHjZ)8n zbwYgMx_L$4gNWLqWTv29U1|$ix)qTSXKZ0A54_J@J<3%iuma_x^{t2D8M8o!D5hWj z%_3f2qZqjwdUUn42+^{Y$MM))_O;V4OJN?`96qavRDm)+1`WZuv55Z+4lX9>Q^2bE zaF|sUhN2p3LE^`>cNVnHtbl!P$}2SXmmE(A%JxPB1>tVh+>=zHn7b9o%yUw{HW;NAHFTe z?xrBeM)Qc;8Uv! zqhud&e-%>b#{xgt{(D99D9H;)GT@d*+tbDSpO-Fr56HD zAyC;6c9!RiH}VOE!lD0UN?r^(o-K+#L|D(>B!lnLiT1k53m}<;)WonM$sJ}h^c(?Y zW59m(15gPETtnL0haCWh{`97p^du{>9{X|mZ;+q3ob>!T?M z5B;Or@%Rgn9o9{>@OpW$4#3xs(+Pe%EAjDT-HAIq-_p}7%97*}g+UOYWlrY$+%_e+ z*--~~w+2mqanI{g{FKK>T3N=!agP3MPvQI%Ta-E2$t9<@y~^Ua{7ZjU{-_{WFP!yk zczT>J2ba|%iJrfH_H7`T>9`!3jQNUR(E`;V_v!0CkZ4!ex%uYF>+hfak2TstJfue* z6LS`$=dfiy32sNxHQT|eK~6(e+RE7=Q}L>{(&`5ls_RX#j#j-RqSm^fQ97JO0d#-L z(s#gPuJ~;HT1}qvVjqc~I;PW>xe&?NulkUMk6Y@m+{fIrzUJZr>r2)0TlOE`nkslC z!hW_5L!&R;HYiMNn`u1OfBN~BDy+Ojl{z+eJu5sPSGZg-1kQT_QIT@g1g;@!5;D^{ zPP(26v1UIs41$90xS#cVQ)Z{cTMzNRacJJN{;3Yj>aIn0NZ;3;L{05ZB@Vtdj8Nns zr-=3<|dsdFplz>fsyP=0(kZW!E z6ls;6$WLjRmhU=x&h=sMC(z&Zk`oOh*(K63 zdWYgYUXr&bEx{ACZn3q?khy8zUGOCwh=KWGV4{y}(0TX6C#F;mV|7a-XIJFQe0i&4 zC~4n71*JJEGo>#v%u6pfnXrr^}#0pHC%Z&qHNTRa7-2>h_Ik_aezM z6nK|)wMl8Q<@kEENN5o_|HezEAqk$H-a^H-wa--%;cuFQ+P3osj-d}X#}*T(ZOLLA zx#1;;4qvmxYnIrOB?j3LKVT@fcqT^FnjeOFvx^BcXpHzh6ORrvM-vWwIUKUa6P99= z_2A&MC-w;mp|%&sl;S}!i%vPUW9oz*nyipi-#M$~^?GIb>nybhZ1D%i#v*_zaYUu zhl6L;{r(}~H{b8)<;E8uw(j@u_V4xYo~az$ioBu%^*?p&s!kzdeLioU?O@6xr zA?%Z*5@ptO79w!?ktB}_83>9W*s$U0PJr)pp39>e-|w~KK)*9oZc&#lB;~`aX?dI* z2NWs_#}z+eHu7U1vv=$mm(9pfNxz>ySdiP7sKI&nWGFBfJz3A2#??W#+4XxV; zSgKQNoobao6c$M1|NUi{DOiK8P*3YTOt^Fm19sfN;|Vrg*?P-4BRsd#87NHEj6tQkZU9Q%lcH2HJRDbk#6W0jO5S0}Yc z{eZMi?SWP_ay^D4H=m4BT||QFn3B&qCHkm_({gMh9mwm!Z75ZQ!l+9yvsVI){KXs7 zdcYybPTspzP=Q&}bVpDAUKLpX_6~ zlpZ?Kg=TwZ$Lvf8fi<0!6Fl0OfJ66@Kq5VoCpPFwu(;ol2EmQN|Kte<{ImhJa7%;l z8B+u3WG!xt{*43SMl^8yrH-Kq5Xy?jRB=#h&6Mz(nZ0G zJaY)f1GBU~DC!!Bb7apMC^6-Pbx}*@!z$7Gn7Wpsh6o~G9W?MvXwhPOzmE;ekm}nj z`Lqw3AX~`ZY6k_F45HlNO{!+}HZ#ag#uVyi_P2~Bps zo;*T*6I)4066m2{Z@{+=>gR+l##lif9rb$2UqEx%$6TRxBQgx&wZ#}=)t*KQ^H-XX zdh6k}G+ah4?zZ`h<3@okXn)2B>c>WFjkF2BqwNp^yYR=Ze>5+!#JM@_!!d;+9;oBZ z!3KHtZI(?)?q^K^Xr{sg!QvY02-MY-9wML16I6xak5hi9qbf+stz9Hz9zpxOQ$T|g z$xzn`@bPF`j^>hpk_YB9Q`NyK>L2K=49005dQu*HEQMW+#*7+!?2Ai0r5+Z?AP-3{ zqcAJA#-)lhN}Vg)?G6iX3y*u4FqI`cVwL-yJP~;*cWcI~@Vg(roR+}(K)kafHxiBk zn4=Yjw=x|A*8voc^~uJmST(zh*F9~!=EMWDxrNzi#R>QIQ=%1kP>Dw~7rFhxs_Z3O zgc~o~>)lzDqRkDA`eL=;7!-}8?bKY1ID==D5JUKb(pWLM&hPSUbFk<2UMqV6D zQ@!3C#y~(Y?cJ1IBV0gW4_W%`vor=5Ea*>C_lZIuVQmq_@Tw8J(Fpxeri^$WiXr)E2+ zIz_jQ1SLaID2&P>%Y6Ig=+u%EXh#Bh_wwo)$0$jQa6uv7Pa5HSIOtv0DIS`ZCcR!w znn3hm>JDP@=|l5A@)E4P=eGLhhj0JKYBU6edW6WRx-{OJs;r5Af@@kOkvsV8^{fRB z6yIcp2pd}A1o8zcZgP}6fmGPhVH|}@VEO8p{Hv8RcjRbMX_IHe3}^Y{8&cX9P!C%o z;&c^c?C+c?3|I@~Ay0)|yMYxBytCom`m}k2T4+#)f7T?cM!Cn=QqC;*DDJBTsx!$w z;i}Zva?iEgb0y`T&smBwxL+kv#uYY@G5WI1rHUGaz~zV=u0VAarHwmH;s&jh+-QxW z#;3Sq$!6W^f<4NH?<%U=Cbmebsf$(yxW?HpNzFp+0w-H5TDpQVTU5Mhl+!7o zirLxqgnBG`4TxSA7Fz5cTc1| zTu?nn6a@LAe3`$?RKv$|3Z>D5dX`O@7YN5MsZE!gt|4W@*1s*^aKQRdi^6M2!st}| zHU+Bx{dZf?T$$jWpwq-3k=S6`ajJ;Y)6~vV)tWr(M8=7E2_6RKQmW?{@)>tFd=pqi zQzto6poEre;#*8nFldOR0x4ix&{QJZ2r_Gaoa4OE{qv7TU*GUpzN+6yU8)Zn*Oy{b zs$+y$cwtlyblhe04Z+2)A{5m?H@KYV#)*=_x3JNFJU)c8?&6yk{?U?7s88oR*!m}M z#>UB=yC6Vq-Ko7UHPQ?LS&q9j&;t5btWFCl>4F)Hwx7e^I|who=}L%q#O#)vuljbr z#!iox+jLiZh%gG+X}&&Cv`5DYVia3^zk~=wpd?8*LLq&!p!{&q?Fa&$wd7HLNSy$SbZ}pk1Z3VnztSGfd=j!DF5mXetUhvb8(tw8SeMaO@Vm$783OI=G5@iw?DFnT@Sm=|J^vzhQ981EBqn z%kdiO>>V>aq)PZ8CxXBUv=eUIiGsAgWec|tEx;j7s;h){L4+h7=1|U8HBImL-!)!I zgS`FR;V1nH(>=hkUkl9ZhKsT1?tbH4cB%$<=2qtvud*qy#baZvFOT6^yzaR4C^ zYt@(PVB)^QYj2zQVG{WiIdG30Qu6{PmCr~f4RT~FA1V%`t?_1|GM%eK=83u6br^ze zTC?rW*@szH=%rE6@E$jd#4GL+&IQYRykH^YHzPxS-3G0uKFb^6^~5jC1mAF-=^R2# zI_A7Dcdwl>SD@ESwN?DPHW?kce+m@qGJ6Sg??luLmQ&k z%>0TL1$Falzz?D{1(@No&pEbVG|Vq%!o3F^cL^j?RrAa#A45cl;ne7dSxyZ&j4h)~ zU?7NA9Q}F#ls3ge&!|7XNe@89k-TFne#S_0$Q4DcH88DyUs-xdc!z4uSLYcT2@1I-K>Au*A@WF)vd1C4^SB3d#by+rm7X- zmtvgibk+uI9xa;NPy53?dvo8r$^673U#)$fS5mREv?cuhwDl#0SCd zL@CuB3P(7{>1=rPxf?L`u_jH0rgV;`OU&JNn8C+;n|1Rf^7-#@Ky7UN&2HZEriehe z`(^W!n)ORdyQMuzm9!Hl%2rIzNGmi{Z=470wDoCl_cj(xxj)Wm#KhagH<&GHtPD?} z(OgL(!XO;DT}g$ zZ(v^alc*&%SO`TZ@rJ~mD|ZSupwe$N2L5oARzI8+uY`HAxUTjnTt&q;x(ct`PWYKu zo__7gRTkQqz3{NsTF;cz%*fa4>+S;b0`Yh|++^3R7%!`Qy=!o;k8bsiu4&|vnDsxG zjA`JW;MEI^x4L`!;QRFZT9&7%2@YQ!DY_{|m9P?{1;*ne7)Pg5++D%MTi1RcreG$z zdyBGIr{~LjsD-X2l%K8p{jL6;{=LuII!D{Eycz_(y72!k?7>}PMNjUhcW#NX zqJ0|GC+r!}oeEwf%X}<4J7sZ`ZIB8rNTwOSosgV0tFrNdrCEteBGwQwA-qjN#HKxz z)G%14fnlr2zR>Op~f@yxSKz#MpmjqRQB16Fz4QoCAP&gGb$N4A&C zGdFukuR`1ipi6Ar5*;S<>Zmml5`>x!Z~^^Mrxm=Kf^e3FRF?ZGs90OZR1i1AIW)R>N7LXOYP{hFU5wfIoDEu6k#O{jF_pgeIiRaxcDau*o7}Nx9pt zCM;FTTyaj6VtHHqaR>uFR!3|fMv=hs!D&Y&R{x#l(oI-Bmt!9Bxc`|3`4&yj5!%^Z zRm(Rv+s}bMEOeJAiyu|rh!P*62GecnuzqXAcFe zu!lsYUOr52?DL@5HaVF&j4q(xA7>>WE>r5eUs2gTi=%(+iY#BRdQK94c(W8_Z=>pA zi}l1Xszy5t&wdPJEE1t|1VY!Mctf54TGyRjzr9Xh0@yz-C#SBQ*^Yi31ui+@`e2l) zIG~*>NM1%e0}f+|-5;qEgf+ycCRF8w5vJ4-rYq{N`#?2!qWUZJu`J(1XsfHh83x2z ztgRT{UJ}uBRTHXN_aM0w(3bw%5+wsS}}lzCWvm;~t>GVLa0`^X6&)i}#YT|Cip_p0*E( z1I7wWARXr*)w+IPhBGj!`Me?ErDg3{tO8KK-&Y-XWFOcq%Ata~8`aW|S-dwF>X_wo zJLQeFSY|TpqMpXl^`q(qB1HonB<{E6josd3N>|9P6$e)MFX7?TAdtbm&khX_9N*ed z4n~F2qJ=~Eu_YHy!1Qbo4*#X#SDH44F_JNnxmz}+5C;CR7O+35{J~ldkb;~f0aVGs zwB$$iLpc3KGSC;7HbxAhaIw zYGYlI1Yoy!{?HoHgSV7mgKTaoY*nz6a zvZTQC<|v(H0g>ke(B0-k@5@u?OaHKIm{0TRaO?r4aah$wP-{^r+}Q|JoT-(~=?p~w z&6{4TJjsZfn$9wjInVWM3v2YPeQx3d!)?Onx&z- zUP46VDmFUYndC69x8tHnodXHp8^^NM7mNPwx9*x6W3_v1#6uf4Bh9j+^}`y*OE*VL zUyPJThY!}mkt*!tj$BlV#FAWPSzMAIu+*I9nOY(QMphZhA+WYw#d=!x}|lJ7Al!imW5 zKw>bg7$BX5NF?NtZPlJb5t8W^EUipoz&Pt$Z#mRwM?S~aYwq&p<~dvlUo=8um8H{$ zupK||-Hu+g?Y+LL@8)TZUU3epWu4Pq?9|a)LTfZT6=1`R+V7e@xbmVo&`e2aAarwS z*54J{)DE!4GU2%o5}R`)2j-%y4>%XDT~B}+`2+lDDW`T9PL}KRQI-83m_A#*q&AEe z27!O1l~YUtIf_ogUJHLIYN)CuY=?(tVawp7aOfq$e9XM_3&x+EW#HKU zgrxul#DsXrQ40hp>EGC&MMnF%Rek-RxU_v=7>BdrbJ4~W>vok@8 zEz|JmQb+Nob|%uCE9R6FDg~V}5ntcg*LU{yo$ZZueP>_po&7ScX6Jry>k}b34%kT; z_s?djx*4z7z(a85E8Lq?<1Q??($4J~_i(!0t2{FJA{i!dpDRdLPypPjU z5K?l@?~TX|JRNKI;m?@ZIY-wrUS>LxpX8#E^`T8^dO%d`xbS{ChkHfu**RL|mh$aC zKZgk*%NK=mW2nFVVL-Z#3tIonan>J~hg~aJJ;2(bMTJff&RnT(CK z;9%B8g(ZXoi_A2QoLx8|sX)OyyKrC*l7e|H9Q+Y^2*}PCDIG97*gutU}hOQspQ#CX|&8(AgBfDOs|c*B#XUNv|v(CT(i?j4`7qX z&1A~nCgiFCfA#zQNZ^Wr=X;#k#Naj3uJ+QWO;)jY{1lW|Siy)gzUCOKXBMEe6FnM_ z4O7w17@o9Hc*(ptl9W@~^wC8AR!rq9#;VaO<$>inTf)mo=tZ3$9;IfFp>_M@igrhv zUwZifA1}=ImpoVyhgfqo#^j_WRe#{;iCjhEAdwR1Fy3#q>*&QnAZzewjsiViyE?0$ z3B^#rYLOTUWGo;-nh%aeq@0g6-8 zL2&{W`jh(~>s@c>h}`CcYz5Px(m0Cq)qVc9(BY5l0C&jsuM-MRAcM6{0TK9)f!-fw zhiwSM&aMo$1EcN6JPSRzX6%}8Z0d2}-_#!F+3CAJ1SnD(Am}m5&1=1CT(NCnZ5od_Ruh21TZvqIck)rFDE3esyILggF7ce$vHdeQ~S z^x)F9-BU}ZZj+E0)yxI-uMLM2zS9Hia@mFhBweYE(J#v48Jv$N7)wHMOwnvLhc%Oe zp89TT0jV`(3(JLhrINO-#>;{tVmxL1yL>`%DHL!fOZUi{O$&)q=BN2oigj$c(HJfAG-92r4xo&+ll{kqf2t_wi~G^wb6BUx*Lo1^0iu? zf1F-ODm|-gD8#Rel2No8>++Rb4@h|IVOEfeVpqeS&I@{mqesM;fN7hYW=GRn~c-o$7<>zT%d_0uyAoKv~v9~sU&E`e)+O7F~-I}8-`v>xBZuR_B^KEYZ7^UTb z%YBqmHlyQoGHGowB8$|&IQLRLSB~{+RD|4r3;1x?h&qwuuflmR={({rwQDS zhuMPg_L(1o-L2L*rM7}N0zoVmunwob9uD7-?MU;%<&z!-vK=XC?UEkRYS=FaKH3&t z%ZgZOx7*YOq#-CvTBT|MDuBzD1Z?LZ?d4s%goI01BR9aRxs}xZ)YGY7f$U1L`(TvL z@FLlXCNc1`7AS*Oox@YwfWxd|052bcxoYA-;R?WmrPx2h4{-nZBzm<`<2j*rLoY8& z7t(X?+Ic>!_~m5+ThiIJ@6`7hTnVY%R6CvhESq(jSC;33`Hir)?wy)f&0seMF@rDlQxfJQ-- zS%3g%Gm~{CdF7fM(e-pcqvr{olNlKcTwhqeO0#mz-iN%|; zdD@5rt|=Cooo@YB;w0j_wF~jg z5|S+%Y4HZ;vzmb9NJiQ!u!4YeEg8`+TuVk_$q3iRNJi9i1<}ZXV(R3qDjGT9ErZqHRPalq74Wai*T*t&$gn z&19Sovr86*ew}Ai-z7R6Cs2BGh0bC;5Aqp%rn^?X3blB6ChBXancGwoOc~DCqj}OT zmmNt*F^HcJOWI=(5D>4r_cqr;?1>3!0fP!=e5v;hseSi07j{EBnbVut{=7O3PW<>c;on z(YMxgB^=AuWX(;FA4tMnBfv28NQRlN}MLg zbL34XXAZHr0H$ZmmvaCDnj7<{(};~rKdw}AK9F9q5u;?Kz) zWG@XF(RS|jlE3aY;MC}gp^>Xc@w$)etNLg7Ws5XgbtePod<8uY=-Gt|*Vddco#KF= z(W$*x!aZXsKrU|+UqFJ!CX5mx5O-Hy;N5A5o@khUu#1CBZ3P~4tpxn>f#pz({}T*> zaiLiS3ao1gp{>=OM&0cEwK11gJ!14=Oi`pc~2-9Gd)IK30 z=IwTlx`ubfsM8rG8+{Wgg2Pt`a6CsrvX>09Vnj9~tsmhRYN3n;l`TV6 zMzp0Mb4as%07@!!gUvHZ`TWf4lY2qmegv@%DV;wBaxQqScL=@hP4O4Q4~iuK4II{G zZ`Bdjfx6(o;SQ~`JMf-JS|I|kbQ$8}HFoRXC9=NPt_HF60YUn!WjowyDp*|aacAis zTm4X~TH&37c9T349b=`J1n?f9wK$#U8Er>I~#I0)11CislQ)dBI#^aGZV^ zV2~291M~=9BRgzafYx3X+P0zW1VsASmH}KA&GY?^*|58MD<;tlzE}=#rlA5QW^9`&JNF(&a0U)xe+m@%%WM zlvS1QtK=DRJ_Xa<-jc5Ahc;bJ$_}+2yU82k*tXThUoBat02@=NI7VQbgckEEZrPXQ?LHCcR>nO_aax4mZjQ{0kwp#-HOppkkf)c_oVrSs~fWEL= z8Kxt2-EqwY7QWEXR@kYZ7Bv%FgD19YadSbn#SrO-hk>ag9mQ3CnG~P{lcFy5Ww+2& zK&{+I1{P21HvZ$^OcBV=s&M!C1;kx$<3FJb$k{$zbz3L%Xqx05b)yOnei>UzRo0(-+ZQW(A4*~->C*p3@gAgwsaK=Un(P$f!l zN-p`@Jx`Y@nsb5p3T5OeU3Dm~rpMVB{#zM_j`>M;e#+nFlWdfyCM`);^iR~cl#~QN zZ9GK)Poe+Xxn>;U2YmmI(eZu!$9AWq1nDWcxs;ee%S|Zd6&G>u6Epjfz*u~#4Aq3Y z9Z>g@Z_?0%U|Hh#O?}tbq0##OioN&tpwS-m-rHN$-}tNR{@Q2#Df&O5C^_xc4Av*0 zq>2U4oG$zldgDL+S^2U&$)9MD>P-^m8@N zhaiztEmZtMosLks=X8?K(sBN8aX#RJj0is+&M*V?fu{3MLWdf?)}*L9EJKQ_PnX}I zYozepdYSgC?V8R!o~?^a`QAZ>^|s_SP_4Y3mbMtoFKEa2SQ_YEjwub_X8ZH$)M8Zo zr|MwiSYx~h*0&PO3c+E`DeTlZo6Rs92`vk0l@Ga@`g%p~_L7I%d!vWi>;72e!*Z1E z?T^dhyR|Q#Dw5ly=#dM_zqBe9j%XoUQXn^8g8aBcw=?>`|KBhF_y0}a&+GIz%6>`l zhcF2Wfb$_g!FrmJyA7~0+PkfujPjD`piQ1oMRcImR>tdywMd|}!))fQ&}Hsuq{x@< z$Owjek#lEMuVL9dFTN$6~3p-$R2g@3v5W-IYpxa6Jhn!lc zl>w*LubyBuY%B_NY&IHsl&<^p8uWyadU|D-q<*2pZBQlnFG=cRsY}|A+u2VAK<}td zXJfu`%u8Bkek>667Y{7?S$F;#6xGM@{|}PxZT%(6^lLgljK)&`zP>FJ@{m-~6RO=K z&>^g&PNKyR2i^Kw!W7hp=z&+#FkQZihgZqXzufF4H^0XJJc9ppZo)?2?A+uk88?3( z+(enk7NHeDfRlraRRRmGCMA1D{Qd2BFB9_Huwr*r2m8@RA~7vI(8QEga7m*-;@eXG zwkxWe#tI@OHpQ2X>1Z8}_Y5w@e1A%pBc?Rn**nVi%#C+EJF5Eo*~U>lvij{2ISt{` zz$#c$RbDBi=zgnCkB_t2^t5MVj$Vv~}%7SKBFOfgi0t>-Z1^bn16^WxWeiH~XN47O)~KJ#r=boqam!V0BT^37?H z6;%h98o2g2vsQ*%>{A0=q5_~+8|m?WemF1Z)jDt`m?>av(k)UU@@aCj%8v8(X~ym? zaQ=az3}-hND@Wg?!*_tjJ7?#U{cM=xuEHX{DA4N+j{36?lQ96A!dd%kj}`-DIZ!S^ zqJNi^b8Udcm2uaByvk{@hvhLjU2!(boiDaF@0jUhTFLuWHY70!e_GRVKiKlCc+0QW z_?$qqyLY3_?%rLqVnmV1b`YuifXi?`&4Fy;Hcn^NQ3f|z7|7!F{0Sd`K!>3C2fA!% z;-}>t(}K*$KqTW6bgw6psjn2d!J_F}0sP-@-X!lc^d?cO_WBf-{cqFqedZGppnFml z@5(-`^9FFD8DYP!X#Psch)ilNWkf}nZACQIR!8omEl%;Io9H(b^ev$z%+ZQ4>4uDH#^xD{8K^W~CX>^+XJ*|E$ zWWD|lyWa;EGE*ImU;g8|;Ocbi$prClR5fgme(o8&;hs@H-nYT)>=5|IKyz06#`_sB zyZ?j#`4j%9kN^1{|MM9CbL*x){Wovp7hU|%8vbVo|Fet#`AyjT$D8);_#aBnyq4Y0 z&bS<<)sbOQ{Fx5@TAj3imi9mI{_OSmnY#SE)=1$p>RFT}pFSBRQdQNSI;~D19{v3D zpZ?NmPm@6#!Qy#f-R8-$nLG8-Sh3SOBbUpp4odJL?^wPEeARtubJ}4A~i9r6Y@4OZJ=?X9qK4 zcvGxUlT`UABin)arC{1I^aeo@q?S`}f+9Rxu}IZXIhF7@4HTJ3P${UBnBv65)X3W% zDr*cx!L+zJh=L$xL+=d69G@l>XGn=DIV{H={SzDjz#wjfV6@bubr{+DShRZEox~lB zLa;#27bq=H9JXHKut9TW6R5eibdm&qfiLPu#qI`NbZ@2&Kh!z>?D6Fp&CJqGTNI8`Yg{mmDg4KcTdw%{(+OB(4T`y z>^(YUZVu1~Q?tVHKZ2o-)3G*f!Q0mDY<^Wc z;9u3612Wy6&X@RT2<@?k&nD)ZG;nGWBVUqIu(cV9RMO+CQ%I}3R1vjcPe;zC4cm_T zg0rOlDu{_@1H=V3lIQkjWySk^T1wtzIv_v|>-7U7)JzVB?pSb4XIV8#hZ#P4;uc_5 zxvvcNYJE_wS2ly@rD8PmX?9Rz!m2x4q}%^6ffa*~TlWETsyz7Y&0S81=AT@K@bqX} z9%sn`9!4Z~81oodWJS zo3(z?+js@j3cLo9VYd`_yOglfz!{*}&@D@Z_+tZ?i-7Uhu&|cfW`ShrQJv9Ktk7 zA$RBXL^eAe=M_-hUOC;92jLvHdv9I=kGWFL2}_c$UZo{S7yB%vAVt+p-DAYtrf=hW znFqikUj^VI$Tu^vqQGijr+D#TE1a??pkzhV^>E18@Em>0=StJzJsAjbJIX1Az%qI9eD%ny=6?L+t%lcJB7PbxVyW% zd*SZx?ohb9yF=kl;qLD4?heg9@4e~sCj0DrlRi7$C+Wp{zN`=y8RP$(&yZ)%@fdFd z*y(Qy`@QJFk!_5Eo&ZlbSbr;<{YN4ZmcK?k4;pGkZE7YEty~^0cqLRH_!|k9@%J$j zS;+M%phDjcJ+k@VlKOeSF<-aC1^nqYOm^)B5H4PCJ-KRgVdI{u4r54VtlxG|lM@a7 ztL)J+1aZE>oqNdsKwj>>aT>-g+A9y0#fCX#%TyY0xZVq-2;a=sH(=m0>>se?0iFk% zxCqXHIE98OU7>?#=}bxNb^74Sj`{(OI5~gm=J#{7k56N&6|o=DBa!)cJzkMB$E&Op zMdDagQU#E*A=_e6L5>es51&dXknz$1JZ=sWLlqgI>eD zO%u=>00`c{bp_7!2p-^sj`rrvqWANlp<%t6?O^3f7Pet;$t4<+T{xJ&zNjh zae(2?bB6UGMhERYt(nqWG82GFbNwie-_aohcMBNLBE;~P6Uvo(Jj=38`6e6h7r`us z4oQ`s&=ZMfzrxf)rJpW?7y>2nE|8U~=x7zX1b zdv#`T;GO_#KsTowz!g1K^yfzrNvmzqpf4%*Pbwbec|sml&zo{SH};V|dYEj2vB2SE zgN(c@*c}G3DPIc&(PWQHDHtAhoxSm0PVFv4xMp6;#W&!Ayg za3!pdWF7DaC0p~SJOI*@WS!S#^=7GXtAXhf!b1Gf{zRW=ln*29_~-{rO`ax9Q~7@F zL5Vn_(zui)zJRm<>gfvS=b1Fq95F5w5n`thuqxTwheUXCi=_84#dMAWsv5SL_Xy_DM|z$pUJQkEGygA7WYm9b(U*e znnHp!A4nb?GTtIKH-f7H=_mSut)}-E1?;TG%b2J5IZ5jI1&t1a!KI|A0cJmVG#cg! zcl;FTzti%G!&1>%93l?5)8YMqF9l8q9R`b)E}p9|D>DMD{>P7A)??^t7tfco6 zKPM>w<`b^ch-U0NkkxUnfsZDx^&1c(0d≫Ipkp6*Q)A_dps3Wb&gCM|RP0(>^Dg z)BbCHfW*rWwN@dE!yVfo4)(RKe0yL_GMo(RD|_+Y+AzEBuFgzs!-qbsHTxcDqpku9 zZjV(nMDeVJktH*HeM%bR)rOC^^Zf8{D|Cf$8Vp8_+@;|kz2eu@;U2YQ;B zYe3bVP_PD^7m{^8#>K5OnP4h511%1q#Nq|z;I({ijHOxPY}LTE?gIi%pB-~MtBzgu z#BIL00BCM$UOL{%6TvdDJnRYh2;|PLir>Eu4IK;Vi`}Jr<%4vIMu0;5xT=KR0lcn6 zm~2FXWSh%(*2<3zNFOKh23NV!@gpBdbIddX7~me)R@>wXo}4Uek}&k1(x0lb!3f)Z zAx+!@YTnOHpJLJf0cg%Q8?xjx@zHoN5(t}_jC~) zp!<-SO6hFM%k{PK<;9GB(5WEYW)W(pfYzIa!@X92hmk&OQzO{bOBLz4#CFf86y(!A ze=l9iCh^SoqY)kOT<226dM#IWcT0b@V=k_EhtQBx?Hy)uz znoSV>75Q)Bp6o(YV7qqA>n+dk40?_TfqJ(^z#xR5ooF{AZDC0>KJ9?)Z}7q#^}nM7 zr?MhOyhaXr)8I;}aQ1oRG5i{Y#B;z|#B!%J3&RG*peG8b{NEhISe5||SZ!xAh`x@b zY1Y7`t3R@d9lxJC+%Uyx7&|4MbyQGgo*`HD>H+tp?~a5Kb2K21{zPE?RXH+Jqb=iz z{JUn)Ap?!YW&Xg#LB6coaN++hPZH8KeW&i# zv*(u2g>xwbGLvUZv`%rE%FFfMRO_&SONGU?mnTcl#Tb?LD~1roMT09S)mz?{+1$^c zMt3zol>Lz@Y_%z)=q{GO0Jolg@%*{DQRm!bh5gFi1tjB6QJY6L>};>dUKVZ6`BQ`Q z;a7Z7Wt4;fArV0?KpH+ZrRv9}%VCRbOagU3d(*V|7^w5Z&*kORbvLQoTmRtXI#yx5 zo#>NkBPKdnh2?G>QQk;`H49^Fc@slv<0WfPphGLCyo#SboNBnN08c?NELs6Ms0F8U zk7h(<-Y0e_5=5C`IsCq~awEiXN6rAs+HsX`c(?H-J=sLKwMg_phPB`y*t%VnB)nO* zJ;!j0f{JjU`40MaKmzD}Z*$p23+f1-3uqQ91I*~12iG-aw@?UtuvKb>xq;4Q!PNF@ zJ6XN=6&8xlT28Oeh76r&CF3%aCarCdCx-AhpzFV0Lr^g>l)tu6Pz%7fZ$}uV<)Uv5 zkweWTCM^#~fYgtcA=+H{wF#2rPMUpZ*Iob+MVT$!!m+WnEG5Msu3JeYZQ!Tt3`eEj zOuSRpK|N#!nMBS9aPNGroJy(Y* zOn}J+K3tTe6DkL@1C3#Vh+qaT9Rq6xp!=+9z(N`@8r~pd1g>PvktT67OmY_y5tVbm z#vJ~AlWG$_9&3=+z2F^-5Q%j)t2(KD{07KsL%*yxz2)O)1}(aB)z8h2xM z7t<0|K2VZl3n`ngO0sqmf#>RaP5KT=jv%D-{L%)Ee^6yuEb*s^G^g>zOu+u#u1nl? zIx&W!VOOYS!B~vduyQE)USqY(q{?TP*LYLQosQ9V>#4UqnUh9(*X3c?d;f6JOJ#Xo z|9!Bcz+R-%vOau8d_~>-?K7Z*n&Au@C`Lpi(P>;+CKP+ zV&brQU%csb&3vnx+IWO=W#0pB^)Wkg`N4JoZM{ zq}vi{j_N3wx*t)lSXT$|6**oQv;-1(skc9zF5qQ2ze8|9IWd#)Rp}mp_*PBBI&lSH zYknl4oU-q#lcm6IAO= z4qDONpwr-x-Vw6=VqEKUe6g;1X?VPijFaLHSIsJ`)}TYTqMrL>TKLW5X#rxS$mViY zKeIHtV^Fqp<8}M^G2l|?<14A`o+aJ%x_xiD5Uv>$19^E{{wP;{o$R{3hil&Ew8~u| z?r|5`=R?K~#6E9T+txH}T}*~*H-K(+5$2HU=IqLvXq9alwjNPBXhViM=+^(KlRkJH z*oSSNSnq&?9HQB@0cTMTvF+Xq(RnZuv7p9H_+qTLc=D;c>CZ_&}oC;DP2x~vfRE)BQEGiYfO3p`B$F#h;y37P zII{cY4qibZgX@p$I$ob^UGzYXTy#=}V!RU~dy{&yiJyz23C0I`;(pySd&96UJ86!l z(^%oIHx^>N3}q;(7MXF0sTSl2{XedH$f&|wYKS)cSrBnyD(Yt&T=RTxc@n`kI@gqx$s zmi(0D2AnMi2+Kph{ggs;U(i3iYE68s9S``ttL?oXpH*IYHYoe0yDk?_h;xPJPCHCU zc6uRwv(3wgu*6Fzcy}z;P$KgD9R_4MCZJbWdR_l+g?mQM)Kt2?6cA9)dOX;up_EO7 zv$SIecNC0h@ELpUDKDyHZir=MS=;IOg0alq?=?>2HQl(ByO$LOCHq!hl(0HyF&CQG zSNQXcL36{$JtQTdd>N{^fy|r;bv^qHbTG4FmhS;HSI@aT)$*f=Mzr9UFC%mz))#-nhkV8^1T7~|a*q&8}fx9w& z6n6mZ#BkY2A-wl>ytyb^cNrsEf9j|fLGfv|eL4T_Uk zv4cF)*(Lb>6ljR}a7&eO%YCuG43N&GAGI}f9$-N! ztsFYj5D1jfv5KW3Y*wmF_s7KsS}+j_L8|I7$jwKRLhBh_L00ftzIU~g?{Cyp4(Oxj z4;Uak4HXGSzdga{D6hj5xTk7&3?KSvrqf{^WY^a!Mtrv8tdL$^E{f#Bsfq7wAOA5~u@iWI4A`w#fIk%dg3)2C5 zH@3OWwr)O&5Nwx8*N~_Q$d|p3jpJ6dq`!)@TN#f?xcc+6w@D)dJomvFq#M2f8@~OP zH8%^h9G3v!+|4(`IgUQ?Oi4r~Fk?cu2Fq~ZpC}W zB*WaUx-)$z*T{s;Dr4-0VWUcXj#e)19Ny4S;!w1UKS$4Yh;un)H@fs zrM8a$j%>w6g|#foY9`agSQD!n7!byQjMkDC!)*;^oExLvwKcYyQ`EEnYk}t^p@wEy z{0K#Sa?Cn1M?1M8V2_@ylU~+0x4h2XT3l!Zv|VS2>nH^95g(f3Ogp4OEWu`*xxkL) zJ0v-n<-sI62FfjdkX=+2ZQd*}hcSqsi0z2cH@j6kL6QyBv#qHb&1&WH^-4j(&Lvg2tjN^U zL1Uji_a)SCFo*lc>uc)iG;AkI4-9P@>Nt+q`s-McFbh$G&FO4IM@v(s<%=&u=l5Q> z3Z<4xOm(&THd&r8(1-NQw0R7=_xvVEXq430VZ%4B(l>LdrTisR*s! z0Z|D{1Az~okO)G%gYr@$sAU@)33xC@V?vt|u#BgZfYDXnoa64cW|M*+658ECSAbEx*JQk6Lq6dxB&^= z3fdu)Dk{4ha$%$N^KLrza`{LQTkS{?Tzr3R&e(pd zi7y%2WJ6SbquLP;j^fv25~=)jKe!BF))~e}5M3iL`c``P7C!)tSAkn+>x_b3rXMaz zWKOSg@Ahi}IxN_F%>$Kzha+$zQWYGStFS3il<57QLfO=qbrWwYt4U@vFvhbFKp9kV zNvUTuHPiD#I6qXVtj?ly`!2@erItQA2UM0wsAo@nB9Khr{LBiHPWYwaHH&y-Zf^~~ z6tqqZkmuw##uFRQLW;Ivm+TRo8znNx!=zKhRw4!?B~ujOkbvC#JpbY(^wzCNJqgUD zbUtHbV+z*Nc>S;m1ggn!6og5-h`qw}Ew|)Qvq~%4xcL$oTxr$&@5XUwQFxY@G@(^p z2Ko^%zP9(ScT00ou28(g%RLaY3mhG+F zG$X96lrfuAzwDG3kuHbSz?*JL=~cF$LqI?kGKG0QQSQ?%utr)-LG;IAp`0%r zj;_mb4XC(^rx?EtM@Er9X@s)A^84&$%N7JicoG(4YSt*f%U~mmI!O)O?q+iacq_`9 z_;kROpBnM+YE*N(^`oxjU2=$G4(CT7jpeWVGtFEijR?M95Qm;29-?Q1Mk2J8i6M9L zd!m-Evd7x$n+1kdG`Y&A_I9%e$E*xDj?>anx+p4zWfbmNKnTjGx_xA2L)?ea_0M^- zig1dsR-GTYD?@P&tZ4YVHKr|$%EGY%t91WrmW#8Thm#U7CuzI`S(lGPl^wu-K7nOG zO241;98`2%-3$WEz|@A}Chx^*RATL$((1MRmPTr$PO8IO2rTnWa^rlr!P!dO#&E)pJ|NnRdHKX~ggc7sY^)`|^9Ee$h_b zkJ7v=#GQupPhK54*IjQos-K93tWvvJMfZ`yTAkUUjxZg;pBg_Rq3Wklfkemnzf*)t zt4h7qQMty?Nx(t1B!s{q{xVFL;J`n%Zj^ysOp247j-IKoiYN%7oyMHwL?^G{S1&^= z0;QA{A7$zDGCdRTU)UZzPu|5q)C7Ukg59{FvoL=E8PV{Mp18>_W)D;Oe2R;wJ6c^7*iAYenu6K<}$T2y1QF>wp2n5}Yza1({TO3$EroGFF)r zoRDxd>V1wDcWIlTn%F3!!;|k_rGlZ@h%-HgD)?>tJlFUUIm#wue|t~wIxHa5J_*}T zPEjP1m$!T5-mY2J4Z1OUFq6ZeRAxZu)F8}zM~?vT0_zpPIsnA~-KfDRr1<&$c1l7o8kKMKuJ`OT4-7bHIAtEZF)9 z^Wf;LwEg0GT`d<~-hAj{)g*3J^iIs)n`L;NL2Uz=gcs;+t#ZpxwFlipJ@G#L<>L z)vBc_UUq~zo`a;wO0tx=>Sh7>uKZP+#a&TwGOI^g799LQUeVhOdGqPrDE7n1R^7Mg z&A#9zA@N~guANxTMe9K+8T>G4f6SH|6LAec$yks>dPT6Ex>I-ohITXhu7|Ow5S+^Q zD4NM!kH(%wED$L<@v!i|WE8FfkFvV)(mt<|GCBp}#aM>;Tz+rg7YpT&q&z7hKT@5p z(7o6tT`nlco2oUJt9HW^dQH{D#n&u)c&ixOFE*Ldbc)IhL(PII{;P;?(|S%t#!gJ4 zm2GZpGT9)yv#LX1G=qn`Wv0Y^VeF{c9iV;q_P{)jhQ3ohnl*=;j?@18K`qWj z`*#`1=b3H`a9dN=@b-YW6VTlYVr~iNmOB6;uPS6GJ;bXeHE*Fv7_5G?&!2wa4Xko5v974un(0Ps{YZ966C)yYuEe!itn z@(fNSI#c}ey(`NjjOvzlkVUM9H}i2#+Qj;_#Lo%7%~@N`MFXV$^+&J5~AW5`^M=M{ebmv+J@-a|zOfaVSU8@OVwdl8j+@l4*gOdW+>S+8KA({Qk>! zZ3|$J@--+Ki4c%`I|)Em1JOlYQXiU%WL|?mUr&fe2K8(kWjink&;%_GfNcKK#AsD2 zM!OsrCK`?F$&eE5FDlKRx+vUS>mXG{khWh4I^x}hv#piNTn9w7AE=o^8&B$U#t(rz z9`W{<2~x2VO#Zw@vQ>}j7}6dV^Qf4e#7s0kjJ%BM!r(%>iSU}2v{z10 zW7ymx-4OY8!L?%xhVxsz&-h4oZ0wgzdE*8(-EQEZklMOfU%?=GYyWKexI*e6<@S~l zZtcD~Y?`R_0~JbGZCfDAkDpX>*V zljO2O(d&k%0dNLtxI@gm(;gUcMYHg{JE*(9+u;xkpy32E5<>J(kejn{If2=%V5Cl_ zH-e=~7rQ`-W*Nl*Wu3pzUI^W3cNgp7j%t1?mTFe^xWQ~cPy#Jg?_d{m@dnaO z(l$4X6WwG$?G1-0_6~&FH*rNh@S_-{fwt4eU8+sRe)_qwTcFr8%J>7;if#J`)T+2!!Z&<5>`CW-U9LpR zLs(Raji;&l`J7brBLB5x@_lL90BpL+KjRXy*wMZ3RY0hsf+4uRWXiA@eQd2z&e`Ok)8;F^e@O&RtRtEWGUe zBctTJXk5*LxNk4)B@2-vp|iHx1*&~0rW}CR*aoi9Fg(w4NQ~Y}@_m8HtfO{Xy|Q=O zF=Df35X<&&Xb2V1N&YFiS+WSfdCx3G`q?lJCdq9sx@d=AP<`GrFhNC;q3KcfI?=Ik zk6SbV+a`Gm_#45_0stgtaQoWx=7YNQCM-r=aoRr%GjxNW@9j4r)IE`Ah1`P@RN}OG z$nnqP2;;I9CniqVBjOdkFOYd5-&`*@^R{jqAM7IBaUWK>PBqO}4)>>9zCw7YHVZbj z5Tj7LXyW5OT%a}cb>vFoaA)H@wV-&ijR`RuRsv`?2?cQ;%?z*lYXB$xvNa>ks}v+D zOw;3{A;i;5h}woQ=U%x2G&dM81Uchq%7$XYCR@yDnvL=DdC+zQ@7!3~lch!bqU|AI zf|GW1-Vv-9_l$4&B>Q7Ir?eo1a6B;0S$>vJkq#-+3yx&%=%v9zXz^FmRhZ1YNvM5F1L^ngZT>?}2a3)JU_z_Q7q2Qr6q`6a2v_uc#Mc*M1HDwX~Dce2LSQ#gR z4H-7A1heB~8mYa*a=Z=gOO65bN7hrpymA8)>eh5>^U7f==t+SGFd`yi93>fy&tma* zlww}v)UjlqTWrM{&~$bu6hVZsaEtxdy5b(O#||91*l_=6dz!{NTCKkIYlH-_=P(H-|p{N zPmmirTNa=A2L5mNM7mYujDZ$K*kVB~DpFX)!u3T<)oKyFhGY*BCk}BQQiSk|BDV&J zdib$J@kN=%0OksNAOJt*Anbvap53CdNquc`y{v;Drb*WL(?^EDBS_P}1>)8}24{<* zQ#kV4XCca6R3Wxs=XUFhxqm-K7kDs!-Rd3NW=!?*${N4IH^{4ugAs~|D+s^ga-TFM z9wyTfW)%mA-+Kb{0rr+>hZHAy8h%G`NQk)$0*mOalbkk9Vtip&7*5$9Dj%IgJKzJU zY&$MVfegX6r?_`zlA#43N~2MOFd^a`#0GT9^|Dw*0yAgqmivLm*Ll$DUh<-Izv3TN zaOEm5>G2WZ9@UgTHMS!&wBD8#>iHvl2~7dDl~ZB#Cs|SSuGy&;_}S}F+3{jL8cb*2 zD+bd7A}|*M7N5;2rhrgD^0seq$`*ehqggj%ku=kDrvV9_T_tMJ_rVvAs_>k~oLvZD z6Fk&NpyX7&$_n!RHSh4p(A8IwPQkDuwn^A@&kR2usJkA2swodL*{!dA2*KQ6{qrf_ ztoFdC`h#9uiq@b#tQ?r#j!X=S95D0}6rdZQLtR*!wW(d8VcH{6K$>hOKV)EF$7%KQ z_<{;Slft3}GN&aid#_^2-(Qp7d`hZhl|v?A@8s5h=B;Jm;h~AFftmoT6i&+r+KZMh z3Lj;IOrqgCWyx-dMxSX6%#2>Gtg&{|OR?)vY$vzYrE{;pK6ZgkK4`;qdbd7CUUpsl za&Qt(zJvLA+P_5$!0TG~c>$3u9T2{;=izUxDTY3KW7|S>MtN4%uDmg(yUGkFKb@Us zFs-Ws_H7p0vip6EPh$+xBxD?Ql*wXSLB?&FP|Dynl^krYsl`sSum%&#u+OfX(7x2Q zvNBXpwL!7|uy~cUuxIIJBTp2$X%9@Yi+u5crViu|I=Jr!8TkbE)8cCT_kHv8uOAVd zggA}wB<>I@Ip^(LE5OB4JoDF98m6ZQNUpl zjWT9yCh~K(OwOr8p+L9MEIy&+3j@rcTNlBhIKN=cf(1^S#hz~5qp$MKG7?4tu20X zz)1_p3r58G-JvIC0S^%hyQdSf1aQGvNgx19CJ?*?sM3zNY?j&!Z1z}FSILtC*GOn1 zx0p(%;xbk0e;VDVM2{|o%BN{k>pL)PNZ|BH0)6l!?!`5+fAW4HNs-K!Oat>cbG6 zE=A3Hr;}ABL17b`YcDPPo~rfzfv=-fW)jPLdL;HFZ>0c}CBsLXzhNPIX>z2x)JuSw zAyLovB922~^(wz}x8!yWCnJ7RF#hVFNb75eZ#-wGFY;Wu7c)c^4w?XaC0_Z34eRv# z@fCy{l$YBW1%uvL`hBIcUpt56WO8^}zJW4E6la@Tz2TVyi){yI*q6t>GhSl?fQ$M% zh|!7}FG-hlqDRG*u10RnvWw3-sxod};~06AW7&xJ@Ym28LQ37v)1j9KM%Q!pL@!Ry zA*EnMl_|MXbqw)SFG;_o?aF=Py9w`6YOIP;;|ArDOWV(xF!u0o>njfcgOZNnE*7j$ zHWU{&3l~Uh;NQb}g5(c3{B&15J=~atWieg$h$J&zNz-Yuo~D+oG)&{j{nUBC0TmSL z;3~skumPu&SH)9`rbbio1s=Kj2O!f4gh#_1fYKVT9?-C3htOB%(oM1>`uwJPw$hoK zdYU&dHI&J^Eer{VNo!*wUcu4aC?mpWPm{sb2@c>_R$|NVk=%I53=a9`&^(Ac zhcMufdC@GbIuwZKh+8>pL-8GFvDUg8uONozj z!->j|$dmMK3`eWhII&Orxh;1tf=IL>9?ANRJ9h5=0uQ1vRVm+}{PjBI`$?AjIj=3x ztKQ`Otn4QK)#xY9hbvnm1ZBMV`swm-Fz5nx5AzF0L-P2@zF-WqR!SYSSBI9f-Bt!m z#F}N^d844gK1WTES>YbYtXF|rc1l@zWE#?I7oe}(&DDH6VTsY8beTrM-rphCuSFI`S%ms>ohjrE3sQ;;K&SJDef=N)uTs>T~t zj__8>n@>FLfvqndR&fIyFz?{wT^x^APaJbMHF%Q zMSuGQLCyZ*3)`yl?JV5RlqoR{3GAVW7$|$bY^e8YXQ86v%NUUhO)dplA+A;3ZA zgmsu|)qW>jEnBMq(02VYx3yDVrR422g?pyZ>yD?h-=z|Nbw!+PjiXMatm$X;QfOJ- zpd%l%>7<8)OQrp4m^KB$N%7r5{FsO#^iDOx6XjIlvd04(XIk!2(02i zvQELH&*gyo7=o6f2WRc|%Z6lQ;qXas81GKW=Jz9+ytJbacJr!bl3iF>*~vC!rMt4S ztfNkLjpNfUv&Sa}von)nS17xcB)xti9hhk;rlk038AY2#m0q`(m5(|=vehTyVkmJ=8j0X;W ztorvU*eD%{sBrBxa(a*$5pd;c(-sEK_NdCbNp8RD>BMM#)~lRSPj@>oQ}Z+q%5siX zUC$iU4hupPWW9zP z5z8!S@qaQ6fW((={+CT+X6?uZ`-eqFzAWMaSE>4kMgFx-PV6rRSf#;uJk;9Y6;&aOnnx=jW`%$ylK55n#p|C?qr<3PKMht~z&f!I+YZ(6Segtu>1ljWR8zn!IoKN3zFhIBdaW-Km5bV_MnVgq9XHR+glr% z5ds9yvVj3wYnJXEoi*y^4z5aV-c3H~vo0&p@hG5fccRngxtdzG46^YdxI*nZNRg-w zrx3AM3y_nO?!ljRX#4niC~@D(l-FyNm_T8evENGl?Ali>4|{=_Ft*QbAgy}A5n_59 ze}XnWTWXCetU>jHvC*^J#sGS_xJn*G&+AJhySx7{qqIvZ-7Nu&%pFgV3C#| z{(=R*s!r1MrK9k^N;RL2*q*N3WV29ld?DfhC$&Q9sJiu2|L`>o=tWUK7g zRs0B~86|e1c>%|M7Cc*ZN9=c(1as>r&_}PDYy~JDknzOXn5YO+!Potp&$uT3`3W0N zYUHpU=U{^QlF5&ftg*2xQ+v8Su>7;{4_+7LDH@+P>74pMo6TmS^jArFA^HpV)lV@XJL(tdGL7dsTn>5L1PLeI|&f06i8u_0SnHM?~h$l}d1b>F| zO-x4*3WA!o0co=Q; zy?)IVc`bP2?=pN#tyc1zCQNTPaM@?{he;W{C@w0b?0|7mu9S_9U0u?8MX063*VJN@ zx0MI3UHcP_sJwi&01|tzsBw@-i&^R{prc{_x)!jXgc!9T4hZFNrA!9#DZK>h0Q0(a zeFaO=M9*uJdanr$!t%(bVjkM{zgu@IT{b-7r@7l?)4pPh|Ws8gc?L0fKdP$XK;(<-A6aTqa4MedN2 z@?=5J4G3sZPJR>J$C~wM?mUgS|D`cTa`rT>&cV-Xk2+9(L7J0{L>eqUn zsT^>ZU~aY#m@FNG7Z1&Yl}2Hc!=+BrYn$};Ipk3-IjJt{m_(rrrjSxWiY)r)W?}N=wX6x995t$(UInmb^8pk z+_G~-!SJ3Bwsm4zIr=gLA9g3uD!x|9+*i!RNU*kO9JY6Eu z7Jr2E{y_xVirVf$(vjkIu;rCC+3?LUmFSEaO8YGe$?Lla!9?Q)GpcK3 zS4ejFm4#Iw+#e`#Mn<4Xexcy>mnazgttk9UU;ihvp#1M=L0ZrDPe72C=a&5ggm+47 z%h{MPcKqp}NYGydLTh^(Kb)*aoo56RKPR5Qqoht;uD`Mw{ZNLXSn_LHlC0XJ{YIC2 zJ7Y=*e$<)H*o1=}0epe|d2JiZpF;18SIJC6RCXwF?&cGwtqo7njLQW-3rgSx?okR} z8VyU`mx*?|*9Ux%%IO`vO0zP_4$1?PM2;QNwoYF2W&Y|%{b`%^Iq_X=wA z>Pig>kvHfC9fW_Gju&kv7f%_V!Aaf7ew`tYR)8XK-Z-8*J4`-GBO&|e8(~19M3u@F z$787j%QMgzmHBRef1VMefeB*-6juAd=Sgy{quJ=kKk6x?Ei|;WUt%ZwOR?+ztz!Rk zXZ~NM|0Cg-*86{pa{pZZv67dR4Wxtbd{iB?Gtvq*nQIQ2w~YxLg1pT@TG`R%NNql^Vbj~W5KA#FnLh|*hfL;T}00dgi#Xc z^jNy6OI{}!y{zL}?dpNuD|+R__{1m-B$5}x_optwl@$5$U=#_S5C-`zFL(#u#gVF= zGchg;89UWFa5_h76T0+0)GR^id)ZPMdv}|5ZMU<4H1YXXyVD!_(C^OfmKpurfSQS4 z#bR?J_MnHR{>3c|N&3lpna8?0mHgn+VpguD>#f=su~C#dn!i&4n#ItoZR_bRt7xnS zy{Kw z+;))65`|q=lmaZuDa8@C5J%Q3522+}1tA}#1dIYbPcn-n)ZnPPHv5b$ERT+p{8%?G zw|ozitgyW0r}zLaj3AcpgWtw%&9B^Qc(U*2RM4nLwEF3Z#42#WlS$bhjp?CRwt#86 z>Qu>qix`Z|D#YPz9k8uj+&AGQFpgql+lqVVRny&?_lx12Nc1$$fL7kHA`Y{-WN=pv zi`1?+bbw{)dS!-BTFq>K0cO{|jg!EnldbnBV6Q|V)zQ{MO*5NI=61QbciKn;7vr}@ zNTmWRE9|GuPG2u#^BzkcxW>_Gs=gpT-nG4t1GmdkQQ@EJe8~nA1+R&xkbawWwmlpo z5+m*dX^l0^{f_7#epx+hr-~2%D64h}@1hI;@7DjHy7)g)|9?Z=uV7^8WMK3s2zV)I z+2qr~dmgHeDJB*roMbtWHqgEUT5aYX+3G^7L`J^FHmY84+E@u97t9h6Q15>2jAw>h zweq9R+7dA@kh_6vV2gK}F-`e)e>tLng;_R@0j*d0Wd9V?$=cl;WXH5noG(J=ggow% z;J}^VF;xkiJ=d9BH6VYYa-!J(75igXazV?spsK(;d57I7X8AW|9gJX!$tDfcomIA4 zyM1fDwsh7YOTcWy2%a;!ok$g_Wek{3>~ZeVW|BttN8DHvJW1AY*9M;u0M(d|9w0;H zvcY4YT!0zA2duUWSV!~UO}Ls4te*%#hAr?~F&mDDMn)GkRZ6Q0myqJmUjlw|c!s}299EaIG^dU}SN>@&y$}k$u&;zqcCU?tU zG;h@5CG#AOO zdX@PSr9zP?Y3U-XS)^3JHk6iv(}757C}}2JRKcz-ik}nJB}|Ic!#A6JFBQ=|nV2#v zfSL+A&_}?>ijy+q3-5ov$_q@Z!5P`QDWmbKiMq=@okY}}*y$P_YmlZWzo5Ts+Ml}k zQzAtf-^45Ur(C)~q-CmDNqO~os2O+#FnUXDRp5ew*UsRsu|$AAebrt_k!l&BdPnTS;8GTh;aUZwg-kA9tnAuj zMrDM{$^vt;HyFVK3>haei}IU(JuKh$uMwLcKltS`)}A6P)92TOn+CVPKO}pae$%L) zZB$v7k(1Hc3uiIl8t-IP_m9fcK-tN;>lZx;e@Tz&-PTG?pj+hT?pRlAy+V zmqY=x*Zu+gBmZfl-Kvz&3a7x~=FD!6f0^g^qn3$QibkPjS_c)J{1~N3B2yx`OIS`l zZOvlQ%mJx^z+Stf3><@8Sz$aiO&b|+5%rTClWMmBxV==ck;(FB?BYg(UuD!0wsLDk z0h{_HTRp~^-*=}y<3CEV`BR*`cFR9jV+Vg z8(N^L>=1tAFK3n>1)6Yi)vnz!8G8Hcn_`a4 z(4(z!Q>??Io;qQ=r&orr0AsA8^;qRF9PCgf$3j)`isPFw9xmD^pgo$ zly~Mv$Xsu}mbanPp#7u&_U*6=Q2Gl9nZHa({@(uEzwq^cA_@QI{+ok?nTfTKk+GhW zrK7{21!Z#lGG8^QKl*Q!LS!9^!nRwWD7M7b?ST1xQSGN;a`%^gc0@B!c0W8!j7^Mx zAVYy_r@(yse$q4}S8hP6Dae&JwBzwAUDIP$o_gL^j*vR?Go?9NuttS?{&WfD&C7C02cPKw-qBETy;<_pTu*z3NxdK+KQVbp(V^j|*;^Y=B+{=Yo%pD0r8e{aO| z4-?6{{FP24EMGeKTzsOO_d5=%EGwM-1y6bDCs8(u33J4_gGWN`ON&4$p`Gn?g9uKbZCnTkFw&eEVy$@h26Yz(e=^2tnff!`%Ju7M}HL}wu~ zh$`aDuC*QBB2yJ3+Q%ImX;A)yaYzQ%@^6iSs+y;pDzBwFjT{|A9A> zBXIDT8o1(J;+XFHCK%ZQ_J5?VJQu}hY{&RB@}PX0)PJ4iK7exgE)?F`Um=7PA;Igw zhBsY5J-RHFeEUpg5Iq`O>x%{$6Ye+ay4lFSI$#Wpc4^V>yQunP=Uq`4r^OmZe5c8cDTXGtCJT+m2YsH>R18z*;^i)Ah{qm&>?! z0j$*r=j(O@GzHHxqs>NpDl3mFREWf^3A<)ZK%Pz#rT(aXeBP*MW;ZwQao(o@GL~C& zasKkt7{jLVvT?&mP0u3|sLYl3Q32l{qt&2r+k5#XqQ)tDy-!DieeX<)$-P=34J!u_Cj4~27zK=UZqP%7)IsT#LOj| zY|t+z**-YzqBgyBEH=_IG+c>)e6%wH@JgpW&C-0s>K@ruZKP79|ERfo=wb((yHx@` z9=mODO%By}OvUG&ZrFP$pCYRkyu>1fQeHIh3IiY$RIV0Ko3(-5H|&VzY|XL&XcyC~ zi08IjV-C(9SYc~X6EiE*Y#GJ&c(N`bsCFSVSpCO1*Fy3!&LUrGu4Ji@^S%nU+0aEX zQWHAO{=ynss5xWOXOwSt#glY(fIw3)=FW=)wi8jrXm9W zE>8Znmilio_%BlQ`()>z8|wY>dww=RCdmqb}beWPF8UB?WC-*IlqlwBxz&pfNT?_Zd#HHhZ{ZheYW!(URxNxKW2lBgI@wEd%YnT!ibOjC&qf8>f9_o*-lyAG5d1RW zu7e^>No(tzmP&~MGOkd#w=y81^z|d#OS948gnNd`3M6XJljsMCuz3$0Y)JhJ3r+n5 zCXAy*0XAX2$j|aUXy@t5lo3jXm5cxgj`g8O1|8G#3M(3Bv`WH#}XZ7swzlQ&H(SXm=@+W~& zNnXpMhYs0myt2t=dP&Li6jWhgK$jIA%LBf8QrpTn&GDfK_M-Ew;GhbXzqftwql0~H zpv8je4r(V;rNxXb9OnD<3DzdD0hRJJy`crx(2Z$bSmkbErFsT%3q4BfThIpa-t6t- ziOY12kGxFAFoPr7yHTZu^9PJ#l5ddwz_}p_H~I)mTKXXKzbKPIm_sd6s6nO33^Vxo zRR!3ihL>98TTu#eO$M)AOd-YSX4^-%@o%{AaVCfrZKuK2qr%{j95?Txq_54bH&vU+ zo^&!#Sshqvqc`ac1ZMyrSy6}tWEp_RUoVEw@}Hs(JAfs}!A+B%JTSgM`ts#Esi%hJ z-c>{gOpf#pSRU;ZL=1dlhU$iXLwFhnyV(cex#QnW)bGU+QoPlP_+<=L@o+OvHjfgJ z6*)%`JzQAtx&jM4-q$gzbN(s}wN+9>@Vpj(B34%A%w*!IKWPu%g;7Apwg6>ozl5BF zQMq^}A$em`r=4I;`wjWikG&H#w5EK|SKjpfR(SYpI`;3u@h_4`?T<$+0X<7geLVw< zpRgw(zB@AQdqKz9e_i9x^x;X^w6Rs*CZVLHu|ypjx?96Q!C+cgZmpfAK`m=ETa%9Q zh3CQ8(u5dMoMD4Brvw%3GvAhs6v^oplLqnD4!o}$YWBGNHQDS#0V#Om+HyhXO#J+~ ze|4-P56hv@+aj|F%}J?Mrs+@yq)~qNL^zoOaB_?aiO&A*9dw~ZZ@g~Yjt16lpcD7N z400i46l_7DehGEA_&475b>?~#UbK0by8G2RqbZk2MW|K;6|IQ*HwbQ14HE$3ytMtV z&#Tm!GF67o1ebrSPI4rMTul|7>Na{GV51!0nU`I9hO{Y~{Lx(TLzHo>vl#wF{xW7s zelM7t{aTMV%Jc|zg_R{}idN*BD$H~3geKeB3lm5bVnU*)&#(wmtwLK58Xkjy`lhkm zHuLm#Z{nHdHNeLg0N=O1VT;R?*rraWCml;k*)^BBgA<_6G;sph6raXGHk#6Vl0BVV zP3ltT7i1%ypj}+Tav6Pz2MxhoRWlaSqP4wv479jXzc!d^GB)@^KDEVwokhzH%_ZY?<3zEr;d@NROY`C-)p*(qlZTH*PGMz~{X+~6AQ zd$E_WtdKnM%E*Ai%X6*XFYhfqK3p>p-n2*am|!EG7}bo488$Blk%)D?|Z?FWMJ)Ehz=9?c2j zM0&oa581J4ZNU}@aOt47QBr$Lzv>tp-5RR*a71hOczh^_19Q1G3jg{c#IjsAg5Lrr z>W>_SAzwcd3X^nrnd*ayIp-N?V2F^nT)tT@xlwIko0C z4Ies`W#b3p>}waPAxEopM6J7maBGYFJZr{$PLqE(L14i{kK7(Ak ziPjP8NH@qgY}s?$Kv+=5&K`4=Q>4>(q`cfE_-cS`8?ljYZMAJQ#V;z)%}VfHI-t5G zh#4Po%_ce~GoQ=x5f>!Tr z73F0D4=_24&_0&1q(M5GTQ!m6b7)W~n@Xkeb5so_M3)t;L+GT`%9XwwGw(U0F61y( zdkSZ(n2f6RlPbCx<>mtnr&PmhY}mU6q%Lw55p5NOi?-z&pxg1U144ce4^-%2VFv9s zA5KlnNa2Xw4(XxQfSd(E!=wztncRkPeh6;)4&BF!nQBeSI7r0e&48{yf5xLCV~sC4 z@mQvH1)2oDgDWupCyt&QP!!3F6-wm7gT_E_BH&?iL#+j52nF3rVv~{>f1p*1EkTMk zaD|ldQ?)ZY0UAr|<5MUxrg=l^kLU-`i-@BwGnXl2^CJ(O0xX<&ZX7~98)VaIi)&z& z8(7qndAS}>B4X;{TR_K&sVkTJWfrmjG05O?zOT-AZYd_J=Cjk*8Du>%lJRdz~aFB ziXFNxafGZspHCAH+bOYyF&1ifqV6|Leexa9d4i%FK|hN_a-5&bsXcf*BS#6=^PCj}#2;bZ9#QwYz-2>5LzJ?v{82dmEm zqg9v^-ulU+P8E}*;ema!9Ig4QdW&pTVMc=^?sFT=Fi9=!N$wn9E zN4)RBmxRTSyd4Ap;61|c^qardhx=V@`4=Pa_aF6V8Kt*|%F<3G49>SLiO|J-~1EVxcO ztr0llWMUQ|0ep^#6RMUPNxN}OVe=qxR#bK{66IfaMj-WMio@{Le&%VU;>@uqRgmCD z@6&;sw{g6QusC8bR$fJ4N}e&SLpjv(x_# zfq#)Je|BTy$4&Bc8-V~>sqa&??RzTWjZ5WPobv%F?|tys#IqMqXM~rD^A1|_cRJH5 z%|W^a@UM2;-(4AJ768k;BF1jMx^6^^iz+T9!19XapeP~3E;G_K)3>bY`@y%e4v0NQcI8yztpNc5Rj9FPQZRN&0>o&z zVQ#Qh=wRqiG>U-RCT;51r`%UeKDZBQr&K#ym$ImR&O97*M8vIH@LYn2?6Zqr8*LO4 z<0TE#63Z2qJpLE6EfTCFcLRaZeCdU_4sGJubrQ8}Iruu?@oi`7l7aDxZ~ouvA%AT* z;y1_kFJk)7ci05%jr1IUT6)QiTKD2ZcU&QNFrWBx@+z85;p$G+J&9|O8WDCu=cO&R zJ=uz;YCDGn^StM2029jUUA};lLAd3;&tTH4kEvl9a=!Us)er%HV@;|HhKJ^#3klwG z2kKELCv-y9gbJH^DOf~^yHT>;pASypc1Fg31g;3)QoH0#wLR#TS47Y22w!WO{jpmr zk>Q=)dKf9!j=LMBJlBeNQ4DiVSSN0wY``b;CGBWO7Lxhl5K(lb#VYyry*F4IZQLny z`kys6A#@6P-Ds84jzfaV8f=jOhG~(RDt}f>l%jS^~_~4v<>9=#B=RD!#HC zFy7g+_e4YMgy*8kUv>IR4IsOwcQ}lx?RW=`HRUqcrv!R@5)PkD9A9g7U?95)Izz8n zX-O6S&o*@17_kTCE6#tv0r6KGRlhvSe-Y__USkk6vef(8BD7U(xA~7D4)4(S9wA5{ zt^l%S7o_xPsb6awjWX43^)PBT5;kcv?>n5qi0MQw^qt8Oo^_toxGGjikxon{#8bTk zn@XzuFiXZDv|+1QOJ&M7)>wGhjE81>uoA2b_2>=OY6?r#aH}X=J)vUq%g*$KG3QcE_HTJHM;?>VZGfUz#`>4_%yQ z$bzc9E#e~~V2aaTMl^_-zE&eeGl|Hj&A6hI1S*Gs&! z48jJF?(*G5Ps}*R*fn?iP(Bq}nqkgSs>BkbP(IV(jaBn>W%Mxhz#xDNdR!iJjSX3@ zg9%k-@7K{ImWLnW9{0%NUGppLNPn9?{nh&7SGf8YS@&n>{JsZYK{I1xBYPw3pDtfS zyiRc}{g~pAr0ssIYZ}EWt&pE2nn0n{o?W!Kuz`aZ?eIjU5WCecSHF zXk*-F0I8iaK&rO&%>#su?AfZh$2GCyZ5NfAAaCXelpCi@WQ;|~lx~qA&1jh}s=*vn z=1dW~pv*o8G2eF?U7-1TfsKeuklNn)B$X73WKf>Icd2O1RXJT_rn*_po=D)5ISC9)ZnJe?iEl8M=@QO$R2p6P+i7%h{BBGY* z7LyQWqO7K)1F*wuST)h~NVX6$FJ?4Qi+^Hr#-wAn89pEZg|KFlJBc zWjdU@P`I}=syWIz^!p3H$9jwXCNQxsaiAd^h?@9B$J65o%Monvt7G{QO5la1$H%kI z%Ck&m-j86kenWyHJOO-??Iyk`p(*f5!*PK!d)+7gSDw^*Jmt!mG{sqKRxE^{_MZDMUwY7Z5t5GOBxE8g%1 z)|Q{2e?_@8B2GHE*dnMpuI9t@(~{i^sM!I*A!n!C*&-tsDOq#3hg1|82o}EQ5wKp( z=Q&c(mkBxvnL)7qtsG6d9j!_SKXCYjN~m3$?-@yMPXv~h1K#=eu=F6yLe`@kk~l!i zw3vxqujt>8hn#J0CkDTKg>L4KAQ8dKnv!o>+B<(R&Y#7nibVokB{Fg-ev*#JBapW} zt{_GCKfHl$oFJ5f4gv+?Uyfl|?{iC)4pWHkxhr3kTjt4rU%VrzhGUR-zF9EU$~Mf} zx|mR5BE*7FvBBU%ofEi2HO2yAVkQd&o?=pZ_1>nEQS#Or`~Gx=*4v-imzR=+ozD7` z{O7Ojkcp+aGLUJbpyo6%1KvKd(Px*{=mmAt zU!>*iS?C((m!879D1a7SjmzWR-N$wonub!4$3gJXenXWWB{i0>9W;UzEk zDrIs&rDYw$WCA~qKMLXc`{BTUJ0#I-plEp4uhgNp!DH5$#m#!5on9mMWyIktQX1B9 zyw(>IgXNplZp;qIbXMMv>;a@RksM}B$*3iGLKgdsHhqG!-D>Q5?qCgP>;kZ!D3}$B zqiF``H9aOE^Bz#%zTfTIit^VayvW)JgK^nofm~Q$9JWYZy@b z4NC`TkH8KzMc{@+2P9uz=YDuYj2Q=9c*;`1ci4?>2ZtlCcz=A%yYD`A%fm`rt**sa zGSO&+c4ixubTm}aG8#Y`T#fP?`M``S_3eS0s7@5t+G;)ykaW#R>}aFfjTaJJW3y#+uXUqeB4yYh z;Ol#3pX?zAz)|4rjmQ>1FAN@g1b}>ljT&=baJkd0>HIEc=!Sek3V-F2#BaG|^f$%2 z-@)ZyB-Ed;^MrokfaDbWL&g@m`xbgY0Y`8NSR~(S+L%ysY5^o*XF!Lu%p}*-=>koh zm(bGF(c!QwR0(eXK{B`34XT zUr(885q9zWxsHZzKPWAeK>;HONF&LLP%rpmJaVj@y=91GLLK$}ctawcH>Ea9_jAh8noK)&CaWKYZv7qTO_)o#F%0 zsJcbaoU#Dy58~qDB6a&-mgQ3)!br9p=0Fh7CBC4+ur6J{z%w&8X|r=m$d5ixSJ?Yc z-(~FZ-^zS{wGR8$x&Mo-`15Jos~OVI#s#h9hktBZ?NROuFULYa$pXCibo>Y%Q!xg#apCc4NRRc*|7^tq$Y#23C{qXC{(xtf|k@k`hP3LW?H z1|n9vft>yI5mee279XWBkRTd<;_4T=^cuPGQ3jD)@d1)la!)%~-+(7{GHf2VH>7J! zGZX@&VwRY>jH?XiMkQoa1>S?9zC?19)F8Wj&3k%KwNt@E3<{MkW8oOG^Ka7X3L4v| zt{I=pLelc{FLmS+;e2_t^iPLGj3yeALvxO>DvNXOvKy_T&mW?fx3Ip46fSvs3a|eu zVEone>=)4Z7kTsN_3>Yth&jcKzcS~CdGz{zL9vGqBn0ensDBfI;PhO+o|$}l9@f(1 zDeKqT2%sdghWFnt`%g*u2ynOuYkWQMpJ7Aknk5<~Zmkm_sn;6xa|S$$Pg ztL#VIfXs$kx{_X7W0a;ox}R?N{I-1t@ZE7s&-Sh{cpSD*2|;t)1yB11UFS#VZf2y8 zp@E^UJ-W3*`Vrl?pakj~AQ9xa+jBS^o!%@+KT<183LL=ihH+-U4IqD2KmX-X|BFoc z8xh3X@MqHjaZ)y~s~+EXAUO+sW7g1+mucE9yL_w~vy049QtQYPv*8-~4qv#3YPNud zXanzW&PhntZ5mN5Hya5}Cz1BIb@xTRy0Wa`l=-jP;#$s9Thcpn;Yx2Jq%C#VwSr7c zwmSB+ETK2H=~U5p)xq9Gn8{&xQ96^;+%$8OonV=!WIuH>w~V$kJU9_~iW0NoW*v~M zirov)OzHkW>d1dmK~O9KDYKHnPTllLlMIb#-@6WMj;ZRD6WoJ`7kRM}*t*Sf zY}cgE9oRbke5I})XUdH6I!gm{`^NoR)NZ|;Qs}r^MLMoV+11)lYdenf134FP(kXoq zaF)4Kt4vCFR_MfoMuXonn4;FcHH00f(sMAold~2J%qQohGT*pro0OqLJEavfqsNaC z8Se<`oYrEettRv?Dak#_$;N3f(CK4rDKpgh`a?S>kr+W}c%@wCZ>yQV9D06=seh4h ze}2hB*iz5Y(dcKsT>*;A=F7bBUh^uFI{JgodAo}cb+VAYyaWen^f&65i_2xohuX)< zf-h_B;`Yn3etaAb#$)Lzi(H6+ir%OmtN1F2r@R}qQXmDjoV4hhPx@OQjfR0o##4dW zI)hj$5FUIyD`C+l2-QVq8dqhgW`Vp0cw%x*63b)rlE;yfd+&gHB1M6h9HFi31Sb;( zG9`dFR9auvfnBNpop$ImCMRD_P~phm==?*FB<|{OY=7IIjc@RT1E{`hzd!f ze?jTk0ks0+cKU!D!v7)#Y_>5wc@7 zW;Ce^7bhr&0$|`cf&{6N#MXYpM2qlHSi0sr4rH#G9IMlEewF5Fb4Is=xr1C_3hE~8 zKJLI;E2K{fWxbBev$}qvd2?-!wbfUThX}=2w0@6Y@XgqiW4lWiBXU<|RK`~GK3gw@qtJWljzgZre~Sj zD(2KdYyoUq_v~!d(^~wex`DVr4a9C6n`sI3GPN@N*ahVX7M~nCAhP=C>)>PTG`vrl z;?xqy$g3Dm#)%|)Bd~Rzpu$)shKX<~IUNW7=_fi!kERvba7S_Ir|Q=(r2?m$5Xmfr z*R*3qs(NfTue56{^#s+MTC~wnS#94R3ky8tWiTZ@|fIC0~5?{GpXOkSE`he$MF$C-H|ohE|P_JF+_)4xNl>TmCII`=OY5`3agXzRS55y@jLQO zYDnZTJL7R0uKF+o~X&y`#k zat8*l%rNmRE^VC{Tojwo%HE_=1hOOtN=gC5mUd;XXU;d(}NsND2C74pAK5+jxE3i8ax0foWhA2u~a@lZQAhs)pIU96B+0$sBv-U}zHPtO}_@f-Z4Ibeh(InJ__#8uP|PF{eB%R{;I_HtE2iCf&3Sw3LE=ZyPBVrXht#J z*8ccEwi;J7Bf7yBm=4S;)0o=PW~${;jsdLGBF?mBog1at;4iO6dE(xqipffZkqVpx z`)6t+;4)~F&<{(1ZbIK%y#TZ^+<>uEgz~6)8kK-BR=rE8dCe7UZoHNNj4wzy(ttXRpk;x(sC}k9z}DBcz2=R1zDEAK8$RJRXPkOo z?^kLuXZJZfAZz}OoaYtDzw(*-*ea@OHLQL$QvUXCA+1r;1YOd1f;(;q1AiR%mzV> zy+lCD1ugU1d*gl@`3EmsNEI6oMX#0_9tItm?XNoMSdxr4pD!qzFvf07Mm~Q1(dPHa zF~5C%?hxSNx2QJx%Spy>j_qHB_MhK9e~nA;#(M+sFBQ*=DcLBI z@E;{Yizg$g7KXmh6cAmO!i1F9@4S1qgp2Juyt@R7Lbb<#K1R{26P+h$31%di8_xG3 zIi@h$SZNd~b%gS?QH+p{pV|;s0CeThH|bWM`d|+xrp}ZFM!YZTBC4EiCtqTO{^69} z3LPv}T9n*G^Rk?XnQnTWWRP;DJq@AmuEoLdeLcHkDrA0T*{G#6G<E)Pf!wRZgxHJcg>4fV_=u-o_;6&%FxL^#qTfI06Qr9hhn12lsif) zhxL7{?;ZqLNM-gUlou~pUuQhg7{sUcJ(DzPM6#!u z!x8e_O;R-g<{4-#om-x zc$19;;^c}46l{6Oj%@LgrrV~FKeu?E%PgCK1W#58s{)+Cf%T3b0?kAcBwwcY2`31QD4Ea?b(I?#V*N#k!> z@>geEeg}eoktTm$8W#Kh&ajN}PjY>&*JaI~@7Af51*H5w_+w^yx1R&VU&F{O`T|qp zWr+b8{7~n7ls_+A%zP{3_Ts9eCcmNxd#4dchrk=LPIXa8<4O0S@m+d@BRWIyix{Na zHj>~P@}fL(JCZ|4r@(6tOjdGf{x9{)rcTo{@&u(Mw>evv9}=55cV>iz$0$0O#?((7(xvFwKY!`C31KxsNPr{huc>}1lti&D147RMOH%5N(T(6a! zohBxyE_EjCfP-+#O_@8%-x;cNx`s{6>VYQLvXU>YHBPC3wU%{u)!-@Ua;nG1cqieY ziGj}m+>usDe1Wb5&{o_!8X+DhXzA1b&|=qX+^jH8X_+VuL00rA*IdjV@>yrJ!&iX@ zlD|sT_1hHyj+E;A$g6`x9no*go=ljnnmqTI6s1xl?gK-QMNpypmhThilAF`yNB;B1 zkLB*mrQ$0s3VutAzbcjf`q2MHQvCV)SIpYk#^PtIY({YsQPXtrpUxhTdyS@@B_QXO zCwl;iiGdNfl$FXfWH9{DeHp zW$88R&@|zVs?w3mScRIkO{H~FYfvj^Q0*SaBtjCL7PpjT+x1t@qHKCm0-rtLafO4c z&x+<6db6zwj1t#1vIs_tr7PWwkj>nJgv~}LPa%))4ACYB8Q6>o)0A2fu=Qc*qnH~x zI3g>aIuZLWofl&-rt2d*-S~P`=f%#)az_4)O4}*V#6tWxHe0nBi86mBv-@tV%irUj^pw^>_Svks4xu+%6CIa6jA6i<}L#bCGaev+%n z3$;FQJ+mRY6K=W3pYJD^Y4{)4rWD&8SzIk^=qu?KXc5|z)oVW{w8EM#kZ?}UIo4@0 zL3`%qyFGEA$SveeP_x@7p^{IODH%aLz*FE|+b^^(Qk@zLPeL`ETic2?#|>9yhUKZn z8kD)!HCFLV9QNF!J*&(`59b(68BkCpDCHwQs-Nx(SrQCxN2fg6wCYO-wekk6e~XuZEG6D-u-a)w6-O+3BNJ zNnd}2FRYsu!TndB-uzZ<{j1geFLC%U()2IHE(akyC%vByqeUqG7$x|RscV#xv^-zN7FtT` z>=w*`HgAU@Eft%UzQD=6tyyB%Dq1%Lc6Lf}qe!b6_E=XDW}cF(%Z~xUH5OrFs3f03 zpe~F#`0zCzmau*~4kBjKo%x$V+P7dE8KqTVM-??6=Z-{wj*zxnjAh}Y^gL39Tgtrx zEYD&xg;pR6hBDzzU+m-f5e|xFmiPM2bi%mFz3eHg+P3t8GEgRl0s~X1gn6hFX_@iO zDqTsmzJ3%yRRk(&Q@8B*E8YlW_lo9V^JX^P6g_7!otG3Nd~B703u4^}JqR0q4D2EkXr(7AVEeR9^!BWZR|Mt-aWN^J?Q;5amEn;< zKcKDWd3|s@sPg^&-WqS${89eyA%jXIa0h6BeMvT7R2vZGuT7gAg*KrZkwE$cAo|5#(=D-CaOd?v< zCJ094rRQ7SHl9U_h{vBG11aZ43wqyew{EXadQ_y`mu}BS%snqwflQy1*C$I)Q7t8p z>_Ygxw?4Ri@U@ZQU3~<1Yy3tC=^qN-L3uWM=iEjuYD^1dB>NA! zw?yz|AOPh!_@6^&`#5d}gJZ4YjbR$?X;rC@r4tG@2_K@=)j%FarIxk|K`N@*0gyT5 zJZ}gG4pd}dfE+375@P0X-nqz(iY#@h3L8&dyiE~Z&;{8lq_AB&1s)bq^|cwB2|RI| z^(E+Ahw7nPUuB#Q)n{H+TTU&dvIsDzjF~%3E2H>G(LVa^A;-t9_}VxQ;_Aq#_+g-c zLqlax7&+=>nUx7y9{p?tS)fs6Yjh$_=2;S$Di;_6oox(QPNX2fT1j9C2 zN|f+bJNOE|Gp40pK4GIsDs{X|xNL!I*Zm5cAutx8A^IDu2@!S02wzZjbZ=U}JqRpL z0i%oIWt?{Sj*U)?%OrR7e2+6G>_peLOlPb{#N5t+k~%AUbOzag!&?fV{Fcr0&&4c{ z_`)JjF07Rb^7Msy<3W~VL8`qqQCsP9WY1U5104cT*G_kUY44CTY__y(ZN5OmU=vL2 z0{BchNijLDh}yRSl8n#+PuJ=uVuv^idf`*MDuLKkm{s{$`q18)7uCltK!LEt za);3oJ@_8d5Ro~_6R2fDC*FQhhNNL+=9NZt2doD^BdsxE(}N7t=`K;?wt|pzO0x~QfhCUj52mP zFZj?w?JhMuDeY&QD&~*L7l3KCgWKCk5M12SThn;OkOZz$C~i!1GqsUz{5kDg3X;{a z2EL8lQ^iN>(-^J#a_EG}?(lw}b6=(qE4Ce0P4>Ik=2PD=3@=2`+aBrnJID?8j0a83 zx+Wm*dnG^Cbi?S!v88m1V${X#yU&%JU#4}*K zsf23KWWyCSTWEpN_~yggxY{$J?TSP0l}o$=OVM3WXX}QsZy*canpZw+`xw-7#YY%N zgkPYi>5ATl_$hcgrj-8P8DP8=rOe z=;!gTJE@2;ziWK{RcZbA7w5kiT>ku~xtPQM)s228i^Oz)-*XT=dkAetp+GLhW|dWX zLl8ZL;7%%CVI+m@rp%a@Vp6SXtg1hcC_V^0dy~q}@O>=X(r=4M zw-X%9 zqB7G|8OOHj+H|5grjkrjYdPk{>^r$*F>qsa()snNdCePEYshOL6j}N^ljtG?>3n!{ zW`kvzLN_p?pGt&?whKi~gyu#-L?D+tJ5;vwEz%iy!8u`-XQN%szjTYWS-X(+aw|u? z96Sb>DXKpZv1=fax-OfPDL)u`lky*Vjo)YeYjb1Fi<0b4G<(kDS$kLJk3!aF z)6}!bqy~#U?S?5d-2bM-Vx?P~0)FJ2h(Dkpnqz1wmp>*~TDLkp5}2~FlkQ!kIHp+D zyHo1olTx->R{va|wytNIJkuarJYZSJh@o>p^X}_Wzowf=BtWiEz`Q^fmhsbFxprV|i*B?&2dU~~@*CFdK=mS6Qkwgb#YKPiDj;0p1e3U_>yo${AyFG`cPz%NE@=AOea3w? zpsV(N9}+2!WyZ%rsu_mE!^d)GqRfYx1xlPC=`9n-V2=uOSQ!K#tpUXTZsa5C6L6Gf zE;{Apo=9-OGZZ#N!dtCk9wBc+yrE2GzYdp`Be?_5DB?nEk^o9Z>0Rq_1Z-%c zOm^0r?s(zb>|XCKqn%7TY3|dN*=s9zj(oJyaN8nyF?sGb*qqwO7D`xQCV6{rN^80r zV_(P?@gF&Mk^)Jy{q^!01N~i0{=0Il!>`!&FWx?XUXGQtG1PPTzn6~%e7OpZ-dDxU z!VwRt5qj9y7KPxXw+uZ=UND?bG%G;P)*FeMfked0dS`HOI~Qn>oTvT~2Q86(Ti7?R zUgg44s(z?^EamEWYF*R*1h$g&TGg0)RLbxQ@L?!xj;CoCda#RI5v6s`*H<)}J4HlE zRf}6QygKXZt@MZXSyVGYNiuhpp=M`}I)U zUzH1g`Jetp82$MHXeqs)X$7yt65qG)z7I=iypvi5QxvuJ!FqKYfzPo%nyg}ike;Hq z`sxx}fwSF}Uy`}*;T`E=STr%oHAlSyFs%|Txk$J^vahcOUaeLRT(*&)9|KcU8_GU~ z+s=eJf;x29CZN%y{Wu2wS2~3i{gE}*=OE@A*ZEBP3}xWY-U_B8Gm(n3++j8teuQ&WM9hhW;*Kuw)p z+D$TmM^~t~Xz@`=u3nUcOn947<_#n6ioSDIxxJ6(ceNOj%FQqpqq}@BVu@x8bl&5X z(ue%e{Eh_>p|1%Xm=pbSojAdN61eV#Fmuk=1djW+3EW?uN&fl4{)?dh^O@U^$YS)f zAqcPkYUD>Mwn@7{#cdgW063t?3)!aCQ3?oDp}jNOMuTxXhI}zE+~V;_V2j3GKKUZt zms|{sK}pVEBT0#;9|# zL91`1H_uZIEhH!$*9_n92)WK>t!sgUj&g{@@0VSJCBB>^ppcV9N8J~>w0lfy;zzRf z$uZW7Gf*H*fE|*Il1j%RROZ>)#wSO^F&no^d5Gt96bT575H~(12|o#*F2DxmEn2p< zdIU@=@2CclGgK*FO$ca?PIpJi;8uhX+yE$9Ju^6^4Ts8>IHKH6i-lIZ0^ma$r{zXO zKaQ_}0-H6Zvgwnyi@1xRl(~XX3OaV+7zUipT?V;?aP;86k>?X`*9irMC_9ENs05tM(veLRM{bZ*lyq*l+K#6?Cw%l(8NtU)~Y94%7{Pw2xb343kGiZ&X zy2+XvGJomFh{!iqNblS+&Rh^rM`@fIEYhQAUYIqD8+(+LzG>XaGa8-MwU1tH=b@uJ zSzqkEVcE3!=lT|$F8Ee>GCrEvz1*?o`tiia=@pNvom$=|(KPjGVh5NW7fh2~xL9Zf zuR%LI()=eE8g|oOfP3Zf$ZvhK{%S7tYrOu8eEz=j_-D6x{`-Gq?QLw0>>YpRLKz^h zBk?LwydN)Q)oG}RKLv{afDg$Hp3@Q1M71_&n&vp@t6FBGRzZ z6|2$K*q9bMFZ-ceiWKJUv?n)(qzML)OP<$TB9PVnf-ixz7Mz8ebA`1Zs@+ll+nwthAP(%LAAZp{WkMHb1K&csdaR~TCK~7cOU{G z9deFwZa=DG0J~Ge>T`?C&2T8>?T=P49N|EO%xjFR{B4Z0_?siK|NGqkMSlGG9ULhm zdy}6{ZoEc2nb$?v*N!kWnm*BRGn!C*-50@tnH=q$V04cyss(Kq7aVbdm-gDDuT?-K zvD-JEZEjb_E_cm7n!(Qx8rsLYfN$R4N$PSA@2+u5Oo8vaWJY7|S*Fc1G>SSUH_2dQ)~_Zds+&tltLG5iqJXXUfNN-Zv9@2WhzOq)E15 z&y`*>zj;2PqBOchF>5QOLn+LQ??ww5PrhRXfmLr{4|G>XO%Bf@M2ljxpo5IHaBG!K zITU`$+_xuPwF;P;ge>MvPL!(9l3P?K^;&}5ty>fY z;;HTQAm3z*7jmr;5+t94*tZ0&9Gd;P3iL+jU^nJ$HZ#E0wy;4KlNjERadq*I!53{Q z*b?d@WI2uE);weub$1eEbndV$Oa3tkfn#rq*<1yS0_)rDxq4Tp4kys$~+CYB>zS znKtO1{b9qSq;<|aB)SpL&p}8Sws5;T!Nmy1OZPCebg4!&j0qkr+1`SZiYKmN`yn$H2s65p+8 zJDyY|X#qu$PeaP$>kf;RN+}LO2&xx=7M)L=T;}WI&(}Ggm;#9-kQdid9(L3AY78Kg z^c6_rit{jp-{z*urrJF~oHmL@_}iyxUcLC&hlr0K+5Ie%{j95Z zB+ollyI~V{YXF;lXH(6d!_C7e7d}Tj!;}^CvLnNE;<-J5Q&YswFXbo&Q_swOw!rKk z%3R{6Vz@0>sH)!>ZTPemKN?$FgCwa&7J#L=5btkDTsGOOtPrbq(W-ob!??emqR))& z>G;V90xn9_zitzTk%r8L(`$@>SUO>!s^^GtXo*bU(?7GxCG}P;gyFiyAV*+$ItE+S z>o|3)g~vVRtK(dn?Z-0CVDD~MIp?L%sU>-dXt!d!(U$5OB*ip=nVZc81awwKG*|l7 z#AR2AFo@@&5ABSZ7SzRF&h-Qw)%w&D5o0iKft)rMfF$3`O1)OnicMA;mK=;SlrZp9)MF*#vDV z=z+1R3jM6vndBtJOx87FpHm#%0f|m>5;Ghj#Xl28Kx#aBV>R@D*n6kwyxVtMxUtdL zw$s?QjmC{_n~iPTwynmEjW#wK<4gOlJ=WfP^zHvUXvZ2IV;?*x&*AT$^YS$>6^)WF zWROZjn+Ko7HDw|mu(-Kkn2l+NA0A1ZrdB{Qz{q9gSNQHb04n)>?Z<#IW2h5cv_a3X z50W#FR_p@zFWB&JIXjD-x^1eaC;C}-pMh54F^1s=C6uYz!pgqre52_kDhPr2gB{G^W3n&CfUq?K@AO7vbQ^Hd;y zWg`FRaQUx{z~5*lfB%ls|COcu@1M^g;)py z_pzXm5A(pLGstTAc8$o`qK~4_{DD+)+Q*!VST`1fk? zAKei8#mD~}(fRw^3a{-ubH1P591oC}GQ*^Q?PM@Zo=>q&>MUbWTB@?p$K0%TOh~pj#XwesZh>*Uh>xq)hG2G4M(W?(+uDB# zlyg}LK(Q!1em=dwL1s`7qHXBiZS+pjplalQz4CDTw#skKrHbMJLbuD=8XMpB%J@Ar zf-)w(Tb*>Oj}QwB2a6XS+CTc9f+xeX%l$P=eCMJh>=qbEL< z0%(0=G_ow&y9_45)+l_4b=NeXKJ$Nm-W-KQgVf_zNF34(3cF!#f#`fX684?AU>A0@F;4+pe7 zJhu5v1Jcxzf|^8|$iPyoeQ*%A>^iti^xj}JwR-NX`cpc{%OlooXgMnsUt~J8xcfLJ zatYVbmGa{codMcT$d|rX0@nP`O>qA!#{M4#zpLcS>ssntS^Q+Iz(H>Kbv66D2>cFs z9l$p%r2{y|prV_15I{{AzHO7Da?kA_QYp9?QL99(Qg_BuFB;AQ_$RQ?O@xdjK!nzuOUDDXc< zHz^<*bk@QXG;)qYF=S#mMxjJE&f$)}qy|E~wy?47=iLs2WzvB93aXxh75*YG0u%a8 zD+8%JghKv-7KApyH!&y#ZL;Y>$wh_wQZ-FZ0Vf)gSFa z{_BhWKfwP0yn(*MPY;+lD2#lcqiH*&yxv3ewX1xaC*-XG)zq#+X^LEvE$RbD%$MUe z5mWOGJS~)n#?Z*nsCfCQ!<*|d9+=4$@W)^ofL{%$In->YUoHt`$s4I!ESUqbKu9gc zC}z;J>eF(l;IevHU{lRpXHeQ^isosc#8SNY$}Hsqxt(Hv)M9^NpBG!=NrWlCwBu+0}|P2A*^;E zW2OQ<2yBsZ7`Wlw*}X`|T%4s%=Gv(ZckCae@AQsQ#%&{7H40U~*Sp*RE=_tJ z<(3V=f(x?eZ5<#Av=+(^PD0c{0akiXJ_Vj+2^}YMm#(B$^X#ZOrpk5H+kPFO=P8t& zFNo+@MM}5GDFA9Oz@4Z)irK8b1^zz9nS#XQS@cS?#s4|KBL8nV`WtEX`@5bB2KIuw z_PRfDEK0It(*AVt9XI3yh)|1ht$lmCUo2=#;dnIzCxMME3X2xcPNbpA7N+$(I`>(~ z!CJbb8K1fkSs$U7Ht}O?p!3|;5-`)YMF1W_i5!%#aa%PK)wCewPy)OG*Esy)w%=aq zxM3{_Ml%y8p_oS6%jcQiex6C@-SDd)cw0BXX9Vv0fr?SoIUHlybLyg>or}E3Kv^2b z+70Hz*68F#ocyu_h(522RYeNZ{z;&KLcz*=BnBcpQwz42~@z7I|bD(>&{8wJBqeqi4IK&T~NBbshrL zYL)H#R4qV`GTW0$T*qgokJV5(OFhoEONhFasi3rctu0~fR1WJLb|KaFbJC5s&eqbM znb~)Q?VpF8;P)@s=L4^kSI{H<=EqCFDMR-0uEPX2KWpuW#KD+!-AvWsxD za%fa}8Z6u4?nGA$nG7PAZowaEU3YWbkC7un&?3zHrb?d6y&*l;F_*HERb8XWdA+KI zs5$SPN+3L~Vfsk10FQc)X!h8ppV5|?sVc)lzlcRAR?)f_?fHU~urC`vRwLZ7LoTB~ ze!g8!Ci&;Ad4Nx0VgyB4e*9As zLDgtfQ3-|F?o5fi>PU}scSPXi*{H3Li=dbnS4tqkI_GNlY5=!xevb%*<=~;{PE+== zXzFu}Mh*G6(3GQtaZz4lhn?rg?Zi%9g-4L@P63A8`Yi61PNKhb3V*a_|8J1_8wvIM zRi_oKEPmD)bcmUdf1M#5IQ0mbKpdjm20$~q%2F|!X_ZTK@w6lTjIjDx-(FR{totVN2;{$Xodps2I72Y)M+>9J9cI-)p*%onW@-}n_ zV~!@6*}Y(qkRnoGg^%W3*ZFpVadcY3`QTXjUaP!|*n5n)SD)N2z#F5In$UQGn>$G)}&%-Hb9wFU`$PYuJD9JpArkcFwdeoY6p7U9(cV{yoQ_>`cYWi0IByaQjw67E)dG{e z?l?t!K51hXrM8DOU}HGZ>Zhk$hKCv?*&d@v>nI#PxZG|4izq%0s0zQG!i$KWLv5f$ ztx_D4NF0pqKsf|?pl-g<^aiv5Kqw(rR?}z%Z3HnAiDke|<2=0<0_>a0R43d4p|y+^0fekC$-Gk&r@*sErn8eEIr|@k-M_Np_d2;JwF{P zH<45zxiKz50Prr@oBZxM8b9s7BcorZ7yUBfFv0?26 z1%F|Vp$nc?8XBk-0)DJMr2>RqlL&F@FZqd_%+@(4_hOT?Qq}?VhDnCcvhQqbCAVl zKEWcS-*Y2nlLs-veB}HSCeEmcg=mSw;4~7*U_y`ldVsJWqv#5-eQ4ZT&cWqPM zNk4qGMaPJ28s)J-KP}R&1(-zwIka-d6)AS^HhW26g8=BBUJ%w~Ji&K!wUww_wS)(Y zaORq%#&bkYvt7q(owJbvNIzb3xm$bYphT3hYos}rPHF!dn?U<+ zKb{Jx;9i+jzJpF8a)tGeuE$q|Q__=H#wz`C$nlRZVg4GDed2vq=NO&yg3p!2&5vzoz?cri}y)K%19{ECq zE20xMvy--v{FWw(ks)=Q(ec&Cd<_POM(w3S=aH|s(w>N0F}a)xX&qa3U_|2Y5N0TY$%&4^UZj0|;3_eZ)ejz}VyE|n*A(#;CNK`g|z)T$_+{oz@(Nx1E|UR#L1uUP%}9Q}{B5P$Ioexf zX=3w}B2&5Ia>#2j*W*TIbb4S>Dy=RuwEz_b5-Nb-B$MA5$qg&C-k_3ZIAQhCO(cex zBRdiXEz)6pG_9FTghY1&i8};PyCbm*G?nO`Cc@E>sZIps)z)i{{uzQOLG2BD0Nep>anO=t&-I#A~0a zt+Uxj9heQhmi;^xyUdo5HHy|LV zXE_U#E(uFv#wCK=u?{;$^Fvx3(mxWSU+1gr-L(jJMKL)3+8Fv7b z$zjwnHTF(CB^GekY5ZW6gPbZqkOok95M9 z)B>v?{Ang-FO|9+e48A<9>Cq^3;#fCqj*JLLYcC$%!Ic-$SxWCmS0;(Xr5Iqv7FXN zC_Xr9+)r-rq>(G%es1Mh{{rVR%$IT8fvLT>GjQIJ&DnxuF)dfM_0E7!VVCpLVB8&i znZW4?W9$7pOV>=R_G{&+t^S1roCk+0N1jzBnf;OAvO9Nc+?3AX+qrEBrm*IQciGK& zF)8&*fzEoCdJjrqnqaLE;IK?_nJt?yu*A_W~j*!Ecvwg*) z^l5CY!hMm8^LXr!gmRFMDWH}NNAFnRVVKnxcgt59*8W~(@K~hYQF@Iu(|)N;^GDOE ze}VkpXb*mWI;E^@?(oxP8_oaTGFxex3by0(g+d@D@^6wv98<4^sS~sLTy1*L`Gsip z6%Xf^mu?ek#KGRcYo`9?b>Jn(80K;u`*Bk`j!|BDZi`pOc2O;DoS6==JoOZ&WZ?M% zBUQM>!C&D&8a@OEjARo|<2M5kyoD6-Z(wLqYymXts=jX)8$l_@6?{F1tJ>q}{Rjp2 zFmp&CgMP6mAYwXEb50}HVC@d!ODMPrZ`x8bFL^(@_f%U$ttPT@?DX>hD`(z&M%aP{2P9v{<+`qj z5s49V;mgS%KovOc1JexdiPcE{sV30Zk%scWxkVPR!4GhgzfCCSBB%viL-#3Q&(L%fgYTR*6J}>PId0)wd zLMsF#oF`UX!antu-#fUTePX+^2Ey?oIj(MrS?-T4ot6H0>L?;c7Tgm`q~1)az*a=;SzRa6d2wbvu)OaKI! zs|g2;G5X`2x5eg}Mw*w3M-LFEQ_BgNkmMTh$Gl54dE9++zdd|pCSyBb5Fhm}ZnRue zP*6Ow&=~RsP}mQkRv#rR0F+kg$?{Sl!8MelePNO8E9QwPTo!@!*^D-lE?G@eeTje- zxH&3CkgL<;Re;(mCSrG<(<8BBM}nH?cSA3quJYMfzY^RD_Ah5}4tQ1XNZTw`p0*D3 z>{ykQ8^@9hUCQF102N*2j+vW+R04XFa!PF$$T}j;QY$Jbrotn`__ow7^b-WKn6M2= z7AcRi%Gg_AxM!o{a$D8_XNlN_xfF&VssYx?cX50sRGgm|x;Am;+@+N8fF|;!BF{9W z813z_#%1_IZijzbO?3HGtk<&wHk@egEH`!)`kqZfoXC;==*b2M6*-ZuTp{|jPwitj zbFoM;?fCtWxt^)e5ME-sC-L{cIn*iGq?3zQ_miYKCQ>oRAj}r-r*?=}=(X zlZ^FtH*O zM;t!5hy5&E@bd{=L97MzTkslWIRRKm{1?BNht6See8bHv}!Tq z%TtxZ#+*1$87uA`53XKP->d>CYt$=0kI=NWn)hNhfn!vPuxOK1TCl=sYHD^1!Kd(o zb>!k(#Dl!G00`|Fg+gKcW?Qhq_;qhmQ9k>WKokX5Ie=)-p8OMNp`;PiY8=}r+J`CD zug}IW3E~u!BqF_O@mWYuyzEfQn5gpT=XA4!OGEkAXmdRuA+>}@Yap1rxyUyy%p2g~ zNtMcNPHK9k(qWu^JOxzWBDe@$iA*NX5kuDdfcc%Mb0ZtC5*y&v<#3HXS6{G zi8?hG2t+f$wGK4PSLz)Mk-Z&x8O+BcSFAnDNihvH1p0z@djrwNf25Qia}y(!yCZGt z;EXB{w+9-oxxg_Qh?+v5A$kyMcwm9Xc7`(PX8j_Nw#K@2iY{p8-%Git5 zU)i_>#K@?1gRX+?YcN>vd?EV~fMvU&sM>Vb=>m!GocK=OSmDHnrHN-{P98hWS(s(q zROc+INUgfg8zT2pK&GUVGe5EhDGwaM57xB6IR;caX{VatmTx3N!HV{Xx*enRUvP!H z{aDAk(b(^`(y=zKTkY-Rp7djh;>S}F7~CuN?^R3Oc&BBa0l&wvB#W%A+OH0r@Ru>{ zpX)vU690drefZ7mE&u&}e%cstP+FE=e!UoZqXJF4;m>HY|6V{)As&TjNB|N6nco>v zW()b+vQBH4V5rl{aK0LwpAg}A`zV>g$S_f>6^2lE8v$P+bq@`Cd@?IVZ!N%)RuvMc zR?!Rys0o>QzeS7(-1UVAoWXZmJ)$axIUAp!<{fZ94*{4IC1{S~Ac0IyOjbl8)@iw7 zYf`czjUMKSU0Cua9@;RxSu!$uUeOMcVi8(ihz*RZFe3cGM=9hj$J;YbtjHj*Oe-3Z z&eICVXcSlE42O+FH7M@xMCmtI#ntn^Q;e7h(G-K1 z1s0E^1PD3uV+_?->-f7yo30Ua4M}pCDu4ab-@&aer!?B8v&8LBqf;s&ayxSq5G}#J zGuZPHS}O?4@sQfU5j7I(3yNsC;vHaN!!qa0n(qfku*Z*4Lxef&e$N!`%X2ArvKA)A zo_v~L-`2GZ(oL}o@c~DI9>=GVCM}cR3gmn>7g+rOl{r);3xMubZpq@tvc$oL*D5ejPq`@CW)s84#< z?Lte|8qcxkH7Y=w661|S2id8j z%Vx(c9YOQBh@PMZePO8V%po8R!%vt5@;B>VvwU5@(S*wc5cynQi9YZ9w>@M++Z87`LShLifHi4 zSjR_P>x;_5l@{uQa?3Q%%w3_!P9hDkjM@Dr}Je^4dU zk2SV43ZGzm<_t4Q29V3K?Qy6A^Ydz>L$ms9zndPVxGJ@rT1pk-xNHIZz6oF%4^=Xx zQFn2>_QruC;W7_x&)z=d;bJzgceA%F=0Y$bQC2XZG z?6+~1P>lG|$$pi=UB1(kXsZY^syp#2oHE0>1QnQs>O0mN485k#9fUrF6*#^~p0ef+ z6an6EqG-M?;{Yy&vq3L0?OHeA4J|U*UZ2I%S=FnY%x^q_b8BGQuaUJ9b@0UV)7}=R z^R?;XAMK5jtJZca+&LOP zQ3{TiRqeP6S{XLO4al9qtu*nb(SOVBrL7JqzVdG02B92bdeYCiV~uPSR5SBw;_*V* z5O9XlUEJG@+-9NaHfg?Xm(+`kC)wu2j5c|CC%p)Yjs}X|=>FP}g)to2fJ;Z@aEpbQ zNT;6V@#3TtvqlHP?kr|2K3Ys|dWc2~_UzU?kV^a@w`eXuF==c17I(2yix=geu1={R zFw^jB>M`=muFjvUmj4=ReoG@V!X&Hg4BFFunw5*iIXy(SS0w3V{*7+4Ur9Lk? zFF^x*HXv(`3!LJbQZj`bf9~^tHt+Qh22<7+w5mnF&plmGkW$GaM$&+U?DNGA?=V?! zBD&vd3&%SMf6>3 zCjdI!(!*Dlo1BdrD++uxDBQ$g=H*`1X z?#tz)r65Vdh3HbIP-@Tj=x#t@X{jEJ=2wY2)<1a)I4g~eo)dS;FRiQc<@-mX!aY)Et@kg-8 z3Nb0{X}_#a9B%jDUCOaU-SBRecGGiRzW^$TQ2NrZP>4r?if2CnHSr?3kX#*=?YK*PnMDwwfR0y?iFM+FyTr(w8-JN|KL}d!LfN2$;sr{bivsRD} z?zFGBU#A(ulq>X z3GhBZ^8|wV8Ls>#O-f1@F)%h_<_BPae9!HU=I}wnA$1(B8R%}(8h&)Ct8mIF%30_0 z5aBMuCW|)Bw5PS^HAHz-kbod<^{Uv=A3+y_onVuV-r)NvwV8U%hiWN;;os=IzlxhP zfe=0-zCrdi1%!Ag;Gc6|V}y20tV15JVuPC5+#A9f!ra#90y%;POr=Kq2JQ3pTTy@T z`!J^Ywji@BjxJ-+hUdt5C7r0llKhF~{wT!;xc0%E#914*76$A1iuG)q4MKq7qiK#u zqk5w7*mz`dVcOI4t-A%u+#}!$VE5weorDLn0eqOT8MvOpsV17dxaE%2DX0 zPs;|@tz4f+36Fv22nm^tO-7`AH;Hp_On5~0M!=wN>SAUvc06qwRAYRiv}P*=LUwaM z&#hn=v{DWK=yr<@lKYFl`fu@HmiGUc|Nake{Wp@~_l~6h_&~A_KbPT*{O>!eSy(+l zczIH8-qHt_O8G5)jLCRaeSE3vYaaM?b*W!oE_a>z!3J=xGH2*!HufmdL|jM=7PH$E zz0@3w{K-Q3c>yZLU7Dm9Kw1Fdx>B;bg=53^0o%gHC5PfnL%F)q+N3Kp?lGG`K#^`W z8W?U*>B2?o1?mSx8f%mmt2fI*^v!7d9=l+f(&Fu~u= zj1F{+onz9^NUy$u&X{<59;^R^SDZ(hP&9)=-GE+nd6hY}_l*r8(V!kGj+Gv23XZ~_ zXx|MB>mlg`x3Z7+djTtxWO?lHbuh#26|Vn2nDNIZy?^x*e%@%W>q5HheKcyb8nEpVlo;xU%6Sj7%N8$lQ={ka z+(_vLkP$c1{V`HkO7m;W6VJ@(+gQMZJ+1e?^ELL-y(8ykhWUZUb~4mlgF`WA_mK|D zUfywo`ie%;U!w7k38??a@BRNE`TY~wNg5d1|7+7lR!XApb=i4WrER)K+wi=N z!W9Xa@5;ROI1k1=mN>bBQsSjGwtx~mq@C#UqN5;nTV6M~QIyFslWdI%Y#EtM(*r$Y z$Qt0<_+vM9cT0-&nITpfOtf6R0U2dM)acjzk2&_?LrXEbglR@->!GC%WC&a+>O;X^ zUf|cN@3vdf99WH>yxq5yVhT!;s%dbF^qx|6>TvGX)Ac^1nWTgGG{Mnq9o<`s=yr_& zKQ=CBN|?v(Yxd8zVr4!re0Z0#t9%GeYpvW>4XyBrx}sv?o!sXfc zID<~Ryyjr1Cw;7@9OvAKAz&Yv`^;Ss6>3E+ga~dcj%8y1JrmjNUCVlG!E`rRM9g#T zv$DsJO*MYkVRN)sX#aY?`j5ibmO80ig^x&`>rtUaNU6fd%w*mXF3QmFF;XUICuXHFodZua&FmW4X zSB2UeXZrSlp5)p8YD*|=PTp1(bwaV`IlM}g_V!fLW@iS0{Vm`*yhh(%;Ip7^j}7*t z-BKnCmLgYEOu5sr$6ZySnsKW9YTg}eE+7p_8I9ASSPS92bt>gzM`Ht_IVx|0ZmpPN zJ9NgOlI%pUh;-E|?9Gs+kOzW~y{7HZY@Xt2X*QwMd@USS|CPvqhR2T%m?L(<|NLNoBdCAxEXxNg3u|3l13tSC2A2B&J%!x!zlqO##7J58;=u>pq-`Bv z>xh38awZ@NVec1bgcWAF7ZD>HBfglJf- zpyG60t)ds)QH@x=t?d^tc5hZx-6E6?zwq8-fXeuCnaz7u6ayGt4`nu?jAuF&6AIu7 zLoGNhiyZDWSt0zf#oU+7ys=Q6#lDZ>Pf?b#e4@AyzR@XNud*#t?RJC z^8P5pgksGRlq$g z36F$PnU|N7;rlwoGf)gzKW;KwumCz$hOBQ0*h%DB#_YTST&B3ud7yms;<{h*v%@XB zUE~yW1VPtzantvp6l@t-qRWE!Vad7q-BT{seC*-tFsq^!f{&Bl>IEvr4@Y}bf#=T^ z#lPJPi&?F9uo6;!q{)(-OJLG~1&XKUNr4Uyv3p=7Q z)7t&1`E1BcR|xLL=o^!R2>^-5rmuQTqM1kGc3&Sq$@aj4^Ht}hz6aKO%v{;Mk<$K} z1f)!71xZur;7zd!w7wiTWsau#?8+&cjrYublv35rKr<1-&b{-s(s>jGe6^hKW-HY+ z2(K~h)V@esVV*!`QHmxxOMG5i#*HO@Cfo3f$0P*kGv#4hb8>0G4+i>PZLIE>;yB$ z3b+UYCjH7gfMwRZ8-e{A+(}i5 z;b*688nKw!dh1o%nI0wb^4!5UrTAn@$DPi1App50ZZ*?Kh{VX5Snnzd#Whn&4yErVaSb^n}q{*R>m8x7a* zZ6B=ZR9=DgKG&EdI7-!S$L6y3dHhzofWvZ?+t{%pn1 zS|C~6Ntk0ZKsgJOZpF1b-yOs<3`sTi>w;5J8zta~sFrT2LHHc9U|F}S2ZBQiIKK-F zR+_9xa5YKwu78Xu!1b`I4T0I0vc!YNQ4OM?KsvONzqd3 zh3fMcF?Bc%{)xtJ4A87*~ClBy6b z6g2h#2;#0PV;UUZX%x6On&!UVRK4fAzyCm2qNGPCb7iKkoLt>$GP?vl5HKx%1Wsmod^-F$@y1$W?zdvUFFIN6Y2Y)hh zVWA)unfhJUO=XnchstC^EN}Hgz9nV3YiQ0^4^b1ya*Y&!{g~G&8nju$7=F#}mv)wk zUS=Pwm0(JKzY2L`G|pT;wXA^Jcf9nW)`%53gudG_zE@r=zBwO#+LVbKm2lpegAONX zHfO(!d>G|m?P73Jnme-`TwoSMBRb1P=$ri113~OFUVrNsg<3MzcdJjs40Z%L6Y;V6 zaIv|$4o2KamkhCE-cPReOO7(=h?c`M!}JPk_aUlHu||embfw#jutsz5<|vHS#G#?_t8PT+!u({=2UzB=JbejL9U_i5(&dkjsU~G(WEL=$ z&|RIT;O^(Hd%C#XR%DxA_~*#m0SVi5Yqc$KVM;h&i-)-iU+P%elP2Nd?0jL|)gxC2 zD7AgBHz6Fb_S13v8p^S^-6&O}qZmO|r?&uCDC7vsK3`dcc;tD|ne=f=3z7QXB$CzS z_PALqUcN)RYSxrQ3UA2VPgZdG$at}d1mhmoLwM}Z<2LrRvIWP+-%oGJNew1B9c-pL z=Uwx`X#hj1fyr>e#9;3O8&!k#;PVeh>Np^xy8lYo#9z|&kEQ_s0gnHVvma~?bnOlJ zjErmzjCAd-ezqYWuF(B`Osf47+3x*bAvWhlHR}&Y$2!bnDvxf1 z3*P&}O3iN=F4x-7c``w|wd|c~mK2f2PdcE>rA8 z$7B3ha4V|djqPr!!0wY$PMXWsim}P0}>Z%<;_I6BKZDTxX~>V z9aQTsZhIAhD;hv#Yx5{A%QwtnF1z|KgXJ=w$`BQBR2Ze6i@80%RQxd5Qf5C<%5h2C!-E^`RN4tZ2 z)Hz0+URI3tXOia|8c{qsQVnkps~avZF%cSF%7azH$`a}cFFsHNFDHIIG$ILHh@2z< zE`E<`vS#6qktQXVT4Qhw!q@sC^`yd#b{wpf=@}q)+qz#C4G$za`4QlPclqJzuGOrr$5y6N$iu z8xFEDR0^x~j!|MJo#=zsgVX!ZGn!v&F(pklx?Hd;aWO?u+dTav08#Es>3*Z!^$*%_=mwZK=P~_T`dcrK=xgkB9oR z%~?DH_`oQjk^9aVPkpw))|5JQqueJ$A1#BbhC`4tqz;~i=J#$V1t1gUt1?}M_}g|u z6PVSN!Hpr0lMkGd@YGtmLZ$?Hk5UCwV9{Z_B)J-=U>tcnXfG~yx{|3f(OXae zlt7$`IsD+Xv{Fywj_lt$2G{gj$AIh@D8897G#&cv3kU1~4>$@Qsiixfd}ZV0Xe^9N zN8?~@t>^*PUJ^cd79O+G|Mbr>5g>kcF2L7(_W74o{&O9a|Af-Nk;q!Vb#d|^C(Qpk zLi%6ZYd?vc4Wh=rpB?u<^$gj3J^c~C7EIwuasCE87>GY)xusah6l__HPiZav8(ek~ z%Lv26*a`HCjv26%-f^7^Q`@0`H>9xp_2-Y~S~QhkU9{*Ms2~FY5AoEkkKF1Vi^i-=K*(u_C(8agi#n~-7a_iZkNsDu05VrH`lG@fMq6< zda;hb>?nGpxMoxWDi7H<4V_N*TZfYAL&?_04bzv?3Wb<0`?Ph+lyOd!TD7h(hV}f@ z2QXHJw8dp#Oeyz10T0`t)>;8|LUuVb(Mw#^t*b3L0$8Rzlf~6GvqYHJkf`?y4@9`m zH|8K|r!$XBi)hBlR{t0M2s8wxiOQLZHv4x#_4&nMENrH}YaHauI{M8ZDTc+q_<1#rLGxGNdjI z65=n}U_VE=o6VJ34aHOpBPS&;M!_!{x3NfU3MU(7L&DlhlJFrOKRXC~pkmzxxBA@J zM$9_()?U@$Z!=6Ne^kAxfgSCUe{Zj~hKLh;`f+%jyHoZ!lzkxjNHt0;O*aCG16(mo zD?8$)t8e)X)bP-Nlm|lGbn7AlRhiBZi1;Wlx*Qp|LZ^1aslMJ;XRr=c*?vJ2tRE-R zPnN5hl+!w(4h~tbpWuM{Zp}0({UrWgTxQ|RNfb=_=PSn$vQ(fZd+R4hv$Dc(fO$=w zN>#1FQx{h13!+G=tj{VPietuy&1IHQh|EsQ7jl&aH{(z!_opojXRaS2o7W z+=M{d!AJ%{B0tgAT7B>7lq`v-xW7{9@|P6)bM=>Bg5z%_&!30~1^%gx{w$Moke9Mb zeZ7HqNlDTSEE+a#W-_asK=|#m_)Ii`nsQA)P#G{)il*Lsl$Z9_5!dkYIH0UM=hLya zgHWjE5>kO5{7qK4e66rc8=1 zx|YCn@0{ZUJ$Dmv+bWFtf?f?8;T2F6T@O?Sg&;LBB5tt}soWO|WF62K2MQDm{7y|k z`$INDD1VXb=f1(|Q6PO9edU?0le~DEucJUb(w3weO(l~fA2-n6gaLQ3VCB9sOlE4x zFS&w6kN5B^j~PaDts>spJVv=`*HCkVeR|bESwahWiSPF> zRv(aRfntzm9Mp^D^Kh~bDh_(+V|C&e?5o5|KE4hY00o!S__}o7(TVzE++=`f_?#`9 z^>9*-lsM&$Rg0@Cn**QOH7MS^AQHwQzsE0`74L#{^#802hXA`qR#*-&FA9dexI_sW z$K^1W>S|lR=EFq?R_M!&=Qkw>XN=b$rvYA{7;)8gy{{R=+5OES1f6fVVO8QA$f>!b zL?ga!B@CeWY+u|v40v{#g3dF&PZ97yD4Hp;k4{vu( zGW-Fc-9g7nplEM4>8Uw5V?>{=sV#|Q29xsp!{>6?S^{07wF@RNB^Ms%=+g|`Go6Qo z8^P~f)A=(=f|}DghB<{YC{mHm-#TQb&M<0o84E|p*-Q$;bu}U9!jpEmh7xPBOVB(D zc-_<^cYgO+Xp1he0${6+R7|D&b%dJYEs2%eOT zsH~R;CIp$X>OH*qOtYIXfmjQEtaAHfUvr-)^wS+Shk44n08V+cp)O|EPM|Mz(A z7+AW^^7rK(>e|S7Bl(%FUaIG<-1!`bnC&a&bIUoCsZs!#NmCG1M_}5odgx8{(9!%{ zig!JJm%-(g@I5%ATww2dR#i(lB*j9KcP9xNMK{o3nIZI{BUSy(bBV`Ap$5Kmzu^`^ z(C{Q5(ifqNKW2}G8yHx?4oB!2bwM2t&#_#4U&Gb*$Xd$DhXUxO?oaWN8>7U1=M7km zoD@7i&QPJmWTl;0oo`WcO75OU-~_K`o4TCT$=AeZ>2SrJCk(B=!{jGqwQ(hHxr?p2 z{L}IIaTbKW_u_~e!HrnAXy<8aT6)8i+cO0b!$B9m+mKXD0+AUCu(X7Afnf8krYYM! zeoBB0W(-xma}mpRArZA>eW?3zR(rx*?T%R9>G)v7ELc=}q{4o|=XvP*U z>qby1jM~j^8^}7Fv0N#WrW;t1g=p7{1cO3d>A678UQ-b$A9u&i3fQUpS5U{cK{uN12o_pv7*H>`9-V56((Pf> zb^~6S%h9p)_Ogiy5;#sZztu?(&#~EIZgL?nBj^bO1LEc-m2)z3Tq+F9sog}o%i6E! z#^JILBWKpkCgs=u>3wNwN2Ly9s`ZO>3tjDekaIvmjOLMjDA&er_dU%3)?aOT zC#l6Ssfk@}#Gr$kxzKEgWN&u@ozAYA07W(`TyGFP;pss>(~Rbml}}+?BV&ya+ZWag zN{?pdypYV$I&ffosSpQ7>s^!qH@Q!AiscniYfR!Ofl$uyA&6_&FKDQQ*h7pt+X$n|H z#mMdox3ACpE^I&mMt*LM^Zq89S$sc;NOVbTbo{NDXY5gCO+VFIer-VHp=$*>y?g=< zawiK-XcbQ=WUig{3%q>?p)P8|C;!ol@p+G)aPOMI0Fk!BJA_d9L&ItyMf0U{stZZY zI#$5xmqDHr>d_FwFeXg&!>eh$>b_|{O!cwDTKdvO?e8v85M@?#?Ukpnzm#A3!{xwV zAn36|JODlZ?Z3`=X2Xg~ET3shQYCC;1+W+HEXA5&Z2NUzxfbakO-`q-H*Up&M z#M0it)>7A;_McLbsEeMh$uA0m;+8c@p!i}@qfmS8tAWNk8 z?AQ7Z^+UgWJ6-~~5%qF2T0g3f%~Gbo#Ty+zWMG)EoD+QW)>ko+vr-4z*ONRst9wdE zH8k>G7w*hxT!k&so&cq$d>{L0GQFn1X2C2=#*C6rjE@$I<{6%7qIfUKAu>HZOQTQI zg3{dnB5rgaSw@bmwd8qG&THlnCNgqU`ZF5jNr(?RrLrKmsA!Y7Na|(?3K0nide?bX zqcAIN1<&Kf-M7|Z%&_zF;Bp}=ucy7f%COrDOZKPRyRF97fep8pzE7T42GfTuDvk9I z3U>Ak$!l7#+SBJwl}lR*W5qD^CV*}Cn~EyXxT4*2it%+{=>g+p`D)piKysn!o%Q<> zc;ut>h42+RKLSS}0LXp%K#&;ifM+K9?)ZkwrAOyftQxCqD7L!^Y|y%RnZk!x-tf}* z92zK!pO6Y)z6V?s1!!dM5dc|D_wz=xJPEmAf6TDxT}m~T;Ub_j0>89i_ZiYdTn(FC zOZGJbZ9tK%nK#O(yz zr*fn&4PG*>tJ@I$Al{dwF;x~-5`s1FW9WJzHDT91PgS7ot63Py1j&(3J4Ucrr%?oc zm5?l8ZYY^qw0v?mmzd6AbV-mWJE za))Srns)*a*&{WgBTI;!F2FU8g|40;F=n%>DSoL+1+FQ1pwyH^)!gWvY*04lI{eX_ zxe*e9ss-j(08%%;ps&oVQ!w7$Y*He`=0I)BYYJP6!J5^)n*k}Z@sTnqo~c`&bCD>u zU=ryMKgiGVPtX(S#x94_a^!b%Y5TB2(^bJIFftTSVC&GBy~7v#u(^3%UX(iNB!^=k zAfC56vs#O)sACO+2CG}MLls!GmJfb=B*RXd)khqX{3st2M;vbm_jL~WAvB3TLutG} z&B!doLkKxfw>~u4g|{n=B&1}NhIx0#)LN~W7*N4XycQ(pwn^>S=WTOO7Zr}F{dONG z-xVzAPE})hoA5rNZf1hT1!?$cAd zg53?`NcHS5j)NEGAl6?V9#=4$N#cB$N$aXHBYa3LHkg|4Xo+83z9N`YVP9{!y1u*S zT4;z^QPvqyJ|*?KOjV3dAxXiJESw3t+=<6Plfxayqnw_R!3--V=(V}r1Bd3yXrlME zx_>XMRS!FMi2~{7tLfrlvPfaUc%fmwxVC^|)xUyzG>{qWF?FEDE5$nT#ZY*BIkLYN zJF@TDc%*j|?Rjmp$4xb({_(n7*9hDUY_o>d;(QFw2@}DTdM->a`M!qtkjbC0Mpf zrZ5in!bmQFI*-<1N3L5NbA$1Og>q2N5es?it+Gj~|4e@PJhE>Ns@o&)ca7(}r_)Z@*2a1DavE^I+S4@q zvlajUWXAtSclVn&i+?1^vby>|tN1Huo4tmkUN?nJT#I51%@a_IpaDHPm>-VHk;)c! zRq-T}iHxuxH&HJaH_N?ssjzHSos9_LTmls{|?cuo1^LvqGt|oKrM! zc1z*Mjvs~wx;*6`2`d$<)zv~H-8Y-_x$jCSkgw0K=Lr?G-GP@W@=PMYCjwk60-S_9 z4@?3XEW9E8N+1>jg(=pV=l^5xD}(afnrsQ~?ivX0?hxGF-QC>@9^56kySqz(;1=B7 zo#4(TIp55ksX8a$t-47~rD}dq_5Ni)YxVB#-M!YGyP*Ql1eZz6C$&Ni-C2;*^-)=9 z#4t$V`4QQct<3dGn4`Rc7$(yro+)Bj=P97@9iAkDSvWK1c-X({)8v09wj4r0yw^*Xbv=4DE&phFGhoMYl}z>J8QfGypX!}`BQt*^ybAiwK{ zUjI}t^!II2{{(q|A}_xm)PKu3e?b~5qig42s%!DjtrCSK>4WQ=nOzz`B1C`^W48hNI%k6ChA!$!o4Y-FbaEuak*`x0h0#hc_as+pD$|LG z%w4ac>ybRFjgujTD$AH5wO-H*80KGBidBSQXJwX;#~3HqDZf@cUg?XG(B*)8T)4D7 z@=3a*!df|_Xt>EZL$wgrcRcpqZ0Gp4 z5;wX}d{(5~DNn&zhUiv0+W>z6&}0#851k_17WZMNqCJn+%|hBZO{~W1tLo|&RksqC&_8T4Uz-g&-z-p~RXoF|4Sx_~^ z!nOMWOFhnkurJ6`P5niU;hF_o`}5V%2~G5n-rk;?-XZP z4EBvNH;!6UAT=IQdp=T+*v;vyHGPdz(luT2U37svjq?ns7u;J?CBapc5OS%&|2&zX z3~n0(P4qr&(lD88kq(f&t zy838u$St(u+Tq(hnlt%atH- za8-?bvT3JgPwRg2yrndOuJ#sA?pBM9MF>BQeT|&Pxy3bkFMmBE~9Uihx8Hs^#5Zw<>Mmv;H1| z?aueA$Kr~O%HG2`Oabp;~%Cm+?=d1{s5U98;IaCa}baW~mg6{fx z;xifE_BMgK@=PprDZJZo&e70saQxn=Rtyp0o z&H|>WmA05&ZkEcf@!@3JO->V1OYU?5recUNAg%FXQ?&WzX!?0YDjBGzYQu_l3nv-NxK@LX34JJGRerG|JW%R$oND&uOx03(#(KWyf{@46fO!N9UB88_6@QhB)%|)C`V9? ziiRgJx6)UB=^jJP6ef4v1qYpPfig5pB!H4>x053Vnoo3TiY#F!!>Nu zz`!N5@s-ILyxt;fQ`KLm3A!^X`}y#z_hFZEYMfaVt*vD<23YVSS<7>48;>G$fR1rl zOUtWiM8SfE8QSR@v;}C!H<+LxH2XAV1_QtF`FX{1WmHkI3*Z9jjsXDbl-YDm&cGbd zaD*lkm}_nis8)O3rftrzKDszXr~O?GtzzJ_}7rB)6AgcXMNNd8j11+i|rhJ zu9PhEEJkUr=H5zme%J_lk#1BBo5LRaFnwfN(Nb`jts8!%`h5God2k5-62RKLDY~~@ zWa2Y?==19S4exmfyHj$gkdADC+8FBaw?*efyhvfAo};F^$4}9ldQ_c;B}Q`-A3wpD zVl?}|D=i@CRB9-39K|<*UHaU}TG@u6cct4j#Z@^DjGostSQ|Q4R4Au7g{Ca<>0)!7 z)WRksY?%2?@`fcZh>7r-x+g?go{ndkc?tukVs-P3J$`^#fv%Qy-ciTh?(KuC?pcGLR?f*N_X!f1w_ zc_uQdoM>sM-^<834ZSJb*SB;4=%1C5zfI=#-^Ii~@z(gYI&B7qdX9E>5{3@1{nNjx zA=9RQ)Q|vY&YqBMu1x9^jG`&b$V$yz(7m8Jp6H7zhKH@_h>QJpCZu;K7ilNe`jMU& zV-ru&{){8`4|9GERdpP*^JSrq7gk0OS%>wNe#Ff-mFhtVe37w`v$KZD#2qBe8Od!> zGyHV^0M8849d$Il3rD;5uIbBjN7U{qj7a#@j60Z6;Y9CONyPmd znEi=7{I$cIhPIBn7QA+Lx~_k>mD{5zEB)Ha`7l<|*vv9 zrwI|1W~3mauAc_JgvcTeG^=h7!zIcID!-gOkE$=J2yp=st`q_~iF{8JQ!yFB^8C3^ zY{*@AydnS8|ALP_Ol}8a3PQwi!Q4H(`#-t6o4`5oB ziBFcSkqaa!UC7!2)gKpR39l|9)3SgMg=hA~Kop2Fj@1nW)AN5yyJs%Y1ezSxf&|-@ zJKGN2y#r52%!DCkZ%XW+bnBx!QDyxITUcnZ6^IBRmSG(kMe zE>0@84a+gp*(z-70PLp=KR~lQ`XJTcKV)cDkC4j55W;wwBDJ2~qOcb>qG0MOQS`hh z*K|j&$VPn#ST~$G5dzvT#?p3H8PC>5+fNKrP_Po`%mu;=z#-IWo}M_9juog?yUpRJ z=6yi|kcz_PZWdy-r&VT5Jxc7DW)63>?kD~&5w1-LZjoVubc)gA^Z4cV#bGlAyqz9u#Ke!#CU&=zkOLQ5g7c zLiM^9MGOwV7(y}6GwBDEW0{QYX6r-TKmcHBN?8*n5Rki+`|+i%Tksq)r#%R_U3Db| zBi|PKsPCM`XlJ5dI7dK}R;F-q;;V50ppe?3lqi6``nG^K_POA! za!A8B!S!w-n>!`WEkc;b{Mh#9ZO;0hl5Ty2|M(56 zH)DV`qT&usVJUmy=g+p6vE_a1$&~S=;#qXDjvt^`g$a>U=x3K8fO4X+I2f{ts|nz; z=sz(#uYqXOu3?&)axM}AUleyank;!p35%!I=NL~}9v;p0wGh_fxSrcvJ+DqHI;&>Q zw6ZqBee6DaD#sJKHXsYAX1P4O1Rh1fO9n-|i0C5)0N@VnY~2gGVu{->&y&K+IOrxc zXiiU6hSZrcCSXT`Wta#xUKB7^lx;DK_^BmypiuBAkdv1!OXG1*>|>8IeR{q4g`;v}gU=>g%J1I3tY zGU0B)qF8&swOjY93SHW_(U`;(O;ZCv&1Fcka_~$1BDR`x;mVaqUH=mzijlTw@ z(4VT7{5Bu*pAzm*j7Pt=MEP+%(t2iw`VN1W8-*(^S}h8}d+sWSX;V(fl3mt?M6tF3 zfcO%MByV-nW->8_)#o=3pU6eT?5%Rtu#{W84)6L6r6n;i7*kJanKbtJ`Jk9Qa*Bm- zmzJX)>{weI`4ZKbsUnAlLb+Jm0F_OAg`&6t=crY$!>>VQx`s){q(<#Y2WY#(Dk~*e znmsAQy`9Dd9bOm7n%A?(k_hWocIJw@_Ffo-cBB|SYDPQ^+gBne7K-%AezO zNgaM5Dan`c9E6nrNXzbnF z-R_FfdYBuF2HsFN5_ba}$lC67L?Yrn*6h1CD~b%5B~D+`+dlv#8AL}sPwJbnh&hs? zOC(3eL2Gq$P>Z<(6r)zP=y!{pav32F=FM#Ip!bICT*vtSm53F~+0Kq$vCo|K_0r%n zI5Dm=%$Nu-r%?JetQ%P}wZu@(DaZjSB!n%o=@`S$lx6lMBcKWDjZF`rEyk^UI1%T{ zFk{U?&p+f@!R7>7zsvTu2H`>Hzy(M*#9abV9}yk)y1Ykxke-?=$yIYcAugIbCIbXh zFr0vRYXS;@$*RLVI503z&cOOUum-*(676#=R74ulGB!Ud<3NX6UXJ{{^%)e~ut*Nej-`NqkU&`?aPUGpqLv}Q_GO|ES-(}9qKCPoMkeEh}U#X0e~@WumB zgNB-*vO!#vZ5R>EM@PsvOi=o{w`$45BlN_QxCIl^S_~Ii+Rq;~F5U zPTeutn__1auDWaGGneG#-zb$JJA6)V>0NX zbvH`bi>YQ^%a7Tdrdaia^Wp2rVv-&BPI?P_P5MIkd8pcwd6S$88+kv)0+)G*^G0&ZQr8gfA~!fetHrGy%;o7%gz!j4o zt2CirKi&-dCTdKhUf(61Ab!^N`EAwazlj)sVo3e9qpXJZ`nooTA`X@o{IB}Df7AEz z{7+R~Xw6EsTrTh~H56Wdu06q-*nVcCKFcggGkU7QiI)??@Mf)6|JI}%x>karwSjfi zejXBcnYvmz1hrj~lB;g6%>0j-4r~Si=y?Ij&DW!3^ErMLb5P!wq-|@$PM%5WZXOsm z;s{z`jSnA1y-)pu{Rkx=b!_Xy{K?@_hc4(*YGVE3vs`VUx+mmT`P{oQ)1T3eEt<5*^p;yf+dCsHrrHN%5 z4ALlA6!rZOJ^uLyDjL+~1W|tP8XrMFfrP>EXeM}1qFQG(x|aDKxV`gTc(gAuv2RA# zM`+&{J)NiTvzT7Tmlv)l_OL*4BIr*Dyft;S&?dquqK&!|-hKiGRx;k8ah#f}#43fh z9o6s>8C2g%wOzb$ShYxj4MX$tT1yh8fe8ahTZ9!-JjiiI-WW^0XFB@<>XNm1tM3ZB z(61TqKZE+W?e+XWe6c?f*1xz0|JRnm-@8aE{3Qf-L9tT{C7Zk?ZrT!GO#wTiwCs>q zTpR+#zd@Zih0ZM7<#jp-3Md)NZ(y|I{^8;cQ*5OX5w%Kd007~0QKP_(6Z2_yL;5M} z#Q<=7d?Ek^L~OPIfCRpH=A6dsnE~|V}_B>#B1GNs29iEZi_geW=`!T$aQ3U zam`_0st1vKIKZjsE@?LUHH@F{rO;buY&1mOnCfhlCmoZmRX9OrkBjX&o?BKDg+Z>@ zZ+0ue3gp$HQ{V7@{RGLvLJPeZ(>8is$U!yw(!kN%63%?NiazFaPSx*>**6fHJ81Lq zK@)!;3Lbjrh{NlL5d3ms#ToT0-8X*P{r`Oh?$6NtCz4&^mkx^=8#)N+I_Ul@4g0Tt z8;(((->)u#)8~-&IAXr*G*VxF5E5z>Jeg3dPC2B4MaL=f*PBZUlMwcnaUp4W{9+A* zD%k6W3zIfYUS|P$W;sys&Lp!U^qckPX2Nykt(|JcxH`J>VrcT#XpNl|FdE#x{y9AP zo2CXcqnEs0T9+(A_iL(NWf+m5Wq<6RK9&)J$hQc)0vVnUU z>r&tSHY9(VPigG-b>)9xo8an@7EfD*|U-0AUJ<2JSDR=7e!tkEcLJ^h> zbPF=b@SH>`Qv$T;o!Z(9w`l#Qg}C|WdWkj_G) z2k(Mx?Jo3lv02R;6n3c|7o((rj$^&&v$f5e{j@ef)fNdqz5bMN9ZKh5cE)M&fapoR ziaZI0^5y(q4m3))fkDgmx&6MU$^2{zLxfit$*v4r6eVJ3hYonu2Ki;D8U8SBup5>6 z=!4rKE1*$U<$P38TlYK*6{AA2FF(UB-Xb%gx)RoVjQx0QIAuIhlEyx;RqZvIK`MRD zwE9A6oJ^Q;P_q7U?a#Y~p8NcOO3y|W;9Z2J@8(mUqIQUS$4{h~ZWP{m>aK9)IlglIbuCQRVNaGJtkqaqxCS{KKAzf1UFufFeDkHgHp3_HuW8~%*^B-4S5_kY z^oIDI%=`!R{fW%{wYlJ{w3VTYw2_pq)ZdWvRhC40^YuOEL7CI)No-zgUuY;@Nkavq z5kEK4VCmH%#B9TX_thb!N^`+(P9(ZF{br@r_54aNtMW4*BoN=LBS;p@p0`(7*`k9X zCET0#a$zGorcNw{oBMWO9G%BKOx>)B;rli<;W~~t=+{qv%XRpj*GF*mS)fz0(o!D< zqa}QdlCXjt;d!=v-XV16yhF-1P-t7O;Q}X~O?HfoT$R=3L+px89Eqm|o6u-D6tBd3 zP~IR5ZxnauPGjb#le@t>o_>g^O*!*e*awMpFD`R^e_wBPgSXje2>GsMo%4C!#Wq5{ zIw(*pusI%Fu8|_x?5#o%v7uYp@ZNz=+fZtU5Km3*@jRuF(UCHL>6y*1@b~EOyk1fL)Prbg#=YfJ69Xh73_3TvJ)cP^%$mpw2%9 z?gD$v=a(}jZl5Ts8ZDtA^sjH@V{jKe;&JpCl@RB-t%l*0?OUFz;wrl$OelH&a3tyA z4ZihyrOwt*>#5(CT>TUteBcn%0{9+sE+|WBRq%bk6wmfq=WeTvE zP*bFAn2@%7uo8X?p6?pW%SwHrm4LFt1M976i3pqK*xpn`y@Zh&ohb`LNG)g9Z;aOI z89Bxs@?4JImP30I@L4c0l!9qd1W%1?RhiVX(uS^&GA?$T?i=pP zK54DHTr6wJ>1K`Bt0kAXG3Xs$Zm2PLjtE!yjq-%bvR%m~W00{G5P&G)5GP(rhb3|%U3Oe~ohIBOOhSd` zg+I=D*&(99n;ZxU;x#-8l+KNdJE&@C0%h@j`t!@p1u|ntoR3NTga#3sj8OWT_xb#n z>QyMA0#4aYAY}!@eaw zD{gJTh~G|e7Tvp}&V9MKcW;O1(wAvLE(k&e(_oa~1H_k%aJSxknq4gQ-I^%`vpvyfk4vZ;jMHm@N~r*QoGw-H z6(vu4zMckJX)Nr)dn>$K5S4QQM2L3Z0@jij70HH$<2NeAebB#Hc9w=h!klXBB^=r; zG0)!JLuS+D@P)0KZBv*#R9?uqb-T9Jt_B+|lc+Q)LK(iPJG`*oB8fkH3-c1P$yX&i z1ma*6i)scjJ$c*49m;L%L?9#?_TXdpM24Cs-$OJQ~;BvVf{h^exA%#L^bRZQP6+BoR^mGKWchuQ$1a{se zzL@9b(gQiKj}%IH0?6?yw0BGd%HAcBwd2=gG4#xwounVO4<48XOh=KM*+VbdD7UnI zGpYh3i&d3Bc!3<&Bye}xxkJ&r28_h$<(z-x2QspV9MCL7U@gHN_ofD-LfUZL<|D7B zc8!(#WKTq^V_Ja^9XCLOBizb zNG4}J_?_=?_tGud%4g*jq{e(O}b6s)FM25)AjOxzCpf+wJYASF{@6rWI0juDfw+OXDONX|YdxnsXy-|R+Gshb z5D4vnHwB8Lk9g##Lxm<7LU@$iH`Q_!`ne^$6qN+TK@ofJgq2+ha(o#$} zc*>d!Bc+FGM$&JCT5Xn3a95SkceexuHf6Mmw(nIVG|yN{;*7A4P{uBfuxehOV$Tb! zCs;uz@NGH(twS@T&%BmD#m}c0=@e+WtYi>#bqbozt($tMz_1npV<&73Lfl}2qV=$2 zdiZVReLaoHRZRu6u)ju4k(BeyrEED`$aC2`Q{V!L_?CC-z0ZAW&VXqjKlD{jFjC6* z8sW~_$@0UG%TozAOLp|NhhqNI9?EaC*!lNI{wKon7gucd-}Q)f_5Rit%<|O|;MHO0 zRgP;;K9w@+6v`JxeOw>T(kYom#c5BV@LdyPTDi!@X$~cuZ8bVA<(Jah(={&GA!Gw7oj#PC`lYKbyf@yD)7lqJv4LY4~iZ>M@;!ARq^ z?6cRfGn`h{>OT4FQk5-r>J~a51$2fO!a+XSl52}zLZBAaEEVyaO8CVvq;E>`)^~5z zr?ORG)4#owcgd$@LyrZDJ()0plIAmG& zwXuGCW;W6C8Oa669{Y>kl%woGJ_I0Y=MeW*M>7yq*i_mG2{=xk57z|tn87D@fNIKN zo2i=Ed5zOF)=uR|7ZxWNxthTKIh|4-lJad}XDw2nv9ZZ%Y&?YCPc2|O(Z+-;9l8ey z>V$oS^GS}gnV&n_xt^(03mQfK5)m)|LOF5r%2t-2_Evshf%r2t{)uG$wcU49d(rO= zmcOYCE#)+=CuxyA$0}G6^~_p`v)*1;BF_0kE_A!71o|^dhNmns8bw&nODPu)T9ZhX z(pPca-5;d8b00a-2h(;sixVXVlt92Ne#^IfD`KSqqv#__t3Owvat79w5S)M*sfKtJ z)Y5~fByan^IBoKpQ<8~{iqv$=~zqD?uLy zbo<{lIEnyEWt|jd{m`>tKM=n+`eKNCAM-kR{J?a4lV~w1$Qqu-&y>6EzOQ5$z$-5 zia}Hv{O#o<(P(#AAk0R0dt{I?D;q?^Y~mf2^|K>4wof3bnZmpiUa*rIhB3#+TW8$A z9If~ewgOUKY1RDGD)P6rEdLode8@iJ*;5?-d2IWoT z-5$^E+6_2W6R))`REU$O-;A>dU*P~#CZ$PaE+>IS939A{a6m!A^iX7F1+J?NP(>c$Gaqdhl+??$j{-b21ODwKi=Dd1sl0}fXEXvz z>24Z5s887p_B@mLrDi=D)1=zOj@B$%92^nsThwe!DeQEg)JObkuwgmH%RepmL>s@&%t|Njyg?l0#WNdbv=Sf7B2U0s|Kb-H zjRpyNyT*>lp_Bj)U;{g%@F;eY@Yv|l*!mWSiNyS3OIr8}#(UHi>4u119+H|0q?@w) zd9?Wo5VYvYcLuv(1;*Cj&?7W+^ytkGo#4ji+Agl>_+*s5OMl!j3sF4(v8QoW7ss9T zO0b@vDvbQT`sd$)=uhOC;xBzUHhr~Mw=#Ax`5T6n#mK&@{~!mfK2gAi)dd$F8ydQs zB#hHn)2TdsHK0X**IrejS5|LG$YzOFy{a`JW~#fmm`)h^;YY+c1Y!Hwa=mwq|h_ zqBFfI#^VW$)HLm7sAzb*C1c7%cLjG$Mva8(d1=i!ZQPwHlXQp@`Lb~VT<;Y$me56f zJXGEVGQRDIq0Bf%ce>%$Lg`Z;JXgimS8aO8wuYimJghT6-&&f-@Bef#lsPmh%&7JB zeoqAj@d+s~Bg0wEYQT;)HXpRb1@GQ&0B)p{92vJ;X1&R1@o+|`L21-)fvX%YcIn{F zS8de*R+6;^T07p8*g&=PaR^2sKesSVU|^Ox_dp)(^I;=a*kioSy**lwNQ3js8$=|p z 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

B3hvS6 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

-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

uT`Du-1Q{ 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≶f>NYY;M+FE2eTe(#O8jNrV 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

XlxO>H%XsLaAVo$Xg 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 qx%ujIqleh+36>!#_5@e5#qUnWhalnbS}pV8&E< +If you are upgrading from 1.x to 2.0 of the SDK, please see +the {file:UPGRADING.md} notes for information on how to migrate existing code +to work with the new major version. +

+ +## Installing + +### In the Browser + +To use the SDK in the browser, simply add the following script tag to your +HTML pages: + + + +You can also build a custom browser SDK with your specified set of AWS services. +This can allow you to reduce the SDK's size, specify different API versions of +services, or use AWS services that don't currently support CORS if you are +working in an environment that does not enforce CORS. To get started: + +http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-building.html + +The AWS SDK is also compatible with [browserify](http://browserify.org). + +### 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 +``` + +### Using Bower + +You can also use [Bower](http://bower.io) to install the SDK by typing the +following into a terminal window: + +```sh +bower install aws-sdk-js +``` + +## 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 API GatewayAWS.APIGateway2015-07-09
Amazon CloudFrontAWS.CloudFront2014-10-21
Amazon CloudHSMAWS.CloudHSM2014-05-30
Amazon CloudSearchAWS.CloudSearch2013-01-01
Amazon CloudSearch DomainAWS.CloudSearchDomain2013-01-01
Amazon CloudWatchAWS.CloudWatch2010-08-01
Amazon CloudWatch EventsAWS.CloudWatchLogs2015-10-07
Amazon CloudWatch LogsAWS.CloudWatchLogs2014-03-28
Amazon Cognito IdentityAWS.CognitoIdentity2014-06-30
Amazon Cognito SyncAWS.CognitoSync2014-06-30
Amazon DynamoDBAWS.DynamoDB2012-08-10
Amazon DynamoDB StreamsAWS.DynamoDBStreams2012-08-10
Amazon EC2 Container RegistryAWS.ECR2015-09-21
Amazon EC2 Container ServiceAWS.ECS2014-11-13
Amazon Elastic Compute CloudAWS.EC22014-10-01
Amazon Elastic File SystemAWS.EFS2015-02-01
Amazon Elastic MapReduceAWS.EMR2009-03-31
Amazon Elastic TranscoderAWS.ElasticTranscoder2012-09-25
Amazon ElastiCacheAWS.ElastiCache2014-09-30
Amazon Elasticsearch ServiceAWS.ES2015-01-01
Amazon GameLiftAWS.GameLift2015-10-01
Amazon GlacierAWS.Glacier2012-06-01
Amazon InspectorAWS.Inspector2016-02-16
Amazon KinesisAWS.Kinesis2013-12-02
Amazon Kinesis FirehoseAWS.Firehose2015-08-04
Amazon Machine LearningAWS.MachineLearning2014-12-12
Amazon Mobile AnalyticsAWS.MobileAnalytics2014-06-05
Amazon RedshiftAWS.Redshift2012-12-01
Amazon Relational Database ServiceAWS.RDS2014-09-01
Amazon Route 53AWS.Route532013-04-01
Amazon Route 53 DomainsAWS.Route53Domains2014-05-15
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 Systems Management ServiceAWS.SSM2014-11-06
Amazon Simple Workflow ServiceAWS.SWF2012-01-25
Amazon SimpleDBAWS.SimpleDB2009-04-15
Amazon WorkSpacesAWS.WorkSpaces2015-04-08
Auto ScalingAWS.AutoScaling2011-01-01
AWS Certificate ManagerAWS.ACM2015-12-08
AWS CloudFormationAWS.CloudFormation2010-05-15
AWS CloudTrailAWS.CloudTrail2013-11-01
AWS CodeCommitAWS.CodeCommit2015-04-13
AWS CodeDeployAWS.CodeDeploy2014-10-06
AWS CodePipelineAWS.CodePipeline2015-07-09
AWS ConfigAWS.ConfigService2014-11-12
AWS Data PipelineAWS.DataPipeline2012-10-29
AWS Database Migration ServiceAWS.DMS2016-01-01
AWS Device FarmAWS.DeviceFarm2015-06-23
AWS Direct ConnectAWS.DirectConnect2012-10-25
AWS Directory ServiceAWS.DirectoryService2015-04-16
AWS Elastic BeanstalkAWS.ElasticBeanstalk2010-12-01
AWS Identity and Access ManagementAWS.IAM2010-05-08
AWS Import/ExportAWS.ImportExport2010-06-01
AWS IoTAWS.Iot2015-05-28
AWS IoT Data PlaneAWS.IotData2015-05-28
AWS Key Management ServiceAWS.KMS2014-11-01
AWS LambdaAWS.Lambda2015-03-31
AWS Marketplace Commerce AnalyticsAWS.MarketplaceCommerceAnalytics2015-07-01
AWS Marketplace MeteringAWS.MarketplaceMetering2016-01-14
AWS OpsWorksAWS.OpsWorks2013-02-18
AWS Security Token ServiceAWS.STS2011-06-15
AWS Storage GatewayAWS.StorageGateway2013-06-30
AWS SupportAWS.Support2013-04-15
AWS WAFAWS.WAF2015-08-24
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), +see LICENSE.txt and NOTICE.txt for more information. diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/UPGRADING.md b/cognitoLambdaTrigger/node_modules/aws-sdk/UPGRADING.md new file mode 100755 index 0000000..f67fd91 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/UPGRADING.md @@ -0,0 +1,157 @@ +# @!title Upgrading Notes (1.x to 2.0) + +# Upgrading Notes (1.x to 2.0) + +This document captures breaking changes from 1.x versions to the first +stable 2.x (non-RC) release of the AWS SDK for JavaScript. + +## 1. Automatic Conversion of Base64 and Timestamp Types on Input/Output + +The SDK will now automatically encode and decode base64-encoded values, as well +as timestamp values, on the user's behalf. This change affects any operation +where Base64 or Timestamp values were sent by a request or returned in a +response, i.e., `AWS.DynamoDB` and `AWS.SQS`, which allow for Base64 +encoded values. + +User code that previously did base64 conversion no longer requires this. +Furthermore, values encoded as base64 are now returned as Buffer objects +from server responses (and can also be passed as Buffer input). For +example, the following 1.x `SQS.sendMessage()` parameters: + +```javascript +var params = { + MessageBody: 'Some Message', + MessageAttributes: { + attrName: { + DataType: 'Binary', + BinaryValue: new Buffer('example text').toString('base64') + } + } +}; +``` + +Can be rewritten as: + +```javascript +var params = { + MessageBody: 'Some Message', + MessageAttributes: { + attrName: { + DataType: 'Binary', + BinaryValue: 'example text' + } + } +}; +``` + +And the message will be read as: + +```javascript +sqs.receiveMessage(params, function(err, data) { + // buf is + var buf = data.Messages[0].MessageAttributes.attrName.BinaryValue; + console.log(buf.toString()); // "example text" +}); +``` + +## 2. Moved response.data.RequestId to response.requestId + +The SDK now stores request IDs for all services in a consistent place on the +response object, rather than inside the response.data property. This is to +improve consistency across services that expose request IDs in different ways. +Note that this is also a breaking change that renames the +`response.data.RequestId` property to `response.requestId` +(or `this.requestId` inside of a callback). + +To migrate your code, change: + +```javascript +svc.operation(params, function (err, data) { + console.log('Request ID:', data.RequestId); +}); +``` + +To the following: + +```javascript +svc.operation(params, function () { + console.log('Request ID:', this.requestId); +}); +``` + +## 3. Exposed Wrapper Elements + +If you use {AWS.ElastiCache}, {AWS.RDS}, or {AWS.Redshift}, you must now access +the response through the top-level output property in the response for certain +operations. This change corrects the SDK to behave according to documentation +output, which was previously listing this wrapper element. + +Example: + +`RDS.describeEngineDefaultParameters()` used to return: + +```javascript +{ Parameters: [ ... ] } +``` + +This operation now returns: + +```javascript +{ EngineDefaults: { Parameters: [ ... ] } } +``` + +The full list of affected operations for each service are: + +**AWS.ElastiCache**: authorizeCacheSecurityGroupIngress, createCacheCluster, +createCacheParameterGroup, createCacheSecurityGroup, createCacheSubnetGroup, +createReplicationGroup, deleteCacheCluster, deleteReplicationGroup, +describeEngineDefaultParameters, modifyCacheCluster, modifyCacheSubnetGroup, +modifyReplicationGroup, purchaseReservedCacheNodesOffering, rebootCacheCluster, +revokeCacheSecurityGroupIngress + +**AWS.RDS**: addSourceIdentifierToSubscription, authorizeDBSecurityGroupIngress, +copyDBSnapshot, createDBInstance, createDBInstanceReadReplica, +createDBParameterGroup, createDBSecurityGroup, createDBSnapshot, +createDBSubnetGroup, createEventSubscription, createOptionGroup, +deleteDBInstance, deleteDBSnapshot, deleteEventSubscription, +describeEngineDefaultParameters, modifyDBInstance, modifyDBSubnetGroup, +modifyEventSubscription, modifyOptionGroup, promoteReadReplica, +purchaseReservedDBInstancesOffering, rebootDBInstance, +removeSourceIdentifierFromSubscription, restoreDBInstanceFromDBSnapshot, +restoreDBInstanceToPointInTime, revokeDBSecurityGroupIngress + +**AWS.Redshift**: authorizeClusterSecurityGroupIngress, authorizeSnapshotAccess, +copyClusterSnapshot, createCluster, createClusterParameterGroup, +createClusterSecurityGroup, createClusterSnapshot, createClusterSubnetGroup, +createEventSubscription, createHsmClientCertificate, createHsmConfiguration, +deleteCluster, deleteClusterSnapshot, describeDefaultClusterParameters, +disableSnapshotCopy, enableSnapshotCopy, modifyCluster, +modifyClusterSubnetGroup, modifyEventSubscription, +modifySnapshotCopyRetentionPeriod, purchaseReservedNodeOffering, rebootCluster, +restoreFromClusterSnapshot, revokeClusterSecurityGroupIngress, +revokeSnapshotAccess, rotateEncryptionKey + +## 4. Dropped `.Client` and `.client` Properties + +The `.Client` and `.client` properties have been removed from Service objects. +If you are using the `.Client` property on a Service class or a `.client` +property on an instance of the service, remove these properties from your code. + +Upgrading example: + +The following 1.x code: + +``` +var sts = new AWS.STS.Client(); +// or +var sts = new AWS.STS(); + +sts.client.operation(...); +``` + +Should be changed to the following: + +``` +var sts = new AWS.STS(); +sts.operation(...) +``` diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.min.json new file mode 100755 index 0000000..a81efe0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.min.json @@ -0,0 +1,262 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-12-08", + "endpointPrefix": "acm", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "ACM", + "serviceFullName": "AWS Certificate Manager", + "signatureVersion": "v4", + "targetPrefix": "CertificateManager" + }, + "operations": { + "AddTagsToCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Tags" + ], + "members": { + "CertificateArn": {}, + "Tags": { + "shape": "S3" + } + } + } + }, + "DeleteCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + } + }, + "DescribeCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": { + "type": "structure", + "members": { + "CertificateArn": {}, + "DomainName": {}, + "SubjectAlternativeNames": { + "shape": "Sc" + }, + "DomainValidationOptions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "ValidationEmails": { + "type": "list", + "member": {} + }, + "ValidationDomain": {} + } + } + }, + "Serial": {}, + "Subject": {}, + "Issuer": {}, + "CreatedAt": { + "type": "timestamp" + }, + "IssuedAt": { + "type": "timestamp" + }, + "Status": {}, + "RevokedAt": { + "type": "timestamp" + }, + "RevocationReason": {}, + "NotBefore": { + "type": "timestamp" + }, + "NotAfter": { + "type": "timestamp" + }, + "KeyAlgorithm": {}, + "SignatureAlgorithm": {}, + "InUseBy": { + "type": "list", + "member": {} + } + } + } + } + } + }, + "GetCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": {}, + "CertificateChain": {} + } + } + }, + "ListCertificates": { + "input": { + "type": "structure", + "members": { + "CertificateStatuses": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "CertificateSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CertificateArn": {}, + "DomainName": {} + } + } + } + } + } + }, + "ListTagsForCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S3" + } + } + } + }, + "RemoveTagsFromCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Tags" + ], + "members": { + "CertificateArn": {}, + "Tags": { + "shape": "S3" + } + } + } + }, + "RequestCertificate": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "SubjectAlternativeNames": { + "shape": "Sc" + }, + "IdempotencyToken": {}, + "DomainValidationOptions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DomainName", + "ValidationDomain" + ], + "members": { + "DomainName": {}, + "ValidationDomain": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "CertificateArn": {} + } + } + }, + "ResendValidationEmail": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Domain", + "ValidationDomain" + ], + "members": { + "CertificateArn": {}, + "Domain": {}, + "ValidationDomain": {} + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sc": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json new file mode 100755 index 0000000..036e358 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListCertificates": { + "limit_key": "MaxItems", + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "CertificateSummaryList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json new file mode 100755 index 0000000..252435c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json @@ -0,0 +1,2681 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-07-09", + "endpointPrefix": "apigateway", + "protocol": "rest-json", + "serviceFullName": "Amazon API Gateway", + "signatureVersion": "v4" + }, + "operations": { + "CreateApiKey": { + "http": { + "requestUri": "/apikeys", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "name": {}, + "description": {}, + "enabled": { + "type": "boolean" + }, + "stageKeys": { + "type": "list", + "member": { + "type": "structure", + "members": { + "restApiId": {}, + "stageName": {} + } + } + } + } + }, + "output": { + "shape": "S6" + } + }, + "CreateAuthorizer": { + "http": { + "requestUri": "/restapis/{restapi_id}/authorizers", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "name", + "type", + "authorizerUri", + "identitySource" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "name": {}, + "type": {}, + "authType": {}, + "authorizerUri": {}, + "authorizerCredentials": {}, + "identitySource": {}, + "identityValidationExpression": {}, + "authorizerResultTtlInSeconds": { + "type": "integer" + } + } + }, + "output": { + "shape": "Sc" + } + }, + "CreateBasePathMapping": { + "http": { + "requestUri": "/domainnames/{domain_name}/basepathmappings", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "restApiId" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": {}, + "restApiId": {}, + "stage": {} + } + }, + "output": { + "shape": "Se" + } + }, + "CreateDeployment": { + "http": { + "requestUri": "/restapis/{restapi_id}/deployments", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": {}, + "stageDescription": {}, + "description": {}, + "cacheClusterEnabled": { + "type": "boolean" + }, + "cacheClusterSize": {}, + "variables": { + "shape": "Si" + } + } + }, + "output": { + "shape": "Sj" + } + }, + "CreateDomainName": { + "http": { + "requestUri": "/domainnames", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "certificateName", + "certificateBody", + "certificatePrivateKey", + "certificateChain" + ], + "members": { + "domainName": {}, + "certificateName": {}, + "certificateBody": {}, + "certificatePrivateKey": {}, + "certificateChain": {} + } + }, + "output": { + "shape": "So" + } + }, + "CreateModel": { + "http": { + "requestUri": "/restapis/{restapi_id}/models", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "name", + "contentType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "name": {}, + "description": {}, + "schema": {}, + "contentType": {} + } + }, + "output": { + "shape": "Sq" + } + }, + "CreateResource": { + "http": { + "requestUri": "/restapis/{restapi_id}/resources/{parent_id}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "parentId", + "pathPart" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "parentId": { + "location": "uri", + "locationName": "parent_id" + }, + "pathPart": {} + } + }, + "output": { + "shape": "Ss" + } + }, + "CreateRestApi": { + "http": { + "requestUri": "/restapis", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "description": {}, + "cloneFrom": {} + } + }, + "output": { + "shape": "S14" + } + }, + "CreateStage": { + "http": { + "requestUri": "/restapis/{restapi_id}/stages", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": {}, + "deploymentId": {}, + "description": {}, + "cacheClusterEnabled": { + "type": "boolean" + }, + "cacheClusterSize": {}, + "variables": { + "shape": "Si" + } + } + }, + "output": { + "shape": "S16" + } + }, + "DeleteApiKey": { + "http": { + "method": "DELETE", + "requestUri": "/apikeys/{api_Key}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": { + "location": "uri", + "locationName": "api_Key" + } + } + } + }, + "DeleteAuthorizer": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + } + } + } + }, + "DeleteBasePathMapping": { + "http": { + "method": "DELETE", + "requestUri": "/domainnames/{domain_name}/basepathmappings/{base_path}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "basePath" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": { + "location": "uri", + "locationName": "base_path" + } + } + } + }, + "DeleteClientCertificate": { + "http": { + "method": "DELETE", + "requestUri": "/clientcertificates/{clientcertificate_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "clientCertificateId" + ], + "members": { + "clientCertificateId": { + "location": "uri", + "locationName": "clientcertificate_id" + } + } + } + }, + "DeleteDeployment": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/deployments/{deployment_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "uri", + "locationName": "deployment_id" + } + } + } + }, + "DeleteDomainName": { + "http": { + "method": "DELETE", + "requestUri": "/domainnames/{domain_name}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + } + } + } + }, + "DeleteIntegration": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + } + }, + "DeleteIntegrationResponse": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + } + }, + "DeleteMethod": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + } + }, + "DeleteMethodResponse": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + } + }, + "DeleteModel": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/models/{model_name}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + } + } + } + }, + "DeleteResource": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + } + } + } + }, + "DeleteRestApi": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + } + } + } + }, + "DeleteStage": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + } + }, + "FlushStageAuthorizersCache": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + } + }, + "FlushStageCache": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/cache/data", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + } + }, + "GenerateClientCertificate": { + "http": { + "requestUri": "/clientcertificates", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "description": {} + } + }, + "output": { + "shape": "S1u" + } + }, + "GetAccount": { + "http": { + "method": "GET", + "requestUri": "/account" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "shape": "S1w" + } + }, + "GetApiKey": { + "http": { + "method": "GET", + "requestUri": "/apikeys/{api_Key}" + }, + "input": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": { + "location": "uri", + "locationName": "api_Key" + } + } + }, + "output": { + "shape": "S6" + } + }, + "GetApiKeys": { + "http": { + "method": "GET", + "requestUri": "/apikeys" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S6" + } + } + } + } + }, + "GetAuthorizer": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + } + } + }, + "output": { + "shape": "Sc" + } + }, + "GetAuthorizers": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/authorizers" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sc" + } + } + } + } + }, + "GetBasePathMapping": { + "http": { + "method": "GET", + "requestUri": "/domainnames/{domain_name}/basepathmappings/{base_path}" + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "basePath" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": { + "location": "uri", + "locationName": "base_path" + } + } + }, + "output": { + "shape": "Se" + } + }, + "GetBasePathMappings": { + "http": { + "method": "GET", + "requestUri": "/domainnames/{domain_name}/basepathmappings" + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Se" + } + } + } + } + }, + "GetClientCertificate": { + "http": { + "method": "GET", + "requestUri": "/clientcertificates/{clientcertificate_id}" + }, + "input": { + "type": "structure", + "required": [ + "clientCertificateId" + ], + "members": { + "clientCertificateId": { + "location": "uri", + "locationName": "clientcertificate_id" + } + } + }, + "output": { + "shape": "S1u" + } + }, + "GetClientCertificates": { + "http": { + "method": "GET", + "requestUri": "/clientcertificates" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S1u" + } + } + } + } + }, + "GetDeployment": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/deployments/{deployment_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "uri", + "locationName": "deployment_id" + } + } + }, + "output": { + "shape": "Sj" + } + }, + "GetDeployments": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/deployments" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sj" + } + } + } + } + }, + "GetDomainName": { + "http": { + "method": "GET", + "requestUri": "/domainnames/{domain_name}" + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + } + } + }, + "output": { + "shape": "So" + } + }, + "GetDomainNames": { + "http": { + "method": "GET", + "requestUri": "/domainnames" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "So" + } + } + } + } + }, + "GetExport": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName", + "exportType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + }, + "exportType": { + "location": "uri", + "locationName": "export_type" + }, + "parameters": { + "shape": "Si", + "location": "querystring" + }, + "accepts": { + "location": "header", + "locationName": "Accept" + } + } + }, + "output": { + "type": "structure", + "members": { + "contentType": { + "location": "header", + "locationName": "Content-Type" + }, + "contentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + } + }, + "GetIntegration": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + }, + "output": { + "shape": "Sz" + } + }, + "GetIntegrationResponse": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + }, + "output": { + "shape": "S12" + } + }, + "GetMethod": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + }, + "output": { + "shape": "Su" + } + }, + "GetMethodResponse": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + }, + "output": { + "shape": "Sx" + } + }, + "GetModel": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/models/{model_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + }, + "flatten": { + "location": "querystring", + "locationName": "flatten", + "type": "boolean" + } + } + }, + "output": { + "shape": "Sq" + } + }, + "GetModelTemplate": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/models/{model_name}/default_template" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + } + } + }, + "output": { + "type": "structure", + "members": { + "value": {} + } + } + }, + "GetModels": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/models" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sq" + } + } + } + } + }, + "GetResource": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + } + } + }, + "output": { + "shape": "Ss" + } + }, + "GetResources": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Ss" + } + } + } + } + }, + "GetRestApi": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + } + } + }, + "output": { + "shape": "S14" + } + }, + "GetRestApis": { + "http": { + "method": "GET", + "requestUri": "/restapis" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S14" + } + } + } + } + }, + "GetSdk": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName", + "sdkType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + }, + "sdkType": { + "location": "uri", + "locationName": "sdk_type" + }, + "parameters": { + "shape": "Si", + "location": "querystring" + } + } + }, + "output": { + "type": "structure", + "members": { + "contentType": { + "location": "header", + "locationName": "Content-Type" + }, + "contentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + } + }, + "GetStage": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + }, + "output": { + "shape": "S16" + } + }, + "GetStages": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "querystring", + "locationName": "deploymentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "item": { + "type": "list", + "member": { + "shape": "S16" + } + } + } + } + }, + "ImportRestApi": { + "http": { + "requestUri": "/restapis?mode=import", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "body" + ], + "members": { + "failOnWarnings": { + "location": "querystring", + "locationName": "failonwarnings", + "type": "boolean" + }, + "parameters": { + "shape": "Si", + "location": "querystring" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + }, + "output": { + "shape": "S14" + } + }, + "PutIntegration": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "type" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "type": {}, + "integrationHttpMethod": { + "locationName": "httpMethod" + }, + "uri": {}, + "credentials": {}, + "requestParameters": { + "shape": "Si" + }, + "requestTemplates": { + "shape": "Si" + }, + "passthroughBehavior": {}, + "cacheNamespace": {}, + "cacheKeyParameters": { + "shape": "S7" + } + } + }, + "output": { + "shape": "Sz" + } + }, + "PutIntegrationResponse": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "selectionPattern": {}, + "responseParameters": { + "shape": "Si" + }, + "responseTemplates": { + "shape": "Si" + } + } + }, + "output": { + "shape": "S12" + } + }, + "PutMethod": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "authorizationType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "authorizationType": {}, + "authorizerId": {}, + "apiKeyRequired": { + "type": "boolean" + }, + "requestParameters": { + "shape": "Sv" + }, + "requestModels": { + "shape": "Si" + } + } + }, + "output": { + "shape": "Su" + } + }, + "PutMethodResponse": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "responseParameters": { + "shape": "Sv" + }, + "responseModels": { + "shape": "Si" + } + } + }, + "output": { + "shape": "Sx" + } + }, + "PutRestApi": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "body" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "mode": { + "location": "querystring", + "locationName": "mode" + }, + "failOnWarnings": { + "location": "querystring", + "locationName": "failonwarnings", + "type": "boolean" + }, + "parameters": { + "shape": "Si", + "location": "querystring" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + }, + "output": { + "shape": "S14" + } + }, + "TestInvokeAuthorizer": { + "http": { + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + }, + "headers": { + "shape": "S3l" + }, + "pathWithQueryString": {}, + "body": {}, + "stageVariables": { + "shape": "Si" + }, + "additionalContext": { + "shape": "Si" + } + } + }, + "output": { + "type": "structure", + "members": { + "clientStatus": { + "type": "integer" + }, + "log": {}, + "latency": { + "type": "long" + }, + "principalId": {}, + "policy": {}, + "authorization": { + "type": "map", + "key": {}, + "value": { + "shape": "S7" + } + } + } + } + }, + "TestInvokeMethod": { + "http": { + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "pathWithQueryString": {}, + "body": {}, + "headers": { + "shape": "S3l" + }, + "clientCertificateId": {}, + "stageVariables": { + "shape": "Si" + } + } + }, + "output": { + "type": "structure", + "members": { + "status": { + "type": "integer" + }, + "body": {}, + "headers": { + "shape": "S3l" + }, + "log": {}, + "latency": { + "type": "long" + } + } + } + }, + "UpdateAccount": { + "http": { + "method": "PATCH", + "requestUri": "/account" + }, + "input": { + "type": "structure", + "members": { + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "S1w" + } + }, + "UpdateApiKey": { + "http": { + "method": "PATCH", + "requestUri": "/apikeys/{api_Key}" + }, + "input": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": { + "location": "uri", + "locationName": "api_Key" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "S6" + } + }, + "UpdateAuthorizer": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Sc" + } + }, + "UpdateBasePathMapping": { + "http": { + "method": "PATCH", + "requestUri": "/domainnames/{domain_name}/basepathmappings/{base_path}" + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "basePath" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": { + "location": "uri", + "locationName": "base_path" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Se" + } + }, + "UpdateClientCertificate": { + "http": { + "method": "PATCH", + "requestUri": "/clientcertificates/{clientcertificate_id}" + }, + "input": { + "type": "structure", + "required": [ + "clientCertificateId" + ], + "members": { + "clientCertificateId": { + "location": "uri", + "locationName": "clientcertificate_id" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "S1u" + } + }, + "UpdateDeployment": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/deployments/{deployment_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "uri", + "locationName": "deployment_id" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Sj" + } + }, + "UpdateDomainName": { + "http": { + "method": "PATCH", + "requestUri": "/domainnames/{domain_name}" + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "So" + } + }, + "UpdateIntegration": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Sz" + } + }, + "UpdateIntegrationResponse": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "S12" + } + }, + "UpdateMethod": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Su" + } + }, + "UpdateMethodResponse": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Sx" + } + }, + "UpdateModel": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/models/{model_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Sq" + } + }, + "UpdateResource": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "Ss" + } + }, + "UpdateRestApi": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "S14" + } + }, + "UpdateStage": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + }, + "patchOperations": { + "shape": "S3s" + } + } + }, + "output": { + "shape": "S16" + } + } + }, + "shapes": { + "S6": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "enabled": { + "type": "boolean" + }, + "stageKeys": { + "shape": "S7" + }, + "createdDate": { + "type": "timestamp" + }, + "lastUpdatedDate": { + "type": "timestamp" + } + } + }, + "S7": { + "type": "list", + "member": {} + }, + "Sc": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "type": {}, + "authType": {}, + "authorizerUri": {}, + "authorizerCredentials": {}, + "identitySource": {}, + "identityValidationExpression": {}, + "authorizerResultTtlInSeconds": { + "type": "integer" + } + } + }, + "Se": { + "type": "structure", + "members": { + "basePath": {}, + "restApiId": {}, + "stage": {} + } + }, + "Si": { + "type": "map", + "key": {}, + "value": {} + }, + "Sj": { + "type": "structure", + "members": { + "id": {}, + "description": {}, + "createdDate": { + "type": "timestamp" + }, + "apiSummary": { + "type": "map", + "key": {}, + "value": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "authorizationType": {}, + "apiKeyRequired": { + "type": "boolean" + } + } + } + } + } + } + }, + "So": { + "type": "structure", + "members": { + "domainName": {}, + "certificateName": {}, + "certificateUploadDate": { + "type": "timestamp" + }, + "distributionDomainName": {} + } + }, + "Sq": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "schema": {}, + "contentType": {} + } + }, + "Ss": { + "type": "structure", + "members": { + "id": {}, + "parentId": {}, + "pathPart": {}, + "path": {}, + "resourceMethods": { + "type": "map", + "key": {}, + "value": { + "shape": "Su" + } + } + } + }, + "Su": { + "type": "structure", + "members": { + "httpMethod": {}, + "authorizationType": {}, + "authorizerId": {}, + "apiKeyRequired": { + "type": "boolean" + }, + "requestParameters": { + "shape": "Sv" + }, + "requestModels": { + "shape": "Si" + }, + "methodResponses": { + "type": "map", + "key": {}, + "value": { + "shape": "Sx" + } + }, + "methodIntegration": { + "shape": "Sz" + } + } + }, + "Sv": { + "type": "map", + "key": {}, + "value": { + "type": "boolean" + } + }, + "Sx": { + "type": "structure", + "members": { + "statusCode": {}, + "responseParameters": { + "shape": "Sv" + }, + "responseModels": { + "shape": "Si" + } + } + }, + "Sz": { + "type": "structure", + "members": { + "type": {}, + "httpMethod": {}, + "uri": {}, + "credentials": {}, + "requestParameters": { + "shape": "Si" + }, + "requestTemplates": { + "shape": "Si" + }, + "passthroughBehavior": {}, + "cacheNamespace": {}, + "cacheKeyParameters": { + "shape": "S7" + }, + "integrationResponses": { + "type": "map", + "key": {}, + "value": { + "shape": "S12" + } + } + } + }, + "S12": { + "type": "structure", + "members": { + "statusCode": {}, + "selectionPattern": {}, + "responseParameters": { + "shape": "Si" + }, + "responseTemplates": { + "shape": "Si" + } + } + }, + "S14": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "createdDate": { + "type": "timestamp" + }, + "warnings": { + "shape": "S7" + } + } + }, + "S16": { + "type": "structure", + "members": { + "deploymentId": {}, + "clientCertificateId": {}, + "stageName": {}, + "description": {}, + "cacheClusterEnabled": { + "type": "boolean" + }, + "cacheClusterSize": {}, + "cacheClusterStatus": {}, + "methodSettings": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "metricsEnabled": { + "type": "boolean" + }, + "loggingLevel": {}, + "dataTraceEnabled": { + "type": "boolean" + }, + "throttlingBurstLimit": { + "type": "integer" + }, + "throttlingRateLimit": { + "type": "double" + }, + "cachingEnabled": { + "type": "boolean" + }, + "cacheTtlInSeconds": { + "type": "integer" + }, + "cacheDataEncrypted": { + "type": "boolean" + }, + "requireAuthorizationForCacheControl": { + "type": "boolean" + }, + "unauthorizedCacheControlHeaderStrategy": {} + } + } + }, + "variables": { + "shape": "Si" + }, + "createdDate": { + "type": "timestamp" + }, + "lastUpdatedDate": { + "type": "timestamp" + } + } + }, + "S1u": { + "type": "structure", + "members": { + "clientCertificateId": {}, + "description": {}, + "pemEncodedCertificate": {}, + "createdDate": { + "type": "timestamp" + }, + "expirationDate": { + "type": "timestamp" + } + } + }, + "S1w": { + "type": "structure", + "members": { + "cloudwatchRoleArn": {}, + "throttleSettings": { + "type": "structure", + "members": { + "burstLimit": { + "type": "integer" + }, + "rateLimit": { + "type": "double" + } + } + } + } + }, + "S3l": { + "type": "map", + "key": {}, + "value": {} + }, + "S3s": { + "type": "list", + "member": { + "type": "structure", + "members": { + "op": {}, + "path": {}, + "value": {}, + "from": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json new file mode 100755 index 0000000..4a79cfb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "GetApiKeys": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetBasePathMappings": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetClientCertificates": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetDeployments": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetDomainNames": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetModels": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetResources": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + }, + "GetRestApis": { + "input_token": "position", + "output_token": "position", + "limit_key": "limit", + "result_key": "items" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json new file mode 100755 index 0000000..469d9d0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json @@ -0,0 +1,330 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-02-06", + "endpointPrefix": "autoscaling", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Application Auto Scaling", + "signatureVersion": "v4", + "signingName": "application-autoscaling", + "targetPrefix": "AnyScaleFrontendService" + }, + "operations": { + "DeleteScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName", + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "PolicyName": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeregisterScalableTarget": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeScalableTargets": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "ServiceNamespace": {}, + "ResourceIds": { + "shape": "S9" + }, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalableTargets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "MinCapacity", + "MaxCapacity", + "RoleARN", + "CreationTime" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + }, + "RoleARN": {}, + "CreationTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingActivities": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingActivities": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ActivityId", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "Description", + "Cause", + "StartTime", + "StatusCode" + ], + "members": { + "ActivityId": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "Description": {}, + "Cause": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "StatusCode": {}, + "StatusMessage": {}, + "Details": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingPolicies": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "PolicyNames": { + "shape": "S9" + }, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "PolicyARN", + "PolicyName", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "PolicyType", + "CreationTime" + ], + "members": { + "PolicyARN": {}, + "PolicyName": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "PolicyType": {}, + "StepScalingPolicyConfiguration": { + "shape": "St" + }, + "Alarms": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AlarmName", + "AlarmARN" + ], + "members": { + "AlarmName": {}, + "AlarmARN": {} + } + } + }, + "CreationTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "PutScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName", + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "PolicyName": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "PolicyType": {}, + "StepScalingPolicyConfiguration": { + "shape": "St" + } + } + }, + "output": { + "type": "structure", + "required": [ + "PolicyARN" + ], + "members": { + "PolicyARN": {} + } + } + }, + "RegisterScalableTarget": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + }, + "RoleARN": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S9": { + "type": "list", + "member": {} + }, + "St": { + "type": "structure", + "members": { + "AdjustmentType": {}, + "StepAdjustments": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingAdjustment" + ], + "members": { + "MetricIntervalLowerBound": { + "type": "double" + }, + "MetricIntervalUpperBound": { + "type": "double" + }, + "ScalingAdjustment": { + "type": "integer" + } + } + } + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "Cooldown": { + "type": "integer" + }, + "MetricAggregationType": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json new file mode 100755 index 0000000..97ae600 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "DescribeScalableTargets": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ScalableTargets" + }, + "DescribeScalingPolicies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ScalingPolicies" + }, + "DescribeScalingActivities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ScalingActivities" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json new file mode 100755 index 0000000..4e341b7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json @@ -0,0 +1,1517 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2011-01-01", + "endpointPrefix": "autoscaling", + "protocol": "query", + "serviceFullName": "Auto Scaling", + "signatureVersion": "v4", + "xmlNamespace": "http://autoscaling.amazonaws.com/doc/2011-01-01/" + }, + "operations": { + "AttachInstances": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {} + } + } + }, + "AttachLoadBalancers": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "LoadBalancerNames": { + "shape": "S6" + } + } + }, + "output": { + "resultWrapper": "AttachLoadBalancersResult", + "type": "structure", + "members": {} + } + }, + "CompleteLifecycleAction": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName", + "LifecycleActionResult" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleActionToken": {}, + "LifecycleActionResult": {}, + "InstanceId": {} + } + }, + "output": { + "resultWrapper": "CompleteLifecycleActionResult", + "type": "structure", + "members": {} + } + }, + "CreateAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "MinSize", + "MaxSize" + ], + "members": { + "AutoScalingGroupName": {}, + "LaunchConfigurationName": {}, + "InstanceId": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "Sj" + }, + "LoadBalancerNames": { + "shape": "S6" + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "TerminationPolicies": { + "shape": "Sm" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "Tags": { + "shape": "Sp" + } + } + } + }, + "CreateLaunchConfiguration": { + "input": { + "type": "structure", + "required": [ + "LaunchConfigurationName" + ], + "members": { + "LaunchConfigurationName": {}, + "ImageId": {}, + "KeyName": {}, + "SecurityGroups": { + "shape": "Sw" + }, + "ClassicLinkVPCId": {}, + "ClassicLinkVPCSecurityGroups": { + "shape": "Sx" + }, + "UserData": {}, + "InstanceId": {}, + "InstanceType": {}, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "shape": "Sz" + }, + "InstanceMonitoring": { + "shape": "S18" + }, + "SpotPrice": {}, + "IamInstanceProfile": {}, + "EbsOptimized": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "PlacementTenancy": {} + } + } + }, + "CreateOrUpdateTags": { + "input": { + "type": "structure", + "required": [ + "Tags" + ], + "members": { + "Tags": { + "shape": "Sp" + } + } + } + }, + "DeleteAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "ForceDelete": { + "type": "boolean" + } + } + } + }, + "DeleteLaunchConfiguration": { + "input": { + "type": "structure", + "required": [ + "LaunchConfigurationName" + ], + "members": { + "LaunchConfigurationName": {} + } + } + }, + "DeleteLifecycleHook": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {} + } + }, + "output": { + "resultWrapper": "DeleteLifecycleHookResult", + "type": "structure", + "members": {} + } + }, + "DeleteNotificationConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "TopicARN" + ], + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {} + } + } + }, + "DeletePolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {} + } + } + }, + "DeleteScheduledAction": { + "input": { + "type": "structure", + "required": [ + "ScheduledActionName" + ], + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": {} + } + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "Tags" + ], + "members": { + "Tags": { + "shape": "Sp" + } + } + } + }, + "DescribeAccountLimits": { + "output": { + "resultWrapper": "DescribeAccountLimitsResult", + "type": "structure", + "members": { + "MaxNumberOfAutoScalingGroups": { + "type": "integer" + }, + "MaxNumberOfLaunchConfigurations": { + "type": "integer" + }, + "NumberOfAutoScalingGroups": { + "type": "integer" + }, + "NumberOfLaunchConfigurations": { + "type": "integer" + } + } + } + }, + "DescribeAdjustmentTypes": { + "output": { + "resultWrapper": "DescribeAdjustmentTypesResult", + "type": "structure", + "members": { + "AdjustmentTypes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AdjustmentType": {} + } + } + } + } + } + }, + "DescribeAutoScalingGroups": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupNames": { + "shape": "S1x" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeAutoScalingGroupsResult", + "type": "structure", + "required": [ + "AutoScalingGroups" + ], + "members": { + "AutoScalingGroups": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "MinSize", + "MaxSize", + "DesiredCapacity", + "DefaultCooldown", + "AvailabilityZones", + "HealthCheckType", + "CreatedTime" + ], + "members": { + "AutoScalingGroupName": {}, + "AutoScalingGroupARN": {}, + "LaunchConfigurationName": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "Sj" + }, + "LoadBalancerNames": { + "shape": "S6" + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "Instances": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "InstanceId", + "AvailabilityZone", + "LifecycleState", + "HealthStatus", + "LaunchConfigurationName", + "ProtectedFromScaleIn" + ], + "members": { + "InstanceId": {}, + "AvailabilityZone": {}, + "LifecycleState": {}, + "HealthStatus": {}, + "LaunchConfigurationName": {}, + "ProtectedFromScaleIn": { + "type": "boolean" + } + } + } + }, + "CreatedTime": { + "type": "timestamp" + }, + "SuspendedProcesses": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ProcessName": {}, + "SuspensionReason": {} + } + } + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "EnabledMetrics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Metric": {}, + "Granularity": {} + } + } + }, + "Status": {}, + "Tags": { + "shape": "S2a" + }, + "TerminationPolicies": { + "shape": "Sm" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeAutoScalingInstances": { + "input": { + "type": "structure", + "members": { + "InstanceIds": { + "shape": "S2" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeAutoScalingInstancesResult", + "type": "structure", + "members": { + "AutoScalingInstances": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "InstanceId", + "AutoScalingGroupName", + "AvailabilityZone", + "LifecycleState", + "HealthStatus", + "LaunchConfigurationName", + "ProtectedFromScaleIn" + ], + "members": { + "InstanceId": {}, + "AutoScalingGroupName": {}, + "AvailabilityZone": {}, + "LifecycleState": {}, + "HealthStatus": {}, + "LaunchConfigurationName": {}, + "ProtectedFromScaleIn": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeAutoScalingNotificationTypes": { + "output": { + "resultWrapper": "DescribeAutoScalingNotificationTypesResult", + "type": "structure", + "members": { + "AutoScalingNotificationTypes": { + "shape": "S2h" + } + } + } + }, + "DescribeLaunchConfigurations": { + "input": { + "type": "structure", + "members": { + "LaunchConfigurationNames": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeLaunchConfigurationsResult", + "type": "structure", + "required": [ + "LaunchConfigurations" + ], + "members": { + "LaunchConfigurations": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "LaunchConfigurationName", + "ImageId", + "InstanceType", + "CreatedTime" + ], + "members": { + "LaunchConfigurationName": {}, + "LaunchConfigurationARN": {}, + "ImageId": {}, + "KeyName": {}, + "SecurityGroups": { + "shape": "Sw" + }, + "ClassicLinkVPCId": {}, + "ClassicLinkVPCSecurityGroups": { + "shape": "Sx" + }, + "UserData": {}, + "InstanceType": {}, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "shape": "Sz" + }, + "InstanceMonitoring": { + "shape": "S18" + }, + "SpotPrice": {}, + "IamInstanceProfile": {}, + "CreatedTime": { + "type": "timestamp" + }, + "EbsOptimized": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "PlacementTenancy": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeLifecycleHookTypes": { + "output": { + "resultWrapper": "DescribeLifecycleHookTypesResult", + "type": "structure", + "members": { + "LifecycleHookTypes": { + "shape": "S2h" + } + } + } + }, + "DescribeLifecycleHooks": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "LifecycleHookNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeLifecycleHooksResult", + "type": "structure", + "members": { + "LifecycleHooks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleTransition": {}, + "NotificationTargetARN": {}, + "RoleARN": {}, + "NotificationMetadata": {}, + "HeartbeatTimeout": { + "type": "integer" + }, + "GlobalTimeout": { + "type": "integer" + }, + "DefaultResult": {} + } + } + } + } + } + }, + "DescribeLoadBalancers": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancersResult", + "type": "structure", + "members": { + "LoadBalancers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "State": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeMetricCollectionTypes": { + "output": { + "resultWrapper": "DescribeMetricCollectionTypesResult", + "type": "structure", + "members": { + "Metrics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Metric": {} + } + } + }, + "Granularities": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Granularity": {} + } + } + } + } + } + }, + "DescribeNotificationConfigurations": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupNames": { + "shape": "S1x" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeNotificationConfigurationsResult", + "type": "structure", + "required": [ + "NotificationConfigurations" + ], + "members": { + "NotificationConfigurations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {}, + "NotificationType": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribePolicies": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyNames": { + "type": "list", + "member": {} + }, + "PolicyTypes": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribePoliciesResult", + "type": "structure", + "members": { + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "PolicyARN": {}, + "PolicyType": {}, + "AdjustmentType": {}, + "MinAdjustmentStep": { + "shape": "S3g" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "Cooldown": { + "type": "integer" + }, + "StepAdjustments": { + "shape": "S3j" + }, + "MetricAggregationType": {}, + "EstimatedInstanceWarmup": { + "type": "integer" + }, + "Alarms": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AlarmName": {}, + "AlarmARN": {} + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingActivities": { + "input": { + "type": "structure", + "members": { + "ActivityIds": { + "type": "list", + "member": {} + }, + "AutoScalingGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeScalingActivitiesResult", + "type": "structure", + "required": [ + "Activities" + ], + "members": { + "Activities": { + "shape": "S3s" + }, + "NextToken": {} + } + } + }, + "DescribeScalingProcessTypes": { + "output": { + "resultWrapper": "DescribeScalingProcessTypesResult", + "type": "structure", + "members": { + "Processes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ProcessName" + ], + "members": { + "ProcessName": {} + } + } + } + } + } + }, + "DescribeScheduledActions": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionNames": { + "type": "list", + "member": {} + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeScheduledActionsResult", + "type": "structure", + "members": { + "ScheduledUpdateGroupActions": { + "type": "list", + "member": { + "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": { + "input": { + "type": "structure", + "members": { + "Filters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "member": {} + } + } + } + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeTagsResult", + "type": "structure", + "members": { + "Tags": { + "shape": "S2a" + }, + "NextToken": {} + } + } + }, + "DescribeTerminationPolicyTypes": { + "output": { + "resultWrapper": "DescribeTerminationPolicyTypesResult", + "type": "structure", + "members": { + "TerminationPolicyTypes": { + "shape": "Sm" + } + } + } + }, + "DetachInstances": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ShouldDecrementDesiredCapacity" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {}, + "ShouldDecrementDesiredCapacity": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DetachInstancesResult", + "type": "structure", + "members": { + "Activities": { + "shape": "S3s" + } + } + } + }, + "DetachLoadBalancers": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "LoadBalancerNames": { + "shape": "S6" + } + } + }, + "output": { + "resultWrapper": "DetachLoadBalancersResult", + "type": "structure", + "members": {} + } + }, + "DisableMetricsCollection": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "Metrics": { + "shape": "S4g" + } + } + } + }, + "EnableMetricsCollection": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "Granularity" + ], + "members": { + "AutoScalingGroupName": {}, + "Metrics": { + "shape": "S4g" + }, + "Granularity": {} + } + } + }, + "EnterStandby": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ShouldDecrementDesiredCapacity" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {}, + "ShouldDecrementDesiredCapacity": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "EnterStandbyResult", + "type": "structure", + "members": { + "Activities": { + "shape": "S3s" + } + } + } + }, + "ExecutePolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "HonorCooldown": { + "type": "boolean" + }, + "MetricValue": { + "type": "double" + }, + "BreachThreshold": { + "type": "double" + } + } + } + }, + "ExitStandby": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {} + } + }, + "output": { + "resultWrapper": "ExitStandbyResult", + "type": "structure", + "members": { + "Activities": { + "shape": "S3s" + } + } + } + }, + "PutLifecycleHook": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleTransition": {}, + "RoleARN": {}, + "NotificationTargetARN": {}, + "NotificationMetadata": {}, + "HeartbeatTimeout": { + "type": "integer" + }, + "DefaultResult": {} + } + }, + "output": { + "resultWrapper": "PutLifecycleHookResult", + "type": "structure", + "members": {} + } + }, + "PutNotificationConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "TopicARN", + "NotificationTypes" + ], + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {}, + "NotificationTypes": { + "shape": "S2h" + } + } + } + }, + "PutScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "PolicyName", + "AdjustmentType" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "PolicyType": {}, + "AdjustmentType": {}, + "MinAdjustmentStep": { + "shape": "S3g" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "Cooldown": { + "type": "integer" + }, + "MetricAggregationType": {}, + "StepAdjustments": { + "shape": "S3j" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "PutScalingPolicyResult", + "type": "structure", + "members": { + "PolicyARN": {} + } + } + }, + "PutScheduledUpdateGroupAction": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ScheduledActionName" + ], + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": {}, + "Time": { + "type": "timestamp" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Recurrence": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + } + } + } + }, + "RecordLifecycleActionHeartbeat": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleActionToken": {}, + "InstanceId": {} + } + }, + "output": { + "resultWrapper": "RecordLifecycleActionHeartbeatResult", + "type": "structure", + "members": {} + } + }, + "ResumeProcesses": { + "input": { + "shape": "S4x" + } + }, + "SetDesiredCapacity": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "DesiredCapacity" + ], + "members": { + "AutoScalingGroupName": {}, + "DesiredCapacity": { + "type": "integer" + }, + "HonorCooldown": { + "type": "boolean" + } + } + } + }, + "SetInstanceHealth": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "HealthStatus" + ], + "members": { + "InstanceId": {}, + "HealthStatus": {}, + "ShouldRespectGracePeriod": { + "type": "boolean" + } + } + } + }, + "SetInstanceProtection": { + "input": { + "type": "structure", + "required": [ + "InstanceIds", + "AutoScalingGroupName", + "ProtectedFromScaleIn" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {}, + "ProtectedFromScaleIn": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "SetInstanceProtectionResult", + "type": "structure", + "members": {} + } + }, + "SuspendProcesses": { + "input": { + "shape": "S4x" + } + }, + "TerminateInstanceInAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "ShouldDecrementDesiredCapacity" + ], + "members": { + "InstanceId": {}, + "ShouldDecrementDesiredCapacity": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "TerminateInstanceInAutoScalingGroupResult", + "type": "structure", + "members": { + "Activity": { + "shape": "S3t" + } + } + } + }, + "UpdateAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "LaunchConfigurationName": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "Sj" + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "TerminationPolicies": { + "shape": "Sm" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "S6": { + "type": "list", + "member": {} + }, + "Sj": { + "type": "list", + "member": {} + }, + "Sm": { + "type": "list", + "member": {} + }, + "Sp": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": {}, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + }, + "Sw": { + "type": "list", + "member": {} + }, + "Sx": { + "type": "list", + "member": {} + }, + "Sz": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DeviceName" + ], + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": {}, + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Encrypted": { + "type": "boolean" + } + } + }, + "NoDevice": { + "type": "boolean" + } + } + } + }, + "S18": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "S1x": { + "type": "list", + "member": {} + }, + "S2a": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": {}, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + }, + "S2h": { + "type": "list", + "member": {} + }, + "S3g": { + "type": "integer", + "deprecated": true + }, + "S3j": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingAdjustment" + ], + "members": { + "MetricIntervalLowerBound": { + "type": "double" + }, + "MetricIntervalUpperBound": { + "type": "double" + }, + "ScalingAdjustment": { + "type": "integer" + } + } + } + }, + "S3s": { + "type": "list", + "member": { + "shape": "S3t" + } + }, + "S3t": { + "type": "structure", + "required": [ + "ActivityId", + "AutoScalingGroupName", + "Cause", + "StartTime", + "StatusCode" + ], + "members": { + "ActivityId": {}, + "AutoScalingGroupName": {}, + "Description": {}, + "Cause": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "StatusCode": {}, + "StatusMessage": {}, + "Progress": { + "type": "integer" + }, + "Details": {} + } + }, + "S4g": { + "type": "list", + "member": {} + }, + "S4x": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "ScalingProcesses": { + "type": "list", + "member": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json new file mode 100755 index 0000000..31bc094 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "DescribeAutoScalingGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "AutoScalingGroups" + }, + "DescribeAutoScalingInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "AutoScalingInstances" + }, + "DescribeLaunchConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "LaunchConfigurations" + }, + "DescribeNotificationConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "NotificationConfigurations" + }, + "DescribePolicies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "ScalingPolicies" + }, + "DescribeScalingActivities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "Activities" + }, + "DescribeScheduledActions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "ScheduledUpdateGroupActions" + }, + "DescribeTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "Tags" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.min.json new file mode 100755 index 0000000..58996b0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.min.json @@ -0,0 +1,854 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2010-05-15", + "endpointPrefix": "cloudformation", + "protocol": "query", + "serviceFullName": "AWS CloudFormation", + "signatureVersion": "v4", + "xmlNamespace": "http://cloudformation.amazonaws.com/doc/2010-05-15/" + }, + "operations": { + "CancelUpdateStack": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {} + } + } + }, + "ContinueUpdateRollback": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {} + } + }, + "output": { + "resultWrapper": "ContinueUpdateRollbackResult", + "type": "structure", + "members": {} + } + }, + "CreateChangeSet": { + "input": { + "type": "structure", + "required": [ + "StackName", + "ChangeSetName" + ], + "members": { + "StackName": {}, + "TemplateBody": {}, + "TemplateURL": {}, + "UsePreviousTemplate": { + "type": "boolean" + }, + "Parameters": { + "shape": "Sa" + }, + "Capabilities": { + "shape": "Sf" + }, + "ResourceTypes": { + "shape": "Sh" + }, + "NotificationARNs": { + "shape": "Sj" + }, + "Tags": { + "shape": "Sl" + }, + "ChangeSetName": {}, + "ClientToken": {}, + "Description": {} + } + }, + "output": { + "resultWrapper": "CreateChangeSetResult", + "type": "structure", + "members": { + "Id": {} + } + } + }, + "CreateStack": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "TemplateBody": {}, + "TemplateURL": {}, + "Parameters": { + "shape": "Sa" + }, + "DisableRollback": { + "type": "boolean" + }, + "TimeoutInMinutes": { + "type": "integer" + }, + "NotificationARNs": { + "shape": "Sj" + }, + "Capabilities": { + "shape": "Sf" + }, + "ResourceTypes": { + "shape": "Sh" + }, + "OnFailure": {}, + "StackPolicyBody": {}, + "StackPolicyURL": {}, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "resultWrapper": "CreateStackResult", + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "DeleteChangeSet": { + "input": { + "type": "structure", + "required": [ + "ChangeSetName" + ], + "members": { + "ChangeSetName": {}, + "StackName": {} + } + }, + "output": { + "resultWrapper": "DeleteChangeSetResult", + "type": "structure", + "members": {} + } + }, + "DeleteStack": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "RetainResources": { + "type": "list", + "member": {} + } + } + } + }, + "DescribeAccountLimits": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeAccountLimitsResult", + "type": "structure", + "members": { + "AccountLimits": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Value": { + "type": "integer" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeChangeSet": { + "input": { + "type": "structure", + "required": [ + "ChangeSetName" + ], + "members": { + "ChangeSetName": {}, + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeChangeSetResult", + "type": "structure", + "members": { + "ChangeSetName": {}, + "ChangeSetId": {}, + "StackId": {}, + "StackName": {}, + "Description": {}, + "Parameters": { + "shape": "Sa" + }, + "CreationTime": { + "type": "timestamp" + }, + "ExecutionStatus": {}, + "Status": {}, + "StatusReason": {}, + "NotificationARNs": { + "shape": "Sj" + }, + "Capabilities": { + "shape": "Sf" + }, + "Tags": { + "shape": "Sl" + }, + "Changes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Type": {}, + "ResourceChange": { + "type": "structure", + "members": { + "Action": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "Replacement": {}, + "Scope": { + "type": "list", + "member": {} + }, + "Details": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Target": { + "type": "structure", + "members": { + "Attribute": {}, + "Name": {}, + "RequiresRecreation": {} + } + }, + "Evaluation": {}, + "ChangeSource": {}, + "CausingEntity": {} + } + } + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeStackEvents": { + "input": { + "type": "structure", + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeStackEventsResult", + "type": "structure", + "members": { + "StackEvents": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "StackId", + "EventId", + "StackName", + "Timestamp" + ], + "members": { + "StackId": {}, + "EventId": {}, + "StackName": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "Timestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {}, + "ResourceProperties": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeStackResource": { + "input": { + "type": "structure", + "required": [ + "StackName", + "LogicalResourceId" + ], + "members": { + "StackName": {}, + "LogicalResourceId": {} + } + }, + "output": { + "resultWrapper": "DescribeStackResourceResult", + "type": "structure", + "members": { + "StackResourceDetail": { + "type": "structure", + "required": [ + "LogicalResourceId", + "ResourceType", + "LastUpdatedTimestamp", + "ResourceStatus" + ], + "members": { + "StackName": {}, + "StackId": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "LastUpdatedTimestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {}, + "Description": {}, + "Metadata": {} + } + } + } + } + }, + "DescribeStackResources": { + "input": { + "type": "structure", + "members": { + "StackName": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {} + } + }, + "output": { + "resultWrapper": "DescribeStackResourcesResult", + "type": "structure", + "members": { + "StackResources": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "LogicalResourceId", + "ResourceType", + "Timestamp", + "ResourceStatus" + ], + "members": { + "StackName": {}, + "StackId": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "Timestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {}, + "Description": {} + } + } + } + } + } + }, + "DescribeStacks": { + "input": { + "type": "structure", + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeStacksResult", + "type": "structure", + "members": { + "Stacks": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "StackName", + "CreationTime", + "StackStatus" + ], + "members": { + "StackId": {}, + "StackName": {}, + "Description": {}, + "Parameters": { + "shape": "Sa" + }, + "CreationTime": { + "type": "timestamp" + }, + "LastUpdatedTime": { + "type": "timestamp" + }, + "StackStatus": {}, + "StackStatusReason": {}, + "DisableRollback": { + "type": "boolean" + }, + "NotificationARNs": { + "shape": "Sj" + }, + "TimeoutInMinutes": { + "type": "integer" + }, + "Capabilities": { + "shape": "Sf" + }, + "Outputs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "OutputKey": {}, + "OutputValue": {}, + "Description": {} + } + } + }, + "Tags": { + "shape": "Sl" + } + } + } + }, + "NextToken": {} + } + } + }, + "EstimateTemplateCost": { + "input": { + "type": "structure", + "members": { + "TemplateBody": {}, + "TemplateURL": {}, + "Parameters": { + "shape": "Sa" + } + } + }, + "output": { + "resultWrapper": "EstimateTemplateCostResult", + "type": "structure", + "members": { + "Url": {} + } + } + }, + "ExecuteChangeSet": { + "input": { + "type": "structure", + "required": [ + "ChangeSetName" + ], + "members": { + "ChangeSetName": {}, + "StackName": {} + } + }, + "output": { + "resultWrapper": "ExecuteChangeSetResult", + "type": "structure", + "members": {} + } + }, + "GetStackPolicy": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {} + } + }, + "output": { + "resultWrapper": "GetStackPolicyResult", + "type": "structure", + "members": { + "StackPolicyBody": {} + } + } + }, + "GetTemplate": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {} + } + }, + "output": { + "resultWrapper": "GetTemplateResult", + "type": "structure", + "members": { + "TemplateBody": {} + } + } + }, + "GetTemplateSummary": { + "input": { + "type": "structure", + "members": { + "TemplateBody": {}, + "TemplateURL": {}, + "StackName": {} + } + }, + "output": { + "resultWrapper": "GetTemplateSummaryResult", + "type": "structure", + "members": { + "Parameters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ParameterKey": {}, + "DefaultValue": {}, + "ParameterType": {}, + "NoEcho": { + "type": "boolean" + }, + "Description": {}, + "ParameterConstraints": { + "type": "structure", + "members": { + "AllowedValues": { + "type": "list", + "member": {} + } + } + } + } + } + }, + "Description": {}, + "Capabilities": { + "shape": "Sf" + }, + "CapabilitiesReason": {}, + "ResourceTypes": { + "shape": "Sh" + }, + "Version": {}, + "Metadata": {} + } + } + }, + "ListChangeSets": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListChangeSetsResult", + "type": "structure", + "members": { + "Summaries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "StackId": {}, + "StackName": {}, + "ChangeSetId": {}, + "ChangeSetName": {}, + "ExecutionStatus": {}, + "Status": {}, + "StatusReason": {}, + "CreationTime": { + "type": "timestamp" + }, + "Description": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListStackResources": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListStackResourcesResult", + "type": "structure", + "members": { + "StackResourceSummaries": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "LogicalResourceId", + "ResourceType", + "LastUpdatedTimestamp", + "ResourceStatus" + ], + "members": { + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "LastUpdatedTimestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListStacks": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "StackStatusFilter": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "ListStacksResult", + "type": "structure", + "members": { + "StackSummaries": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "StackName", + "CreationTime", + "StackStatus" + ], + "members": { + "StackId": {}, + "StackName": {}, + "TemplateDescription": {}, + "CreationTime": { + "type": "timestamp" + }, + "LastUpdatedTime": { + "type": "timestamp" + }, + "DeletionTime": { + "type": "timestamp" + }, + "StackStatus": {}, + "StackStatusReason": {} + } + } + }, + "NextToken": {} + } + } + }, + "SetStackPolicy": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "StackPolicyBody": {}, + "StackPolicyURL": {} + } + } + }, + "SignalResource": { + "input": { + "type": "structure", + "required": [ + "StackName", + "LogicalResourceId", + "UniqueId", + "Status" + ], + "members": { + "StackName": {}, + "LogicalResourceId": {}, + "UniqueId": {}, + "Status": {} + } + } + }, + "UpdateStack": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "TemplateBody": {}, + "TemplateURL": {}, + "UsePreviousTemplate": { + "type": "boolean" + }, + "StackPolicyDuringUpdateBody": {}, + "StackPolicyDuringUpdateURL": {}, + "Parameters": { + "shape": "Sa" + }, + "Capabilities": { + "shape": "Sf" + }, + "ResourceTypes": { + "shape": "Sh" + }, + "StackPolicyBody": {}, + "StackPolicyURL": {}, + "NotificationARNs": { + "shape": "Sj" + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "resultWrapper": "UpdateStackResult", + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "ValidateTemplate": { + "input": { + "type": "structure", + "members": { + "TemplateBody": {}, + "TemplateURL": {} + } + }, + "output": { + "resultWrapper": "ValidateTemplateResult", + "type": "structure", + "members": { + "Parameters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ParameterKey": {}, + "DefaultValue": {}, + "NoEcho": { + "type": "boolean" + }, + "Description": {} + } + } + }, + "Description": {}, + "Capabilities": { + "shape": "Sf" + }, + "CapabilitiesReason": {} + } + } + } + }, + "shapes": { + "Sa": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ParameterKey": {}, + "ParameterValue": {}, + "UsePreviousValue": { + "type": "boolean" + } + } + } + }, + "Sf": { + "type": "list", + "member": {} + }, + "Sh": { + "type": "list", + "member": {} + }, + "Sj": { + "type": "list", + "member": {} + }, + "Sl": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.paginators.json new file mode 100755 index 0000000..da6c17d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.paginators.json @@ -0,0 +1,27 @@ +{ + "pagination": { + "DescribeStackEvents": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "StackEvents" + }, + "DescribeStackResources": { + "result_key": "StackResources" + }, + "DescribeStacks": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Stacks" + }, + "ListStackResources": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "StackResourceSummaries" + }, + "ListStacks": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "StackSummaries" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.waiters2.json new file mode 100755 index 0000000..f3a5cde --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudformation-2010-05-15.waiters2.json @@ -0,0 +1,235 @@ +{ + "version": 2, + "waiters": { + "StackExists": { + "delay": 5, + "operation": "DescribeStacks", + "maxAttempts": 20, + "acceptors": [ + { + "matcher": "status", + "expected": 200, + "state": "success" + }, + { + "matcher": "error", + "expected": "ValidationError", + "state": "retry" + } + ] + }, + "StackCreateComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 120, + "description": "Wait until stack status is CREATE_COMPLETE.", + "acceptors": [ + { + "expected": "CREATE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "CREATE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "DELETE_COMPLETE", + "matcher": "pathAny", + "argument": "Stacks[].StackStatus", + "state": "failure" + }, + { + "expected": "DELETE_IN_PROGRESS", + "matcher": "pathAny", + "argument": "Stacks[].StackStatus", + "state": "failure" + }, + { + "expected": "DELETE_FAILED", + "matcher": "pathAny", + "argument": "Stacks[].StackStatus", + "state": "failure" + }, + { + "expected": "ROLLBACK_COMPLETE", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "ROLLBACK_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "ROLLBACK_IN_PROGRESS", + "matcher": "pathAny", + "argument": "Stacks[].StackStatus", + "state": "failure" + }, + { + "expected": "ValidationError", + "matcher": "error", + "state": "failure" + } + ] + }, + "StackDeleteComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 120, + "description": "Wait until stack status is DELETE_COMPLETE.", + "acceptors": [ + { + "expected": "DELETE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "ValidationError", + "matcher": "error", + "state": "success" + }, + { + "expected": "DELETE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "CREATE_COMPLETE", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "CREATE_FAILED", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "CREATE_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "ROLLBACK_COMPLETE", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "ROLLBACK_FAILED", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "ROLLBACK_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_FAILED", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + } + ] + }, + "StackUpdateComplete": { + "delay": 30, + "maxAttempts": 120, + "operation": "DescribeStacks", + "description": "Wait until stack status is UPDATE_COMPLETE.", + "acceptors": [ + { + "expected": "UPDATE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "UPDATE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "UPDATE_ROLLBACK_COMPLETE", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "UPDATE_ROLLBACK_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_ROLLBACK_IN_PROGRESS", + "matcher": "pathAny", + "state": "failure" + }, + { + "expected": "ValidationError", + "matcher": "error", + "state": "failure" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.min.json new file mode 100755 index 0000000..5c535a4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.min.json @@ -0,0 +1,1635 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-01-28", + "endpointPrefix": "cloudfront", + "globalEndpoint": "cloudfront.amazonaws.com", + "protocol": "rest-xml", + "serviceAbbreviation": "CloudFront", + "serviceFullName": "Amazon CloudFront", + "signatureVersion": "v4" + }, + "operations": { + "CreateCloudFrontOriginAccessIdentity": { + "http": { + "requestUri": "/2016-01-28/origin-access-identity/cloudfront", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "shape": "S2", + "locationName": "CloudFrontOriginAccessIdentityConfig", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + } + }, + "payload": "CloudFrontOriginAccessIdentityConfig" + }, + "output": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentity": { + "shape": "S5" + }, + "Location": { + "location": "header", + "locationName": "Location" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "CloudFrontOriginAccessIdentity" + } + }, + "CreateDistribution": { + "http": { + "requestUri": "/2016-01-28/distribution", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "DistributionConfig" + ], + "members": { + "DistributionConfig": { + "shape": "S7", + "locationName": "DistributionConfig", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + } + }, + "payload": "DistributionConfig" + }, + "output": { + "type": "structure", + "members": { + "Distribution": { + "shape": "S1l" + }, + "Location": { + "location": "header", + "locationName": "Location" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "Distribution" + } + }, + "CreateInvalidation": { + "http": { + "requestUri": "/2016-01-28/distribution/{DistributionId}/invalidation", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "DistributionId", + "InvalidationBatch" + ], + "members": { + "DistributionId": { + "location": "uri", + "locationName": "DistributionId" + }, + "InvalidationBatch": { + "shape": "S1t", + "locationName": "InvalidationBatch", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + } + }, + "payload": "InvalidationBatch" + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "locationName": "Location" + }, + "Invalidation": { + "shape": "S1x" + } + }, + "payload": "Invalidation" + } + }, + "CreateStreamingDistribution": { + "http": { + "requestUri": "/2016-01-28/streaming-distribution", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "StreamingDistributionConfig" + ], + "members": { + "StreamingDistributionConfig": { + "shape": "S1z", + "locationName": "StreamingDistributionConfig", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + } + }, + "payload": "StreamingDistributionConfig" + }, + "output": { + "type": "structure", + "members": { + "StreamingDistribution": { + "shape": "S23" + }, + "Location": { + "location": "header", + "locationName": "Location" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "StreamingDistribution" + } + }, + "DeleteCloudFrontOriginAccessIdentity": { + "http": { + "method": "DELETE", + "requestUri": "/2016-01-28/origin-access-identity/cloudfront/{Id}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + } + } + } + }, + "DeleteDistribution": { + "http": { + "method": "DELETE", + "requestUri": "/2016-01-28/distribution/{Id}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + } + } + } + }, + "DeleteStreamingDistribution": { + "http": { + "method": "DELETE", + "requestUri": "/2016-01-28/streaming-distribution/{Id}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + } + } + } + }, + "GetCloudFrontOriginAccessIdentity": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/origin-access-identity/cloudfront/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentity": { + "shape": "S5" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "CloudFrontOriginAccessIdentity" + } + }, + "GetCloudFrontOriginAccessIdentityConfig": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/origin-access-identity/cloudfront/{Id}/config" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "shape": "S2" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "CloudFrontOriginAccessIdentityConfig" + } + }, + "GetDistribution": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/distribution/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "Distribution": { + "shape": "S1l" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "Distribution" + } + }, + "GetDistributionConfig": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/distribution/{Id}/config" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "DistributionConfig": { + "shape": "S7" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "DistributionConfig" + } + }, + "GetInvalidation": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/distribution/{DistributionId}/invalidation/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "DistributionId", + "Id" + ], + "members": { + "DistributionId": { + "location": "uri", + "locationName": "DistributionId" + }, + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "Invalidation": { + "shape": "S1x" + } + }, + "payload": "Invalidation" + } + }, + "GetStreamingDistribution": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/streaming-distribution/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "StreamingDistribution": { + "shape": "S23" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "StreamingDistribution" + } + }, + "GetStreamingDistributionConfig": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/streaming-distribution/{Id}/config" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "shape": "S1z" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "StreamingDistributionConfig" + } + }, + "ListCloudFrontOriginAccessIdentities": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/origin-access-identity/cloudfront" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems" + } + } + }, + "output": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityList": { + "type": "structure", + "required": [ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "CloudFrontOriginAccessIdentitySummary", + "type": "structure", + "required": [ + "Id", + "S3CanonicalUserId", + "Comment" + ], + "members": { + "Id": {}, + "S3CanonicalUserId": {}, + "Comment": {} + } + } + } + } + } + }, + "payload": "CloudFrontOriginAccessIdentityList" + } + }, + "ListDistributions": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/distribution" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems" + } + } + }, + "output": { + "type": "structure", + "members": { + "DistributionList": { + "shape": "S2s" + } + }, + "payload": "DistributionList" + } + }, + "ListDistributionsByWebACLId": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/distributionsByWebACLId/{WebACLId}" + }, + "input": { + "type": "structure", + "required": [ + "WebACLId" + ], + "members": { + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems" + }, + "WebACLId": { + "location": "uri", + "locationName": "WebACLId" + } + } + }, + "output": { + "type": "structure", + "members": { + "DistributionList": { + "shape": "S2s" + } + }, + "payload": "DistributionList" + } + }, + "ListInvalidations": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/distribution/{DistributionId}/invalidation" + }, + "input": { + "type": "structure", + "required": [ + "DistributionId" + ], + "members": { + "DistributionId": { + "location": "uri", + "locationName": "DistributionId" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems" + } + } + }, + "output": { + "type": "structure", + "members": { + "InvalidationList": { + "type": "structure", + "required": [ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "InvalidationSummary", + "type": "structure", + "required": [ + "Id", + "CreateTime", + "Status" + ], + "members": { + "Id": {}, + "CreateTime": { + "type": "timestamp" + }, + "Status": {} + } + } + } + } + } + }, + "payload": "InvalidationList" + } + }, + "ListStreamingDistributions": { + "http": { + "method": "GET", + "requestUri": "/2016-01-28/streaming-distribution" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems" + } + } + }, + "output": { + "type": "structure", + "members": { + "StreamingDistributionList": { + "type": "structure", + "required": [ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "StreamingDistributionSummary", + "type": "structure", + "required": [ + "Id", + "Status", + "LastModifiedTime", + "DomainName", + "S3Origin", + "Aliases", + "TrustedSigners", + "Comment", + "PriceClass", + "Enabled" + ], + "members": { + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "S3Origin": { + "shape": "S20" + }, + "Aliases": { + "shape": "S8" + }, + "TrustedSigners": { + "shape": "Sw" + }, + "Comment": {}, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + } + } + } + } + } + }, + "payload": "StreamingDistributionList" + } + }, + "UpdateCloudFrontOriginAccessIdentity": { + "http": { + "method": "PUT", + "requestUri": "/2016-01-28/origin-access-identity/cloudfront/{Id}/config" + }, + "input": { + "type": "structure", + "required": [ + "CloudFrontOriginAccessIdentityConfig", + "Id" + ], + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "shape": "S2", + "locationName": "CloudFrontOriginAccessIdentityConfig", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + }, + "Id": { + "location": "uri", + "locationName": "Id" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + } + }, + "payload": "CloudFrontOriginAccessIdentityConfig" + }, + "output": { + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentity": { + "shape": "S5" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "CloudFrontOriginAccessIdentity" + } + }, + "UpdateDistribution": { + "http": { + "method": "PUT", + "requestUri": "/2016-01-28/distribution/{Id}/config" + }, + "input": { + "type": "structure", + "required": [ + "DistributionConfig", + "Id" + ], + "members": { + "DistributionConfig": { + "shape": "S7", + "locationName": "DistributionConfig", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + }, + "Id": { + "location": "uri", + "locationName": "Id" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + } + }, + "payload": "DistributionConfig" + }, + "output": { + "type": "structure", + "members": { + "Distribution": { + "shape": "S1l" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "Distribution" + } + }, + "UpdateStreamingDistribution": { + "http": { + "method": "PUT", + "requestUri": "/2016-01-28/streaming-distribution/{Id}/config" + }, + "input": { + "type": "structure", + "required": [ + "StreamingDistributionConfig", + "Id" + ], + "members": { + "StreamingDistributionConfig": { + "shape": "S1z", + "locationName": "StreamingDistributionConfig", + "xmlNamespace": { + "uri": "http://cloudfront.amazonaws.com/doc/2016-01-28/" + } + }, + "Id": { + "location": "uri", + "locationName": "Id" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + } + }, + "payload": "StreamingDistributionConfig" + }, + "output": { + "type": "structure", + "members": { + "StreamingDistribution": { + "shape": "S23" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + } + }, + "payload": "StreamingDistribution" + } + } + }, + "shapes": { + "S2": { + "type": "structure", + "required": [ + "CallerReference", + "Comment" + ], + "members": { + "CallerReference": {}, + "Comment": {} + } + }, + "S5": { + "type": "structure", + "required": [ + "Id", + "S3CanonicalUserId" + ], + "members": { + "Id": {}, + "S3CanonicalUserId": {}, + "CloudFrontOriginAccessIdentityConfig": { + "shape": "S2" + } + } + }, + "S7": { + "type": "structure", + "required": [ + "CallerReference", + "Origins", + "DefaultCacheBehavior", + "Comment", + "Enabled" + ], + "members": { + "CallerReference": {}, + "Aliases": { + "shape": "S8" + }, + "DefaultRootObject": {}, + "Origins": { + "shape": "Sb" + }, + "DefaultCacheBehavior": { + "shape": "Sn" + }, + "CacheBehaviors": { + "shape": "S14" + }, + "CustomErrorResponses": { + "shape": "S17" + }, + "Comment": {}, + "Logging": { + "type": "structure", + "required": [ + "Enabled", + "IncludeCookies", + "Bucket", + "Prefix" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "IncludeCookies": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "shape": "S1c" + }, + "Restrictions": { + "shape": "S1g" + }, + "WebACLId": {} + } + }, + "S8": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "CNAME" + } + } + } + }, + "Sb": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "Origin", + "type": "structure", + "required": [ + "Id", + "DomainName" + ], + "members": { + "Id": {}, + "DomainName": {}, + "OriginPath": {}, + "CustomHeaders": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "OriginCustomHeader", + "type": "structure", + "required": [ + "HeaderName", + "HeaderValue" + ], + "members": { + "HeaderName": {}, + "HeaderValue": {} + } + } + } + } + }, + "S3OriginConfig": { + "type": "structure", + "required": [ + "OriginAccessIdentity" + ], + "members": { + "OriginAccessIdentity": {} + } + }, + "CustomOriginConfig": { + "type": "structure", + "required": [ + "HTTPPort", + "HTTPSPort", + "OriginProtocolPolicy" + ], + "members": { + "HTTPPort": { + "type": "integer" + }, + "HTTPSPort": { + "type": "integer" + }, + "OriginProtocolPolicy": {}, + "OriginSslProtocols": { + "type": "structure", + "required": [ + "Quantity", + "Items" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "SslProtocol" + } + } + } + } + } + } + } + } + } + } + }, + "Sn": { + "type": "structure", + "required": [ + "TargetOriginId", + "ForwardedValues", + "TrustedSigners", + "ViewerProtocolPolicy", + "MinTTL" + ], + "members": { + "TargetOriginId": {}, + "ForwardedValues": { + "shape": "So" + }, + "TrustedSigners": { + "shape": "Sw" + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "long" + }, + "AllowedMethods": { + "shape": "S10" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "long" + }, + "MaxTTL": { + "type": "long" + }, + "Compress": { + "type": "boolean" + } + } + }, + "So": { + "type": "structure", + "required": [ + "QueryString", + "Cookies" + ], + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "required": [ + "Forward" + ], + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "Name" + } + } + } + } + } + }, + "Headers": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "Name" + } + } + } + } + } + }, + "Sw": { + "type": "structure", + "required": [ + "Enabled", + "Quantity" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "AwsAccountNumber" + } + } + } + }, + "S10": { + "type": "structure", + "required": [ + "Quantity", + "Items" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "shape": "S11" + }, + "CachedMethods": { + "type": "structure", + "required": [ + "Quantity", + "Items" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "shape": "S11" + } + } + } + } + }, + "S11": { + "type": "list", + "member": { + "locationName": "Method" + } + }, + "S14": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "CacheBehavior", + "type": "structure", + "required": [ + "PathPattern", + "TargetOriginId", + "ForwardedValues", + "TrustedSigners", + "ViewerProtocolPolicy", + "MinTTL" + ], + "members": { + "PathPattern": {}, + "TargetOriginId": {}, + "ForwardedValues": { + "shape": "So" + }, + "TrustedSigners": { + "shape": "Sw" + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "long" + }, + "AllowedMethods": { + "shape": "S10" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "long" + }, + "MaxTTL": { + "type": "long" + }, + "Compress": { + "type": "boolean" + } + } + } + } + } + }, + "S17": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "CustomErrorResponse", + "type": "structure", + "required": [ + "ErrorCode" + ], + "members": { + "ErrorCode": { + "type": "integer" + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "long" + } + } + } + } + } + }, + "S1c": { + "type": "structure", + "members": { + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IAMCertificateId": {}, + "ACMCertificateArn": {}, + "SSLSupportMethod": {}, + "MinimumProtocolVersion": {}, + "Certificate": { + "deprecated": true + }, + "CertificateSource": { + "deprecated": true + } + } + }, + "S1g": { + "type": "structure", + "required": [ + "GeoRestriction" + ], + "members": { + "GeoRestriction": { + "type": "structure", + "required": [ + "RestrictionType", + "Quantity" + ], + "members": { + "RestrictionType": {}, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "Location" + } + } + } + } + } + }, + "S1l": { + "type": "structure", + "required": [ + "Id", + "Status", + "LastModifiedTime", + "InProgressInvalidationBatches", + "DomainName", + "ActiveTrustedSigners", + "DistributionConfig" + ], + "members": { + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "InProgressInvalidationBatches": { + "type": "integer" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "shape": "S1n" + }, + "DistributionConfig": { + "shape": "S7" + } + } + }, + "S1n": { + "type": "structure", + "required": [ + "Enabled", + "Quantity" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "Signer", + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "KeyPairId" + } + } + } + } + } + } + } + } + }, + "S1t": { + "type": "structure", + "required": [ + "Paths", + "CallerReference" + ], + "members": { + "Paths": { + "type": "structure", + "required": [ + "Quantity" + ], + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "Path" + } + } + } + }, + "CallerReference": {} + } + }, + "S1x": { + "type": "structure", + "required": [ + "Id", + "Status", + "CreateTime", + "InvalidationBatch" + ], + "members": { + "Id": {}, + "Status": {}, + "CreateTime": { + "type": "timestamp" + }, + "InvalidationBatch": { + "shape": "S1t" + } + } + }, + "S1z": { + "type": "structure", + "required": [ + "CallerReference", + "S3Origin", + "Comment", + "TrustedSigners", + "Enabled" + ], + "members": { + "CallerReference": {}, + "S3Origin": { + "shape": "S20" + }, + "Aliases": { + "shape": "S8" + }, + "Comment": {}, + "Logging": { + "type": "structure", + "required": [ + "Enabled", + "Bucket", + "Prefix" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "TrustedSigners": { + "shape": "Sw" + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "S20": { + "type": "structure", + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "members": { + "DomainName": {}, + "OriginAccessIdentity": {} + } + }, + "S23": { + "type": "structure", + "required": [ + "Id", + "Status", + "DomainName", + "ActiveTrustedSigners", + "StreamingDistributionConfig" + ], + "members": { + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "shape": "S1n" + }, + "StreamingDistributionConfig": { + "shape": "S1z" + } + } + }, + "S2s": { + "type": "structure", + "required": [ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "member": { + "locationName": "DistributionSummary", + "type": "structure", + "required": [ + "Id", + "Status", + "LastModifiedTime", + "DomainName", + "Aliases", + "Origins", + "DefaultCacheBehavior", + "CacheBehaviors", + "CustomErrorResponses", + "Comment", + "PriceClass", + "Enabled", + "ViewerCertificate", + "Restrictions", + "WebACLId" + ], + "members": { + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "Aliases": { + "shape": "S8" + }, + "Origins": { + "shape": "Sb" + }, + "DefaultCacheBehavior": { + "shape": "Sn" + }, + "CacheBehaviors": { + "shape": "S14" + }, + "CustomErrorResponses": { + "shape": "S17" + }, + "Comment": {}, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "shape": "S1c" + }, + "Restrictions": { + "shape": "S1g" + }, + "WebACLId": {} + } + } + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.paginators.json new file mode 100755 index 0000000..51fbb90 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.paginators.json @@ -0,0 +1,32 @@ +{ + "pagination": { + "ListCloudFrontOriginAccessIdentities": { + "input_token": "Marker", + "output_token": "CloudFrontOriginAccessIdentityList.NextMarker", + "limit_key": "MaxItems", + "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated", + "result_key": "CloudFrontOriginAccessIdentityList.Items" + }, + "ListDistributions": { + "input_token": "Marker", + "output_token": "DistributionList.NextMarker", + "limit_key": "MaxItems", + "more_results": "DistributionList.IsTruncated", + "result_key": "DistributionList.Items" + }, + "ListInvalidations": { + "input_token": "Marker", + "output_token": "InvalidationList.NextMarker", + "limit_key": "MaxItems", + "more_results": "InvalidationList.IsTruncated", + "result_key": "InvalidationList.Items" + }, + "ListStreamingDistributions": { + "input_token": "Marker", + "output_token": "StreamingDistributionList.NextMarker", + "limit_key": "MaxItems", + "more_results": "StreamingDistributionList.IsTruncated", + "result_key": "StreamingDistributionList.Items" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.waiters2.json new file mode 100755 index 0000000..edd74b2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudfront-2016-01-28.waiters2.json @@ -0,0 +1,47 @@ +{ + "version": 2, + "waiters": { + "DistributionDeployed": { + "delay": 60, + "operation": "GetDistribution", + "maxAttempts": 25, + "description": "Wait until a distribution is deployed.", + "acceptors": [ + { + "expected": "Deployed", + "matcher": "path", + "state": "success", + "argument": "Distribution.Status" + } + ] + }, + "InvalidationCompleted": { + "delay": 20, + "operation": "GetInvalidation", + "maxAttempts": 30, + "description": "Wait until an invalidation has completed.", + "acceptors": [ + { + "expected": "Completed", + "matcher": "path", + "state": "success", + "argument": "Invalidation.Status" + } + ] + }, + "StreamingDistributionDeployed": { + "delay": 60, + "operation": "GetStreamingDistribution", + "maxAttempts": 25, + "description": "Wait until a streaming distribution is deployed.", + "acceptors": [ + { + "expected": "Deployed", + "matcher": "path", + "state": "success", + "argument": "StreamingDistribution.Status" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudhsm-2014-05-30.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudhsm-2014-05-30.min.json new file mode 100755 index 0000000..99d911d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudhsm-2014-05-30.min.json @@ -0,0 +1,519 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-05-30", + "endpointPrefix": "cloudhsm", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "CloudHSM", + "serviceFullName": "Amazon CloudHSM", + "signatureVersion": "v4", + "targetPrefix": "CloudHsmFrontendService" + }, + "operations": { + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagList" + ], + "members": { + "ResourceArn": {}, + "TagList": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": {} + } + } + }, + "CreateHapg": { + "input": { + "type": "structure", + "required": [ + "Label" + ], + "members": { + "Label": {} + } + }, + "output": { + "type": "structure", + "members": { + "HapgArn": {} + } + } + }, + "CreateHsm": { + "input": { + "type": "structure", + "required": [ + "SubnetId", + "SshKey", + "IamRoleArn", + "SubscriptionType" + ], + "members": { + "SubnetId": { + "locationName": "SubnetId" + }, + "SshKey": { + "locationName": "SshKey" + }, + "EniIp": { + "locationName": "EniIp" + }, + "IamRoleArn": { + "locationName": "IamRoleArn" + }, + "ExternalId": { + "locationName": "ExternalId" + }, + "SubscriptionType": { + "locationName": "SubscriptionType" + }, + "ClientToken": { + "locationName": "ClientToken" + }, + "SyslogIp": { + "locationName": "SyslogIp" + } + }, + "locationName": "CreateHsmRequest" + }, + "output": { + "type": "structure", + "members": { + "HsmArn": {} + } + } + }, + "CreateLunaClient": { + "input": { + "type": "structure", + "required": [ + "Certificate" + ], + "members": { + "Label": {}, + "Certificate": {} + } + }, + "output": { + "type": "structure", + "members": { + "ClientArn": {} + } + } + }, + "DeleteHapg": { + "input": { + "type": "structure", + "required": [ + "HapgArn" + ], + "members": { + "HapgArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": {} + } + } + }, + "DeleteHsm": { + "input": { + "type": "structure", + "required": [ + "HsmArn" + ], + "members": { + "HsmArn": { + "locationName": "HsmArn" + } + }, + "locationName": "DeleteHsmRequest" + }, + "output": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": {} + } + } + }, + "DeleteLunaClient": { + "input": { + "type": "structure", + "required": [ + "ClientArn" + ], + "members": { + "ClientArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": {} + } + } + }, + "DescribeHapg": { + "input": { + "type": "structure", + "required": [ + "HapgArn" + ], + "members": { + "HapgArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "HapgArn": {}, + "HapgSerial": {}, + "HsmsLastActionFailed": { + "shape": "Sz" + }, + "HsmsPendingDeletion": { + "shape": "Sz" + }, + "HsmsPendingRegistration": { + "shape": "Sz" + }, + "Label": {}, + "LastModifiedTimestamp": {}, + "PartitionSerialList": { + "shape": "S11" + }, + "State": {} + } + } + }, + "DescribeHsm": { + "input": { + "type": "structure", + "members": { + "HsmArn": {}, + "HsmSerialNumber": {} + } + }, + "output": { + "type": "structure", + "members": { + "HsmArn": {}, + "Status": {}, + "StatusDetails": {}, + "AvailabilityZone": {}, + "EniId": {}, + "EniIp": {}, + "SubscriptionType": {}, + "SubscriptionStartDate": {}, + "SubscriptionEndDate": {}, + "VpcId": {}, + "SubnetId": {}, + "IamRoleArn": {}, + "SerialNumber": {}, + "VendorName": {}, + "HsmType": {}, + "SoftwareVersion": {}, + "SshPublicKey": {}, + "SshKeyLastUpdated": {}, + "ServerCertUri": {}, + "ServerCertLastUpdated": {}, + "Partitions": { + "type": "list", + "member": {} + } + } + } + }, + "DescribeLunaClient": { + "input": { + "type": "structure", + "members": { + "ClientArn": {}, + "CertificateFingerprint": {} + } + }, + "output": { + "type": "structure", + "members": { + "ClientArn": {}, + "Certificate": {}, + "CertificateFingerprint": {}, + "LastModifiedTimestamp": {}, + "Label": {} + } + } + }, + "GetConfig": { + "input": { + "type": "structure", + "required": [ + "ClientArn", + "ClientVersion", + "HapgList" + ], + "members": { + "ClientArn": {}, + "ClientVersion": {}, + "HapgList": { + "shape": "S1i" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConfigType": {}, + "ConfigFile": {}, + "ConfigCred": {} + } + } + }, + "ListAvailableZones": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "AZList": { + "type": "list", + "member": {} + } + } + } + }, + "ListHapgs": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "HapgList" + ], + "members": { + "HapgList": { + "shape": "S1i" + }, + "NextToken": {} + } + } + }, + "ListHsms": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "HsmList": { + "shape": "Sz" + }, + "NextToken": {} + } + } + }, + "ListLunaClients": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ClientList" + ], + "members": { + "ClientList": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "TagList" + ], + "members": { + "TagList": { + "shape": "S3" + } + } + } + }, + "ModifyHapg": { + "input": { + "type": "structure", + "required": [ + "HapgArn" + ], + "members": { + "HapgArn": {}, + "Label": {}, + "PartitionSerialList": { + "shape": "S11" + } + } + }, + "output": { + "type": "structure", + "members": { + "HapgArn": {} + } + } + }, + "ModifyHsm": { + "input": { + "type": "structure", + "required": [ + "HsmArn" + ], + "members": { + "HsmArn": { + "locationName": "HsmArn" + }, + "SubnetId": { + "locationName": "SubnetId" + }, + "EniIp": { + "locationName": "EniIp" + }, + "IamRoleArn": { + "locationName": "IamRoleArn" + }, + "ExternalId": { + "locationName": "ExternalId" + }, + "SyslogIp": { + "locationName": "SyslogIp" + } + }, + "locationName": "ModifyHsmRequest" + }, + "output": { + "type": "structure", + "members": { + "HsmArn": {} + } + } + }, + "ModifyLunaClient": { + "input": { + "type": "structure", + "required": [ + "ClientArn", + "Certificate" + ], + "members": { + "ClientArn": {}, + "Certificate": {} + } + }, + "output": { + "type": "structure", + "members": { + "ClientArn": {} + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagKeyList" + ], + "members": { + "ResourceArn": {}, + "TagKeyList": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": {} + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sz": { + "type": "list", + "member": {} + }, + "S11": { + "type": "list", + "member": {} + }, + "S1i": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.min.json new file mode 100755 index 0000000..5db90f2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.min.json @@ -0,0 +1,837 @@ +{ + "metadata": { + "apiVersion": "2011-02-01", + "endpointPrefix": "cloudsearch", + "serviceFullName": "Amazon CloudSearch", + "signatureVersion": "v4", + "xmlNamespace": "http://cloudsearch.amazonaws.com/doc/2011-02-01/", + "protocol": "query" + }, + "operations": { + "CreateDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "CreateDomainResult", + "type": "structure", + "members": { + "DomainStatus": { + "shape": "S4" + } + } + } + }, + "DefineIndexField": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "IndexField" + ], + "members": { + "DomainName": {}, + "IndexField": { + "shape": "Sf" + } + } + }, + "output": { + "resultWrapper": "DefineIndexFieldResult", + "type": "structure", + "required": [ + "IndexField" + ], + "members": { + "IndexField": { + "shape": "Sx" + } + } + } + }, + "DefineRankExpression": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "RankExpression" + ], + "members": { + "DomainName": {}, + "RankExpression": { + "shape": "S12" + } + } + }, + "output": { + "resultWrapper": "DefineRankExpressionResult", + "type": "structure", + "required": [ + "RankExpression" + ], + "members": { + "RankExpression": { + "shape": "S15" + } + } + } + }, + "DeleteDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DeleteDomainResult", + "type": "structure", + "members": { + "DomainStatus": { + "shape": "S4" + } + } + } + }, + "DeleteIndexField": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "IndexFieldName" + ], + "members": { + "DomainName": {}, + "IndexFieldName": {} + } + }, + "output": { + "resultWrapper": "DeleteIndexFieldResult", + "type": "structure", + "required": [ + "IndexField" + ], + "members": { + "IndexField": { + "shape": "Sx" + } + } + } + }, + "DeleteRankExpression": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "RankName" + ], + "members": { + "DomainName": {}, + "RankName": {} + } + }, + "output": { + "resultWrapper": "DeleteRankExpressionResult", + "type": "structure", + "required": [ + "RankExpression" + ], + "members": { + "RankExpression": { + "shape": "S15" + } + } + } + }, + "DescribeAvailabilityOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeAvailabilityOptionsResult", + "type": "structure", + "members": { + "AvailabilityOptions": { + "shape": "S1e" + } + } + } + }, + "DescribeDefaultSearchField": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeDefaultSearchFieldResult", + "type": "structure", + "required": [ + "DefaultSearchField" + ], + "members": { + "DefaultSearchField": { + "shape": "S1i" + } + } + } + }, + "DescribeDomains": { + "input": { + "type": "structure", + "members": { + "DomainNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeDomainsResult", + "type": "structure", + "required": [ + "DomainStatusList" + ], + "members": { + "DomainStatusList": { + "type": "list", + "member": { + "shape": "S4" + } + } + } + } + }, + "DescribeIndexFields": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "FieldNames": { + "shape": "S1o" + } + } + }, + "output": { + "resultWrapper": "DescribeIndexFieldsResult", + "type": "structure", + "required": [ + "IndexFields" + ], + "members": { + "IndexFields": { + "type": "list", + "member": { + "shape": "Sx" + } + } + } + } + }, + "DescribeRankExpressions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "RankNames": { + "shape": "S1o" + } + } + }, + "output": { + "resultWrapper": "DescribeRankExpressionsResult", + "type": "structure", + "required": [ + "RankExpressions" + ], + "members": { + "RankExpressions": { + "type": "list", + "member": { + "shape": "S15" + } + } + } + } + }, + "DescribeServiceAccessPolicies": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeServiceAccessPoliciesResult", + "type": "structure", + "required": [ + "AccessPolicies" + ], + "members": { + "AccessPolicies": { + "shape": "S1w" + } + } + } + }, + "DescribeStemmingOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeStemmingOptionsResult", + "type": "structure", + "required": [ + "Stems" + ], + "members": { + "Stems": { + "shape": "S20" + } + } + } + }, + "DescribeStopwordOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeStopwordOptionsResult", + "type": "structure", + "required": [ + "Stopwords" + ], + "members": { + "Stopwords": { + "shape": "S24" + } + } + } + }, + "DescribeSynonymOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeSynonymOptionsResult", + "type": "structure", + "required": [ + "Synonyms" + ], + "members": { + "Synonyms": { + "shape": "S28" + } + } + } + }, + "IndexDocuments": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "IndexDocumentsResult", + "type": "structure", + "members": { + "FieldNames": { + "shape": "S1o" + } + } + } + }, + "UpdateAvailabilityOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "MultiAZ" + ], + "members": { + "DomainName": {}, + "MultiAZ": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "UpdateAvailabilityOptionsResult", + "type": "structure", + "members": { + "AvailabilityOptions": { + "shape": "S1e" + } + } + } + }, + "UpdateDefaultSearchField": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "DefaultSearchField" + ], + "members": { + "DomainName": {}, + "DefaultSearchField": {} + } + }, + "output": { + "resultWrapper": "UpdateDefaultSearchFieldResult", + "type": "structure", + "required": [ + "DefaultSearchField" + ], + "members": { + "DefaultSearchField": { + "shape": "S1i" + } + } + } + }, + "UpdateServiceAccessPolicies": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "AccessPolicies" + ], + "members": { + "DomainName": {}, + "AccessPolicies": {} + } + }, + "output": { + "resultWrapper": "UpdateServiceAccessPoliciesResult", + "type": "structure", + "required": [ + "AccessPolicies" + ], + "members": { + "AccessPolicies": { + "shape": "S1w" + } + } + } + }, + "UpdateStemmingOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Stems" + ], + "members": { + "DomainName": {}, + "Stems": {} + } + }, + "output": { + "resultWrapper": "UpdateStemmingOptionsResult", + "type": "structure", + "required": [ + "Stems" + ], + "members": { + "Stems": { + "shape": "S20" + } + } + } + }, + "UpdateStopwordOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Stopwords" + ], + "members": { + "DomainName": {}, + "Stopwords": {} + } + }, + "output": { + "resultWrapper": "UpdateStopwordOptionsResult", + "type": "structure", + "required": [ + "Stopwords" + ], + "members": { + "Stopwords": { + "shape": "S24" + } + } + } + }, + "UpdateSynonymOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Synonyms" + ], + "members": { + "DomainName": {}, + "Synonyms": {} + } + }, + "output": { + "resultWrapper": "UpdateSynonymOptionsResult", + "type": "structure", + "required": [ + "Synonyms" + ], + "members": { + "Synonyms": { + "shape": "S28" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "required": [ + "DomainId", + "DomainName", + "RequiresIndexDocuments" + ], + "members": { + "DomainId": {}, + "DomainName": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "NumSearchableDocs": { + "type": "long" + }, + "DocService": { + "shape": "S8" + }, + "SearchService": { + "shape": "S8" + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + }, + "S8": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "Sf": { + "type": "structure", + "required": [ + "IndexFieldName", + "IndexFieldType" + ], + "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", + "member": { + "type": "structure", + "required": [ + "SourceDataFunction" + ], + "members": { + "SourceDataFunction": {}, + "SourceDataCopy": { + "type": "structure", + "required": [ + "SourceName" + ], + "members": { + "SourceName": {}, + "DefaultValue": {} + } + }, + "SourceDataTrimTitle": { + "type": "structure", + "required": [ + "SourceName" + ], + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Separator": {}, + "Language": {} + } + }, + "SourceDataMap": { + "type": "structure", + "required": [ + "SourceName" + ], + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Cases": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } + } + } + } + }, + "Sx": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "Sf" + }, + "Status": { + "shape": "Sy" + } + } + }, + "Sy": { + "type": "structure", + "required": [ + "CreationDate", + "UpdateDate", + "State" + ], + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + }, + "S12": { + "type": "structure", + "required": [ + "RankName", + "RankExpression" + ], + "members": { + "RankName": {}, + "RankExpression": {} + } + }, + "S15": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "S12" + }, + "Status": { + "shape": "Sy" + } + } + }, + "S1e": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "type": "boolean" + }, + "Status": { + "shape": "Sy" + } + } + }, + "S1i": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "Sy" + } + } + }, + "S1o": { + "type": "list", + "member": {} + }, + "S1w": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "Sy" + } + } + }, + "S20": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "Sy" + } + } + }, + "S24": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "Sy" + } + } + }, + "S28": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "Sy" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.paginators.json new file mode 100755 index 0000000..5216445 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2011-02-01.paginators.json @@ -0,0 +1,13 @@ +{ + "pagination": { + "DescribeDomains": { + "result_key": "DomainStatusList" + }, + "DescribeIndexFields": { + "result_key": "IndexFields" + }, + "DescribeRankExpressions": { + "result_key": "RankExpressions" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.min.json new file mode 100755 index 0000000..7ab2a3e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.min.json @@ -0,0 +1,1086 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-01-01", + "endpointPrefix": "cloudsearch", + "serviceFullName": "Amazon CloudSearch", + "signatureVersion": "v4", + "xmlNamespace": "http://cloudsearch.amazonaws.com/doc/2013-01-01/", + "protocol": "query" + }, + "operations": { + "BuildSuggesters": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "BuildSuggestersResult", + "type": "structure", + "members": { + "FieldNames": { + "shape": "S4" + } + } + } + }, + "CreateDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "CreateDomainResult", + "type": "structure", + "members": { + "DomainStatus": { + "shape": "S8" + } + } + } + }, + "DefineAnalysisScheme": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "AnalysisScheme" + ], + "members": { + "DomainName": {}, + "AnalysisScheme": { + "shape": "Sl" + } + } + }, + "output": { + "resultWrapper": "DefineAnalysisSchemeResult", + "type": "structure", + "required": [ + "AnalysisScheme" + ], + "members": { + "AnalysisScheme": { + "shape": "Ss" + } + } + } + }, + "DefineExpression": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Expression" + ], + "members": { + "DomainName": {}, + "Expression": { + "shape": "Sy" + } + } + }, + "output": { + "resultWrapper": "DefineExpressionResult", + "type": "structure", + "required": [ + "Expression" + ], + "members": { + "Expression": { + "shape": "S11" + } + } + } + }, + "DefineIndexField": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "IndexField" + ], + "members": { + "DomainName": {}, + "IndexField": { + "shape": "S13" + } + } + }, + "output": { + "resultWrapper": "DefineIndexFieldResult", + "type": "structure", + "required": [ + "IndexField" + ], + "members": { + "IndexField": { + "shape": "S1n" + } + } + } + }, + "DefineSuggester": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Suggester" + ], + "members": { + "DomainName": {}, + "Suggester": { + "shape": "S1p" + } + } + }, + "output": { + "resultWrapper": "DefineSuggesterResult", + "type": "structure", + "required": [ + "Suggester" + ], + "members": { + "Suggester": { + "shape": "S1t" + } + } + } + }, + "DeleteAnalysisScheme": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "AnalysisSchemeName" + ], + "members": { + "DomainName": {}, + "AnalysisSchemeName": {} + } + }, + "output": { + "resultWrapper": "DeleteAnalysisSchemeResult", + "type": "structure", + "required": [ + "AnalysisScheme" + ], + "members": { + "AnalysisScheme": { + "shape": "Ss" + } + } + } + }, + "DeleteDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DeleteDomainResult", + "type": "structure", + "members": { + "DomainStatus": { + "shape": "S8" + } + } + } + }, + "DeleteExpression": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "ExpressionName" + ], + "members": { + "DomainName": {}, + "ExpressionName": {} + } + }, + "output": { + "resultWrapper": "DeleteExpressionResult", + "type": "structure", + "required": [ + "Expression" + ], + "members": { + "Expression": { + "shape": "S11" + } + } + } + }, + "DeleteIndexField": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "IndexFieldName" + ], + "members": { + "DomainName": {}, + "IndexFieldName": {} + } + }, + "output": { + "resultWrapper": "DeleteIndexFieldResult", + "type": "structure", + "required": [ + "IndexField" + ], + "members": { + "IndexField": { + "shape": "S1n" + } + } + } + }, + "DeleteSuggester": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "SuggesterName" + ], + "members": { + "DomainName": {}, + "SuggesterName": {} + } + }, + "output": { + "resultWrapper": "DeleteSuggesterResult", + "type": "structure", + "required": [ + "Suggester" + ], + "members": { + "Suggester": { + "shape": "S1t" + } + } + } + }, + "DescribeAnalysisSchemes": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "AnalysisSchemeNames": { + "shape": "S25" + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeAnalysisSchemesResult", + "type": "structure", + "required": [ + "AnalysisSchemes" + ], + "members": { + "AnalysisSchemes": { + "type": "list", + "member": { + "shape": "Ss" + } + } + } + } + }, + "DescribeAvailabilityOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeAvailabilityOptionsResult", + "type": "structure", + "members": { + "AvailabilityOptions": { + "shape": "S2a" + } + } + } + }, + "DescribeDomains": { + "input": { + "type": "structure", + "members": { + "DomainNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeDomainsResult", + "type": "structure", + "required": [ + "DomainStatusList" + ], + "members": { + "DomainStatusList": { + "type": "list", + "member": { + "shape": "S8" + } + } + } + } + }, + "DescribeExpressions": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "ExpressionNames": { + "shape": "S25" + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeExpressionsResult", + "type": "structure", + "required": [ + "Expressions" + ], + "members": { + "Expressions": { + "type": "list", + "member": { + "shape": "S11" + } + } + } + } + }, + "DescribeIndexFields": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "FieldNames": { + "type": "list", + "member": {} + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeIndexFieldsResult", + "type": "structure", + "required": [ + "IndexFields" + ], + "members": { + "IndexFields": { + "type": "list", + "member": { + "shape": "S1n" + } + } + } + } + }, + "DescribeScalingParameters": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DescribeScalingParametersResult", + "type": "structure", + "required": [ + "ScalingParameters" + ], + "members": { + "ScalingParameters": { + "shape": "S2p" + } + } + } + }, + "DescribeServiceAccessPolicies": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeServiceAccessPoliciesResult", + "type": "structure", + "required": [ + "AccessPolicies" + ], + "members": { + "AccessPolicies": { + "shape": "S2u" + } + } + } + }, + "DescribeSuggesters": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "SuggesterNames": { + "shape": "S25" + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeSuggestersResult", + "type": "structure", + "required": [ + "Suggesters" + ], + "members": { + "Suggesters": { + "type": "list", + "member": { + "shape": "S1t" + } + } + } + } + }, + "IndexDocuments": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "IndexDocumentsResult", + "type": "structure", + "members": { + "FieldNames": { + "shape": "S4" + } + } + } + }, + "ListDomainNames": { + "output": { + "resultWrapper": "ListDomainNamesResult", + "type": "structure", + "members": { + "DomainNames": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "UpdateAvailabilityOptions": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "MultiAZ" + ], + "members": { + "DomainName": {}, + "MultiAZ": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "UpdateAvailabilityOptionsResult", + "type": "structure", + "members": { + "AvailabilityOptions": { + "shape": "S2a" + } + } + } + }, + "UpdateScalingParameters": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "ScalingParameters" + ], + "members": { + "DomainName": {}, + "ScalingParameters": { + "shape": "S2q" + } + } + }, + "output": { + "resultWrapper": "UpdateScalingParametersResult", + "type": "structure", + "required": [ + "ScalingParameters" + ], + "members": { + "ScalingParameters": { + "shape": "S2p" + } + } + } + }, + "UpdateServiceAccessPolicies": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "AccessPolicies" + ], + "members": { + "DomainName": {}, + "AccessPolicies": {} + } + }, + "output": { + "resultWrapper": "UpdateServiceAccessPoliciesResult", + "type": "structure", + "required": [ + "AccessPolicies" + ], + "members": { + "AccessPolicies": { + "shape": "S2u" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "list", + "member": {} + }, + "S8": { + "type": "structure", + "required": [ + "DomainId", + "DomainName", + "RequiresIndexDocuments" + ], + "members": { + "DomainId": {}, + "DomainName": {}, + "ARN": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "DocService": { + "shape": "Sc" + }, + "SearchService": { + "shape": "Sc" + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + }, + "Limits": { + "type": "structure", + "required": [ + "MaximumReplicationCount", + "MaximumPartitionCount" + ], + "members": { + "MaximumReplicationCount": { + "type": "integer" + }, + "MaximumPartitionCount": { + "type": "integer" + } + } + } + } + }, + "Sc": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "Sl": { + "type": "structure", + "required": [ + "AnalysisSchemeName", + "AnalysisSchemeLanguage" + ], + "members": { + "AnalysisSchemeName": {}, + "AnalysisSchemeLanguage": {}, + "AnalysisOptions": { + "type": "structure", + "members": { + "Synonyms": {}, + "Stopwords": {}, + "StemmingDictionary": {}, + "JapaneseTokenizationDictionary": {}, + "AlgorithmicStemming": {} + } + } + } + }, + "Ss": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "Sl" + }, + "Status": { + "shape": "St" + } + } + }, + "St": { + "type": "structure", + "required": [ + "CreationDate", + "UpdateDate", + "State" + ], + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + }, + "Sy": { + "type": "structure", + "required": [ + "ExpressionName", + "ExpressionValue" + ], + "members": { + "ExpressionName": {}, + "ExpressionValue": {} + } + }, + "S11": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "Sy" + }, + "Status": { + "shape": "St" + } + } + }, + "S13": { + "type": "structure", + "required": [ + "IndexFieldName", + "IndexFieldType" + ], + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "IntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "long" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "DoubleOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "double" + }, + "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": "long" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "DoubleArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "double" + }, + "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" + } + } + } + } + }, + "S1n": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "S13" + }, + "Status": { + "shape": "St" + } + } + }, + "S1p": { + "type": "structure", + "required": [ + "SuggesterName", + "DocumentSuggesterOptions" + ], + "members": { + "SuggesterName": {}, + "DocumentSuggesterOptions": { + "type": "structure", + "required": [ + "SourceField" + ], + "members": { + "SourceField": {}, + "FuzzyMatching": {}, + "SortExpression": {} + } + } + } + }, + "S1t": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "S1p" + }, + "Status": { + "shape": "St" + } + } + }, + "S25": { + "type": "list", + "member": {} + }, + "S2a": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "type": "boolean" + }, + "Status": { + "shape": "St" + } + } + }, + "S2p": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "S2q" + }, + "Status": { + "shape": "St" + } + } + }, + "S2q": { + "type": "structure", + "members": { + "DesiredInstanceType": {}, + "DesiredReplicationCount": { + "type": "integer" + }, + "DesiredPartitionCount": { + "type": "integer" + } + } + }, + "S2u": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "St" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.paginators.json new file mode 100755 index 0000000..82fa804 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearch-2013-01-01.paginators.json @@ -0,0 +1,20 @@ +{ + "pagination": { + "DescribeAnalysisSchemes": { + "result_key": "AnalysisSchemes" + }, + "DescribeDomains": { + "result_key": "DomainStatusList" + }, + "DescribeExpressions": { + "result_key": "Expressions" + }, + "DescribeIndexFields": { + "result_key": "IndexFields" + }, + "DescribeSuggesters": { + "result_key": "Suggesters" + } + } +} + diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearchdomain-2013-01-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearchdomain-2013-01-01.min.json new file mode 100755 index 0000000..cea348e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudsearchdomain-2013-01-01.min.json @@ -0,0 +1,297 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-01-01", + "endpointPrefix": "cloudsearchdomain", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "Amazon CloudSearch Domain", + "signatureVersion": "v4", + "signingName": "cloudsearch" + }, + "operations": { + "Search": { + "http": { + "method": "GET", + "requestUri": "/2013-01-01/search?format=sdk&pretty=true" + }, + "input": { + "type": "structure", + "required": [ + "query" + ], + "members": { + "cursor": { + "location": "querystring", + "locationName": "cursor" + }, + "expr": { + "location": "querystring", + "locationName": "expr" + }, + "facet": { + "location": "querystring", + "locationName": "facet" + }, + "filterQuery": { + "location": "querystring", + "locationName": "fq" + }, + "highlight": { + "location": "querystring", + "locationName": "highlight" + }, + "partial": { + "location": "querystring", + "locationName": "partial", + "type": "boolean" + }, + "query": { + "location": "querystring", + "locationName": "q" + }, + "queryOptions": { + "location": "querystring", + "locationName": "q.options" + }, + "queryParser": { + "location": "querystring", + "locationName": "q.parser" + }, + "return": { + "location": "querystring", + "locationName": "return" + }, + "size": { + "location": "querystring", + "locationName": "size", + "type": "long" + }, + "sort": { + "location": "querystring", + "locationName": "sort" + }, + "start": { + "location": "querystring", + "locationName": "start", + "type": "long" + }, + "stats": { + "location": "querystring", + "locationName": "stats" + } + } + }, + "output": { + "type": "structure", + "members": { + "status": { + "type": "structure", + "members": { + "timems": { + "type": "long" + }, + "rid": {} + } + }, + "hits": { + "type": "structure", + "members": { + "found": { + "type": "long" + }, + "start": { + "type": "long" + }, + "cursor": {}, + "hit": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "fields": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": {} + } + }, + "exprs": { + "type": "map", + "key": {}, + "value": {} + }, + "highlights": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } + } + }, + "facets": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "buckets": { + "type": "list", + "member": { + "type": "structure", + "members": { + "value": {}, + "count": { + "type": "long" + } + } + } + } + } + } + }, + "stats": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "min": {}, + "max": {}, + "count": { + "type": "long" + }, + "missing": { + "type": "long" + }, + "sum": { + "type": "double" + }, + "sumOfSquares": { + "type": "double" + }, + "mean": {}, + "stddev": { + "type": "double" + } + } + } + } + } + } + }, + "Suggest": { + "http": { + "method": "GET", + "requestUri": "/2013-01-01/suggest?format=sdk&pretty=true" + }, + "input": { + "type": "structure", + "required": [ + "query", + "suggester" + ], + "members": { + "query": { + "location": "querystring", + "locationName": "q" + }, + "suggester": { + "location": "querystring", + "locationName": "suggester" + }, + "size": { + "location": "querystring", + "locationName": "size", + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "status": { + "type": "structure", + "members": { + "timems": { + "type": "long" + }, + "rid": {} + } + }, + "suggest": { + "type": "structure", + "members": { + "query": {}, + "found": { + "type": "long" + }, + "suggestions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "suggestion": {}, + "score": { + "type": "long" + }, + "id": {} + } + } + } + } + } + } + } + }, + "UploadDocuments": { + "http": { + "requestUri": "/2013-01-01/documents/batch?format=sdk" + }, + "input": { + "type": "structure", + "required": [ + "documents", + "contentType" + ], + "members": { + "documents": { + "type": "blob", + "streaming": true + }, + "contentType": { + "location": "header", + "locationName": "Content-Type" + } + }, + "payload": "documents" + }, + "output": { + "type": "structure", + "members": { + "status": {}, + "adds": { + "type": "long" + }, + "deletes": { + "type": "long" + }, + "warnings": { + "type": "list", + "member": { + "type": "structure", + "members": { + "message": {} + } + } + } + } + } + } + }, + "shapes": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json new file mode 100755 index 0000000..5ef4648 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json @@ -0,0 +1,454 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-11-01", + "endpointPrefix": "cloudtrail", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "CloudTrail", + "serviceFullName": "AWS CloudTrail", + "signatureVersion": "v4", + "targetPrefix": "com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101" + }, + "operations": { + "AddTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId" + ], + "members": { + "ResourceId": {}, + "TagsList": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "CreateTrail": { + "input": { + "type": "structure", + "required": [ + "Name", + "S3BucketName" + ], + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "IsMultiRegionTrail": { + "type": "boolean" + }, + "EnableLogFileValidation": { + "type": "boolean" + }, + "CloudWatchLogsLogGroupArn": {}, + "CloudWatchLogsRoleArn": {}, + "KmsKeyId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": { + "deprecated": true + }, + "SnsTopicARN": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "IsMultiRegionTrail": { + "type": "boolean" + }, + "TrailARN": {}, + "LogFileValidationEnabled": { + "type": "boolean" + }, + "CloudWatchLogsLogGroupArn": {}, + "CloudWatchLogsRoleArn": {}, + "KmsKeyId": {} + } + }, + "idempotent": true + }, + "DeleteTrail": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "DescribeTrails": { + "input": { + "type": "structure", + "members": { + "trailNameList": { + "type": "list", + "member": {} + }, + "includeShadowTrails": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "trailList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": { + "deprecated": true + }, + "SnsTopicARN": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "IsMultiRegionTrail": { + "type": "boolean" + }, + "HomeRegion": {}, + "TrailARN": {}, + "LogFileValidationEnabled": { + "type": "boolean" + }, + "CloudWatchLogsLogGroupArn": {}, + "CloudWatchLogsRoleArn": {}, + "KmsKeyId": {} + } + } + } + } + }, + "idempotent": true + }, + "GetTrailStatus": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "IsLogging": { + "type": "boolean" + }, + "LatestDeliveryError": {}, + "LatestNotificationError": {}, + "LatestDeliveryTime": { + "type": "timestamp" + }, + "LatestNotificationTime": { + "type": "timestamp" + }, + "StartLoggingTime": { + "type": "timestamp" + }, + "StopLoggingTime": { + "type": "timestamp" + }, + "LatestCloudWatchLogsDeliveryError": {}, + "LatestCloudWatchLogsDeliveryTime": { + "type": "timestamp" + }, + "LatestDigestDeliveryTime": { + "type": "timestamp" + }, + "LatestDigestDeliveryError": {}, + "LatestDeliveryAttemptTime": {}, + "LatestNotificationAttemptTime": {}, + "LatestNotificationAttemptSucceeded": {}, + "LatestDeliveryAttemptSucceeded": {}, + "TimeLoggingStarted": {}, + "TimeLoggingStopped": {} + } + }, + "idempotent": true + }, + "ListPublicKeys": { + "input": { + "type": "structure", + "members": { + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "PublicKeyList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Value": { + "type": "blob" + }, + "ValidityStartTime": { + "type": "timestamp" + }, + "ValidityEndTime": { + "type": "timestamp" + }, + "Fingerprint": {} + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "ListTags": { + "input": { + "type": "structure", + "required": [ + "ResourceIdList" + ], + "members": { + "ResourceIdList": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceTagList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceId": {}, + "TagsList": { + "shape": "S3" + } + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "LookupEvents": { + "input": { + "type": "structure", + "members": { + "LookupAttributes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AttributeKey", + "AttributeValue" + ], + "members": { + "AttributeKey": {}, + "AttributeValue": {} + } + } + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Events": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventId": {}, + "EventName": {}, + "EventTime": { + "type": "timestamp" + }, + "Username": {}, + "Resources": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceType": {}, + "ResourceName": {} + } + } + }, + "CloudTrailEvent": {} + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "RemoveTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId" + ], + "members": { + "ResourceId": {}, + "TagsList": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "StartLogging": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "StopLogging": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "UpdateTrail": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "IsMultiRegionTrail": { + "type": "boolean" + }, + "EnableLogFileValidation": { + "type": "boolean" + }, + "CloudWatchLogsLogGroupArn": {}, + "CloudWatchLogsRoleArn": {}, + "KmsKeyId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": { + "deprecated": true + }, + "SnsTopicARN": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "IsMultiRegionTrail": { + "type": "boolean" + }, + "TrailARN": {}, + "LogFileValidationEnabled": { + "type": "boolean" + }, + "CloudWatchLogsLogGroupArn": {}, + "CloudWatchLogsRoleArn": {}, + "KmsKeyId": {} + } + }, + "idempotent": true + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json new file mode 100755 index 0000000..a11f436 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json @@ -0,0 +1,7 @@ +{ + "pagination": { + "DescribeTrails": { + "result_key": "trailList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.min.json new file mode 100755 index 0000000..361d731 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.min.json @@ -0,0 +1,375 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-04-13", + "endpointPrefix": "codecommit", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "CodeCommit", + "serviceFullName": "AWS CodeCommit", + "signatureVersion": "v4", + "targetPrefix": "CodeCommit_20150413" + }, + "operations": { + "BatchGetRepositories": { + "input": { + "type": "structure", + "required": [ + "repositoryNames" + ], + "members": { + "repositoryNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "repositories": { + "type": "list", + "member": { + "shape": "S6" + } + }, + "repositoriesNotFound": { + "type": "list", + "member": {} + } + } + } + }, + "CreateBranch": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "branchName", + "commitId" + ], + "members": { + "repositoryName": {}, + "branchName": {}, + "commitId": {} + } + } + }, + "CreateRepository": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "repositoryName": {}, + "repositoryDescription": {} + } + }, + "output": { + "type": "structure", + "members": { + "repositoryMetadata": { + "shape": "S6" + } + } + } + }, + "DeleteRepository": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "repositoryId": {} + } + } + }, + "GetBranch": { + "input": { + "type": "structure", + "members": { + "repositoryName": {}, + "branchName": {} + } + }, + "output": { + "type": "structure", + "members": { + "branch": { + "type": "structure", + "members": { + "branchName": {}, + "commitId": {} + } + } + } + } + }, + "GetCommit": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "commitId" + ], + "members": { + "repositoryName": {}, + "commitId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "commit" + ], + "members": { + "commit": { + "type": "structure", + "members": { + "treeId": {}, + "parents": { + "type": "list", + "member": {} + }, + "message": {}, + "author": { + "shape": "Sw" + }, + "committer": { + "shape": "Sw" + }, + "additionalData": {} + } + } + } + } + }, + "GetRepository": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "repositoryMetadata": { + "shape": "S6" + } + } + } + }, + "GetRepositoryTriggers": { + "input": { + "type": "structure", + "members": { + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "configurationId": {}, + "triggers": { + "shape": "S16" + } + } + } + }, + "ListBranches": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "repositoryName": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "branches": { + "shape": "S1a" + }, + "nextToken": {} + } + } + }, + "ListRepositories": { + "input": { + "type": "structure", + "members": { + "nextToken": {}, + "sortBy": {}, + "order": {} + } + }, + "output": { + "type": "structure", + "members": { + "repositories": { + "type": "list", + "member": { + "type": "structure", + "members": { + "repositoryName": {}, + "repositoryId": {} + } + } + }, + "nextToken": {} + } + } + }, + "PutRepositoryTriggers": { + "input": { + "type": "structure", + "members": { + "repositoryName": {}, + "triggers": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": { + "configurationId": {} + } + } + }, + "TestRepositoryTriggers": { + "input": { + "type": "structure", + "members": { + "repositoryName": {}, + "triggers": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": { + "successfulExecutions": { + "type": "list", + "member": {} + }, + "failedExecutions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "trigger": {}, + "failureMessage": {} + } + } + } + } + } + }, + "UpdateDefaultBranch": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "defaultBranchName" + ], + "members": { + "repositoryName": {}, + "defaultBranchName": {} + } + } + }, + "UpdateRepositoryDescription": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "repositoryName": {}, + "repositoryDescription": {} + } + } + }, + "UpdateRepositoryName": { + "input": { + "type": "structure", + "required": [ + "oldName", + "newName" + ], + "members": { + "oldName": {}, + "newName": {} + } + } + } + }, + "shapes": { + "S6": { + "type": "structure", + "members": { + "accountId": {}, + "repositoryId": {}, + "repositoryName": {}, + "repositoryDescription": {}, + "defaultBranch": {}, + "lastModifiedDate": { + "type": "timestamp" + }, + "creationDate": { + "type": "timestamp" + }, + "cloneUrlHttp": {}, + "cloneUrlSsh": {}, + "Arn": {} + } + }, + "Sw": { + "type": "structure", + "members": { + "name": {}, + "email": {}, + "date": {} + } + }, + "S16": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "destinationArn": {}, + "customData": {}, + "branches": { + "shape": "S1a" + }, + "events": { + "type": "list", + "member": {} + } + } + } + }, + "S1a": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.paginators.json new file mode 100755 index 0000000..e4c9a90 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codecommit-2015-04-13.paginators.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "ListBranches": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "branches" + }, + "ListRepositories": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "repositories" + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.min.json new file mode 100755 index 0000000..eb8b1ca --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.min.json @@ -0,0 +1,1047 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-10-06", + "endpointPrefix": "codedeploy", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "CodeDeploy", + "serviceFullName": "AWS CodeDeploy", + "signatureVersion": "v4", + "targetPrefix": "CodeDeploy_20141006", + "timestampFormat": "unixTimestamp" + }, + "operations": { + "AddTagsToOnPremisesInstances": { + "input": { + "type": "structure", + "required": [ + "tags", + "instanceNames" + ], + "members": { + "tags": { + "shape": "S2" + }, + "instanceNames": { + "shape": "S6" + } + } + } + }, + "BatchGetApplicationRevisions": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "revisions" + ], + "members": { + "applicationName": {}, + "revisions": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": { + "applicationName": {}, + "errorMessage": {}, + "revisions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "revisionLocation": { + "shape": "Sb" + }, + "genericRevisionInfo": { + "shape": "Sq" + } + } + } + } + } + } + }, + "BatchGetApplications": { + "input": { + "type": "structure", + "members": { + "applicationNames": { + "shape": "Sw" + } + } + }, + "output": { + "type": "structure", + "members": { + "applicationsInfo": { + "type": "list", + "member": { + "shape": "Sz" + } + } + } + } + }, + "BatchGetDeploymentGroups": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "deploymentGroupNames" + ], + "members": { + "applicationName": {}, + "deploymentGroupNames": { + "shape": "Ss" + } + } + }, + "output": { + "type": "structure", + "members": { + "deploymentGroupsInfo": { + "type": "list", + "member": { + "shape": "S15" + } + }, + "errorMessage": {} + } + } + }, + "BatchGetDeploymentInstances": { + "input": { + "type": "structure", + "required": [ + "deploymentId", + "instanceIds" + ], + "members": { + "deploymentId": {}, + "instanceIds": { + "shape": "S1r" + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesSummary": { + "type": "list", + "member": { + "shape": "S1v" + } + }, + "errorMessage": {} + } + } + }, + "BatchGetDeployments": { + "input": { + "type": "structure", + "members": { + "deploymentIds": { + "shape": "S27" + } + } + }, + "output": { + "type": "structure", + "members": { + "deploymentsInfo": { + "type": "list", + "member": { + "shape": "S2a" + } + } + } + } + }, + "BatchGetOnPremisesInstances": { + "input": { + "type": "structure", + "members": { + "instanceNames": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "instanceInfos": { + "type": "list", + "member": { + "shape": "S2k" + } + } + } + } + }, + "CreateApplication": { + "input": { + "type": "structure", + "required": [ + "applicationName" + ], + "members": { + "applicationName": {} + } + }, + "output": { + "type": "structure", + "members": { + "applicationId": {} + } + } + }, + "CreateDeployment": { + "input": { + "type": "structure", + "required": [ + "applicationName" + ], + "members": { + "applicationName": {}, + "deploymentGroupName": {}, + "revision": { + "shape": "Sb" + }, + "deploymentConfigName": {}, + "description": {}, + "ignoreApplicationStopFailures": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "deploymentId": {} + } + } + }, + "CreateDeploymentConfig": { + "input": { + "type": "structure", + "required": [ + "deploymentConfigName" + ], + "members": { + "deploymentConfigName": {}, + "minimumHealthyHosts": { + "shape": "S2s" + } + } + }, + "output": { + "type": "structure", + "members": { + "deploymentConfigId": {} + } + } + }, + "CreateDeploymentGroup": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "deploymentGroupName", + "serviceRoleArn" + ], + "members": { + "applicationName": {}, + "deploymentGroupName": {}, + "deploymentConfigName": {}, + "ec2TagFilters": { + "shape": "S18" + }, + "onPremisesInstanceTagFilters": { + "shape": "S1b" + }, + "autoScalingGroups": { + "shape": "S2y" + }, + "serviceRoleArn": {}, + "triggerConfigurations": { + "shape": "S1j" + } + } + }, + "output": { + "type": "structure", + "members": { + "deploymentGroupId": {} + } + } + }, + "DeleteApplication": { + "input": { + "type": "structure", + "required": [ + "applicationName" + ], + "members": { + "applicationName": {} + } + } + }, + "DeleteDeploymentConfig": { + "input": { + "type": "structure", + "required": [ + "deploymentConfigName" + ], + "members": { + "deploymentConfigName": {} + } + } + }, + "DeleteDeploymentGroup": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "deploymentGroupName" + ], + "members": { + "applicationName": {}, + "deploymentGroupName": {} + } + }, + "output": { + "type": "structure", + "members": { + "hooksNotCleanedUp": { + "shape": "S1e" + } + } + } + }, + "DeregisterOnPremisesInstance": { + "input": { + "type": "structure", + "required": [ + "instanceName" + ], + "members": { + "instanceName": {} + } + } + }, + "GetApplication": { + "input": { + "type": "structure", + "required": [ + "applicationName" + ], + "members": { + "applicationName": {} + } + }, + "output": { + "type": "structure", + "members": { + "application": { + "shape": "Sz" + } + } + } + }, + "GetApplicationRevision": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "revision" + ], + "members": { + "applicationName": {}, + "revision": { + "shape": "Sb" + } + } + }, + "output": { + "type": "structure", + "members": { + "applicationName": {}, + "revision": { + "shape": "Sb" + }, + "revisionInfo": { + "shape": "Sq" + } + } + } + }, + "GetDeployment": { + "input": { + "type": "structure", + "required": [ + "deploymentId" + ], + "members": { + "deploymentId": {} + } + }, + "output": { + "type": "structure", + "members": { + "deploymentInfo": { + "shape": "S2a" + } + } + } + }, + "GetDeploymentConfig": { + "input": { + "type": "structure", + "required": [ + "deploymentConfigName" + ], + "members": { + "deploymentConfigName": {} + } + }, + "output": { + "type": "structure", + "members": { + "deploymentConfigInfo": { + "type": "structure", + "members": { + "deploymentConfigId": {}, + "deploymentConfigName": {}, + "minimumHealthyHosts": { + "shape": "S2s" + }, + "createTime": { + "type": "timestamp" + } + } + } + } + } + }, + "GetDeploymentGroup": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "deploymentGroupName" + ], + "members": { + "applicationName": {}, + "deploymentGroupName": {} + } + }, + "output": { + "type": "structure", + "members": { + "deploymentGroupInfo": { + "shape": "S15" + } + } + } + }, + "GetDeploymentInstance": { + "input": { + "type": "structure", + "required": [ + "deploymentId", + "instanceId" + ], + "members": { + "deploymentId": {}, + "instanceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "instanceSummary": { + "shape": "S1v" + } + } + } + }, + "GetOnPremisesInstance": { + "input": { + "type": "structure", + "required": [ + "instanceName" + ], + "members": { + "instanceName": {} + } + }, + "output": { + "type": "structure", + "members": { + "instanceInfo": { + "shape": "S2k" + } + } + } + }, + "ListApplicationRevisions": { + "input": { + "type": "structure", + "required": [ + "applicationName" + ], + "members": { + "applicationName": {}, + "sortBy": {}, + "sortOrder": {}, + "s3Bucket": {}, + "s3KeyPrefix": {}, + "deployed": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "revisions": { + "shape": "Sa" + }, + "nextToken": {} + } + } + }, + "ListApplications": { + "input": { + "type": "structure", + "members": { + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "applications": { + "shape": "Sw" + }, + "nextToken": {} + } + } + }, + "ListDeploymentConfigs": { + "input": { + "type": "structure", + "members": { + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "deploymentConfigsList": { + "type": "list", + "member": {} + }, + "nextToken": {} + } + } + }, + "ListDeploymentGroups": { + "input": { + "type": "structure", + "required": [ + "applicationName" + ], + "members": { + "applicationName": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "applicationName": {}, + "deploymentGroups": { + "shape": "Ss" + }, + "nextToken": {} + } + } + }, + "ListDeploymentInstances": { + "input": { + "type": "structure", + "required": [ + "deploymentId" + ], + "members": { + "deploymentId": {}, + "nextToken": {}, + "instanceStatusFilter": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesList": { + "shape": "S1r" + }, + "nextToken": {} + } + } + }, + "ListDeployments": { + "input": { + "type": "structure", + "members": { + "applicationName": {}, + "deploymentGroupName": {}, + "includeOnlyStatuses": { + "type": "list", + "member": {} + }, + "createTimeRange": { + "type": "structure", + "members": { + "start": { + "type": "timestamp" + }, + "end": { + "type": "timestamp" + } + } + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "deployments": { + "shape": "S27" + }, + "nextToken": {} + } + } + }, + "ListOnPremisesInstances": { + "input": { + "type": "structure", + "members": { + "registrationStatus": {}, + "tagFilters": { + "shape": "S1b" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "instanceNames": { + "shape": "S6" + }, + "nextToken": {} + } + } + }, + "RegisterApplicationRevision": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "revision" + ], + "members": { + "applicationName": {}, + "description": {}, + "revision": { + "shape": "Sb" + } + } + } + }, + "RegisterOnPremisesInstance": { + "input": { + "type": "structure", + "required": [ + "instanceName", + "iamUserArn" + ], + "members": { + "instanceName": {}, + "iamUserArn": {} + } + } + }, + "RemoveTagsFromOnPremisesInstances": { + "input": { + "type": "structure", + "required": [ + "tags", + "instanceNames" + ], + "members": { + "tags": { + "shape": "S2" + }, + "instanceNames": { + "shape": "S6" + } + } + } + }, + "StopDeployment": { + "input": { + "type": "structure", + "required": [ + "deploymentId" + ], + "members": { + "deploymentId": {} + } + }, + "output": { + "type": "structure", + "members": { + "status": {}, + "statusMessage": {} + } + } + }, + "UpdateApplication": { + "input": { + "type": "structure", + "members": { + "applicationName": {}, + "newApplicationName": {} + } + } + }, + "UpdateDeploymentGroup": { + "input": { + "type": "structure", + "required": [ + "applicationName", + "currentDeploymentGroupName" + ], + "members": { + "applicationName": {}, + "currentDeploymentGroupName": {}, + "newDeploymentGroupName": {}, + "deploymentConfigName": {}, + "ec2TagFilters": { + "shape": "S18" + }, + "onPremisesInstanceTagFilters": { + "shape": "S1b" + }, + "autoScalingGroups": { + "shape": "S2y" + }, + "serviceRoleArn": {}, + "triggerConfigurations": { + "shape": "S1j" + } + } + }, + "output": { + "type": "structure", + "members": { + "hooksNotCleanedUp": { + "shape": "S1e" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S6": { + "type": "list", + "member": {} + }, + "Sa": { + "type": "list", + "member": { + "shape": "Sb" + } + }, + "Sb": { + "type": "structure", + "members": { + "revisionType": {}, + "s3Location": { + "type": "structure", + "members": { + "bucket": {}, + "key": {}, + "bundleType": {}, + "version": {}, + "eTag": {} + } + }, + "gitHubLocation": { + "type": "structure", + "members": { + "repository": {}, + "commitId": {} + } + } + } + }, + "Sq": { + "type": "structure", + "members": { + "description": {}, + "deploymentGroups": { + "shape": "Ss" + }, + "firstUsedTime": { + "type": "timestamp" + }, + "lastUsedTime": { + "type": "timestamp" + }, + "registerTime": { + "type": "timestamp" + } + } + }, + "Ss": { + "type": "list", + "member": {} + }, + "Sw": { + "type": "list", + "member": {} + }, + "Sz": { + "type": "structure", + "members": { + "applicationId": {}, + "applicationName": {}, + "createTime": { + "type": "timestamp" + }, + "linkedToGitHub": { + "type": "boolean" + } + } + }, + "S15": { + "type": "structure", + "members": { + "applicationName": {}, + "deploymentGroupId": {}, + "deploymentGroupName": {}, + "deploymentConfigName": {}, + "ec2TagFilters": { + "shape": "S18" + }, + "onPremisesInstanceTagFilters": { + "shape": "S1b" + }, + "autoScalingGroups": { + "shape": "S1e" + }, + "serviceRoleArn": {}, + "targetRevision": { + "shape": "Sb" + }, + "triggerConfigurations": { + "shape": "S1j" + } + } + }, + "S18": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {}, + "Type": {} + } + } + }, + "S1b": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {}, + "Type": {} + } + } + }, + "S1e": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "hook": {} + } + } + }, + "S1j": { + "type": "list", + "member": { + "type": "structure", + "members": { + "triggerName": {}, + "triggerTargetArn": {}, + "triggerEvents": { + "type": "list", + "member": {} + } + } + } + }, + "S1r": { + "type": "list", + "member": {} + }, + "S1v": { + "type": "structure", + "members": { + "deploymentId": {}, + "instanceId": {}, + "status": {}, + "lastUpdatedAt": { + "type": "timestamp" + }, + "lifecycleEvents": { + "type": "list", + "member": { + "type": "structure", + "members": { + "lifecycleEventName": {}, + "diagnostics": { + "type": "structure", + "members": { + "errorCode": {}, + "scriptName": {}, + "message": {}, + "logTail": {} + } + }, + "startTime": { + "type": "timestamp" + }, + "endTime": { + "type": "timestamp" + }, + "status": {} + } + } + } + } + }, + "S27": { + "type": "list", + "member": {} + }, + "S2a": { + "type": "structure", + "members": { + "applicationName": {}, + "deploymentGroupName": {}, + "deploymentConfigName": {}, + "deploymentId": {}, + "revision": { + "shape": "Sb" + }, + "status": {}, + "errorInformation": { + "type": "structure", + "members": { + "code": {}, + "message": {} + } + }, + "createTime": { + "type": "timestamp" + }, + "startTime": { + "type": "timestamp" + }, + "completeTime": { + "type": "timestamp" + }, + "deploymentOverview": { + "type": "structure", + "members": { + "Pending": { + "type": "long" + }, + "InProgress": { + "type": "long" + }, + "Succeeded": { + "type": "long" + }, + "Failed": { + "type": "long" + }, + "Skipped": { + "type": "long" + } + } + }, + "description": {}, + "creator": {}, + "ignoreApplicationStopFailures": { + "type": "boolean" + } + } + }, + "S2k": { + "type": "structure", + "members": { + "instanceName": {}, + "iamUserArn": {}, + "instanceArn": {}, + "registerTime": { + "type": "timestamp" + }, + "deregisterTime": { + "type": "timestamp" + }, + "tags": { + "shape": "S2" + } + } + }, + "S2s": { + "type": "structure", + "members": { + "value": { + "type": "integer" + }, + "type": {} + } + }, + "S2y": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.paginators.json new file mode 100755 index 0000000..cea07e6 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codedeploy-2014-10-06.paginators.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListApplicationRevisions": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "revisions" + }, + "ListApplications": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "applications" + }, + "ListDeploymentConfigs": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "deploymentConfigsList" + }, + "ListDeploymentGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "deploymentGroups" + }, + "ListDeploymentInstances": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "instancesList" + }, + "ListDeployments": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "deployments" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.examples.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.examples.json new file mode 100755 index 0000000..5732bc8 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.examples.json @@ -0,0 +1,902 @@ +{ + "version": "1.0", + "examples": { + "AcknowledgeJob": [ + { + "input": { + "jobId": "11111111-abcd-1111-abcd-111111abcdef", + "nonce": "3" + }, + "output": { + "status": "InProgress" + }, + "comments": { + "input": { + "jobId": "Use the PollforJobs API to determine the ID of the job.", + "nonce": "Use the PollforJobs API to determine the nonce for the job." + }, + "output": { + "status": "Valid values include Created, Queued, Dispatched, InProgress, TimedOut, Suceeded, and Failed. Completed jobs are removed from the system after a short period of time." + } + }, + "description": "This example returns information about a specified job, including the status of that job if it exists. This is only used for job workers and custom actions in AWS CodePipeline. To determine the value of nonce and the job ID, use PollForJobs.", + "id": "acknowledge-a-job-for-a-custom-action-1449100979484", + "title": "Acknowledge a job for a custom action" + } + ], + "CreateCustomActionType": [ + { + "input": { + "version": "1", + "category": "Build", + "configurationProperties": [ + { + "name": "MyJenkinsExampleBuildProject", + "type": "String", + "required": true, + "key": true, + "description": "The name of the build project must be provided when this action is added to the pipeline.", + "queryable": false, + "secret": false + } + ], + "inputArtifactDetails": { + "maximumCount": 1, + "minimumCount": 0 + }, + "outputArtifactDetails": { + "maximumCount": 1, + "minimumCount": 0 + }, + "provider": "MyBuild-ProviderName", + "settings": { + "entityUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/", + "executionUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/", + "revisionUrlTemplate": "none" + } + }, + "output": { + "actionType": { + "actionConfigurationProperties": [ + { + "name": "MyJenkinsExampleBuildProject", + "required": true, + "key": true, + "description": "The name of the build project must be provided when this action is added to the pipeline.", + "queryable": false, + "secret": false + } + ], + "id": { + "version": "1", + "category": "Build", + "owner": "Custom", + "provider": "MyBuild-ProviderName" + }, + "inputArtifactDetails": { + "maximumCount": 1, + "minimumCount": 0 + }, + "outputArtifactDetails": { + "maximumCount": 1, + "minimumCount": 0 + }, + "settings": { + "entityUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/", + "executionUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/", + "revisionUrlTemplate": "none" + } + } + }, + "comments": { + "input": { + "version": "A new custom action always has a version of 1. This is required.", + "configurationProperties": "The text in description will be displayed to your users, and can contain a maximum of 2048 characters. The value for name in configurationProperties is the name of the project, if any. In this example, this is the name of the build project on the Jenkins server", + "inputArtifactDetails": "This is the minimum and maximum number of artifacts allowed as inputs for the action. For more information about input and output artifacts, see Pipeline Structure Reference in the AWS CodePipeline User Guide.", + "outputArtifactDetails": "This is the minimum and maximum number of artifacts allowed as outputs for the action. For more information about input and output artifacts, see Pipeline Structure Reference in the AWS CodePipeline User Guide.", + "provider": "In this example, this is the name given to the provider field when configuring the AWS CodePipeline Plugin for Jenkins. For more information, see the Four-Stage Pipeline Tutorial in the AWS CodePipeline User Guide.", + "settings": "entityUrlTemplate is the static link that provides information about the service provider for the action. In the example, the build system includes a static link to the Jenkins build project at the specific server address. Similarly, executionUrlTemplate is the dynamic link that will be updated with information about the current or most recent run of the action." + }, + "output": { + } + }, + "description": "This example creates a build custom action for AWS CodePipeline for a Jenkins build project. For more information about the requirements for creating a custom action, including the structure of the JSON file commonly used to help create custom actions, see Create a Custom Action in the AWS CodePipeline User Guide. For a walkthrough of creating a custom action in a pipeline, follow the Four-Stage Pipeline Tutorial.", + "id": "create-a-custom-action-1449103500903", + "title": "Create a custom action" + } + ], + "CreatePipeline": [ + { + "input": { + "pipeline": { + "version": 1, + "name": "MySecondPipeline", + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "name": "Source", + "actionTypeId": { + "version": "1", + "category": "Source", + "owner": "AWS", + "provider": "S3" + }, + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "inputArtifacts": [ + + ], + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "version": "1", + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy" + }, + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "outputArtifacts": [ + + ], + "runOrder": 1 + } + ] + } + ] + } + }, + "output": { + "pipeline": { + "version": 1, + "name": "MySecondPipeline", + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "name": "Source", + "actionTypeId": { + "version": "1", + "category": "Source", + "owner": "AWS", + "provider": "S3" + }, + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "inputArtifacts": [ + + ], + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "version": "1", + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy" + }, + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "outputArtifacts": [ + + ], + "runOrder": 1 + } + ] + } + ] + } + }, + "comments": { + "input": { + "version": "The version number of the pipeline. All new pipelines have a version number of 1. This number is incremented automatically every time a pipeline is updated.", + "name": "Pipeline names must be unique within a user's AWS account.", + "artifactStore": "This Amazon S3 bucket is where artifacts for the pipeline will be stored as the pipeline runs. For more information about the Amazon S3 bucket used as the artifact store, see Concepts in the AWS CodePipeline User Guide.", + "roleArn": "This is the ARN for the service role created for AWS CodePipeline.", + "stages": "Each stage block defines a different stage in the pipeline. Pipelines can have up to ten stages, with up to twenty actions per stage." + }, + "output": { + } + }, + "description": "This example creates a simple two-stage pipeline in AWS CodePipeline that uses an Amazon S3 bucket for its source stage and deploys code using AWS CodeDeploy. For more information about the requirements for creating a pipeline, including the structure of the JSON file commonly used to create a pipeline, see \"Create a Pipeline\" in the AWS CodePipeline User Guide.", + "id": "create-a-pipeline-1449162214392", + "title": "Create a pipeline" + } + ], + "DeleteCustomActionType": [ + { + "input": { + "version": "1", + "category": "Build", + "provider": "MyJenkinsProviderName" + }, + "comments": { + "input": { + "version": "This is the current version number of the custom action.", + "category": "This is the type of action that the custom action is, for example build or test.", + "provider": "This is the provider of the service used in the custom action. In this example, the custom action is for a Jenkins build, and the name of the provider is the one configured in the AWS CodePipeline Plugin for Jenkins" + }, + "output": { + } + }, + "description": "This example deletes a custom action in AWS CodePipeline by specifiying the action type, provider name, and version number of the action to be deleted. Only used for custom actions. Use the list-action-types command to view the correct values for category, version, and provider. After a custom action is deleted, PollForJobs for the custom action will fail. Warning: You cannot recreate a custom action after it has been deleted unless you increase the version number of the action.", + "id": "delete-a-custom-action-1449163239567", + "title": "Delete a custom action" + } + ], + "DeletePipeline": [ + { + "input": { + "name": "MySecondPipeline" + }, + "comments": { + "input": { + "name": "The name of the pipeline to delete." + }, + "output": { + } + }, + "description": "This example deletes a pipeline named MySecondPipeline from AWS CodePipeline. Use ListPipelines to view a list of pipelines associated with your AWS account.", + "id": "delete-a-pipeline-1449163893541", + "title": "Delete a pipeline" + } + ], + "DisableStageTransition": [ + { + "input": { + "pipelineName": "MyFirstPipeline", + "reason": "An example reason", + "stageName": "Beta", + "transitionType": "Inbound" + }, + "comments": { + "input": { + "transitionType": "Valid values are Inbound, which prevents artifacts from transitioning into the stage and being processed by the actions in that stage, or Outbound, which prevents artifacts from transitioning out of the stage after they have been processed by the actions in that stage." + }, + "output": { + } + }, + "description": "This example disables transitions into the Beta stage of the MyFirstPipeline pipeline in AWS CodePipeline.", + "id": "disable-transitions-into-or-out-of-a-stage-1449164517291", + "title": "Disable transitions into or out of a stage" + } + ], + "EnableStageTransition": [ + { + "input": { + "pipelineName": "MyFirstPipeline", + "stageName": "Beta", + "transitionType": "Inbound" + }, + "comments": { + "input": { + "transitionType": "Valid values are Inbound, which allows artifacts to transition into the stage and be processed by the actions in that stage, or Outbound, which allows artifacts to transition out of the stage after they have been processed by the actions in that stage." + }, + "output": { + } + }, + "description": "This example enables transitions into the Beta stage of the MyFirstPipeline pipeline in AWS CodePipeline.", + "id": "enable-transitions-into-or-out-of-a-stage-1449164924423", + "title": "Enable transitions into or out of a stage" + } + ], + "GetJobDetails": [ + { + "input": { + "jobId": "11111111-abcd-1111-abcd-111111abcdef" + }, + "output": { + "jobDetails": { + "accountId": "111111111111", + "data": { + "actionConfiguration": { + "configuration": { + "ProjectName": "MyJenkinsExampleTestProject" + } + }, + "actionTypeId": { + "version": "1", + "category": "Test", + "owner": "Custom", + "provider": "MyJenkinsProviderName" + }, + "artifactCredentials": { + "accessKeyId": "AKIAIOSFODNN7EXAMPLE", + "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "sessionToken": "fICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + }, + "inputArtifacts": [ + { + "name": "MyAppBuild", + "location": { + "type": "S3", + "s3Location": { + "bucketName": "codepipeline-us-east-1-11EXAMPLE11", + "objectKey": "MySecondPipeline/MyAppBuild/EXAMPLE" + } + } + } + ], + "outputArtifacts": [ + + ], + "pipelineContext": { + "action": { + "name": "MyJenkinsTest-Action" + }, + "pipelineName": "MySecondPipeline", + "stage": { + "name": "Testing" + } + } + }, + "id": "11111111-abcd-1111-abcd-111111abcdef" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example returns details about a job whose ID is represented by f4f4ff82-2d11-EXAMPLE. This command is only used for custom actions. When this command is called, AWS CodePipeline returns temporary credentials for the Amazon S3 bucket used to store artifacts for the pipeline, if required for the custom action. This command will also return any secret values defined for the action, if any are defined.", + "id": "get-the-details-of-a-job-1449183680273", + "title": "Get the details of a job" + } + ], + "GetPipeline": [ + { + "input": { + "version": 123, + "name": "MyFirstPipeline" + }, + "output": { + "pipeline": { + "version": 1, + "name": "MyFirstPipeline", + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "name": "Source", + "actionTypeId": { + "version": "1", + "category": "Source", + "owner": "AWS", + "provider": "S3" + }, + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "inputArtifacts": [ + + ], + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "version": "1", + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy" + }, + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "outputArtifacts": [ + + ], + "runOrder": 1 + } + ] + } + ] + } + }, + "comments": { + "input": { + "version": "This is an optional parameter. If you do not specify a version, the most current version of the pipeline structure is returned." + }, + "output": { + } + }, + "description": "This example returns the structure of a pipeline named MyFirstPipeline.", + "id": "view-the-structure-of-a-pipeline-1449184156329", + "title": "View the structure of a pipeline" + } + ], + "GetPipelineState": [ + { + "input": { + "name": "MyFirstPipeline" + }, + "output": { + "created": "1446137312.204", + "pipelineName": "MyFirstPipeline", + "pipelineVersion": 1, + "stageStates": [ + { + "actionStates": [ + { + "actionName": "Source", + "entityUrl": "https://console.aws.amazon.com/s3/home?#", + "latestExecution": { + "lastStatusChange": "1446137358.328", + "status": "Succeeded" + } + } + ], + "stageName": "Source" + }, + { + "actionStates": [ + { + "actionName": "CodePipelineDemoFleet", + "entityUrl": "https://console.aws.amazon.com/codedeploy/home?#/applications/CodePipelineDemoApplication/deployment-groups/CodePipelineDemoFleet", + "latestExecution": { + "externalExecutionId": "d-EXAMPLE", + "externalExecutionUrl": "https://console.aws.amazon.com/codedeploy/home?#/deployments/d-EXAMPLE", + "lastStatusChange": "1446137493.131", + "status": "Succeeded", + "summary": "Deployment Succeeded" + } + } + ], + "inboundTransitionState": { + "enabled": true + }, + "stageName": "Beta" + } + ], + "updated": "1446137312.204" + }, + "comments": { + "input": { + }, + "output": { + "created": "The value for created and all other time- and date-related information such as lastStatusChange, is returned in timestamp format." + } + }, + "description": "This example returns the most recent state of a pipeline named MyFirstPipeline.", + "id": "view-information-about-the-state-of-a-pipeline-1449184486550", + "title": "View information about the state of a pipeline" + } + ], + "ListActionTypes": [ + { + "input": { + "actionOwnerFilter": "Custom", + "nextToken": "" + }, + "output": { + "actionTypes": [ + { + "actionConfigurationProperties": [ + { + "name": "MyJenkinsExampleBuildProject", + "required": true, + "key": true, + "queryable": true, + "secret": false + } + ], + "id": { + "version": "1", + "category": "Build", + "owner": "Custom", + "provider": "MyJenkinsProviderName" + }, + "inputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "outputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "settings": { + "entityUrlTemplate": "http://54.174.131.118/job/{Config:ProjectName}", + "executionUrlTemplate": "http://54.174.131.118/job/{Config:ProjectName}/{ExternalExecutionId}" + } + }, + { + "actionConfigurationProperties": [ + { + "name": "MyJenkinsExampleTestProject", + "required": true, + "key": true, + "queryable": true, + "secret": false + } + ], + "id": { + "version": "1", + "category": "Build", + "owner": "Custom", + "provider": "MyJenkinsProviderName" + }, + "inputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "outputArtifactDetails": { + "maximumCount": 5, + "minimumCount": 0 + }, + "settings": { + "entityUrlTemplate": "http://54.210.140.46/job/{Config:ProjectName}", + "executionUrlTemplate": "http://54.210.140.46/job/{Config:ProjectName}/{ExternalExecutionId}" + } + } + ], + "nextToken": "" + }, + "comments": { + "input": { + }, + "output": { + "actionOwnerFilter": "actionOwnerFilter is optional. It is used to filter the response to actions created by a specific entity. Valid values include AWS, ThirdParty, and Custom.", + "nextToken": "nextToken is optional. Its operation is reserved for future use." + } + }, + "description": "Used by itself, ListActionTypes returns the structure of all AWS CodePipeline actions available to your AWS account. This example uses the actionOwnerFilter option to limit the response to include only the structure of all custom actions defined for the account.", + "id": "view-a-summary-of-all-action-types-associated-with-your-account-1455218918202", + "title": "View a summary of all action types associated with your account" + } + ], + "ListPipelines": [ + { + "input": { + }, + "output": { + "nextToken": "", + "pipelines": [ + { + "version": 1, + "name": "MyFirstPipeline", + "created": "1444681408.094", + "updated": "1444681408.094" + }, + { + "version": 3, + "name": "MySecondPipeline", + "created": "1443046290.003", + "updated": "1443048299.639" + } + ] + }, + "comments": { + "input": { + "nextToken": "nextToken is optional. Its operation is reserved for future use." + }, + "output": { + "pipelines": "Date and time information returned in the pipeline blocks, such as the values for created or updated, are in timestamp format." + } + }, + "description": "This example lists all AWS CodePipeline pipelines associated with the user's AWS account.", + "id": "view-a-summary-of-all-pipelines-associated-with-your-account-1449185747807", + "title": "View a summary of all pipelines associated with your account" + } + ], + "PollForJobs": [ + { + "input": { + "actionTypeId": { + "version": "1", + "category": "Test", + "owner": "Custom", + "provider": "MyJenkinsProviderName" + }, + "maxBatchSize": 5, + "queryParam": { + "ProjectName": "MyJenkinsTestProj" + } + }, + "output": { + "jobs": [ + { + "accountId": "111111111111", + "data": { + "actionConfiguration": { + "configuration": { + "ProjectName": "MyJenkinsTestProj" + } + }, + "actionTypeId": { + "version": "1", + "category": "Test", + "owner": "Custom", + "provider": "MyJenkinsProviderName" + }, + "artifactCredentials": { + "accessKeyId": "AKIAIOSFODNN7EXAMPLE", + "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "sessionToken": "fICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + }, + "inputArtifacts": [ + { + "name": "MyAppBuild", + "location": { + "type": "S3", + "s3Location": { + "bucketName": "codepipeline-us-east-1-11EXAMPLE11", + "objectKey": "MySecondPipeline/MyAppBuild/EXAMPLE" + } + } + } + ], + "outputArtifacts": [ + + ], + "pipelineContext": { + "action": { + "name": "MyJenkinsTest-Action" + }, + "pipelineName": "MySecondPipeline", + "stage": { + "name": "Testing" + } + } + }, + "id": "11111111-abcd-1111-abcd-111111abcdef", + "nonce": "3" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example returns information about any jobs for a job worker to act upon. This command is only used for custom actions. When this command is called, AWS CodePipeline returns temporary credentials for the Amazon S3 bucket used to store artifacts for the pipeline. This command will also return any secret values defined for the action, if any are defined.", + "id": "view-any-available-jobs-1449186054484", + "title": "View any available jobs" + } + ], + "StartPipelineExecution": [ + { + "input": { + "name": "MyFirstPipeline" + }, + "output": { + "pipelineExecutionId": "11111111-abcd-1111-abcd-111111abcdef" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example runs the latest revision present in the source stage of a pipeline through the pipeline named \"MyFirstPipeline\".", + "id": "run-the-latest-revision-through-a-pipeline-1449186732433", + "title": "Run the latest revision through a pipeline" + } + ], + "UpdatePipeline": [ + { + "input": { + "pipeline": { + "version": 2, + "name": "MyFirstPipeline", + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "name": "Source", + "actionTypeId": { + "version": "1", + "category": "Source", + "owner": "AWS", + "provider": "S3" + }, + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket2", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "inputArtifacts": [ + + ], + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "version": "1", + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy" + }, + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "outputArtifacts": [ + + ], + "runOrder": 1 + } + ] + } + ] + } + }, + "output": { + "pipeline": { + "version": 3, + "name": "MyFirstPipeline", + "artifactStore": { + "type": "S3", + "location": "codepipeline-us-east-1-11EXAMPLE11" + }, + "roleArn": "arn:aws:iam::111111111111:role/AWS-CodePipeline-Service", + "stages": [ + { + "name": "Source", + "actions": [ + { + "name": "Source", + "actionTypeId": { + "version": "1", + "category": "Source", + "owner": "AWS", + "provider": "S3" + }, + "configuration": { + "S3Bucket": "awscodepipeline-demo-bucket2", + "S3ObjectKey": "aws-codepipeline-s3-aws-codedeploy_linux.zip" + }, + "inputArtifacts": [ + + ], + "outputArtifacts": [ + { + "name": "MyApp" + } + ], + "runOrder": 1 + } + ] + }, + { + "name": "Beta", + "actions": [ + { + "name": "CodePipelineDemoFleet", + "actionTypeId": { + "version": "1", + "category": "Deploy", + "owner": "AWS", + "provider": "CodeDeploy" + }, + "configuration": { + "ApplicationName": "CodePipelineDemoApplication", + "DeploymentGroupName": "CodePipelineDemoFleet" + }, + "inputArtifacts": [ + { + "name": "MyApp" + } + ], + "outputArtifacts": [ + + ], + "runOrder": 1 + } + ] + } + ] + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example updates the structure of a pipeline. The entire structure of the pipeline must be supplied, either by passing all of the parameters, or by using a pre-defined JSON file.", + "id": "update-the-structure-of-a-pipeline-1449186881322", + "title": "Update the structure of a pipeline" + } + ] + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.min.json new file mode 100755 index 0000000..df8ecf4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/codepipeline-2015-07-09.min.json @@ -0,0 +1,978 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-07-09", + "endpointPrefix": "codepipeline", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "CodePipeline", + "serviceFullName": "AWS CodePipeline", + "signatureVersion": "v4", + "targetPrefix": "CodePipeline_20150709" + }, + "operations": { + "AcknowledgeJob": { + "input": { + "type": "structure", + "required": [ + "jobId", + "nonce" + ], + "members": { + "jobId": {}, + "nonce": {} + } + }, + "output": { + "type": "structure", + "members": { + "status": {} + } + } + }, + "AcknowledgeThirdPartyJob": { + "input": { + "type": "structure", + "required": [ + "jobId", + "nonce", + "clientToken" + ], + "members": { + "jobId": {}, + "nonce": {}, + "clientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "status": {} + } + } + }, + "CreateCustomActionType": { + "input": { + "type": "structure", + "required": [ + "category", + "provider", + "version", + "inputArtifactDetails", + "outputArtifactDetails" + ], + "members": { + "category": {}, + "provider": {}, + "version": {}, + "settings": { + "shape": "Se" + }, + "configurationProperties": { + "shape": "Sh" + }, + "inputArtifactDetails": { + "shape": "Sn" + }, + "outputArtifactDetails": { + "shape": "Sn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "actionType" + ], + "members": { + "actionType": { + "shape": "Sr" + } + } + } + }, + "CreatePipeline": { + "input": { + "type": "structure", + "required": [ + "pipeline" + ], + "members": { + "pipeline": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "pipeline": { + "shape": "Sv" + } + } + } + }, + "DeleteCustomActionType": { + "input": { + "type": "structure", + "required": [ + "category", + "provider", + "version" + ], + "members": { + "category": {}, + "provider": {}, + "version": {} + } + } + }, + "DeletePipeline": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + } + }, + "DisableStageTransition": { + "input": { + "type": "structure", + "required": [ + "pipelineName", + "stageName", + "transitionType", + "reason" + ], + "members": { + "pipelineName": {}, + "stageName": {}, + "transitionType": {}, + "reason": {} + } + } + }, + "EnableStageTransition": { + "input": { + "type": "structure", + "required": [ + "pipelineName", + "stageName", + "transitionType" + ], + "members": { + "pipelineName": {}, + "stageName": {}, + "transitionType": {} + } + } + }, + "GetJobDetails": { + "input": { + "type": "structure", + "required": [ + "jobId" + ], + "members": { + "jobId": {} + } + }, + "output": { + "type": "structure", + "members": { + "jobDetails": { + "type": "structure", + "members": { + "id": {}, + "data": { + "shape": "S1x" + }, + "accountId": {} + } + } + } + } + }, + "GetPipeline": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "version": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "pipeline": { + "shape": "Sv" + } + } + } + }, + "GetPipelineState": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineName": {}, + "pipelineVersion": { + "type": "integer" + }, + "stageStates": { + "type": "list", + "member": { + "type": "structure", + "members": { + "stageName": {}, + "inboundTransitionState": { + "type": "structure", + "members": { + "enabled": { + "type": "boolean" + }, + "lastChangedBy": {}, + "lastChangedAt": { + "type": "timestamp" + }, + "disabledReason": {} + } + }, + "actionStates": { + "type": "list", + "member": { + "type": "structure", + "members": { + "actionName": {}, + "currentRevision": { + "shape": "S2s" + }, + "latestExecution": { + "type": "structure", + "members": { + "status": {}, + "summary": {}, + "lastStatusChange": { + "type": "timestamp" + }, + "externalExecutionId": {}, + "externalExecutionUrl": {}, + "percentComplete": { + "type": "integer" + }, + "errorDetails": { + "type": "structure", + "members": { + "code": {}, + "message": {} + } + } + } + }, + "entityUrl": {}, + "revisionUrl": {} + } + } + } + } + } + }, + "created": { + "type": "timestamp" + }, + "updated": { + "type": "timestamp" + } + } + } + }, + "GetThirdPartyJobDetails": { + "input": { + "type": "structure", + "required": [ + "jobId", + "clientToken" + ], + "members": { + "jobId": {}, + "clientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "jobDetails": { + "type": "structure", + "members": { + "id": {}, + "data": { + "type": "structure", + "members": { + "actionTypeId": { + "shape": "Ss" + }, + "actionConfiguration": { + "shape": "S1y" + }, + "pipelineContext": { + "shape": "S1z" + }, + "inputArtifacts": { + "shape": "S22" + }, + "outputArtifacts": { + "shape": "S22" + }, + "artifactCredentials": { + "shape": "S2a" + }, + "continuationToken": {}, + "encryptionKey": { + "shape": "S11" + } + } + }, + "nonce": {} + } + } + } + } + }, + "ListActionTypes": { + "input": { + "type": "structure", + "members": { + "actionOwnerFilter": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "actionTypes" + ], + "members": { + "actionTypes": { + "type": "list", + "member": { + "shape": "Sr" + } + }, + "nextToken": {} + } + } + }, + "ListPipelines": { + "input": { + "type": "structure", + "members": { + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelines": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "version": { + "type": "integer" + }, + "created": { + "type": "timestamp" + }, + "updated": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "PollForJobs": { + "input": { + "type": "structure", + "required": [ + "actionTypeId" + ], + "members": { + "actionTypeId": { + "shape": "Ss" + }, + "maxBatchSize": { + "type": "integer" + }, + "queryParam": { + "type": "map", + "key": {}, + "value": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "jobs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "data": { + "shape": "S1x" + }, + "nonce": {}, + "accountId": {} + } + } + } + } + } + }, + "PollForThirdPartyJobs": { + "input": { + "type": "structure", + "required": [ + "actionTypeId" + ], + "members": { + "actionTypeId": { + "shape": "Ss" + }, + "maxBatchSize": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "jobs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "clientId": {}, + "jobId": {} + } + } + } + } + } + }, + "PutActionRevision": { + "input": { + "type": "structure", + "required": [ + "pipelineName", + "stageName", + "actionName", + "actionRevision" + ], + "members": { + "pipelineName": {}, + "stageName": {}, + "actionName": {}, + "actionRevision": { + "shape": "S2s" + } + } + }, + "output": { + "type": "structure", + "members": { + "newRevision": { + "type": "boolean" + }, + "pipelineExecutionId": {} + } + } + }, + "PutJobFailureResult": { + "input": { + "type": "structure", + "required": [ + "jobId", + "failureDetails" + ], + "members": { + "jobId": {}, + "failureDetails": { + "shape": "S3v" + } + } + } + }, + "PutJobSuccessResult": { + "input": { + "type": "structure", + "required": [ + "jobId" + ], + "members": { + "jobId": {}, + "currentRevision": { + "shape": "S3y" + }, + "continuationToken": {}, + "executionDetails": { + "shape": "S3z" + } + } + } + }, + "PutThirdPartyJobFailureResult": { + "input": { + "type": "structure", + "required": [ + "jobId", + "clientToken", + "failureDetails" + ], + "members": { + "jobId": {}, + "clientToken": {}, + "failureDetails": { + "shape": "S3v" + } + } + } + }, + "PutThirdPartyJobSuccessResult": { + "input": { + "type": "structure", + "required": [ + "jobId", + "clientToken" + ], + "members": { + "jobId": {}, + "clientToken": {}, + "currentRevision": { + "shape": "S3y" + }, + "continuationToken": {}, + "executionDetails": { + "shape": "S3z" + } + } + } + }, + "StartPipelineExecution": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineExecutionId": {} + } + } + }, + "UpdatePipeline": { + "input": { + "type": "structure", + "required": [ + "pipeline" + ], + "members": { + "pipeline": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "pipeline": { + "shape": "Sv" + } + } + } + } + }, + "shapes": { + "Se": { + "type": "structure", + "members": { + "thirdPartyConfigurationUrl": {}, + "entityUrlTemplate": {}, + "executionUrlTemplate": {}, + "revisionUrlTemplate": {} + } + }, + "Sh": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "required", + "key", + "secret" + ], + "members": { + "name": {}, + "required": { + "type": "boolean" + }, + "key": { + "type": "boolean" + }, + "secret": { + "type": "boolean" + }, + "queryable": { + "type": "boolean" + }, + "description": {}, + "type": {} + } + } + }, + "Sn": { + "type": "structure", + "required": [ + "minimumCount", + "maximumCount" + ], + "members": { + "minimumCount": { + "type": "integer" + }, + "maximumCount": { + "type": "integer" + } + } + }, + "Sr": { + "type": "structure", + "required": [ + "id", + "inputArtifactDetails", + "outputArtifactDetails" + ], + "members": { + "id": { + "shape": "Ss" + }, + "settings": { + "shape": "Se" + }, + "actionConfigurationProperties": { + "shape": "Sh" + }, + "inputArtifactDetails": { + "shape": "Sn" + }, + "outputArtifactDetails": { + "shape": "Sn" + } + } + }, + "Ss": { + "type": "structure", + "required": [ + "category", + "owner", + "provider", + "version" + ], + "members": { + "category": {}, + "owner": {}, + "provider": {}, + "version": {} + } + }, + "Sv": { + "type": "structure", + "required": [ + "name", + "roleArn", + "artifactStore", + "stages" + ], + "members": { + "name": {}, + "roleArn": {}, + "artifactStore": { + "type": "structure", + "required": [ + "type", + "location" + ], + "members": { + "type": {}, + "location": {}, + "encryptionKey": { + "shape": "S11" + } + } + }, + "stages": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "actions" + ], + "members": { + "name": {}, + "blockers": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "type" + ], + "members": { + "name": {}, + "type": {} + } + } + }, + "actions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "actionTypeId" + ], + "members": { + "name": {}, + "actionTypeId": { + "shape": "Ss" + }, + "runOrder": { + "type": "integer" + }, + "configuration": { + "shape": "S1f" + }, + "outputArtifacts": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + } + }, + "inputArtifacts": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + } + }, + "roleArn": {} + } + } + } + } + } + }, + "version": { + "type": "integer" + } + } + }, + "S11": { + "type": "structure", + "required": [ + "id", + "type" + ], + "members": { + "id": {}, + "type": {} + } + }, + "S1f": { + "type": "map", + "key": {}, + "value": {} + }, + "S1x": { + "type": "structure", + "members": { + "actionTypeId": { + "shape": "Ss" + }, + "actionConfiguration": { + "shape": "S1y" + }, + "pipelineContext": { + "shape": "S1z" + }, + "inputArtifacts": { + "shape": "S22" + }, + "outputArtifacts": { + "shape": "S22" + }, + "artifactCredentials": { + "shape": "S2a" + }, + "continuationToken": {}, + "encryptionKey": { + "shape": "S11" + } + } + }, + "S1y": { + "type": "structure", + "members": { + "configuration": { + "shape": "S1f" + } + } + }, + "S1z": { + "type": "structure", + "members": { + "pipelineName": {}, + "stage": { + "type": "structure", + "members": { + "name": {} + } + }, + "action": { + "type": "structure", + "members": { + "name": {} + } + } + } + }, + "S22": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "revision": {}, + "location": { + "type": "structure", + "members": { + "type": {}, + "s3Location": { + "type": "structure", + "required": [ + "bucketName", + "objectKey" + ], + "members": { + "bucketName": {}, + "objectKey": {} + } + } + } + } + } + } + }, + "S2a": { + "type": "structure", + "required": [ + "accessKeyId", + "secretAccessKey", + "sessionToken" + ], + "members": { + "accessKeyId": {}, + "secretAccessKey": {}, + "sessionToken": {} + }, + "sensitive": true + }, + "S2s": { + "type": "structure", + "required": [ + "revisionId", + "revisionChangeId", + "created" + ], + "members": { + "revisionId": {}, + "revisionChangeId": {}, + "created": { + "type": "timestamp" + } + } + }, + "S3v": { + "type": "structure", + "required": [ + "type", + "message" + ], + "members": { + "type": {}, + "message": {}, + "externalExecutionId": {} + } + }, + "S3y": { + "type": "structure", + "required": [ + "revision", + "changeIdentifier" + ], + "members": { + "revision": {}, + "changeIdentifier": {} + } + }, + "S3z": { + "type": "structure", + "members": { + "summary": {}, + "externalExecutionId": {}, + "percentComplete": { + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json new file mode 100755 index 0000000..a505778 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json @@ -0,0 +1,476 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-06-30", + "endpointPrefix": "cognito-identity", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon Cognito Identity", + "signatureVersion": "v4", + "targetPrefix": "AWSCognitoIdentityService" + }, + "operations": { + "CreateIdentityPool": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolName", + "AllowUnauthenticatedIdentities" + ], + "members": { + "IdentityPoolName": {}, + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "SupportedLoginProviders": { + "shape": "S4" + }, + "DeveloperProviderName": {}, + "OpenIdConnectProviderARNs": { + "shape": "S8" + }, + "CognitoIdentityProviders": { + "shape": "Sa" + } + } + }, + "output": { + "shape": "Se" + } + }, + "DeleteIdentities": { + "input": { + "type": "structure", + "required": [ + "IdentityIdsToDelete" + ], + "members": { + "IdentityIdsToDelete": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "UnprocessedIdentityIds": { + "type": "list", + "member": { + "type": "structure", + "members": { + "IdentityId": {}, + "ErrorCode": {} + } + } + } + } + } + }, + "DeleteIdentityPool": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": {} + } + } + }, + "DescribeIdentity": { + "input": { + "type": "structure", + "required": [ + "IdentityId" + ], + "members": { + "IdentityId": {} + } + }, + "output": { + "shape": "Sp" + } + }, + "DescribeIdentityPool": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": {} + } + }, + "output": { + "shape": "Se" + } + }, + "GetCredentialsForIdentity": { + "input": { + "type": "structure", + "required": [ + "IdentityId" + ], + "members": { + "IdentityId": {}, + "Logins": { + "shape": "Su" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityId": {}, + "Credentials": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + } + } + } + }, + "GetId": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "AccountId": {}, + "IdentityPoolId": {}, + "Logins": { + "shape": "Su" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityId": {} + } + } + }, + "GetIdentityPoolRoles": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": {} + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "Roles": { + "shape": "S16" + } + } + } + }, + "GetOpenIdToken": { + "input": { + "type": "structure", + "required": [ + "IdentityId" + ], + "members": { + "IdentityId": {}, + "Logins": { + "shape": "Su" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityId": {}, + "Token": {} + } + } + }, + "GetOpenIdTokenForDeveloperIdentity": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "Logins" + ], + "members": { + "IdentityPoolId": {}, + "IdentityId": {}, + "Logins": { + "shape": "Su" + }, + "TokenDuration": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityId": {}, + "Token": {} + } + } + }, + "ListIdentities": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "MaxResults" + ], + "members": { + "IdentityPoolId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {}, + "HideDisabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "Identities": { + "type": "list", + "member": { + "shape": "Sp" + } + }, + "NextToken": {} + } + } + }, + "ListIdentityPools": { + "input": { + "type": "structure", + "required": [ + "MaxResults" + ], + "members": { + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPools": { + "type": "list", + "member": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "IdentityPoolName": {} + } + } + }, + "NextToken": {} + } + } + }, + "LookupDeveloperIdentity": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": {}, + "IdentityId": {}, + "DeveloperUserIdentifier": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "IdentityId": {}, + "DeveloperUserIdentifierList": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + } + }, + "MergeDeveloperIdentities": { + "input": { + "type": "structure", + "required": [ + "SourceUserIdentifier", + "DestinationUserIdentifier", + "DeveloperProviderName", + "IdentityPoolId" + ], + "members": { + "SourceUserIdentifier": {}, + "DestinationUserIdentifier": {}, + "DeveloperProviderName": {}, + "IdentityPoolId": {} + } + }, + "output": { + "type": "structure", + "members": { + "IdentityId": {} + } + } + }, + "SetIdentityPoolRoles": { + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "Roles" + ], + "members": { + "IdentityPoolId": {}, + "Roles": { + "shape": "S16" + } + } + } + }, + "UnlinkDeveloperIdentity": { + "input": { + "type": "structure", + "required": [ + "IdentityId", + "IdentityPoolId", + "DeveloperProviderName", + "DeveloperUserIdentifier" + ], + "members": { + "IdentityId": {}, + "IdentityPoolId": {}, + "DeveloperProviderName": {}, + "DeveloperUserIdentifier": {} + } + } + }, + "UnlinkIdentity": { + "input": { + "type": "structure", + "required": [ + "IdentityId", + "Logins", + "LoginsToRemove" + ], + "members": { + "IdentityId": {}, + "Logins": { + "shape": "Su" + }, + "LoginsToRemove": { + "shape": "Sq" + } + } + } + }, + "UpdateIdentityPool": { + "input": { + "shape": "Se" + }, + "output": { + "shape": "Se" + } + } + }, + "shapes": { + "S4": { + "type": "map", + "key": {}, + "value": {} + }, + "S8": { + "type": "list", + "member": {} + }, + "Sa": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ProviderName": {}, + "ClientId": {} + } + } + }, + "Se": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityPoolName", + "AllowUnauthenticatedIdentities" + ], + "members": { + "IdentityPoolId": {}, + "IdentityPoolName": {}, + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "SupportedLoginProviders": { + "shape": "S4" + }, + "DeveloperProviderName": {}, + "OpenIdConnectProviderARNs": { + "shape": "S8" + }, + "CognitoIdentityProviders": { + "shape": "Sa" + } + } + }, + "Sp": { + "type": "structure", + "members": { + "IdentityId": {}, + "Logins": { + "shape": "Sq" + }, + "CreationDate": { + "type": "timestamp" + }, + "LastModifiedDate": { + "type": "timestamp" + } + } + }, + "Sq": { + "type": "list", + "member": {} + }, + "Su": { + "type": "map", + "key": {}, + "value": {} + }, + "S16": { + "type": "map", + "key": {}, + "value": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-idp-2016-04-18.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-idp-2016-04-18.min.json new file mode 100755 index 0000000..4a85d76 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-idp-2016-04-18.min.json @@ -0,0 +1,1077 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-04-18", + "endpointPrefix": "cognito-idp", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon Cognito Identity Provider", + "signatureVersion": "v4", + "targetPrefix": "AWSCognitoIdentityProviderService" + }, + "operations": { + "AddCustomAttributes": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "CustomAttributes" + ], + "members": { + "UserPoolId": {}, + "CustomAttributes": { + "type": "list", + "member": { + "shape": "S4" + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminConfirmSignUp": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminDeleteUser": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + } + } + } + }, + "AdminDeleteUserAttributes": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username", + "UserAttributeNames" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + }, + "UserAttributeNames": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminDisableUser": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminEnableUser": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminGetUser": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Username" + ], + "members": { + "Username": { + "shape": "Sd" + }, + "UserAttributes": { + "shape": "Sq" + }, + "UserCreateDate": { + "type": "timestamp" + }, + "UserLastModifiedDate": { + "type": "timestamp" + }, + "Enabled": { + "type": "boolean" + }, + "UserStatus": {}, + "MFAOptions": { + "shape": "Sv" + } + } + } + }, + "AdminResetUserPassword": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminSetUserSettings": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username", + "MFAOptions" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + }, + "MFAOptions": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AdminUpdateUserAttributes": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "Username", + "UserAttributes" + ], + "members": { + "UserPoolId": {}, + "Username": { + "shape": "Sd" + }, + "UserAttributes": { + "shape": "Sq" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ChangePassword": { + "input": { + "type": "structure", + "required": [ + "PreviousPassword", + "ProposedPassword" + ], + "members": { + "PreviousPassword": { + "shape": "S15" + }, + "ProposedPassword": { + "shape": "S15" + }, + "AccessToken": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "authtype": "none" + }, + "ConfirmForgotPassword": { + "input": { + "type": "structure", + "required": [ + "ClientId", + "Username", + "ConfirmationCode", + "Password" + ], + "members": { + "ClientId": { + "shape": "S19" + }, + "SecretHash": { + "shape": "S1a" + }, + "Username": { + "shape": "Sd" + }, + "ConfirmationCode": {}, + "Password": { + "shape": "S15" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "authtype": "none" + }, + "ConfirmSignUp": { + "input": { + "type": "structure", + "required": [ + "ClientId", + "Username", + "ConfirmationCode" + ], + "members": { + "ClientId": { + "shape": "S19" + }, + "SecretHash": { + "shape": "S1a" + }, + "Username": { + "shape": "Sd" + }, + "ConfirmationCode": {}, + "ForceAliasCreation": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "authtype": "none" + }, + "CreateUserPool": { + "input": { + "type": "structure", + "required": [ + "PoolName" + ], + "members": { + "PoolName": {}, + "Policies": { + "shape": "S1i" + }, + "LambdaConfig": { + "shape": "S1l" + }, + "AutoVerifiedAttributes": { + "shape": "S1n" + }, + "AliasAttributes": { + "shape": "S1p" + }, + "SmsVerificationMessage": {}, + "EmailVerificationMessage": {}, + "EmailVerificationSubject": {}, + "SmsAuthenticationMessage": {}, + "MfaConfiguration": {} + } + }, + "output": { + "type": "structure", + "members": { + "UserPool": { + "shape": "S1w" + } + } + } + }, + "CreateUserPoolClient": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "ClientName" + ], + "members": { + "UserPoolId": {}, + "ClientName": {}, + "GenerateSecret": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserPoolClient": { + "shape": "S24" + } + } + } + }, + "DeleteUser": { + "input": { + "type": "structure", + "members": { + "AccessToken": { + "shape": "S16" + } + } + }, + "authtype": "none" + }, + "DeleteUserAttributes": { + "input": { + "type": "structure", + "required": [ + "UserAttributeNames" + ], + "members": { + "UserAttributeNames": { + "shape": "Sh" + }, + "AccessToken": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "authtype": "none" + }, + "DeleteUserPool": { + "input": { + "type": "structure", + "required": [ + "UserPoolId" + ], + "members": { + "UserPoolId": {} + } + } + }, + "DeleteUserPoolClient": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "ClientId" + ], + "members": { + "UserPoolId": {}, + "ClientId": { + "shape": "S19" + } + } + } + }, + "DescribeUserPool": { + "input": { + "type": "structure", + "required": [ + "UserPoolId" + ], + "members": { + "UserPoolId": {} + } + }, + "output": { + "type": "structure", + "members": { + "UserPool": { + "shape": "S1w" + } + } + } + }, + "DescribeUserPoolClient": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "ClientId" + ], + "members": { + "UserPoolId": {}, + "ClientId": { + "shape": "S19" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserPoolClient": { + "shape": "S24" + } + } + } + }, + "ForgotPassword": { + "input": { + "type": "structure", + "required": [ + "ClientId", + "Username" + ], + "members": { + "ClientId": { + "shape": "S19" + }, + "SecretHash": { + "shape": "S1a" + }, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": { + "CodeDeliveryDetails": { + "shape": "S2h" + } + } + }, + "authtype": "none" + }, + "GetUser": { + "input": { + "type": "structure", + "members": { + "AccessToken": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Username", + "UserAttributes" + ], + "members": { + "Username": { + "shape": "Sd" + }, + "UserAttributes": { + "shape": "Sq" + }, + "MFAOptions": { + "shape": "Sv" + } + } + }, + "authtype": "none" + }, + "GetUserAttributeVerificationCode": { + "input": { + "type": "structure", + "required": [ + "AttributeName" + ], + "members": { + "AccessToken": { + "shape": "S16" + }, + "AttributeName": {} + } + }, + "output": { + "type": "structure", + "members": { + "CodeDeliveryDetails": { + "shape": "S2h" + } + } + }, + "authtype": "none" + }, + "ListUserPoolClients": { + "input": { + "type": "structure", + "required": [ + "UserPoolId" + ], + "members": { + "UserPoolId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "UserPoolClients": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ClientId": { + "shape": "S19" + }, + "UserPoolId": {}, + "ClientName": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListUserPools": { + "input": { + "type": "structure", + "required": [ + "MaxResults" + ], + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserPools": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "LambdaConfig": { + "shape": "S1l" + }, + "Status": {}, + "LastModifiedDate": { + "type": "timestamp" + }, + "CreationDate": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListUsers": { + "input": { + "type": "structure", + "required": [ + "UserPoolId" + ], + "members": { + "UserPoolId": {}, + "AttributesToGet": { + "type": "list", + "member": {} + }, + "Limit": { + "type": "integer" + }, + "PaginationToken": {}, + "UserStatus": {} + } + }, + "output": { + "type": "structure", + "members": { + "Users": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Username": { + "shape": "Sd" + }, + "Attributes": { + "shape": "Sq" + }, + "UserCreateDate": { + "type": "timestamp" + }, + "UserLastModifiedDate": { + "type": "timestamp" + }, + "Enabled": { + "type": "boolean" + }, + "UserStatus": {} + } + } + }, + "PaginationToken": {} + } + } + }, + "ResendConfirmationCode": { + "input": { + "type": "structure", + "required": [ + "ClientId", + "Username" + ], + "members": { + "ClientId": { + "shape": "S19" + }, + "SecretHash": { + "shape": "S1a" + }, + "Username": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": { + "CodeDeliveryDetails": { + "shape": "S2h" + } + } + }, + "authtype": "none" + }, + "SetUserSettings": { + "input": { + "type": "structure", + "required": [ + "AccessToken", + "MFAOptions" + ], + "members": { + "AccessToken": { + "shape": "S16" + }, + "MFAOptions": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "authtype": "none" + }, + "SignUp": { + "input": { + "type": "structure", + "required": [ + "ClientId", + "Username", + "Password" + ], + "members": { + "ClientId": { + "shape": "S19" + }, + "SecretHash": { + "shape": "S1a" + }, + "Username": { + "shape": "Sd" + }, + "Password": { + "shape": "S15" + }, + "UserAttributes": { + "shape": "Sq" + }, + "ValidationData": { + "shape": "Sq" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserConfirmed": { + "type": "boolean" + }, + "CodeDeliveryDetails": { + "shape": "S2h" + } + } + }, + "authtype": "none" + }, + "UpdateUserAttributes": { + "input": { + "type": "structure", + "required": [ + "UserAttributes" + ], + "members": { + "UserAttributes": { + "shape": "Sq" + }, + "AccessToken": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": { + "CodeDeliveryDetailsList": { + "type": "list", + "member": { + "shape": "S2h" + } + } + } + }, + "authtype": "none" + }, + "UpdateUserPool": { + "input": { + "type": "structure", + "required": [ + "UserPoolId" + ], + "members": { + "UserPoolId": {}, + "Policies": { + "shape": "S1i" + }, + "LambdaConfig": { + "shape": "S1l" + }, + "AutoVerifiedAttributes": { + "shape": "S1n" + }, + "SmsVerificationMessage": {}, + "EmailVerificationMessage": {}, + "EmailVerificationSubject": {}, + "SmsAuthenticationMessage": {}, + "MfaConfiguration": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateUserPoolClient": { + "input": { + "type": "structure", + "required": [ + "UserPoolId", + "ClientId" + ], + "members": { + "UserPoolId": {}, + "ClientId": { + "shape": "S19" + }, + "ClientName": {} + } + }, + "output": { + "type": "structure", + "members": { + "UserPoolClient": { + "shape": "S24" + } + } + } + }, + "VerifyUserAttribute": { + "input": { + "type": "structure", + "required": [ + "AttributeName", + "Code" + ], + "members": { + "AccessToken": { + "shape": "S16" + }, + "AttributeName": {}, + "Code": {} + } + }, + "output": { + "type": "structure", + "members": {} + }, + "authtype": "none" + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "Name": {}, + "AttributeDataType": {}, + "DeveloperOnlyAttribute": { + "type": "boolean" + }, + "Mutable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "NumberAttributeConstraints": { + "type": "structure", + "members": { + "MinValue": {}, + "MaxValue": {} + } + }, + "StringAttributeConstraints": { + "type": "structure", + "members": { + "MinLength": {}, + "MaxLength": {} + } + } + } + }, + "Sd": { + "type": "string", + "sensitive": true + }, + "Sh": { + "type": "list", + "member": {} + }, + "Sq": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Value": { + "type": "string", + "sensitive": true + } + } + } + }, + "Sv": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DeliveryMedium": {}, + "AttributeName": {} + } + } + }, + "S15": { + "type": "string", + "sensitive": true + }, + "S16": { + "type": "string", + "sensitive": true + }, + "S19": { + "type": "string", + "sensitive": true + }, + "S1a": { + "type": "string", + "sensitive": true + }, + "S1i": { + "type": "structure", + "members": { + "PasswordPolicy": { + "type": "structure", + "members": { + "MinimumLength": { + "type": "integer" + }, + "RequireUppercase": { + "type": "boolean" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + } + } + } + } + }, + "S1l": { + "type": "structure", + "members": { + "PreSignUp": {}, + "CustomMessage": {}, + "PostConfirmation": {}, + "PreAuthentication": {}, + "PostAuthentication": {} + } + }, + "S1n": { + "type": "list", + "member": {} + }, + "S1p": { + "type": "list", + "member": {} + }, + "S1w": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Policies": { + "shape": "S1i" + }, + "LambdaConfig": { + "shape": "S1l" + }, + "Status": {}, + "LastModifiedDate": { + "type": "timestamp" + }, + "CreationDate": { + "type": "timestamp" + }, + "SchemaAttributes": { + "type": "list", + "member": { + "shape": "S4" + } + }, + "AutoVerifiedAttributes": { + "shape": "S1n" + }, + "AliasAttributes": { + "shape": "S1p" + }, + "SmsVerificationMessage": {}, + "EmailVerificationMessage": {}, + "EmailVerificationSubject": {}, + "SmsAuthenticationMessage": {}, + "MfaConfiguration": {}, + "EstimatedNumberOfUsers": { + "type": "integer" + } + } + }, + "S24": { + "type": "structure", + "members": { + "UserPoolId": {}, + "ClientName": {}, + "ClientId": { + "shape": "S19" + }, + "ClientSecret": { + "type": "string", + "sensitive": true + }, + "LastModifiedDate": { + "type": "timestamp" + }, + "CreationDate": { + "type": "timestamp" + } + } + }, + "S2h": { + "type": "structure", + "members": { + "Destination": {}, + "DeliveryMedium": {}, + "AttributeName": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-sync-2014-06-30.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-sync-2014-06-30.min.json new file mode 100755 index 0000000..3f969ea --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/cognito-sync-2014-06-30.min.json @@ -0,0 +1,746 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-06-30", + "endpointPrefix": "cognito-sync", + "jsonVersion": "1.1", + "serviceFullName": "Amazon Cognito Sync", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "BulkPublish": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/bulkpublish", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolId": {} + } + } + }, + "DeleteDataset": { + "http": { + "method": "DELETE", + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "DatasetName" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "DatasetName": { + "location": "uri", + "locationName": "DatasetName" + } + } + }, + "output": { + "type": "structure", + "members": { + "Dataset": { + "shape": "S8" + } + } + } + }, + "DescribeDataset": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "DatasetName" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "DatasetName": { + "location": "uri", + "locationName": "DatasetName" + } + } + }, + "output": { + "type": "structure", + "members": { + "Dataset": { + "shape": "S8" + } + } + } + }, + "DescribeIdentityPoolUsage": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolUsage": { + "shape": "Sg" + } + } + } + }, + "DescribeIdentityUsage": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityUsage": { + "type": "structure", + "members": { + "IdentityId": {}, + "IdentityPoolId": {}, + "LastModifiedDate": { + "type": "timestamp" + }, + "DatasetCount": { + "type": "integer" + }, + "DataStorage": { + "type": "long" + } + } + } + } + } + }, + "GetBulkPublishDetails": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/getBulkPublishDetails", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "BulkPublishStartTime": { + "type": "timestamp" + }, + "BulkPublishCompleteTime": { + "type": "timestamp" + }, + "BulkPublishStatus": {}, + "FailureMessage": {} + } + } + }, + "GetCognitoEvents": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}/events", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Events": { + "shape": "Sq" + } + } + } + }, + "GetIdentityPoolConfiguration": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}/configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "PushSync": { + "shape": "Sv" + }, + "CognitoStreams": { + "shape": "Sz" + } + } + } + }, + "ListDatasets": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityId", + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Datasets": { + "type": "list", + "member": { + "shape": "S8" + } + }, + "Count": { + "type": "integer" + }, + "NextToken": {} + } + } + }, + "ListIdentityPoolUsage": { + "http": { + "method": "GET", + "requestUri": "/identitypools", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolUsages": { + "type": "list", + "member": { + "shape": "Sg" + } + }, + "MaxResults": { + "type": "integer" + }, + "Count": { + "type": "integer" + }, + "NextToken": {} + } + } + }, + "ListRecords": { + "http": { + "method": "GET", + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "DatasetName" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "DatasetName": { + "location": "uri", + "locationName": "DatasetName" + }, + "LastSyncCount": { + "location": "querystring", + "locationName": "lastSyncCount", + "type": "long" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "SyncSessionToken": { + "location": "querystring", + "locationName": "syncSessionToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Records": { + "shape": "S1c" + }, + "NextToken": {}, + "Count": { + "type": "integer" + }, + "DatasetSyncCount": { + "type": "long" + }, + "LastModifiedBy": {}, + "MergedDatasetNames": { + "type": "list", + "member": {} + }, + "DatasetExists": { + "type": "boolean" + }, + "DatasetDeletedAfterRequestedSyncCount": { + "type": "boolean" + }, + "SyncSessionToken": {} + } + } + }, + "RegisterDevice": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/identity/{IdentityId}/device", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "Platform", + "Token" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "Platform": {}, + "Token": {} + } + }, + "output": { + "type": "structure", + "members": { + "DeviceId": {} + } + } + }, + "SetCognitoEvents": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/events", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "Events" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "Events": { + "shape": "Sq" + } + } + } + }, + "SetIdentityPoolConfiguration": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "PushSync": { + "shape": "Sv" + }, + "CognitoStreams": { + "shape": "Sz" + } + } + }, + "output": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "PushSync": { + "shape": "Sv" + }, + "CognitoStreams": { + "shape": "Sz" + } + } + } + }, + "SubscribeToDataset": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "DatasetName", + "DeviceId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "DatasetName": { + "location": "uri", + "locationName": "DatasetName" + }, + "DeviceId": { + "location": "uri", + "locationName": "DeviceId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UnsubscribeFromDataset": { + "http": { + "method": "DELETE", + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "DatasetName", + "DeviceId" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "DatasetName": { + "location": "uri", + "locationName": "DatasetName" + }, + "DeviceId": { + "location": "uri", + "locationName": "DeviceId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateRecords": { + "http": { + "requestUri": "/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "IdentityPoolId", + "IdentityId", + "DatasetName", + "SyncSessionToken" + ], + "members": { + "IdentityPoolId": { + "location": "uri", + "locationName": "IdentityPoolId" + }, + "IdentityId": { + "location": "uri", + "locationName": "IdentityId" + }, + "DatasetName": { + "location": "uri", + "locationName": "DatasetName" + }, + "DeviceId": {}, + "RecordPatches": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Op", + "Key", + "SyncCount" + ], + "members": { + "Op": {}, + "Key": {}, + "Value": {}, + "SyncCount": { + "type": "long" + }, + "DeviceLastModifiedDate": { + "type": "timestamp" + } + } + } + }, + "SyncSessionToken": {}, + "ClientContext": { + "location": "header", + "locationName": "x-amz-Client-Context" + } + } + }, + "output": { + "type": "structure", + "members": { + "Records": { + "shape": "S1c" + } + } + } + } + }, + "shapes": { + "S8": { + "type": "structure", + "members": { + "IdentityId": {}, + "DatasetName": {}, + "CreationDate": { + "type": "timestamp" + }, + "LastModifiedDate": { + "type": "timestamp" + }, + "LastModifiedBy": {}, + "DataStorage": { + "type": "long" + }, + "NumRecords": { + "type": "long" + } + } + }, + "Sg": { + "type": "structure", + "members": { + "IdentityPoolId": {}, + "SyncSessionsCount": { + "type": "long" + }, + "DataStorage": { + "type": "long" + }, + "LastModifiedDate": { + "type": "timestamp" + } + } + }, + "Sq": { + "type": "map", + "key": {}, + "value": {} + }, + "Sv": { + "type": "structure", + "members": { + "ApplicationArns": { + "type": "list", + "member": {} + }, + "RoleArn": {} + } + }, + "Sz": { + "type": "structure", + "members": { + "StreamName": {}, + "RoleArn": {}, + "StreamingStatus": {} + } + }, + "S1c": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {}, + "SyncCount": { + "type": "long" + }, + "LastModifiedDate": { + "type": "timestamp" + }, + "LastModifiedBy": {}, + "DeviceLastModifiedDate": { + "type": "timestamp" + } + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.min.json new file mode 100755 index 0000000..338bce5 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.min.json @@ -0,0 +1,810 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-11-12", + "endpointPrefix": "config", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Config Service", + "serviceFullName": "AWS Config", + "signatureVersion": "v4", + "targetPrefix": "StarlingDoveService" + }, + "operations": { + "DeleteConfigRule": { + "input": { + "type": "structure", + "required": [ + "ConfigRuleName" + ], + "members": { + "ConfigRuleName": {} + } + } + }, + "DeleteDeliveryChannel": { + "input": { + "type": "structure", + "required": [ + "DeliveryChannelName" + ], + "members": { + "DeliveryChannelName": {} + } + } + }, + "DeliverConfigSnapshot": { + "input": { + "type": "structure", + "required": [ + "deliveryChannelName" + ], + "members": { + "deliveryChannelName": {} + } + }, + "output": { + "type": "structure", + "members": { + "configSnapshotId": {} + } + } + }, + "DescribeComplianceByConfigRule": { + "input": { + "type": "structure", + "members": { + "ConfigRuleNames": { + "shape": "S9" + }, + "ComplianceTypes": { + "shape": "Sa" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ComplianceByConfigRules": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ConfigRuleName": {}, + "Compliance": { + "shape": "Sf" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeComplianceByResource": { + "input": { + "type": "structure", + "members": { + "ResourceType": {}, + "ResourceId": {}, + "ComplianceTypes": { + "shape": "Sa" + }, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ComplianceByResources": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceType": {}, + "ResourceId": {}, + "Compliance": { + "shape": "Sf" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeConfigRuleEvaluationStatus": { + "input": { + "type": "structure", + "members": { + "ConfigRuleNames": { + "shape": "S9" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConfigRulesEvaluationStatus": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ConfigRuleName": {}, + "ConfigRuleArn": {}, + "ConfigRuleId": {}, + "LastSuccessfulInvocationTime": { + "type": "timestamp" + }, + "LastFailedInvocationTime": { + "type": "timestamp" + }, + "LastSuccessfulEvaluationTime": { + "type": "timestamp" + }, + "LastFailedEvaluationTime": { + "type": "timestamp" + }, + "FirstActivatedTime": { + "type": "timestamp" + }, + "LastErrorCode": {}, + "LastErrorMessage": {}, + "FirstEvaluationStarted": { + "type": "boolean" + } + } + } + } + } + } + }, + "DescribeConfigRules": { + "input": { + "type": "structure", + "members": { + "ConfigRuleNames": { + "shape": "S9" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ConfigRules": { + "type": "list", + "member": { + "shape": "Sy" + } + }, + "NextToken": {} + } + } + }, + "DescribeConfigurationRecorderStatus": { + "input": { + "type": "structure", + "members": { + "ConfigurationRecorderNames": { + "shape": "S1c" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConfigurationRecordersStatus": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "lastStartTime": { + "type": "timestamp" + }, + "lastStopTime": { + "type": "timestamp" + }, + "recording": { + "type": "boolean" + }, + "lastStatus": {}, + "lastErrorCode": {}, + "lastErrorMessage": {}, + "lastStatusChangeTime": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeConfigurationRecorders": { + "input": { + "type": "structure", + "members": { + "ConfigurationRecorderNames": { + "shape": "S1c" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConfigurationRecorders": { + "type": "list", + "member": { + "shape": "S1l" + } + } + } + } + }, + "DescribeDeliveryChannelStatus": { + "input": { + "type": "structure", + "members": { + "DeliveryChannelNames": { + "shape": "S1s" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeliveryChannelsStatus": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "configSnapshotDeliveryInfo": { + "shape": "S1w" + }, + "configHistoryDeliveryInfo": { + "shape": "S1w" + }, + "configStreamDeliveryInfo": { + "type": "structure", + "members": { + "lastStatus": {}, + "lastErrorCode": {}, + "lastErrorMessage": {}, + "lastStatusChangeTime": { + "type": "timestamp" + } + } + } + } + } + } + } + } + }, + "DescribeDeliveryChannels": { + "input": { + "type": "structure", + "members": { + "DeliveryChannelNames": { + "shape": "S1s" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeliveryChannels": { + "type": "list", + "member": { + "shape": "S22" + } + } + } + } + }, + "GetComplianceDetailsByConfigRule": { + "input": { + "type": "structure", + "required": [ + "ConfigRuleName" + ], + "members": { + "ConfigRuleName": {}, + "ComplianceTypes": { + "shape": "Sa" + }, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "EvaluationResults": { + "shape": "S26" + }, + "NextToken": {} + } + } + }, + "GetComplianceDetailsByResource": { + "input": { + "type": "structure", + "required": [ + "ResourceType", + "ResourceId" + ], + "members": { + "ResourceType": {}, + "ResourceId": {}, + "ComplianceTypes": { + "shape": "Sa" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "EvaluationResults": { + "shape": "S26" + }, + "NextToken": {} + } + } + }, + "GetComplianceSummaryByConfigRule": { + "output": { + "type": "structure", + "members": { + "ComplianceSummary": { + "shape": "S2d" + } + } + } + }, + "GetComplianceSummaryByResourceType": { + "input": { + "type": "structure", + "members": { + "ResourceTypes": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ComplianceSummariesByResourceType": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceType": {}, + "ComplianceSummary": { + "shape": "S2d" + } + } + } + } + } + } + }, + "GetResourceConfigHistory": { + "input": { + "type": "structure", + "required": [ + "resourceType", + "resourceId" + ], + "members": { + "resourceType": {}, + "resourceId": {}, + "laterTime": { + "type": "timestamp" + }, + "earlierTime": { + "type": "timestamp" + }, + "chronologicalOrder": {}, + "limit": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "configurationItems": { + "type": "list", + "member": { + "type": "structure", + "members": { + "version": {}, + "accountId": {}, + "configurationItemCaptureTime": { + "type": "timestamp" + }, + "configurationItemStatus": {}, + "configurationStateId": {}, + "configurationItemMD5Hash": {}, + "arn": {}, + "resourceType": {}, + "resourceId": {}, + "resourceName": {}, + "awsRegion": {}, + "availabilityZone": {}, + "resourceCreationTime": { + "type": "timestamp" + }, + "tags": { + "type": "map", + "key": {}, + "value": {} + }, + "relatedEvents": { + "type": "list", + "member": {} + }, + "relationships": { + "type": "list", + "member": { + "type": "structure", + "members": { + "resourceType": {}, + "resourceId": {}, + "resourceName": {}, + "relationshipName": {} + } + } + }, + "configuration": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListDiscoveredResources": { + "input": { + "type": "structure", + "required": [ + "resourceType" + ], + "members": { + "resourceType": {}, + "resourceIds": { + "type": "list", + "member": {} + }, + "resourceName": {}, + "limit": { + "type": "integer" + }, + "includeDeletedResources": { + "type": "boolean" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "resourceIdentifiers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "resourceType": {}, + "resourceId": {}, + "resourceName": {}, + "resourceDeletionTime": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "PutConfigRule": { + "input": { + "type": "structure", + "required": [ + "ConfigRule" + ], + "members": { + "ConfigRule": { + "shape": "Sy" + } + } + } + }, + "PutConfigurationRecorder": { + "input": { + "type": "structure", + "required": [ + "ConfigurationRecorder" + ], + "members": { + "ConfigurationRecorder": { + "shape": "S1l" + } + } + } + }, + "PutDeliveryChannel": { + "input": { + "type": "structure", + "required": [ + "DeliveryChannel" + ], + "members": { + "DeliveryChannel": { + "shape": "S22" + } + } + } + }, + "PutEvaluations": { + "input": { + "type": "structure", + "required": [ + "ResultToken" + ], + "members": { + "Evaluations": { + "shape": "S3l" + }, + "ResultToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "FailedEvaluations": { + "shape": "S3l" + } + } + } + }, + "StartConfigurationRecorder": { + "input": { + "type": "structure", + "required": [ + "ConfigurationRecorderName" + ], + "members": { + "ConfigurationRecorderName": {} + } + } + }, + "StopConfigurationRecorder": { + "input": { + "type": "structure", + "required": [ + "ConfigurationRecorderName" + ], + "members": { + "ConfigurationRecorderName": {} + } + } + } + }, + "shapes": { + "S9": { + "type": "list", + "member": {} + }, + "Sa": { + "type": "list", + "member": {} + }, + "Sf": { + "type": "structure", + "members": { + "ComplianceType": {}, + "ComplianceContributorCount": { + "shape": "Sg" + } + } + }, + "Sg": { + "type": "structure", + "members": { + "CappedCount": { + "type": "integer" + }, + "CapExceeded": { + "type": "boolean" + } + } + }, + "Sy": { + "type": "structure", + "required": [ + "Source" + ], + "members": { + "ConfigRuleName": {}, + "ConfigRuleArn": {}, + "ConfigRuleId": {}, + "Description": {}, + "Scope": { + "type": "structure", + "members": { + "ComplianceResourceTypes": { + "type": "list", + "member": {} + }, + "TagKey": {}, + "TagValue": {}, + "ComplianceResourceId": {} + } + }, + "Source": { + "type": "structure", + "members": { + "Owner": {}, + "SourceIdentifier": {}, + "SourceDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventSource": {}, + "MessageType": {} + } + } + } + } + }, + "InputParameters": {}, + "MaximumExecutionFrequency": {}, + "ConfigRuleState": {} + } + }, + "S1c": { + "type": "list", + "member": {} + }, + "S1l": { + "type": "structure", + "members": { + "name": {}, + "roleARN": {}, + "recordingGroup": { + "type": "structure", + "members": { + "allSupported": { + "type": "boolean" + }, + "includeGlobalResourceTypes": { + "type": "boolean" + }, + "resourceTypes": { + "type": "list", + "member": {} + } + } + } + } + }, + "S1s": { + "type": "list", + "member": {} + }, + "S1w": { + "type": "structure", + "members": { + "lastStatus": {}, + "lastErrorCode": {}, + "lastErrorMessage": {}, + "lastAttemptTime": { + "type": "timestamp" + }, + "lastSuccessfulTime": { + "type": "timestamp" + }, + "nextDeliveryTime": { + "type": "timestamp" + } + } + }, + "S22": { + "type": "structure", + "members": { + "name": {}, + "s3BucketName": {}, + "s3KeyPrefix": {}, + "snsTopicARN": {}, + "configSnapshotDeliveryProperties": { + "type": "structure", + "members": { + "deliveryFrequency": {} + } + } + } + }, + "S26": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EvaluationResultIdentifier": { + "type": "structure", + "members": { + "EvaluationResultQualifier": { + "type": "structure", + "members": { + "ConfigRuleName": {}, + "ResourceType": {}, + "ResourceId": {} + } + }, + "OrderingTimestamp": { + "type": "timestamp" + } + } + }, + "ComplianceType": {}, + "ResultRecordedTime": { + "type": "timestamp" + }, + "ConfigRuleInvokedTime": { + "type": "timestamp" + }, + "Annotation": {}, + "ResultToken": {} + } + } + }, + "S2d": { + "type": "structure", + "members": { + "CompliantResourceCount": { + "shape": "Sg" + }, + "NonCompliantResourceCount": { + "shape": "Sg" + }, + "ComplianceSummaryTimestamp": { + "type": "timestamp" + } + } + }, + "S3l": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ComplianceResourceType", + "ComplianceResourceId", + "ComplianceType", + "OrderingTimestamp" + ], + "members": { + "ComplianceResourceType": {}, + "ComplianceResourceId": {}, + "ComplianceType": {}, + "Annotation": {}, + "OrderingTimestamp": { + "type": "timestamp" + } + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.paginators.json new file mode 100755 index 0000000..45c365e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/config-2014-11-12.paginators.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "GetResourceConfigHistory": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "configurationItems" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.min.json new file mode 100755 index 0000000..88f505f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.min.json @@ -0,0 +1,666 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-10-29", + "endpointPrefix": "datapipeline", + "jsonVersion": "1.1", + "serviceFullName": "AWS Data Pipeline", + "signatureVersion": "v4", + "targetPrefix": "DataPipeline", + "protocol": "json" + }, + "operations": { + "ActivatePipeline": { + "input": { + "type": "structure", + "required": [ + "pipelineId" + ], + "members": { + "pipelineId": {}, + "parameterValues": { + "shape": "S3" + }, + "startTimestamp": { + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AddTags": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "tags" + ], + "members": { + "pipelineId": {}, + "tags": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreatePipeline": { + "input": { + "type": "structure", + "required": [ + "name", + "uniqueId" + ], + "members": { + "name": {}, + "uniqueId": {}, + "description": {}, + "tags": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "required": [ + "pipelineId" + ], + "members": { + "pipelineId": {} + } + } + }, + "DeactivatePipeline": { + "input": { + "type": "structure", + "required": [ + "pipelineId" + ], + "members": { + "pipelineId": {}, + "cancelActive": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeletePipeline": { + "input": { + "type": "structure", + "required": [ + "pipelineId" + ], + "members": { + "pipelineId": {} + } + } + }, + "DescribeObjects": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "objectIds" + ], + "members": { + "pipelineId": {}, + "objectIds": { + "shape": "Sn" + }, + "evaluateExpressions": { + "type": "boolean" + }, + "marker": {} + } + }, + "output": { + "type": "structure", + "required": [ + "pipelineObjects" + ], + "members": { + "pipelineObjects": { + "shape": "Sq" + }, + "marker": {}, + "hasMoreResults": { + "type": "boolean" + } + } + } + }, + "DescribePipelines": { + "input": { + "type": "structure", + "required": [ + "pipelineIds" + ], + "members": { + "pipelineIds": { + "shape": "Sn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "pipelineDescriptionList" + ], + "members": { + "pipelineDescriptionList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "pipelineId", + "name", + "fields" + ], + "members": { + "pipelineId": {}, + "name": {}, + "fields": { + "shape": "Ss" + }, + "description": {}, + "tags": { + "shape": "Sa" + } + } + } + } + } + } + }, + "EvaluateExpression": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "objectId", + "expression" + ], + "members": { + "pipelineId": {}, + "objectId": {}, + "expression": {} + } + }, + "output": { + "type": "structure", + "required": [ + "evaluatedExpression" + ], + "members": { + "evaluatedExpression": {} + } + } + }, + "GetPipelineDefinition": { + "input": { + "type": "structure", + "required": [ + "pipelineId" + ], + "members": { + "pipelineId": {}, + "version": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineObjects": { + "shape": "Sq" + }, + "parameterObjects": { + "shape": "S13" + }, + "parameterValues": { + "shape": "S3" + } + } + } + }, + "ListPipelines": { + "input": { + "type": "structure", + "members": { + "marker": {} + } + }, + "output": { + "type": "structure", + "required": [ + "pipelineIdList" + ], + "members": { + "pipelineIdList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "name": {} + } + } + }, + "marker": {}, + "hasMoreResults": { + "type": "boolean" + } + } + } + }, + "PollForTask": { + "input": { + "type": "structure", + "required": [ + "workerGroup" + ], + "members": { + "workerGroup": {}, + "hostname": {}, + "instanceIdentity": { + "type": "structure", + "members": { + "document": {}, + "signature": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "taskObject": { + "type": "structure", + "members": { + "taskId": {}, + "pipelineId": {}, + "attemptId": {}, + "objects": { + "type": "map", + "key": {}, + "value": { + "shape": "Sr" + } + } + } + } + } + } + }, + "PutPipelineDefinition": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "pipelineObjects" + ], + "members": { + "pipelineId": {}, + "pipelineObjects": { + "shape": "Sq" + }, + "parameterObjects": { + "shape": "S13" + }, + "parameterValues": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "required": [ + "errored" + ], + "members": { + "validationErrors": { + "shape": "S1l" + }, + "validationWarnings": { + "shape": "S1p" + }, + "errored": { + "type": "boolean" + } + } + } + }, + "QueryObjects": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "sphere" + ], + "members": { + "pipelineId": {}, + "query": { + "type": "structure", + "members": { + "selectors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "fieldName": {}, + "operator": { + "type": "structure", + "members": { + "type": {}, + "values": { + "shape": "S1x" + } + } + } + } + } + } + } + }, + "sphere": {}, + "marker": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ids": { + "shape": "Sn" + }, + "marker": {}, + "hasMoreResults": { + "type": "boolean" + } + } + } + }, + "RemoveTags": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "tagKeys" + ], + "members": { + "pipelineId": {}, + "tagKeys": { + "shape": "S1x" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ReportTaskProgress": { + "input": { + "type": "structure", + "required": [ + "taskId" + ], + "members": { + "taskId": {}, + "fields": { + "shape": "Ss" + } + } + }, + "output": { + "type": "structure", + "required": [ + "canceled" + ], + "members": { + "canceled": { + "type": "boolean" + } + } + } + }, + "ReportTaskRunnerHeartbeat": { + "input": { + "type": "structure", + "required": [ + "taskrunnerId" + ], + "members": { + "taskrunnerId": {}, + "workerGroup": {}, + "hostname": {} + } + }, + "output": { + "type": "structure", + "required": [ + "terminate" + ], + "members": { + "terminate": { + "type": "boolean" + } + } + } + }, + "SetStatus": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "objectIds", + "status" + ], + "members": { + "pipelineId": {}, + "objectIds": { + "shape": "Sn" + }, + "status": {} + } + } + }, + "SetTaskStatus": { + "input": { + "type": "structure", + "required": [ + "taskId", + "taskStatus" + ], + "members": { + "taskId": {}, + "taskStatus": {}, + "errorId": {}, + "errorMessage": {}, + "errorStackTrace": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ValidatePipelineDefinition": { + "input": { + "type": "structure", + "required": [ + "pipelineId", + "pipelineObjects" + ], + "members": { + "pipelineId": {}, + "pipelineObjects": { + "shape": "Sq" + }, + "parameterObjects": { + "shape": "S13" + }, + "parameterValues": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "required": [ + "errored" + ], + "members": { + "validationErrors": { + "shape": "S1l" + }, + "validationWarnings": { + "shape": "S1p" + }, + "errored": { + "type": "boolean" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "id", + "stringValue" + ], + "members": { + "id": {}, + "stringValue": {} + } + } + }, + "Sa": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "Sn": { + "type": "list", + "member": {} + }, + "Sq": { + "type": "list", + "member": { + "shape": "Sr" + } + }, + "Sr": { + "type": "structure", + "required": [ + "id", + "name", + "fields" + ], + "members": { + "id": {}, + "name": {}, + "fields": { + "shape": "Ss" + } + } + }, + "Ss": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key" + ], + "members": { + "key": {}, + "stringValue": {}, + "refValue": {} + } + } + }, + "S13": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "id", + "attributes" + ], + "members": { + "id": {}, + "attributes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key", + "stringValue" + ], + "members": { + "key": {}, + "stringValue": {} + } + } + } + } + } + }, + "S1l": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "errors": { + "shape": "S1n" + } + } + } + }, + "S1n": { + "type": "list", + "member": {} + }, + "S1p": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "warnings": { + "shape": "S1n" + } + } + } + }, + "S1x": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.paginators.json new file mode 100755 index 0000000..db94193 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/datapipeline-2012-10-29.paginators.json @@ -0,0 +1,26 @@ +{ + "pagination": { + "ListPipelines": { + "input_token": "marker", + "output_token": "marker", + "more_results": "hasMoreResults", + "result_key": "pipelineIdList" + }, + "DescribeObjects": { + "input_token": "marker", + "output_token": "marker", + "more_results": "hasMoreResults", + "result_key": "pipelineObjects" + }, + "DescribePipelines": { + "result_key": "pipelineDescriptionList" + }, + "QueryObjects": { + "input_token": "marker", + "output_token": "marker", + "more_results": "hasMoreResults", + "limit_key": "limit", + "result_key": "ids" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json new file mode 100755 index 0000000..a6b8398 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json @@ -0,0 +1,1246 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-06-23", + "endpointPrefix": "devicefarm", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Device Farm", + "signatureVersion": "v4", + "targetPrefix": "DeviceFarm_20150623" + }, + "operations": { + "CreateDevicePool": { + "input": { + "type": "structure", + "required": [ + "projectArn", + "name", + "rules" + ], + "members": { + "projectArn": {}, + "name": {}, + "description": {}, + "rules": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "members": { + "devicePool": { + "shape": "Sb" + } + } + } + }, + "CreateProject": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + }, + "output": { + "type": "structure", + "members": { + "project": { + "shape": "Sf" + } + } + } + }, + "CreateUpload": { + "input": { + "type": "structure", + "required": [ + "projectArn", + "name", + "type" + ], + "members": { + "projectArn": {}, + "name": {}, + "type": {}, + "contentType": {} + } + }, + "output": { + "type": "structure", + "members": { + "upload": { + "shape": "Sl" + } + } + } + }, + "DeleteDevicePool": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteProject": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteRun": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteUpload": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetAccountSettings": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "accountSettings": { + "type": "structure", + "members": { + "awsAccountNumber": {}, + "unmeteredDevices": { + "shape": "S11" + }, + "unmeteredRemoteAccessDevices": { + "shape": "S11" + } + } + } + } + } + }, + "GetDevice": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "device": { + "shape": "S16" + } + } + } + }, + "GetDevicePool": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "devicePool": { + "shape": "Sb" + } + } + } + }, + "GetDevicePoolCompatibility": { + "input": { + "type": "structure", + "required": [ + "devicePoolArn" + ], + "members": { + "devicePoolArn": {}, + "appArn": {}, + "testType": {} + } + }, + "output": { + "type": "structure", + "members": { + "compatibleDevices": { + "shape": "S1h" + }, + "incompatibleDevices": { + "shape": "S1h" + } + } + } + }, + "GetJob": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "job": { + "shape": "S1o" + } + } + } + }, + "GetOfferingStatus": { + "input": { + "type": "structure", + "members": { + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "current": { + "shape": "S1w" + }, + "nextPeriod": { + "shape": "S1w" + }, + "nextToken": {} + } + } + }, + "GetProject": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "project": { + "shape": "Sf" + } + } + } + }, + "GetRun": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "run": { + "shape": "S2b" + } + } + } + }, + "GetSuite": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "suite": { + "shape": "S2f" + } + } + } + }, + "GetTest": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "test": { + "shape": "S2i" + } + } + } + }, + "GetUpload": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "upload": { + "shape": "Sl" + } + } + } + }, + "ListArtifacts": { + "input": { + "type": "structure", + "required": [ + "arn", + "type" + ], + "members": { + "arn": {}, + "type": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "artifacts": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "type": {}, + "extension": {}, + "url": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListDevicePools": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "type": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "devicePools": { + "type": "list", + "member": { + "shape": "Sb" + } + }, + "nextToken": {} + } + } + }, + "ListDevices": { + "input": { + "type": "structure", + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "devices": { + "type": "list", + "member": { + "shape": "S16" + } + }, + "nextToken": {} + } + } + }, + "ListJobs": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "jobs": { + "type": "list", + "member": { + "shape": "S1o" + } + }, + "nextToken": {} + } + } + }, + "ListOfferingTransactions": { + "input": { + "type": "structure", + "members": { + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "offeringTransactions": { + "type": "list", + "member": { + "shape": "S33" + } + }, + "nextToken": {} + } + } + }, + "ListOfferings": { + "input": { + "type": "structure", + "members": { + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "offerings": { + "type": "list", + "member": { + "shape": "S20" + } + }, + "nextToken": {} + } + } + }, + "ListProjects": { + "input": { + "type": "structure", + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "projects": { + "type": "list", + "member": { + "shape": "Sf" + } + }, + "nextToken": {} + } + } + }, + "ListRuns": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "runs": { + "type": "list", + "member": { + "shape": "S2b" + } + }, + "nextToken": {} + } + } + }, + "ListSamples": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "samples": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "type": {}, + "url": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListSuites": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "suites": { + "type": "list", + "member": { + "shape": "S2f" + } + }, + "nextToken": {} + } + } + }, + "ListTests": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "tests": { + "type": "list", + "member": { + "shape": "S2i" + } + }, + "nextToken": {} + } + } + }, + "ListUniqueProblems": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "uniqueProblems": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": { + "type": "structure", + "members": { + "message": {}, + "problems": { + "type": "list", + "member": { + "type": "structure", + "members": { + "run": { + "shape": "S3w" + }, + "job": { + "shape": "S3w" + }, + "suite": { + "shape": "S3w" + }, + "test": { + "shape": "S3w" + }, + "device": { + "shape": "S16" + }, + "result": {}, + "message": {} + } + } + } + } + } + } + }, + "nextToken": {} + } + } + }, + "ListUploads": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "uploads": { + "type": "list", + "member": { + "shape": "Sl" + } + }, + "nextToken": {} + } + } + }, + "PurchaseOffering": { + "input": { + "type": "structure", + "members": { + "offeringId": {}, + "quantity": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "offeringTransaction": { + "shape": "S33" + } + } + } + }, + "RenewOffering": { + "input": { + "type": "structure", + "members": { + "offeringId": {}, + "quantity": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "offeringTransaction": { + "shape": "S33" + } + } + } + }, + "ScheduleRun": { + "input": { + "type": "structure", + "required": [ + "projectArn", + "devicePoolArn", + "test" + ], + "members": { + "projectArn": {}, + "appArn": {}, + "devicePoolArn": {}, + "name": {}, + "test": { + "type": "structure", + "required": [ + "type" + ], + "members": { + "type": {}, + "testPackageArn": {}, + "filter": {}, + "parameters": { + "type": "map", + "key": {}, + "value": {} + } + } + }, + "configuration": { + "type": "structure", + "members": { + "extraDataPackageArn": {}, + "networkProfileArn": {}, + "locale": {}, + "location": { + "type": "structure", + "required": [ + "latitude", + "longitude" + ], + "members": { + "latitude": { + "type": "double" + }, + "longitude": { + "type": "double" + } + } + }, + "radios": { + "type": "structure", + "members": { + "wifi": { + "type": "boolean" + }, + "bluetooth": { + "type": "boolean" + }, + "nfc": { + "type": "boolean" + }, + "gps": { + "type": "boolean" + } + } + }, + "auxiliaryApps": { + "type": "list", + "member": {} + }, + "billingMethod": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "run": { + "shape": "S2b" + } + } + } + }, + "StopRun": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {} + } + }, + "output": { + "type": "structure", + "members": { + "run": { + "shape": "S2b" + } + } + } + }, + "UpdateDevicePool": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "name": {}, + "description": {}, + "rules": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "members": { + "devicePool": { + "shape": "Sb" + } + } + } + }, + "UpdateProject": { + "input": { + "type": "structure", + "required": [ + "arn" + ], + "members": { + "arn": {}, + "name": {} + } + }, + "output": { + "type": "structure", + "members": { + "project": { + "shape": "Sf" + } + } + } + } + }, + "shapes": { + "S5": { + "type": "list", + "member": { + "type": "structure", + "members": { + "attribute": {}, + "operator": {}, + "value": {} + } + } + }, + "Sb": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "description": {}, + "type": {}, + "rules": { + "shape": "S5" + } + } + }, + "Sf": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "created": { + "type": "timestamp" + } + } + }, + "Sl": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "created": { + "type": "timestamp" + }, + "type": {}, + "status": {}, + "url": {}, + "metadata": {}, + "contentType": {}, + "message": {} + } + }, + "S11": { + "type": "map", + "key": {}, + "value": { + "type": "integer" + } + }, + "S16": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "manufacturer": {}, + "model": {}, + "formFactor": {}, + "platform": {}, + "os": {}, + "cpu": { + "type": "structure", + "members": { + "frequency": {}, + "architecture": {}, + "clock": { + "type": "double" + } + } + }, + "resolution": { + "type": "structure", + "members": { + "width": { + "type": "integer" + }, + "height": { + "type": "integer" + } + } + }, + "heapSize": { + "type": "long" + }, + "memory": { + "type": "long" + }, + "image": {}, + "carrier": {}, + "radio": {} + } + }, + "S1h": { + "type": "list", + "member": { + "type": "structure", + "members": { + "device": { + "shape": "S16" + }, + "compatible": { + "type": "boolean" + }, + "incompatibilityMessages": { + "type": "list", + "member": { + "type": "structure", + "members": { + "message": {}, + "type": {} + } + } + } + } + } + }, + "S1o": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "type": {}, + "created": { + "type": "timestamp" + }, + "status": {}, + "result": {}, + "started": { + "type": "timestamp" + }, + "stopped": { + "type": "timestamp" + }, + "counters": { + "shape": "S1r" + }, + "message": {}, + "device": { + "shape": "S16" + }, + "deviceMinutes": { + "shape": "S1s" + } + } + }, + "S1r": { + "type": "structure", + "members": { + "total": { + "type": "integer" + }, + "passed": { + "type": "integer" + }, + "failed": { + "type": "integer" + }, + "warned": { + "type": "integer" + }, + "errored": { + "type": "integer" + }, + "stopped": { + "type": "integer" + }, + "skipped": { + "type": "integer" + } + } + }, + "S1s": { + "type": "structure", + "members": { + "total": { + "type": "double" + }, + "metered": { + "type": "double" + }, + "unmetered": { + "type": "double" + } + } + }, + "S1w": { + "type": "map", + "key": {}, + "value": { + "shape": "S1y" + } + }, + "S1y": { + "type": "structure", + "members": { + "type": {}, + "offering": { + "shape": "S20" + }, + "quantity": { + "type": "integer" + }, + "effectiveOn": { + "type": "timestamp" + } + } + }, + "S20": { + "type": "structure", + "members": { + "id": {}, + "description": {}, + "type": {}, + "platform": {}, + "recurringCharges": { + "type": "list", + "member": { + "type": "structure", + "members": { + "cost": { + "shape": "S24" + }, + "frequency": {} + } + } + } + } + }, + "S24": { + "type": "structure", + "members": { + "amount": { + "type": "double" + }, + "currencyCode": {} + } + }, + "S2b": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "type": {}, + "platform": {}, + "created": { + "type": "timestamp" + }, + "status": {}, + "result": {}, + "started": { + "type": "timestamp" + }, + "stopped": { + "type": "timestamp" + }, + "counters": { + "shape": "S1r" + }, + "message": {}, + "totalJobs": { + "type": "integer" + }, + "completedJobs": { + "type": "integer" + }, + "billingMethod": {}, + "deviceMinutes": { + "shape": "S1s" + } + } + }, + "S2f": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "type": {}, + "created": { + "type": "timestamp" + }, + "status": {}, + "result": {}, + "started": { + "type": "timestamp" + }, + "stopped": { + "type": "timestamp" + }, + "counters": { + "shape": "S1r" + }, + "message": {}, + "deviceMinutes": { + "shape": "S1s" + } + } + }, + "S2i": { + "type": "structure", + "members": { + "arn": {}, + "name": {}, + "type": {}, + "created": { + "type": "timestamp" + }, + "status": {}, + "result": {}, + "started": { + "type": "timestamp" + }, + "stopped": { + "type": "timestamp" + }, + "counters": { + "shape": "S1r" + }, + "message": {}, + "deviceMinutes": { + "shape": "S1s" + } + } + }, + "S33": { + "type": "structure", + "members": { + "offeringStatus": { + "shape": "S1y" + }, + "transactionId": {}, + "createdOn": { + "type": "timestamp" + }, + "cost": { + "shape": "S24" + } + } + }, + "S3w": { + "type": "structure", + "members": { + "arn": {}, + "name": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.paginators.json new file mode 100755 index 0000000..ce5f8d7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/devicefarm-2015-06-23.paginators.json @@ -0,0 +1,74 @@ +{ + "pagination": { + "GetOfferingStatus": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": ["current","nextPeriod"] + }, + "ListArtifacts": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "artifacts" + }, + "ListDevicePools": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "devicePools" + }, + "ListDevices": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "devices" + }, + "ListJobs": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "jobs" + }, + "ListOfferingTransactions": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "offeringTransactions" + }, + "ListOfferings": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "offerings" + }, + "ListProjects": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "projects" + }, + "ListRuns": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "runs" + }, + "ListSamples": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "samples" + }, + "ListSuites": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "suites" + }, + "ListTests": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "tests" + }, + "ListUniqueProblems": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "uniqueProblems" + }, + "ListUploads": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "uploads" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.min.json new file mode 100755 index 0000000..b24cd92 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.min.json @@ -0,0 +1,506 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-10-25", + "endpointPrefix": "directconnect", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Direct Connect", + "signatureVersion": "v4", + "targetPrefix": "OvertureService" + }, + "operations": { + "AllocateConnectionOnInterconnect": { + "input": { + "type": "structure", + "required": [ + "bandwidth", + "connectionName", + "ownerAccount", + "interconnectId", + "vlan" + ], + "members": { + "bandwidth": {}, + "connectionName": {}, + "ownerAccount": {}, + "interconnectId": {}, + "vlan": { + "type": "integer" + } + } + }, + "output": { + "shape": "S7" + } + }, + "AllocatePrivateVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "connectionId", + "ownerAccount", + "newPrivateVirtualInterfaceAllocation" + ], + "members": { + "connectionId": {}, + "ownerAccount": {}, + "newPrivateVirtualInterfaceAllocation": { + "type": "structure", + "required": [ + "virtualInterfaceName", + "vlan", + "asn" + ], + "members": { + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {} + } + } + } + }, + "output": { + "shape": "Sk" + } + }, + "AllocatePublicVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "connectionId", + "ownerAccount", + "newPublicVirtualInterfaceAllocation" + ], + "members": { + "connectionId": {}, + "ownerAccount": {}, + "newPublicVirtualInterfaceAllocation": { + "type": "structure", + "required": [ + "virtualInterfaceName", + "vlan", + "asn", + "amazonAddress", + "customerAddress", + "routeFilterPrefixes" + ], + "members": { + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "routeFilterPrefixes": { + "shape": "Sq" + } + } + } + } + }, + "output": { + "shape": "Sk" + } + }, + "ConfirmConnection": { + "input": { + "type": "structure", + "required": [ + "connectionId" + ], + "members": { + "connectionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "connectionState": {} + } + } + }, + "ConfirmPrivateVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "virtualInterfaceId", + "virtualGatewayId" + ], + "members": { + "virtualInterfaceId": {}, + "virtualGatewayId": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaceState": {} + } + } + }, + "ConfirmPublicVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "virtualInterfaceId" + ], + "members": { + "virtualInterfaceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaceState": {} + } + } + }, + "CreateConnection": { + "input": { + "type": "structure", + "required": [ + "location", + "bandwidth", + "connectionName" + ], + "members": { + "location": {}, + "bandwidth": {}, + "connectionName": {} + } + }, + "output": { + "shape": "S7" + } + }, + "CreateInterconnect": { + "input": { + "type": "structure", + "required": [ + "interconnectName", + "bandwidth", + "location" + ], + "members": { + "interconnectName": {}, + "bandwidth": {}, + "location": {} + } + }, + "output": { + "shape": "S14" + } + }, + "CreatePrivateVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "connectionId", + "newPrivateVirtualInterface" + ], + "members": { + "connectionId": {}, + "newPrivateVirtualInterface": { + "type": "structure", + "required": [ + "virtualInterfaceName", + "vlan", + "asn", + "virtualGatewayId" + ], + "members": { + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualGatewayId": {} + } + } + } + }, + "output": { + "shape": "Sk" + } + }, + "CreatePublicVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "connectionId", + "newPublicVirtualInterface" + ], + "members": { + "connectionId": {}, + "newPublicVirtualInterface": { + "type": "structure", + "required": [ + "virtualInterfaceName", + "vlan", + "asn", + "amazonAddress", + "customerAddress", + "routeFilterPrefixes" + ], + "members": { + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "routeFilterPrefixes": { + "shape": "Sq" + } + } + } + } + }, + "output": { + "shape": "Sk" + } + }, + "DeleteConnection": { + "input": { + "type": "structure", + "required": [ + "connectionId" + ], + "members": { + "connectionId": {} + } + }, + "output": { + "shape": "S7" + } + }, + "DeleteInterconnect": { + "input": { + "type": "structure", + "required": [ + "interconnectId" + ], + "members": { + "interconnectId": {} + } + }, + "output": { + "type": "structure", + "members": { + "interconnectState": {} + } + } + }, + "DeleteVirtualInterface": { + "input": { + "type": "structure", + "required": [ + "virtualInterfaceId" + ], + "members": { + "virtualInterfaceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaceState": {} + } + } + }, + "DescribeConnections": { + "input": { + "type": "structure", + "members": { + "connectionId": {} + } + }, + "output": { + "shape": "S1g" + } + }, + "DescribeConnectionsOnInterconnect": { + "input": { + "type": "structure", + "required": [ + "interconnectId" + ], + "members": { + "interconnectId": {} + } + }, + "output": { + "shape": "S1g" + } + }, + "DescribeInterconnects": { + "input": { + "type": "structure", + "members": { + "interconnectId": {} + } + }, + "output": { + "type": "structure", + "members": { + "interconnects": { + "type": "list", + "member": { + "shape": "S14" + } + } + } + } + }, + "DescribeLocations": { + "output": { + "type": "structure", + "members": { + "locations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "locationCode": {}, + "locationName": {} + } + } + } + } + } + }, + "DescribeVirtualGateways": { + "output": { + "type": "structure", + "members": { + "virtualGateways": { + "type": "list", + "member": { + "type": "structure", + "members": { + "virtualGatewayId": {}, + "virtualGatewayState": {} + } + } + } + } + } + }, + "DescribeVirtualInterfaces": { + "input": { + "type": "structure", + "members": { + "connectionId": {}, + "virtualInterfaceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaces": { + "type": "list", + "member": { + "shape": "Sk" + } + } + } + } + } + }, + "shapes": { + "S7": { + "type": "structure", + "members": { + "ownerAccount": {}, + "connectionId": {}, + "connectionName": {}, + "connectionState": {}, + "region": {}, + "location": {}, + "bandwidth": {}, + "vlan": { + "type": "integer" + }, + "partnerName": {} + } + }, + "Sk": { + "type": "structure", + "members": { + "ownerAccount": {}, + "virtualInterfaceId": {}, + "location": {}, + "connectionId": {}, + "virtualInterfaceType": {}, + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualInterfaceState": {}, + "customerRouterConfig": {}, + "virtualGatewayId": {}, + "routeFilterPrefixes": { + "shape": "Sq" + } + } + }, + "Sq": { + "type": "list", + "member": { + "type": "structure", + "members": { + "cidr": {} + } + } + }, + "S14": { + "type": "structure", + "members": { + "interconnectId": {}, + "interconnectName": {}, + "interconnectState": {}, + "region": {}, + "location": {}, + "bandwidth": {} + } + }, + "S1g": { + "type": "structure", + "members": { + "connections": { + "type": "list", + "member": { + "shape": "S7" + } + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.paginators.json new file mode 100755 index 0000000..cc93bed --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/directconnect-2012-10-25.paginators.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "DescribeConnections": { + "result_key": "connections" + }, + "DescribeConnectionsOnInterconnect": { + "result_key": "connections" + }, + "DescribeInterconnects": { + "result_key": "interconnects" + }, + "DescribeLocations": { + "result_key": "locations" + }, + "DescribeVirtualGateways": { + "result_key": "virtualGateways" + }, + "DescribeVirtualInterfaces": { + "result_key": "virtualInterfaces" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/discovery-2015-11-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/discovery-2015-11-01.min.json new file mode 100755 index 0000000..6b05842 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/discovery-2015-11-01.min.json @@ -0,0 +1,356 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-11-01", + "endpointPrefix": "discovery", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Application Discovery Service", + "signatureVersion": "v4", + "targetPrefix": "AWSPoseidonService_V2015_11_01" + }, + "operations": { + "CreateTags": { + "input": { + "type": "structure", + "required": [ + "configurationIds", + "tags" + ], + "members": { + "configurationIds": { + "shape": "S2" + }, + "tags": { + "shape": "S4" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "configurationIds" + ], + "members": { + "configurationIds": { + "shape": "S2" + }, + "tags": { + "shape": "S4" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeAgents": { + "input": { + "type": "structure", + "members": { + "agentIds": { + "shape": "Sc" + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "agentsInfo": { + "type": "list", + "member": { + "type": "structure", + "members": { + "agentId": {}, + "hostName": {}, + "agentNetworkInfoList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ipAddress": {}, + "macAddress": {} + } + } + }, + "connectorId": {}, + "version": {}, + "health": {} + } + } + }, + "nextToken": {} + } + } + }, + "DescribeConfigurations": { + "input": { + "type": "structure", + "required": [ + "configurationIds" + ], + "members": { + "configurationIds": { + "shape": "S2" + } + } + }, + "output": { + "type": "structure", + "members": { + "configurations": { + "type": "list", + "member": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } + }, + "DescribeExportConfigurations": { + "input": { + "type": "structure", + "members": { + "exportIds": { + "type": "list", + "member": {} + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "exportsInfo": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "exportId", + "exportStatus", + "statusMessage", + "exportRequestTime" + ], + "members": { + "exportId": {}, + "exportStatus": {}, + "statusMessage": {}, + "configurationsDownloadUrl": {}, + "exportRequestTime": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "members": { + "filters": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "values" + ], + "members": { + "name": {}, + "values": { + "shape": "S15" + } + } + } + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "configurationType": {}, + "configurationId": {}, + "key": {}, + "value": {}, + "timeOfCreation": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "ExportConfigurations": { + "output": { + "type": "structure", + "members": { + "exportId": {} + } + } + }, + "ListConfigurations": { + "input": { + "type": "structure", + "required": [ + "configurationType" + ], + "members": { + "configurationType": {}, + "filters": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "values", + "condition" + ], + "members": { + "name": {}, + "values": { + "shape": "S15" + }, + "condition": {} + } + } + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "configurations": { + "type": "list", + "member": { + "type": "map", + "key": {}, + "value": {} + } + }, + "nextToken": {} + } + } + }, + "StartDataCollectionByAgentIds": { + "input": { + "type": "structure", + "required": [ + "agentIds" + ], + "members": { + "agentIds": { + "shape": "Sc" + } + } + }, + "output": { + "type": "structure", + "members": { + "agentsConfigurationStatus": { + "shape": "S1m" + } + } + } + }, + "StopDataCollectionByAgentIds": { + "input": { + "type": "structure", + "required": [ + "agentIds" + ], + "members": { + "agentIds": { + "shape": "Sc" + } + } + }, + "output": { + "type": "structure", + "members": { + "agentsConfigurationStatus": { + "shape": "S1m" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "S4": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "Sc": { + "type": "list", + "member": {} + }, + "S15": { + "type": "list", + "member": { + "locationName": "item" + } + }, + "S1m": { + "type": "list", + "member": { + "type": "structure", + "members": { + "agentId": {}, + "operationSucceeded": { + "type": "boolean" + }, + "description": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dms-2016-01-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dms-2016-01-01.min.json new file mode 100755 index 0000000..80b42c1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dms-2016-01-01.min.json @@ -0,0 +1,989 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-01-01", + "endpointPrefix": "dms", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Database Migration Service", + "signatureVersion": "v4", + "targetPrefix": "AmazonDMSv20160101" + }, + "operations": { + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "Tags" + ], + "members": { + "ResourceArn": {}, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateEndpoint": { + "input": { + "type": "structure", + "required": [ + "EndpointIdentifier", + "EndpointType", + "EngineName", + "Username", + "Password", + "ServerName", + "Port" + ], + "members": { + "EndpointIdentifier": {}, + "EndpointType": {}, + "EngineName": {}, + "Username": {}, + "Password": { + "shape": "S8" + }, + "ServerName": {}, + "Port": { + "type": "integer" + }, + "DatabaseName": {}, + "ExtraConnectionAttributes": {}, + "KmsKeyId": {}, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Endpoint": { + "shape": "Sb" + } + } + } + }, + "CreateReplicationInstance": { + "input": { + "type": "structure", + "required": [ + "ReplicationInstanceIdentifier", + "ReplicationInstanceClass" + ], + "members": { + "ReplicationInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "ReplicationInstanceClass": {}, + "AvailabilityZone": {}, + "ReplicationSubnetGroupIdentifier": {}, + "PreferredMaintenanceWindow": {}, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Tags": { + "shape": "S3" + }, + "KmsKeyId": {}, + "PubliclyAccessible": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationInstance": { + "shape": "Sf" + } + } + } + }, + "CreateReplicationSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "ReplicationSubnetGroupIdentifier", + "ReplicationSubnetGroupDescription", + "SubnetIds" + ], + "members": { + "ReplicationSubnetGroupIdentifier": {}, + "ReplicationSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "Sp" + }, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationSubnetGroup": { + "shape": "Si" + } + } + } + }, + "CreateReplicationTask": { + "input": { + "type": "structure", + "required": [ + "ReplicationTaskIdentifier", + "SourceEndpointArn", + "TargetEndpointArn", + "ReplicationInstanceArn", + "MigrationType", + "TableMappings" + ], + "members": { + "ReplicationTaskIdentifier": {}, + "SourceEndpointArn": {}, + "TargetEndpointArn": {}, + "ReplicationInstanceArn": {}, + "MigrationType": {}, + "TableMappings": {}, + "ReplicationTaskSettings": {}, + "CdcStartTime": { + "type": "timestamp" + }, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationTask": { + "shape": "Su" + } + } + } + }, + "DeleteEndpoint": { + "input": { + "type": "structure", + "required": [ + "EndpointArn" + ], + "members": { + "EndpointArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Endpoint": { + "shape": "Sb" + } + } + } + }, + "DeleteReplicationInstance": { + "input": { + "type": "structure", + "required": [ + "ReplicationInstanceArn" + ], + "members": { + "ReplicationInstanceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationInstance": { + "shape": "Sf" + } + } + } + }, + "DeleteReplicationSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "ReplicationSubnetGroupIdentifier" + ], + "members": { + "ReplicationSubnetGroupIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteReplicationTask": { + "input": { + "type": "structure", + "required": [ + "ReplicationTaskArn" + ], + "members": { + "ReplicationTaskArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationTask": { + "shape": "Su" + } + } + } + }, + "DescribeAccountAttributes": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "AccountQuotas": { + "type": "list", + "member": { + "locationName": "AccountQuota", + "type": "structure", + "members": { + "AccountQuotaName": {}, + "Used": { + "type": "long" + }, + "Max": { + "type": "long" + } + } + } + } + } + } + }, + "DescribeConnections": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S1a" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Connections": { + "type": "list", + "member": { + "shape": "S1f", + "locationName": "Connection" + } + } + } + } + }, + "DescribeEndpointTypes": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S1a" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "SupportedEndpointTypes": { + "type": "list", + "member": { + "locationName": "SupportedEndpointType", + "type": "structure", + "members": { + "EngineName": {}, + "SupportsCDC": { + "type": "boolean" + }, + "EndpointType": {} + } + } + } + } + } + }, + "DescribeEndpoints": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S1a" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Endpoints": { + "type": "list", + "member": { + "shape": "Sb", + "locationName": "Endpoint" + } + } + } + } + }, + "DescribeOrderableReplicationInstances": { + "input": { + "type": "structure", + "members": { + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "OrderableReplicationInstances": { + "type": "list", + "member": { + "locationName": "OrderableReplicationInstance", + "type": "structure", + "members": { + "EngineVersion": {}, + "ReplicationInstanceClass": {}, + "StorageType": {}, + "MinAllocatedStorage": { + "type": "integer" + }, + "MaxAllocatedStorage": { + "type": "integer" + }, + "DefaultAllocatedStorage": { + "type": "integer" + }, + "IncludedAllocatedStorage": { + "type": "integer" + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeRefreshSchemasStatus": { + "input": { + "type": "structure", + "required": [ + "EndpointArn" + ], + "members": { + "EndpointArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "RefreshSchemasStatus": { + "shape": "S1t" + } + } + } + }, + "DescribeReplicationInstances": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S1a" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReplicationInstances": { + "type": "list", + "member": { + "shape": "Sf", + "locationName": "ReplicationInstance" + } + } + } + } + }, + "DescribeReplicationSubnetGroups": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S1a" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReplicationSubnetGroups": { + "type": "list", + "member": { + "shape": "Si", + "locationName": "ReplicationSubnetGroup" + } + } + } + } + }, + "DescribeReplicationTasks": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S1a" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReplicationTasks": { + "type": "list", + "member": { + "shape": "Su", + "locationName": "ReplicationTask" + } + } + } + } + }, + "DescribeSchemas": { + "input": { + "type": "structure", + "required": [ + "EndpointArn" + ], + "members": { + "EndpointArn": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Schemas": { + "type": "list", + "member": {} + } + } + } + }, + "DescribeTableStatistics": { + "input": { + "type": "structure", + "required": [ + "ReplicationTaskArn" + ], + "members": { + "ReplicationTaskArn": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationTaskArn": {}, + "TableStatistics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SchemaName": {}, + "TableName": {}, + "Inserts": { + "type": "long" + }, + "Deletes": { + "type": "long" + }, + "Updates": { + "type": "long" + }, + "Ddls": { + "type": "long" + }, + "FullLoadRows": { + "type": "long" + }, + "LastUpdateTime": { + "type": "timestamp" + }, + "TableState": {} + } + } + }, + "Marker": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "TagList": { + "shape": "S3" + } + } + } + }, + "ModifyEndpoint": { + "input": { + "type": "structure", + "required": [ + "EndpointArn" + ], + "members": { + "EndpointArn": {}, + "EndpointIdentifier": {}, + "EndpointType": {}, + "EngineName": {}, + "Username": {}, + "Password": { + "shape": "S8" + }, + "ServerName": {}, + "Port": { + "type": "integer" + }, + "DatabaseName": {}, + "ExtraConnectionAttributes": {} + } + }, + "output": { + "type": "structure", + "members": { + "Endpoint": { + "shape": "Sb" + } + } + } + }, + "ModifyReplicationInstance": { + "input": { + "type": "structure", + "required": [ + "ReplicationInstanceArn" + ], + "members": { + "ReplicationInstanceArn": {}, + "AllocatedStorage": { + "type": "integer" + }, + "ApplyImmediately": { + "type": "boolean" + }, + "ReplicationInstanceClass": {}, + "PreferredMaintenanceWindow": {}, + "EngineVersion": {}, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReplicationInstanceIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationInstance": { + "shape": "Sf" + } + } + } + }, + "ModifyReplicationSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "ReplicationSubnetGroupIdentifier", + "SubnetIds" + ], + "members": { + "ReplicationSubnetGroupIdentifier": {}, + "ReplicationSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "Sp" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationSubnetGroup": { + "shape": "Si" + } + } + } + }, + "RefreshSchemas": { + "input": { + "type": "structure", + "required": [ + "EndpointArn", + "ReplicationInstanceArn" + ], + "members": { + "EndpointArn": {}, + "ReplicationInstanceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "RefreshSchemasStatus": { + "shape": "S1t" + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagKeys" + ], + "members": { + "ResourceArn": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "StartReplicationTask": { + "input": { + "type": "structure", + "required": [ + "ReplicationTaskArn", + "StartReplicationTaskType" + ], + "members": { + "ReplicationTaskArn": {}, + "StartReplicationTaskType": {}, + "CdcStartTime": { + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationTask": { + "shape": "Su" + } + } + } + }, + "StopReplicationTask": { + "input": { + "type": "structure", + "required": [ + "ReplicationTaskArn" + ], + "members": { + "ReplicationTaskArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationTask": { + "shape": "Su" + } + } + } + }, + "TestConnection": { + "input": { + "type": "structure", + "required": [ + "ReplicationInstanceArn", + "EndpointArn" + ], + "members": { + "ReplicationInstanceArn": {}, + "EndpointArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Connection": { + "shape": "S1f" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S8": { + "type": "string", + "sensitive": true + }, + "Sb": { + "type": "structure", + "members": { + "EndpointIdentifier": {}, + "EndpointType": {}, + "EngineName": {}, + "Username": {}, + "ServerName": {}, + "Port": { + "type": "integer" + }, + "DatabaseName": {}, + "ExtraConnectionAttributes": {}, + "Status": {}, + "KmsKeyId": {}, + "EndpointArn": {} + } + }, + "Sf": { + "type": "structure", + "members": { + "ReplicationInstanceIdentifier": {}, + "ReplicationInstanceClass": {}, + "ReplicationInstanceStatus": {}, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "AvailabilityZone": {}, + "ReplicationSubnetGroup": { + "shape": "Si" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "ReplicationInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "EngineVersion": {} + } + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "KmsKeyId": {}, + "ReplicationInstanceArn": {}, + "ReplicationInstancePublicIpAddress": {}, + "ReplicationInstancePrivateIpAddress": {}, + "PubliclyAccessible": { + "type": "boolean" + } + } + }, + "Si": { + "type": "structure", + "members": { + "ReplicationSubnetGroupIdentifier": {}, + "ReplicationSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + }, + "SubnetStatus": {} + } + } + } + } + }, + "Sp": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "Su": { + "type": "structure", + "members": { + "ReplicationTaskIdentifier": {}, + "SourceEndpointArn": {}, + "TargetEndpointArn": {}, + "ReplicationInstanceArn": {}, + "MigrationType": {}, + "TableMappings": {}, + "ReplicationTaskSettings": {}, + "Status": {}, + "LastFailureMessage": {}, + "ReplicationTaskCreationDate": { + "type": "timestamp" + }, + "ReplicationTaskStartDate": { + "type": "timestamp" + }, + "ReplicationTaskArn": {}, + "ReplicationTaskStats": { + "type": "structure", + "members": { + "FullLoadProgressPercent": { + "type": "integer" + }, + "ElapsedTimeMillis": { + "type": "long" + }, + "TablesLoaded": { + "type": "integer" + }, + "TablesLoading": { + "type": "integer" + }, + "TablesQueued": { + "type": "integer" + }, + "TablesErrored": { + "type": "integer" + } + } + } + } + }, + "S1a": { + "type": "list", + "member": { + "locationName": "Filter", + "type": "structure", + "required": [ + "Name", + "Values" + ], + "members": { + "Name": {}, + "Values": { + "type": "list", + "member": { + "locationName": "Value" + } + } + } + } + }, + "S1f": { + "type": "structure", + "members": { + "ReplicationInstanceArn": {}, + "EndpointArn": {}, + "Status": {}, + "LastFailureMessage": {}, + "EndpointIdentifier": {}, + "ReplicationInstanceIdentifier": {} + } + }, + "S1t": { + "type": "structure", + "members": { + "EndpointArn": {}, + "ReplicationInstanceArn": {}, + "Status": {}, + "LastRefreshDate": { + "type": "timestamp" + }, + "LastFailureMessage": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ds-2015-04-16.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ds-2015-04-16.min.json new file mode 100755 index 0000000..8b7e3f4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ds-2015-04-16.min.json @@ -0,0 +1,870 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-04-16", + "endpointPrefix": "ds", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Directory Service", + "serviceFullName": "AWS Directory Service", + "signatureVersion": "v4", + "targetPrefix": "DirectoryService_20150416" + }, + "operations": { + "ConnectDirectory": { + "input": { + "type": "structure", + "required": [ + "Name", + "Password", + "Size", + "ConnectSettings" + ], + "members": { + "Name": {}, + "ShortName": {}, + "Password": { + "shape": "S4" + }, + "Description": {}, + "Size": {}, + "ConnectSettings": { + "type": "structure", + "required": [ + "VpcId", + "SubnetIds", + "CustomerDnsIps", + "CustomerUserName" + ], + "members": { + "VpcId": {}, + "SubnetIds": { + "shape": "S9" + }, + "CustomerDnsIps": { + "shape": "Sb" + }, + "CustomerUserName": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryId": {} + } + } + }, + "CreateAlias": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "Alias" + ], + "members": { + "DirectoryId": {}, + "Alias": {} + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryId": {}, + "Alias": {} + } + } + }, + "CreateComputer": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "ComputerName", + "Password" + ], + "members": { + "DirectoryId": {}, + "ComputerName": {}, + "Password": { + "type": "string", + "sensitive": true + }, + "OrganizationalUnitDistinguishedName": {}, + "ComputerAttributes": { + "shape": "Sn" + } + } + }, + "output": { + "type": "structure", + "members": { + "Computer": { + "type": "structure", + "members": { + "ComputerId": {}, + "ComputerName": {}, + "ComputerAttributes": { + "shape": "Sn" + } + } + } + } + } + }, + "CreateConditionalForwarder": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "RemoteDomainName", + "DnsIpAddrs" + ], + "members": { + "DirectoryId": {}, + "RemoteDomainName": {}, + "DnsIpAddrs": { + "shape": "Sb" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateDirectory": { + "input": { + "type": "structure", + "required": [ + "Name", + "Password", + "Size" + ], + "members": { + "Name": {}, + "ShortName": {}, + "Password": { + "shape": "Sy" + }, + "Description": {}, + "Size": {}, + "VpcSettings": { + "shape": "Sz" + } + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryId": {} + } + } + }, + "CreateMicrosoftAD": { + "input": { + "type": "structure", + "required": [ + "Name", + "Password", + "VpcSettings" + ], + "members": { + "Name": {}, + "ShortName": {}, + "Password": { + "shape": "Sy" + }, + "Description": {}, + "VpcSettings": { + "shape": "Sz" + } + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryId": {} + } + } + }, + "CreateSnapshot": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {}, + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotId": {} + } + } + }, + "CreateTrust": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "RemoteDomainName", + "TrustPassword", + "TrustDirection" + ], + "members": { + "DirectoryId": {}, + "RemoteDomainName": {}, + "TrustPassword": { + "type": "string", + "sensitive": true + }, + "TrustDirection": {}, + "TrustType": {}, + "ConditionalForwarderIpAddrs": { + "shape": "Sb" + } + } + }, + "output": { + "type": "structure", + "members": { + "TrustId": {} + } + } + }, + "DeleteConditionalForwarder": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "RemoteDomainName" + ], + "members": { + "DirectoryId": {}, + "RemoteDomainName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDirectory": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {} + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryId": {} + } + } + }, + "DeleteSnapshot": { + "input": { + "type": "structure", + "required": [ + "SnapshotId" + ], + "members": { + "SnapshotId": {} + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotId": {} + } + } + }, + "DeleteTrust": { + "input": { + "type": "structure", + "required": [ + "TrustId" + ], + "members": { + "TrustId": {}, + "DeleteAssociatedConditionalForwarder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "TrustId": {} + } + } + }, + "DeregisterEventTopic": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "TopicName" + ], + "members": { + "DirectoryId": {}, + "TopicName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeConditionalForwarders": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {}, + "RemoteDomainNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ConditionalForwarders": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RemoteDomainName": {}, + "DnsIpAddrs": { + "shape": "Sb" + }, + "ReplicationScope": {} + } + } + } + } + } + }, + "DescribeDirectories": { + "input": { + "type": "structure", + "members": { + "DirectoryIds": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DirectoryId": {}, + "Name": {}, + "ShortName": {}, + "Size": {}, + "Alias": {}, + "AccessUrl": {}, + "Description": {}, + "DnsIpAddrs": { + "shape": "Sb" + }, + "Stage": {}, + "LaunchTime": { + "type": "timestamp" + }, + "StageLastUpdatedDateTime": { + "type": "timestamp" + }, + "Type": {}, + "VpcSettings": { + "type": "structure", + "members": { + "VpcId": {}, + "SubnetIds": { + "shape": "S9" + }, + "SecurityGroupId": {}, + "AvailabilityZones": { + "shape": "S29" + } + } + }, + "ConnectSettings": { + "type": "structure", + "members": { + "VpcId": {}, + "SubnetIds": { + "shape": "S9" + }, + "CustomerUserName": {}, + "SecurityGroupId": {}, + "AvailabilityZones": { + "shape": "S29" + }, + "ConnectIps": { + "type": "list", + "member": {} + } + } + }, + "RadiusSettings": { + "shape": "S2d" + }, + "RadiusStatus": {}, + "StageReason": {}, + "SsoEnabled": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeEventTopics": { + "input": { + "type": "structure", + "members": { + "DirectoryId": {}, + "TopicNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "EventTopics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DirectoryId": {}, + "TopicName": {}, + "TopicArn": {}, + "CreatedDateTime": { + "type": "timestamp" + }, + "Status": {} + } + } + } + } + } + }, + "DescribeSnapshots": { + "input": { + "type": "structure", + "members": { + "DirectoryId": {}, + "SnapshotIds": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Snapshots": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DirectoryId": {}, + "SnapshotId": {}, + "Type": {}, + "Name": {}, + "Status": {}, + "StartTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeTrusts": { + "input": { + "type": "structure", + "members": { + "DirectoryId": {}, + "TrustIds": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Trusts": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DirectoryId": {}, + "TrustId": {}, + "RemoteDomainName": {}, + "TrustType": {}, + "TrustDirection": {}, + "TrustState": {}, + "CreatedDateTime": { + "type": "timestamp" + }, + "LastUpdatedDateTime": { + "type": "timestamp" + }, + "StateLastUpdatedDateTime": { + "type": "timestamp" + }, + "TrustStateReason": {} + } + } + }, + "NextToken": {} + } + } + }, + "DisableRadius": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisableSso": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {}, + "UserName": {}, + "Password": { + "shape": "S4" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "EnableRadius": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "RadiusSettings" + ], + "members": { + "DirectoryId": {}, + "RadiusSettings": { + "shape": "S2d" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "EnableSso": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {}, + "UserName": {}, + "Password": { + "shape": "S4" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetDirectoryLimits": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "DirectoryLimits": { + "type": "structure", + "members": { + "CloudOnlyDirectoriesLimit": { + "type": "integer" + }, + "CloudOnlyDirectoriesCurrentCount": { + "type": "integer" + }, + "CloudOnlyDirectoriesLimitReached": { + "type": "boolean" + }, + "CloudOnlyMicrosoftADLimit": { + "type": "integer" + }, + "CloudOnlyMicrosoftADCurrentCount": { + "type": "integer" + }, + "CloudOnlyMicrosoftADLimitReached": { + "type": "boolean" + }, + "ConnectedDirectoriesLimit": { + "type": "integer" + }, + "ConnectedDirectoriesCurrentCount": { + "type": "integer" + }, + "ConnectedDirectoriesLimitReached": { + "type": "boolean" + } + } + } + } + } + }, + "GetSnapshotLimits": { + "input": { + "type": "structure", + "required": [ + "DirectoryId" + ], + "members": { + "DirectoryId": {} + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotLimits": { + "type": "structure", + "members": { + "ManualSnapshotsLimit": { + "type": "integer" + }, + "ManualSnapshotsCurrentCount": { + "type": "integer" + }, + "ManualSnapshotsLimitReached": { + "type": "boolean" + } + } + } + } + } + }, + "RegisterEventTopic": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "TopicName" + ], + "members": { + "DirectoryId": {}, + "TopicName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "RestoreFromSnapshot": { + "input": { + "type": "structure", + "required": [ + "SnapshotId" + ], + "members": { + "SnapshotId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateConditionalForwarder": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "RemoteDomainName", + "DnsIpAddrs" + ], + "members": { + "DirectoryId": {}, + "RemoteDomainName": {}, + "DnsIpAddrs": { + "shape": "Sb" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateRadius": { + "input": { + "type": "structure", + "required": [ + "DirectoryId", + "RadiusSettings" + ], + "members": { + "DirectoryId": {}, + "RadiusSettings": { + "shape": "S2d" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "VerifyTrust": { + "input": { + "type": "structure", + "required": [ + "TrustId" + ], + "members": { + "TrustId": {} + } + }, + "output": { + "type": "structure", + "members": { + "TrustId": {} + } + } + } + }, + "shapes": { + "S4": { + "type": "string", + "sensitive": true + }, + "S9": { + "type": "list", + "member": {} + }, + "Sb": { + "type": "list", + "member": {} + }, + "Sn": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Value": {} + } + } + }, + "Sy": { + "type": "string", + "sensitive": true + }, + "Sz": { + "type": "structure", + "required": [ + "VpcId", + "SubnetIds" + ], + "members": { + "VpcId": {}, + "SubnetIds": { + "shape": "S9" + } + } + }, + "S29": { + "type": "list", + "member": {} + }, + "S2d": { + "type": "structure", + "members": { + "RadiusServers": { + "type": "list", + "member": {} + }, + "RadiusPort": { + "type": "integer" + }, + "RadiusTimeout": { + "type": "integer" + }, + "RadiusRetries": { + "type": "integer" + }, + "SharedSecret": { + "type": "string", + "sensitive": true + }, + "AuthenticationProtocol": {}, + "DisplayLabel": {}, + "UseSameUsername": { + "type": "boolean" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.min.json new file mode 100755 index 0000000..022146d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.min.json @@ -0,0 +1,663 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2011-12-05", + "endpointPrefix": "dynamodb", + "jsonVersion": "1.0", + "protocol": "json", + "serviceAbbreviation": "DynamoDB", + "serviceFullName": "Amazon DynamoDB", + "signatureVersion": "v4", + "targetPrefix": "DynamoDB_20111205" + }, + "operations": { + "BatchGetItem": { + "input": { + "type": "structure", + "required": [ + "RequestItems" + ], + "members": { + "RequestItems": { + "shape": "S2" + } + } + }, + "output": { + "type": "structure", + "members": { + "Responses": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "Items": { + "shape": "Sk" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "UnprocessedKeys": { + "shape": "S2" + } + } + } + }, + "BatchWriteItem": { + "input": { + "type": "structure", + "required": [ + "RequestItems" + ], + "members": { + "RequestItems": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "members": { + "Responses": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "UnprocessedItems": { + "shape": "So" + } + } + } + }, + "CreateTable": { + "input": { + "type": "structure", + "required": [ + "TableName", + "KeySchema", + "ProvisionedThroughput" + ], + "members": { + "TableName": {}, + "KeySchema": { + "shape": "Sy" + }, + "ProvisionedThroughput": { + "shape": "S12" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "shape": "S15" + } + } + } + }, + "DeleteItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Key" + ], + "members": { + "TableName": {}, + "Key": { + "shape": "S6" + }, + "Expected": { + "shape": "S1b" + }, + "ReturnValues": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "shape": "Sl" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "DeleteTable": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {} + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "shape": "S15" + } + } + } + }, + "DescribeTable": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Table": { + "shape": "S15" + } + } + } + }, + "GetItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Key" + ], + "members": { + "TableName": {}, + "Key": { + "shape": "S6" + }, + "AttributesToGet": { + "shape": "Se" + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Item": { + "shape": "Sl" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "ListTables": { + "input": { + "type": "structure", + "members": { + "ExclusiveStartTableName": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableNames": { + "type": "list", + "member": {} + }, + "LastEvaluatedTableName": {} + } + } + }, + "PutItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Item" + ], + "members": { + "TableName": {}, + "Item": { + "shape": "Ss" + }, + "Expected": { + "shape": "S1b" + }, + "ReturnValues": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "shape": "Sl" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "Query": { + "input": { + "type": "structure", + "required": [ + "TableName", + "HashKeyValue" + ], + "members": { + "TableName": {}, + "AttributesToGet": { + "shape": "Se" + }, + "Limit": { + "type": "integer" + }, + "ConsistentRead": { + "type": "boolean" + }, + "Count": { + "type": "boolean" + }, + "HashKeyValue": { + "shape": "S7" + }, + "RangeKeyCondition": { + "shape": "S1u" + }, + "ScanIndexForward": { + "type": "boolean" + }, + "ExclusiveStartKey": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "shape": "Sk" + }, + "Count": { + "type": "integer" + }, + "LastEvaluatedKey": { + "shape": "S6" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "Scan": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {}, + "AttributesToGet": { + "shape": "Se" + }, + "Limit": { + "type": "integer" + }, + "Count": { + "type": "boolean" + }, + "ScanFilter": { + "type": "map", + "key": {}, + "value": { + "shape": "S1u" + } + }, + "ExclusiveStartKey": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "shape": "Sk" + }, + "Count": { + "type": "integer" + }, + "ScannedCount": { + "type": "integer" + }, + "LastEvaluatedKey": { + "shape": "S6" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "UpdateItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Key", + "AttributeUpdates" + ], + "members": { + "TableName": {}, + "Key": { + "shape": "S6" + }, + "AttributeUpdates": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "Value": { + "shape": "S7" + }, + "Action": {} + } + } + }, + "Expected": { + "shape": "S1b" + }, + "ReturnValues": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "shape": "Sl" + }, + "ConsumedCapacityUnits": { + "type": "double" + } + } + } + }, + "UpdateTable": { + "input": { + "type": "structure", + "required": [ + "TableName", + "ProvisionedThroughput" + ], + "members": { + "TableName": {}, + "ProvisionedThroughput": { + "shape": "S12" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "shape": "S15" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "Keys" + ], + "members": { + "Keys": { + "type": "list", + "member": { + "shape": "S6" + } + }, + "AttributesToGet": { + "shape": "Se" + }, + "ConsistentRead": { + "type": "boolean" + } + } + } + }, + "S6": { + "type": "structure", + "required": [ + "HashKeyElement" + ], + "members": { + "HashKeyElement": { + "shape": "S7" + }, + "RangeKeyElement": { + "shape": "S7" + } + } + }, + "S7": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "blob" + }, + "SS": { + "type": "list", + "member": {} + }, + "NS": { + "type": "list", + "member": {} + }, + "BS": { + "type": "list", + "member": { + "type": "blob" + } + } + } + }, + "Se": { + "type": "list", + "member": {} + }, + "Sk": { + "type": "list", + "member": { + "shape": "Sl" + } + }, + "Sl": { + "type": "map", + "key": {}, + "value": { + "shape": "S7" + } + }, + "So": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PutRequest": { + "type": "structure", + "required": [ + "Item" + ], + "members": { + "Item": { + "shape": "Ss" + } + } + }, + "DeleteRequest": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": { + "shape": "S6" + } + } + } + } + } + } + }, + "Ss": { + "type": "map", + "key": {}, + "value": { + "shape": "S7" + } + }, + "Sy": { + "type": "structure", + "required": [ + "HashKeyElement" + ], + "members": { + "HashKeyElement": { + "shape": "Sz" + }, + "RangeKeyElement": { + "shape": "Sz" + } + } + }, + "Sz": { + "type": "structure", + "required": [ + "AttributeName", + "AttributeType" + ], + "members": { + "AttributeName": {}, + "AttributeType": {} + } + }, + "S12": { + "type": "structure", + "required": [ + "ReadCapacityUnits", + "WriteCapacityUnits" + ], + "members": { + "ReadCapacityUnits": { + "type": "long" + }, + "WriteCapacityUnits": { + "type": "long" + } + } + }, + "S15": { + "type": "structure", + "members": { + "TableName": {}, + "KeySchema": { + "shape": "Sy" + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "long" + }, + "ReadCapacityUnits": { + "type": "long" + }, + "WriteCapacityUnits": { + "type": "long" + } + } + }, + "TableSizeBytes": { + "type": "long" + }, + "ItemCount": { + "type": "long" + } + } + }, + "S1b": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "Value": { + "shape": "S7" + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "S1u": { + "type": "structure", + "required": [ + "ComparisonOperator" + ], + "members": { + "AttributeValueList": { + "type": "list", + "member": { + "shape": "S7" + } + }, + "ComparisonOperator": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.paginators.json new file mode 100755 index 0000000..d4075e1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.paginators.json @@ -0,0 +1,26 @@ +{ + "pagination": { + "BatchGetItem": { + "input_token": "RequestItems", + "output_token": "UnprocessedKeys" + }, + "ListTables": { + "input_token": "ExclusiveStartTableName", + "output_token": "LastEvaluatedTableName", + "limit_key": "Limit", + "result_key": "TableNames" + }, + "Query": { + "input_token": "ExclusiveStartKey", + "output_token": "LastEvaluatedKey", + "limit_key": "Limit", + "result_key": "Items" + }, + "Scan": { + "input_token": "ExclusiveStartKey", + "output_token": "LastEvaluatedKey", + "limit_key": "Limit", + "result_key": "Items" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.waiters2.json new file mode 100755 index 0000000..43a55ca --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2011-12-05.waiters2.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "waiters": { + "TableExists": { + "delay": 20, + "operation": "DescribeTable", + "maxAttempts": 25, + "acceptors": [ + { + "expected": "ACTIVE", + "matcher": "path", + "state": "success", + "argument": "Table.TableStatus" + }, + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "retry" + } + ] + }, + "TableNotExists": { + "delay": 20, + "operation": "DescribeTable", + "maxAttempts": 25, + "acceptors": [ + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "success" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.min.json new file mode 100755 index 0000000..f12b3d8 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.min.json @@ -0,0 +1,1050 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-08-10", + "endpointPrefix": "dynamodb", + "jsonVersion": "1.0", + "protocol": "json", + "serviceAbbreviation": "DynamoDB", + "serviceFullName": "Amazon DynamoDB", + "signatureVersion": "v4", + "targetPrefix": "DynamoDB_20120810" + }, + "operations": { + "BatchGetItem": { + "input": { + "type": "structure", + "required": [ + "RequestItems" + ], + "members": { + "RequestItems": { + "shape": "S2" + }, + "ReturnConsumedCapacity": {} + } + }, + "output": { + "type": "structure", + "members": { + "Responses": { + "type": "map", + "key": {}, + "value": { + "shape": "Sr" + } + }, + "UnprocessedKeys": { + "shape": "S2" + }, + "ConsumedCapacity": { + "shape": "St" + } + } + } + }, + "BatchWriteItem": { + "input": { + "type": "structure", + "required": [ + "RequestItems" + ], + "members": { + "RequestItems": { + "shape": "S10" + }, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {} + } + }, + "output": { + "type": "structure", + "members": { + "UnprocessedItems": { + "shape": "S10" + }, + "ItemCollectionMetrics": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": { + "shape": "S1a" + } + } + }, + "ConsumedCapacity": { + "shape": "St" + } + } + } + }, + "CreateTable": { + "input": { + "type": "structure", + "required": [ + "AttributeDefinitions", + "TableName", + "KeySchema", + "ProvisionedThroughput" + ], + "members": { + "AttributeDefinitions": { + "shape": "S1f" + }, + "TableName": {}, + "KeySchema": { + "shape": "S1j" + }, + "LocalSecondaryIndexes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "members": { + "IndexName": {}, + "KeySchema": { + "shape": "S1j" + }, + "Projection": { + "shape": "S1o" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "IndexName", + "KeySchema", + "Projection", + "ProvisionedThroughput" + ], + "members": { + "IndexName": {}, + "KeySchema": { + "shape": "S1j" + }, + "Projection": { + "shape": "S1o" + }, + "ProvisionedThroughput": { + "shape": "S1u" + } + } + } + }, + "ProvisionedThroughput": { + "shape": "S1u" + }, + "StreamSpecification": { + "shape": "S1w" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "shape": "S20" + } + } + } + }, + "DeleteItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Key" + ], + "members": { + "TableName": {}, + "Key": { + "shape": "S6" + }, + "Expected": { + "shape": "S2e" + }, + "ConditionalOperator": {}, + "ReturnValues": {}, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {}, + "ConditionExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + }, + "ExpressionAttributeValues": { + "shape": "S2m" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "shape": "Ss" + }, + "ConsumedCapacity": { + "shape": "Su" + }, + "ItemCollectionMetrics": { + "shape": "S1a" + } + } + } + }, + "DeleteTable": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {} + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "shape": "S20" + } + } + } + }, + "DescribeLimits": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "AccountMaxReadCapacityUnits": { + "type": "long" + }, + "AccountMaxWriteCapacityUnits": { + "type": "long" + }, + "TableMaxReadCapacityUnits": { + "type": "long" + }, + "TableMaxWriteCapacityUnits": { + "type": "long" + } + } + } + }, + "DescribeTable": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Table": { + "shape": "S20" + } + } + } + }, + "GetItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Key" + ], + "members": { + "TableName": {}, + "Key": { + "shape": "S6" + }, + "AttributesToGet": { + "shape": "Sj" + }, + "ConsistentRead": { + "type": "boolean" + }, + "ReturnConsumedCapacity": {}, + "ProjectionExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + } + } + }, + "output": { + "type": "structure", + "members": { + "Item": { + "shape": "Ss" + }, + "ConsumedCapacity": { + "shape": "Su" + } + } + } + }, + "ListTables": { + "input": { + "type": "structure", + "members": { + "ExclusiveStartTableName": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableNames": { + "type": "list", + "member": {} + }, + "LastEvaluatedTableName": {} + } + } + }, + "PutItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Item" + ], + "members": { + "TableName": {}, + "Item": { + "shape": "S14" + }, + "Expected": { + "shape": "S2e" + }, + "ReturnValues": {}, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {}, + "ConditionalOperator": {}, + "ConditionExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + }, + "ExpressionAttributeValues": { + "shape": "S2m" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "shape": "Ss" + }, + "ConsumedCapacity": { + "shape": "Su" + }, + "ItemCollectionMetrics": { + "shape": "S1a" + } + } + } + }, + "Query": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {}, + "IndexName": {}, + "Select": {}, + "AttributesToGet": { + "shape": "Sj" + }, + "Limit": { + "type": "integer" + }, + "ConsistentRead": { + "type": "boolean" + }, + "KeyConditions": { + "type": "map", + "key": {}, + "value": { + "shape": "S37" + } + }, + "QueryFilter": { + "shape": "S38" + }, + "ConditionalOperator": {}, + "ScanIndexForward": { + "type": "boolean" + }, + "ExclusiveStartKey": { + "shape": "S6" + }, + "ReturnConsumedCapacity": {}, + "ProjectionExpression": {}, + "FilterExpression": {}, + "KeyConditionExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + }, + "ExpressionAttributeValues": { + "shape": "S2m" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "shape": "Sr" + }, + "Count": { + "type": "integer" + }, + "ScannedCount": { + "type": "integer" + }, + "LastEvaluatedKey": { + "shape": "S6" + }, + "ConsumedCapacity": { + "shape": "Su" + } + } + } + }, + "Scan": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "TableName": {}, + "IndexName": {}, + "AttributesToGet": { + "shape": "Sj" + }, + "Limit": { + "type": "integer" + }, + "Select": {}, + "ScanFilter": { + "shape": "S38" + }, + "ConditionalOperator": {}, + "ExclusiveStartKey": { + "shape": "S6" + }, + "ReturnConsumedCapacity": {}, + "TotalSegments": { + "type": "integer" + }, + "Segment": { + "type": "integer" + }, + "ProjectionExpression": {}, + "FilterExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + }, + "ExpressionAttributeValues": { + "shape": "S2m" + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "shape": "Sr" + }, + "Count": { + "type": "integer" + }, + "ScannedCount": { + "type": "integer" + }, + "LastEvaluatedKey": { + "shape": "S6" + }, + "ConsumedCapacity": { + "shape": "Su" + } + } + } + }, + "UpdateItem": { + "input": { + "type": "structure", + "required": [ + "TableName", + "Key" + ], + "members": { + "TableName": {}, + "Key": { + "shape": "S6" + }, + "AttributeUpdates": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "Value": { + "shape": "S8" + }, + "Action": {} + } + } + }, + "Expected": { + "shape": "S2e" + }, + "ConditionalOperator": {}, + "ReturnValues": {}, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {}, + "UpdateExpression": {}, + "ConditionExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + }, + "ExpressionAttributeValues": { + "shape": "S2m" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "shape": "Ss" + }, + "ConsumedCapacity": { + "shape": "Su" + }, + "ItemCollectionMetrics": { + "shape": "S1a" + } + } + } + }, + "UpdateTable": { + "input": { + "type": "structure", + "required": [ + "TableName" + ], + "members": { + "AttributeDefinitions": { + "shape": "S1f" + }, + "TableName": {}, + "ProvisionedThroughput": { + "shape": "S1u" + }, + "GlobalSecondaryIndexUpdates": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Update": { + "type": "structure", + "required": [ + "IndexName", + "ProvisionedThroughput" + ], + "members": { + "IndexName": {}, + "ProvisionedThroughput": { + "shape": "S1u" + } + } + }, + "Create": { + "type": "structure", + "required": [ + "IndexName", + "KeySchema", + "Projection", + "ProvisionedThroughput" + ], + "members": { + "IndexName": {}, + "KeySchema": { + "shape": "S1j" + }, + "Projection": { + "shape": "S1o" + }, + "ProvisionedThroughput": { + "shape": "S1u" + } + } + }, + "Delete": { + "type": "structure", + "required": [ + "IndexName" + ], + "members": { + "IndexName": {} + } + } + } + } + }, + "StreamSpecification": { + "shape": "S1w" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "shape": "S20" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "Keys" + ], + "members": { + "Keys": { + "type": "list", + "member": { + "shape": "S6" + } + }, + "AttributesToGet": { + "shape": "Sj" + }, + "ConsistentRead": { + "type": "boolean" + }, + "ProjectionExpression": {}, + "ExpressionAttributeNames": { + "shape": "Sm" + } + } + } + }, + "S6": { + "type": "map", + "key": {}, + "value": { + "shape": "S8" + } + }, + "S8": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "blob" + }, + "SS": { + "type": "list", + "member": {} + }, + "NS": { + "type": "list", + "member": {} + }, + "BS": { + "type": "list", + "member": { + "type": "blob" + } + }, + "M": { + "type": "map", + "key": {}, + "value": { + "shape": "S8" + } + }, + "L": { + "type": "list", + "member": { + "shape": "S8" + } + }, + "NULL": { + "type": "boolean" + }, + "BOOL": { + "type": "boolean" + } + } + }, + "Sj": { + "type": "list", + "member": {} + }, + "Sm": { + "type": "map", + "key": {}, + "value": {} + }, + "Sr": { + "type": "list", + "member": { + "shape": "Ss" + } + }, + "Ss": { + "type": "map", + "key": {}, + "value": { + "shape": "S8" + } + }, + "St": { + "type": "list", + "member": { + "shape": "Su" + } + }, + "Su": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "double" + }, + "Table": { + "shape": "Sw" + }, + "LocalSecondaryIndexes": { + "shape": "Sx" + }, + "GlobalSecondaryIndexes": { + "shape": "Sx" + } + } + }, + "Sw": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "double" + } + } + }, + "Sx": { + "type": "map", + "key": {}, + "value": { + "shape": "Sw" + } + }, + "S10": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PutRequest": { + "type": "structure", + "required": [ + "Item" + ], + "members": { + "Item": { + "shape": "S14" + } + } + }, + "DeleteRequest": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": { + "shape": "S6" + } + } + } + } + } + } + }, + "S14": { + "type": "map", + "key": {}, + "value": { + "shape": "S8" + } + }, + "S1a": { + "type": "structure", + "members": { + "ItemCollectionKey": { + "type": "map", + "key": {}, + "value": { + "shape": "S8" + } + }, + "SizeEstimateRangeGB": { + "type": "list", + "member": { + "type": "double" + } + } + } + }, + "S1f": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AttributeName", + "AttributeType" + ], + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + }, + "S1j": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AttributeName", + "KeyType" + ], + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "S1o": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "member": {} + } + } + }, + "S1u": { + "type": "structure", + "required": [ + "ReadCapacityUnits", + "WriteCapacityUnits" + ], + "members": { + "ReadCapacityUnits": { + "type": "long" + }, + "WriteCapacityUnits": { + "type": "long" + } + } + }, + "S1w": { + "type": "structure", + "members": { + "StreamEnabled": { + "type": "boolean" + }, + "StreamViewType": {} + } + }, + "S20": { + "type": "structure", + "members": { + "AttributeDefinitions": { + "shape": "S1f" + }, + "TableName": {}, + "KeySchema": { + "shape": "S1j" + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "shape": "S23" + }, + "TableSizeBytes": { + "type": "long" + }, + "ItemCount": { + "type": "long" + }, + "TableArn": {}, + "LocalSecondaryIndexes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "shape": "S1j" + }, + "Projection": { + "shape": "S1o" + }, + "IndexSizeBytes": { + "type": "long" + }, + "ItemCount": { + "type": "long" + }, + "IndexArn": {} + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "shape": "S1j" + }, + "Projection": { + "shape": "S1o" + }, + "IndexStatus": {}, + "Backfilling": { + "type": "boolean" + }, + "ProvisionedThroughput": { + "shape": "S23" + }, + "IndexSizeBytes": { + "type": "long" + }, + "ItemCount": { + "type": "long" + }, + "IndexArn": {} + } + } + }, + "StreamSpecification": { + "shape": "S1w" + }, + "LatestStreamLabel": {}, + "LatestStreamArn": {} + } + }, + "S23": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "long" + }, + "ReadCapacityUnits": { + "type": "long" + }, + "WriteCapacityUnits": { + "type": "long" + } + } + }, + "S2e": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "Value": { + "shape": "S8" + }, + "Exists": { + "type": "boolean" + }, + "ComparisonOperator": {}, + "AttributeValueList": { + "shape": "S2i" + } + } + } + }, + "S2i": { + "type": "list", + "member": { + "shape": "S8" + } + }, + "S2m": { + "type": "map", + "key": {}, + "value": { + "shape": "S8" + } + }, + "S37": { + "type": "structure", + "required": [ + "ComparisonOperator" + ], + "members": { + "AttributeValueList": { + "shape": "S2i" + }, + "ComparisonOperator": {} + } + }, + "S38": { + "type": "map", + "key": {}, + "value": { + "shape": "S37" + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.paginators.json new file mode 100755 index 0000000..d4075e1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.paginators.json @@ -0,0 +1,26 @@ +{ + "pagination": { + "BatchGetItem": { + "input_token": "RequestItems", + "output_token": "UnprocessedKeys" + }, + "ListTables": { + "input_token": "ExclusiveStartTableName", + "output_token": "LastEvaluatedTableName", + "limit_key": "Limit", + "result_key": "TableNames" + }, + "Query": { + "input_token": "ExclusiveStartKey", + "output_token": "LastEvaluatedKey", + "limit_key": "Limit", + "result_key": "Items" + }, + "Scan": { + "input_token": "ExclusiveStartKey", + "output_token": "LastEvaluatedKey", + "limit_key": "Limit", + "result_key": "Items" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.waiters2.json new file mode 100755 index 0000000..43a55ca --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/dynamodb-2012-08-10.waiters2.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "waiters": { + "TableExists": { + "delay": 20, + "operation": "DescribeTable", + "maxAttempts": 25, + "acceptors": [ + { + "expected": "ACTIVE", + "matcher": "path", + "state": "success", + "argument": "Table.TableStatus" + }, + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "retry" + } + ] + }, + "TableNotExists": { + "delay": 20, + "operation": "DescribeTable", + "maxAttempts": 25, + "acceptors": [ + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "success" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.min.json new file mode 100755 index 0000000..e4a5cc3 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.min.json @@ -0,0 +1,10380 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-10-01", + "endpointPrefix": "ec2", + "protocol": "ec2", + "serviceAbbreviation": "Amazon EC2", + "serviceFullName": "Amazon Elastic Compute Cloud", + "signatureVersion": "v4", + "xmlNamespace": "http://ec2.amazonaws.com/doc/2015-10-01" + }, + "operations": { + "AcceptVpcPeeringConnection": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "VpcPeeringConnection": { + "shape": "S5", + "locationName": "vpcPeeringConnection" + } + } + } + }, + "AllocateAddress": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Domain": {} + } + }, + "output": { + "type": "structure", + "members": { + "PublicIp": { + "locationName": "publicIp" + }, + "Domain": { + "locationName": "domain" + }, + "AllocationId": { + "locationName": "allocationId" + } + } + } + }, + "AllocateHosts": { + "input": { + "type": "structure", + "required": [ + "InstanceType", + "Quantity", + "AvailabilityZone" + ], + "members": { + "AutoPlacement": { + "locationName": "autoPlacement" + }, + "ClientToken": { + "locationName": "clientToken" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "Quantity": { + "locationName": "quantity", + "type": "integer" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + } + } + }, + "output": { + "type": "structure", + "members": { + "HostIds": { + "shape": "Sk", + "locationName": "hostIdSet" + } + } + } + }, + "AssignPrivateIpAddresses": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId" + ], + "members": { + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "PrivateIpAddresses": { + "shape": "Sm", + "locationName": "privateIpAddress" + }, + "SecondaryPrivateIpAddressCount": { + "locationName": "secondaryPrivateIpAddressCount", + "type": "integer" + }, + "AllowReassignment": { + "locationName": "allowReassignment", + "type": "boolean" + } + } + } + }, + "AssociateAddress": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": {}, + "PublicIp": {}, + "AllocationId": {}, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "AllowReassociation": { + "locationName": "allowReassociation", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "AssociationId": { + "locationName": "associationId" + } + } + } + }, + "AssociateDhcpOptions": { + "input": { + "type": "structure", + "required": [ + "DhcpOptionsId", + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "DhcpOptionsId": {}, + "VpcId": {} + } + } + }, + "AssociateRouteTable": { + "input": { + "type": "structure", + "required": [ + "SubnetId", + "RouteTableId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "RouteTableId": { + "locationName": "routeTableId" + } + } + }, + "output": { + "type": "structure", + "members": { + "AssociationId": { + "locationName": "associationId" + } + } + } + }, + "AttachClassicLinkVpc": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "VpcId", + "Groups" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "Groups": { + "shape": "St", + "locationName": "SecurityGroupId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "AttachInternetGateway": { + "input": { + "type": "structure", + "required": [ + "InternetGatewayId", + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InternetGatewayId": { + "locationName": "internetGatewayId" + }, + "VpcId": { + "locationName": "vpcId" + } + } + } + }, + "AttachNetworkInterface": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId", + "InstanceId", + "DeviceIndex" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "DeviceIndex": { + "locationName": "deviceIndex", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AttachmentId": { + "locationName": "attachmentId" + } + } + } + }, + "AttachVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId", + "InstanceId", + "Device" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": {}, + "InstanceId": {}, + "Device": {} + } + }, + "output": { + "shape": "Sz" + } + }, + "AttachVpnGateway": { + "input": { + "type": "structure", + "required": [ + "VpnGatewayId", + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpnGatewayId": {}, + "VpcId": {} + } + }, + "output": { + "type": "structure", + "members": { + "VpcAttachment": { + "shape": "S13", + "locationName": "attachment" + } + } + } + }, + "AuthorizeSecurityGroupEgress": { + "input": { + "type": "structure", + "required": [ + "GroupId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupId": { + "locationName": "groupId" + }, + "SourceSecurityGroupName": { + "locationName": "sourceSecurityGroupName" + }, + "SourceSecurityGroupOwnerId": { + "locationName": "sourceSecurityGroupOwnerId" + }, + "IpProtocol": { + "locationName": "ipProtocol" + }, + "FromPort": { + "locationName": "fromPort", + "type": "integer" + }, + "ToPort": { + "locationName": "toPort", + "type": "integer" + }, + "CidrIp": { + "locationName": "cidrIp" + }, + "IpPermissions": { + "shape": "S16", + "locationName": "ipPermissions" + } + } + } + }, + "AuthorizeSecurityGroupIngress": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupName": {}, + "GroupId": {}, + "SourceSecurityGroupName": {}, + "SourceSecurityGroupOwnerId": {}, + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "CidrIp": {}, + "IpPermissions": { + "shape": "S16" + } + } + } + }, + "BundleInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "Storage" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": {}, + "Storage": { + "shape": "S1g" + } + } + }, + "output": { + "type": "structure", + "members": { + "BundleTask": { + "shape": "S1k", + "locationName": "bundleInstanceTask" + } + } + } + }, + "CancelBundleTask": { + "input": { + "type": "structure", + "required": [ + "BundleId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "BundleId": {} + } + }, + "output": { + "type": "structure", + "members": { + "BundleTask": { + "shape": "S1k", + "locationName": "bundleInstanceTask" + } + } + } + }, + "CancelConversionTask": { + "input": { + "type": "structure", + "required": [ + "ConversionTaskId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ConversionTaskId": { + "locationName": "conversionTaskId" + }, + "ReasonMessage": { + "locationName": "reasonMessage" + } + } + } + }, + "CancelExportTask": { + "input": { + "type": "structure", + "required": [ + "ExportTaskId" + ], + "members": { + "ExportTaskId": { + "locationName": "exportTaskId" + } + } + } + }, + "CancelImportTask": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImportTaskId": {}, + "CancelReason": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImportTaskId": { + "locationName": "importTaskId" + }, + "State": { + "locationName": "state" + }, + "PreviousState": { + "locationName": "previousState" + } + } + } + }, + "CancelReservedInstancesListing": { + "input": { + "type": "structure", + "required": [ + "ReservedInstancesListingId" + ], + "members": { + "ReservedInstancesListingId": { + "locationName": "reservedInstancesListingId" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesListings": { + "shape": "S1v", + "locationName": "reservedInstancesListingsSet" + } + } + } + }, + "CancelSpotFleetRequests": { + "input": { + "type": "structure", + "required": [ + "SpotFleetRequestIds", + "TerminateInstances" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotFleetRequestIds": { + "shape": "S27", + "locationName": "spotFleetRequestId" + }, + "TerminateInstances": { + "locationName": "terminateInstances", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "UnsuccessfulFleetRequests": { + "locationName": "unsuccessfulFleetRequestSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "SpotFleetRequestId", + "Error" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "Error": { + "locationName": "error", + "type": "structure", + "required": [ + "Code", + "Message" + ], + "members": { + "Code": { + "locationName": "code" + }, + "Message": { + "locationName": "message" + } + } + } + } + } + }, + "SuccessfulFleetRequests": { + "locationName": "successfulFleetRequestSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "SpotFleetRequestId", + "CurrentSpotFleetRequestState", + "PreviousSpotFleetRequestState" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "CurrentSpotFleetRequestState": { + "locationName": "currentSpotFleetRequestState" + }, + "PreviousSpotFleetRequestState": { + "locationName": "previousSpotFleetRequestState" + } + } + } + } + } + } + }, + "CancelSpotInstanceRequests": { + "input": { + "type": "structure", + "required": [ + "SpotInstanceRequestIds" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotInstanceRequestIds": { + "shape": "S2h", + "locationName": "SpotInstanceRequestId" + } + } + }, + "output": { + "type": "structure", + "members": { + "CancelledSpotInstanceRequests": { + "locationName": "spotInstanceRequestSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "SpotInstanceRequestId": { + "locationName": "spotInstanceRequestId" + }, + "State": { + "locationName": "state" + } + } + } + } + } + } + }, + "ConfirmProductInstance": { + "input": { + "type": "structure", + "required": [ + "ProductCode", + "InstanceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ProductCode": {}, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "OwnerId": { + "locationName": "ownerId" + }, + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "CopyImage": { + "input": { + "type": "structure", + "required": [ + "SourceRegion", + "SourceImageId", + "Name" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SourceRegion": {}, + "SourceImageId": {}, + "Name": {}, + "Description": {}, + "ClientToken": {}, + "Encrypted": { + "locationName": "encrypted", + "type": "boolean" + }, + "KmsKeyId": { + "locationName": "kmsKeyId" + } + } + }, + "output": { + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + } + } + } + }, + "CopySnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceRegion", + "SourceSnapshotId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SourceRegion": {}, + "SourceSnapshotId": {}, + "Description": {}, + "DestinationRegion": { + "locationName": "destinationRegion" + }, + "PresignedUrl": { + "locationName": "presignedUrl" + }, + "Encrypted": { + "locationName": "encrypted", + "type": "boolean" + }, + "KmsKeyId": { + "locationName": "kmsKeyId" + } + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotId": { + "locationName": "snapshotId" + } + } + } + }, + "CreateCustomerGateway": { + "input": { + "type": "structure", + "required": [ + "Type", + "PublicIp", + "BgpAsn" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Type": {}, + "PublicIp": { + "locationName": "IpAddress" + }, + "BgpAsn": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "CustomerGateway": { + "shape": "S2v", + "locationName": "customerGateway" + } + } + } + }, + "CreateDhcpOptions": { + "input": { + "type": "structure", + "required": [ + "DhcpConfigurations" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "DhcpConfigurations": { + "locationName": "dhcpConfiguration", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Key": { + "locationName": "key" + }, + "Values": { + "shape": "S27", + "locationName": "Value" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DhcpOptions": { + "shape": "S30", + "locationName": "dhcpOptions" + } + } + } + }, + "CreateFlowLogs": { + "input": { + "type": "structure", + "required": [ + "ResourceIds", + "ResourceType", + "TrafficType", + "LogGroupName", + "DeliverLogsPermissionArn" + ], + "members": { + "ResourceIds": { + "shape": "S27", + "locationName": "ResourceId" + }, + "ResourceType": {}, + "TrafficType": {}, + "LogGroupName": {}, + "DeliverLogsPermissionArn": {}, + "ClientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "FlowLogIds": { + "shape": "S27", + "locationName": "flowLogIdSet" + }, + "ClientToken": { + "locationName": "clientToken" + }, + "Unsuccessful": { + "shape": "S39", + "locationName": "unsuccessful" + } + } + } + }, + "CreateImage": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "Name" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "Name": { + "locationName": "name" + }, + "Description": { + "locationName": "description" + }, + "NoReboot": { + "locationName": "noReboot", + "type": "boolean" + }, + "BlockDeviceMappings": { + "shape": "S3d", + "locationName": "blockDeviceMapping" + } + } + }, + "output": { + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + } + } + } + }, + "CreateInstanceExportTask": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "Description": { + "locationName": "description" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "TargetEnvironment": { + "locationName": "targetEnvironment" + }, + "ExportToS3Task": { + "locationName": "exportToS3", + "type": "structure", + "members": { + "DiskImageFormat": { + "locationName": "diskImageFormat" + }, + "ContainerFormat": { + "locationName": "containerFormat" + }, + "S3Bucket": { + "locationName": "s3Bucket" + }, + "S3Prefix": { + "locationName": "s3Prefix" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ExportTask": { + "shape": "S3o", + "locationName": "exportTask" + } + } + } + }, + "CreateInternetGateway": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "InternetGateway": { + "shape": "S3u", + "locationName": "internetGateway" + } + } + } + }, + "CreateKeyPair": { + "input": { + "type": "structure", + "required": [ + "KeyName" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "KeyName": {} + } + }, + "output": { + "type": "structure", + "members": { + "KeyName": { + "locationName": "keyName" + }, + "KeyFingerprint": { + "locationName": "keyFingerprint" + }, + "KeyMaterial": { + "locationName": "keyMaterial" + } + } + } + }, + "CreateNatGateway": { + "input": { + "type": "structure", + "required": [ + "SubnetId", + "AllocationId" + ], + "members": { + "SubnetId": {}, + "AllocationId": {}, + "ClientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "NatGateway": { + "shape": "S41", + "locationName": "natGateway" + }, + "ClientToken": { + "locationName": "clientToken" + } + } + } + }, + "CreateNetworkAcl": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": { + "locationName": "vpcId" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkAcl": { + "shape": "S48", + "locationName": "networkAcl" + } + } + } + }, + "CreateNetworkAclEntry": { + "input": { + "type": "structure", + "required": [ + "NetworkAclId", + "RuleNumber", + "Protocol", + "RuleAction", + "Egress", + "CidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkAclId": { + "locationName": "networkAclId" + }, + "RuleNumber": { + "locationName": "ruleNumber", + "type": "integer" + }, + "Protocol": { + "locationName": "protocol" + }, + "RuleAction": { + "locationName": "ruleAction" + }, + "Egress": { + "locationName": "egress", + "type": "boolean" + }, + "CidrBlock": { + "locationName": "cidrBlock" + }, + "IcmpTypeCode": { + "shape": "S4c", + "locationName": "Icmp" + }, + "PortRange": { + "shape": "S4d", + "locationName": "portRange" + } + } + } + }, + "CreateNetworkInterface": { + "input": { + "type": "structure", + "required": [ + "SubnetId" + ], + "members": { + "SubnetId": { + "locationName": "subnetId" + }, + "Description": { + "locationName": "description" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "Groups": { + "shape": "S4i", + "locationName": "SecurityGroupId" + }, + "PrivateIpAddresses": { + "shape": "S4j", + "locationName": "privateIpAddresses" + }, + "SecondaryPrivateIpAddressCount": { + "locationName": "secondaryPrivateIpAddressCount", + "type": "integer" + }, + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkInterface": { + "shape": "S4m", + "locationName": "networkInterface" + } + } + } + }, + "CreatePlacementGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "Strategy" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupName": { + "locationName": "groupName" + }, + "Strategy": { + "locationName": "strategy" + } + } + } + }, + "CreateReservedInstancesListing": { + "input": { + "type": "structure", + "required": [ + "ReservedInstancesId", + "InstanceCount", + "PriceSchedules", + "ClientToken" + ], + "members": { + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + }, + "InstanceCount": { + "locationName": "instanceCount", + "type": "integer" + }, + "PriceSchedules": { + "locationName": "priceSchedules", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Term": { + "locationName": "term", + "type": "long" + }, + "Price": { + "locationName": "price", + "type": "double" + }, + "CurrencyCode": { + "locationName": "currencyCode" + } + } + } + }, + "ClientToken": { + "locationName": "clientToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesListings": { + "shape": "S1v", + "locationName": "reservedInstancesListingsSet" + } + } + } + }, + "CreateRoute": { + "input": { + "type": "structure", + "required": [ + "RouteTableId", + "DestinationCidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "RouteTableId": { + "locationName": "routeTableId" + }, + "DestinationCidrBlock": { + "locationName": "destinationCidrBlock" + }, + "GatewayId": { + "locationName": "gatewayId" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + }, + "NatGatewayId": { + "locationName": "natGatewayId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "CreateRouteTable": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": { + "locationName": "vpcId" + } + } + }, + "output": { + "type": "structure", + "members": { + "RouteTable": { + "shape": "S55", + "locationName": "routeTable" + } + } + } + }, + "CreateSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "Description" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupName": {}, + "Description": { + "locationName": "GroupDescription" + }, + "VpcId": {} + } + }, + "output": { + "type": "structure", + "members": { + "GroupId": { + "locationName": "groupId" + } + } + } + }, + "CreateSnapshot": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": {}, + "Description": {} + } + }, + "output": { + "shape": "S5h" + } + }, + "CreateSpotDatafeedSubscription": { + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Bucket": { + "locationName": "bucket" + }, + "Prefix": { + "locationName": "prefix" + } + } + }, + "output": { + "type": "structure", + "members": { + "SpotDatafeedSubscription": { + "shape": "S5l", + "locationName": "spotDatafeedSubscription" + } + } + } + }, + "CreateSubnet": { + "input": { + "type": "structure", + "required": [ + "VpcId", + "CidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": {}, + "CidrBlock": {}, + "AvailabilityZone": {} + } + }, + "output": { + "type": "structure", + "members": { + "Subnet": { + "shape": "S5q", + "locationName": "subnet" + } + } + } + }, + "CreateTags": { + "input": { + "type": "structure", + "required": [ + "Resources", + "Tags" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Resources": { + "shape": "S5t", + "locationName": "ResourceId" + }, + "Tags": { + "shape": "Sb", + "locationName": "Tag" + } + } + } + }, + "CreateVolume": { + "input": { + "type": "structure", + "required": [ + "AvailabilityZone" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Size": { + "type": "integer" + }, + "SnapshotId": {}, + "AvailabilityZone": {}, + "VolumeType": {}, + "Iops": { + "type": "integer" + }, + "Encrypted": { + "locationName": "encrypted", + "type": "boolean" + }, + "KmsKeyId": {} + } + }, + "output": { + "shape": "S5v" + } + }, + "CreateVpc": { + "input": { + "type": "structure", + "required": [ + "CidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "CidrBlock": {}, + "InstanceTenancy": { + "locationName": "instanceTenancy" + } + } + }, + "output": { + "type": "structure", + "members": { + "Vpc": { + "shape": "S61", + "locationName": "vpc" + } + } + } + }, + "CreateVpcEndpoint": { + "input": { + "type": "structure", + "required": [ + "VpcId", + "ServiceName" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": {}, + "ServiceName": {}, + "PolicyDocument": {}, + "RouteTableIds": { + "shape": "S27", + "locationName": "RouteTableId" + }, + "ClientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "VpcEndpoint": { + "shape": "S65", + "locationName": "vpcEndpoint" + }, + "ClientToken": { + "locationName": "clientToken" + } + } + } + }, + "CreateVpcPeeringConnection": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": { + "locationName": "vpcId" + }, + "PeerVpcId": { + "locationName": "peerVpcId" + }, + "PeerOwnerId": { + "locationName": "peerOwnerId" + } + } + }, + "output": { + "type": "structure", + "members": { + "VpcPeeringConnection": { + "shape": "S5", + "locationName": "vpcPeeringConnection" + } + } + } + }, + "CreateVpnConnection": { + "input": { + "type": "structure", + "required": [ + "Type", + "CustomerGatewayId", + "VpnGatewayId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Type": {}, + "CustomerGatewayId": {}, + "VpnGatewayId": {}, + "Options": { + "locationName": "options", + "type": "structure", + "members": { + "StaticRoutesOnly": { + "locationName": "staticRoutesOnly", + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "VpnConnection": { + "shape": "S6c", + "locationName": "vpnConnection" + } + } + } + }, + "CreateVpnConnectionRoute": { + "input": { + "type": "structure", + "required": [ + "VpnConnectionId", + "DestinationCidrBlock" + ], + "members": { + "VpnConnectionId": {}, + "DestinationCidrBlock": {} + } + } + }, + "CreateVpnGateway": { + "input": { + "type": "structure", + "required": [ + "Type" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Type": {}, + "AvailabilityZone": {} + } + }, + "output": { + "type": "structure", + "members": { + "VpnGateway": { + "shape": "S6o", + "locationName": "vpnGateway" + } + } + } + }, + "DeleteCustomerGateway": { + "input": { + "type": "structure", + "required": [ + "CustomerGatewayId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "CustomerGatewayId": {} + } + } + }, + "DeleteDhcpOptions": { + "input": { + "type": "structure", + "required": [ + "DhcpOptionsId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "DhcpOptionsId": {} + } + } + }, + "DeleteFlowLogs": { + "input": { + "type": "structure", + "required": [ + "FlowLogIds" + ], + "members": { + "FlowLogIds": { + "shape": "S27", + "locationName": "FlowLogId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Unsuccessful": { + "shape": "S39", + "locationName": "unsuccessful" + } + } + } + }, + "DeleteInternetGateway": { + "input": { + "type": "structure", + "required": [ + "InternetGatewayId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InternetGatewayId": { + "locationName": "internetGatewayId" + } + } + } + }, + "DeleteKeyPair": { + "input": { + "type": "structure", + "required": [ + "KeyName" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "KeyName": {} + } + } + }, + "DeleteNatGateway": { + "input": { + "type": "structure", + "required": [ + "NatGatewayId" + ], + "members": { + "NatGatewayId": {} + } + }, + "output": { + "type": "structure", + "members": { + "NatGatewayId": { + "locationName": "natGatewayId" + } + } + } + }, + "DeleteNetworkAcl": { + "input": { + "type": "structure", + "required": [ + "NetworkAclId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkAclId": { + "locationName": "networkAclId" + } + } + } + }, + "DeleteNetworkAclEntry": { + "input": { + "type": "structure", + "required": [ + "NetworkAclId", + "RuleNumber", + "Egress" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkAclId": { + "locationName": "networkAclId" + }, + "RuleNumber": { + "locationName": "ruleNumber", + "type": "integer" + }, + "Egress": { + "locationName": "egress", + "type": "boolean" + } + } + } + }, + "DeleteNetworkInterface": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + } + } + } + }, + "DeletePlacementGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupName": { + "locationName": "groupName" + } + } + } + }, + "DeleteRoute": { + "input": { + "type": "structure", + "required": [ + "RouteTableId", + "DestinationCidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "RouteTableId": { + "locationName": "routeTableId" + }, + "DestinationCidrBlock": { + "locationName": "destinationCidrBlock" + } + } + } + }, + "DeleteRouteTable": { + "input": { + "type": "structure", + "required": [ + "RouteTableId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "RouteTableId": { + "locationName": "routeTableId" + } + } + } + }, + "DeleteSecurityGroup": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupName": {}, + "GroupId": {} + } + } + }, + "DeleteSnapshot": { + "input": { + "type": "structure", + "required": [ + "SnapshotId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SnapshotId": {} + } + } + }, + "DeleteSpotDatafeedSubscription": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + } + } + } + }, + "DeleteSubnet": { + "input": { + "type": "structure", + "required": [ + "SubnetId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SubnetId": {} + } + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "Resources" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Resources": { + "shape": "S5t", + "locationName": "resourceId" + }, + "Tags": { + "shape": "Sb", + "locationName": "tag" + } + } + } + }, + "DeleteVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": {} + } + } + }, + "DeleteVpc": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": {} + } + } + }, + "DeleteVpcEndpoints": { + "input": { + "type": "structure", + "required": [ + "VpcEndpointIds" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcEndpointIds": { + "shape": "S27", + "locationName": "VpcEndpointId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Unsuccessful": { + "shape": "S39", + "locationName": "unsuccessful" + } + } + } + }, + "DeleteVpcPeeringConnection": { + "input": { + "type": "structure", + "required": [ + "VpcPeeringConnectionId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "DeleteVpnConnection": { + "input": { + "type": "structure", + "required": [ + "VpnConnectionId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpnConnectionId": {} + } + } + }, + "DeleteVpnConnectionRoute": { + "input": { + "type": "structure", + "required": [ + "VpnConnectionId", + "DestinationCidrBlock" + ], + "members": { + "VpnConnectionId": {}, + "DestinationCidrBlock": {} + } + } + }, + "DeleteVpnGateway": { + "input": { + "type": "structure", + "required": [ + "VpnGatewayId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpnGatewayId": {} + } + } + }, + "DeregisterImage": { + "input": { + "type": "structure", + "required": [ + "ImageId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageId": {} + } + } + }, + "DescribeAccountAttributes": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "AttributeNames": { + "locationName": "attributeName", + "type": "list", + "member": { + "locationName": "attributeName" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "AccountAttributes": { + "locationName": "accountAttributeSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "AttributeName": { + "locationName": "attributeName" + }, + "AttributeValues": { + "locationName": "attributeValueSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "AttributeValue": { + "locationName": "attributeValue" + } + } + } + } + } + } + } + } + } + }, + "DescribeAddresses": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "PublicIps": { + "locationName": "PublicIp", + "type": "list", + "member": { + "locationName": "PublicIp" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "AllocationIds": { + "locationName": "AllocationId", + "type": "list", + "member": { + "locationName": "AllocationId" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Addresses": { + "locationName": "addressesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "PublicIp": { + "locationName": "publicIp" + }, + "AllocationId": { + "locationName": "allocationId" + }, + "AssociationId": { + "locationName": "associationId" + }, + "Domain": { + "locationName": "domain" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "NetworkInterfaceOwnerId": { + "locationName": "networkInterfaceOwnerId" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + } + } + } + } + } + } + }, + "DescribeAvailabilityZones": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ZoneNames": { + "locationName": "ZoneName", + "type": "list", + "member": { + "locationName": "ZoneName" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "AvailabilityZones": { + "locationName": "availabilityZoneInfo", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ZoneName": { + "locationName": "zoneName" + }, + "State": { + "locationName": "zoneState" + }, + "RegionName": { + "locationName": "regionName" + }, + "Messages": { + "locationName": "messageSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Message": { + "locationName": "message" + } + } + } + } + } + } + } + } + } + }, + "DescribeBundleTasks": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "BundleIds": { + "locationName": "BundleId", + "type": "list", + "member": { + "locationName": "BundleId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "BundleTasks": { + "locationName": "bundleInstanceTasksSet", + "type": "list", + "member": { + "shape": "S1k", + "locationName": "item" + } + } + } + } + }, + "DescribeClassicLinkInstances": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "locationName": "instancesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "Groups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeConversionTasks": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Filters": { + "shape": "S7t", + "locationName": "filter" + }, + "ConversionTaskIds": { + "locationName": "conversionTaskId", + "type": "list", + "member": { + "locationName": "item" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ConversionTasks": { + "locationName": "conversionTasks", + "type": "list", + "member": { + "shape": "S8k", + "locationName": "item" + } + } + } + } + }, + "DescribeCustomerGateways": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "CustomerGatewayIds": { + "locationName": "CustomerGatewayId", + "type": "list", + "member": { + "locationName": "CustomerGatewayId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "CustomerGateways": { + "locationName": "customerGatewaySet", + "type": "list", + "member": { + "shape": "S2v", + "locationName": "item" + } + } + } + } + }, + "DescribeDhcpOptions": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "DhcpOptionsIds": { + "locationName": "DhcpOptionsId", + "type": "list", + "member": { + "locationName": "DhcpOptionsId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "DhcpOptions": { + "locationName": "dhcpOptionsSet", + "type": "list", + "member": { + "shape": "S30", + "locationName": "item" + } + } + } + } + }, + "DescribeExportTasks": { + "input": { + "type": "structure", + "members": { + "ExportTaskIds": { + "locationName": "exportTaskId", + "type": "list", + "member": { + "locationName": "ExportTaskId" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ExportTasks": { + "locationName": "exportTaskSet", + "type": "list", + "member": { + "shape": "S3o", + "locationName": "item" + } + } + } + } + }, + "DescribeFlowLogs": { + "input": { + "type": "structure", + "members": { + "FlowLogIds": { + "shape": "S27", + "locationName": "FlowLogId" + }, + "Filter": { + "shape": "S7t" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "FlowLogs": { + "locationName": "flowLogSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "CreationTime": { + "locationName": "creationTime", + "type": "timestamp" + }, + "FlowLogId": { + "locationName": "flowLogId" + }, + "FlowLogStatus": { + "locationName": "flowLogStatus" + }, + "ResourceId": { + "locationName": "resourceId" + }, + "TrafficType": { + "locationName": "trafficType" + }, + "LogGroupName": { + "locationName": "logGroupName" + }, + "DeliverLogsStatus": { + "locationName": "deliverLogsStatus" + }, + "DeliverLogsErrorMessage": { + "locationName": "deliverLogsErrorMessage" + }, + "DeliverLogsPermissionArn": { + "locationName": "deliverLogsPermissionArn" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeHosts": { + "input": { + "type": "structure", + "members": { + "HostIds": { + "shape": "S9a", + "locationName": "hostId" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + }, + "Filter": { + "shape": "S7t", + "locationName": "filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "Hosts": { + "locationName": "hostSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "HostId": { + "locationName": "hostId" + }, + "AutoPlacement": { + "locationName": "autoPlacement" + }, + "HostReservationId": { + "locationName": "hostReservationId" + }, + "ClientToken": { + "locationName": "clientToken" + }, + "HostProperties": { + "locationName": "hostProperties", + "type": "structure", + "members": { + "Sockets": { + "locationName": "sockets", + "type": "integer" + }, + "Cores": { + "locationName": "cores", + "type": "integer" + }, + "TotalVCpus": { + "locationName": "totalVCpus", + "type": "integer" + }, + "InstanceType": { + "locationName": "instanceType" + } + } + }, + "State": { + "locationName": "state" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Instances": { + "locationName": "instances", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "InstanceType": { + "locationName": "instanceType" + } + } + } + }, + "AvailableCapacity": { + "locationName": "availableCapacity", + "type": "structure", + "members": { + "AvailableInstanceCapacity": { + "locationName": "availableInstanceCapacity", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceType": { + "locationName": "instanceType" + }, + "AvailableCapacity": { + "locationName": "availableCapacity", + "type": "integer" + }, + "TotalCapacity": { + "locationName": "totalCapacity", + "type": "integer" + } + } + } + }, + "AvailableVCpus": { + "locationName": "availableVCpus", + "type": "integer" + } + } + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeIdFormat": { + "input": { + "type": "structure", + "members": { + "Resource": {} + } + }, + "output": { + "type": "structure", + "members": { + "Statuses": { + "locationName": "statusSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Resource": { + "locationName": "resource" + }, + "UseLongIds": { + "locationName": "useLongIds", + "type": "boolean" + }, + "Deadline": { + "locationName": "deadline", + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeImageAttribute": { + "input": { + "type": "structure", + "required": [ + "ImageId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageId": {}, + "Attribute": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + }, + "LaunchPermissions": { + "shape": "S9s", + "locationName": "launchPermission" + }, + "ProductCodes": { + "shape": "S9v", + "locationName": "productCodes" + }, + "KernelId": { + "shape": "S34", + "locationName": "kernel" + }, + "RamdiskId": { + "shape": "S34", + "locationName": "ramdisk" + }, + "Description": { + "shape": "S34", + "locationName": "description" + }, + "SriovNetSupport": { + "shape": "S34", + "locationName": "sriovNetSupport" + }, + "BlockDeviceMappings": { + "shape": "S9y", + "locationName": "blockDeviceMapping" + } + } + } + }, + "DescribeImages": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageIds": { + "locationName": "ImageId", + "type": "list", + "member": { + "locationName": "ImageId" + } + }, + "Owners": { + "shape": "Sa1", + "locationName": "Owner" + }, + "ExecutableUsers": { + "locationName": "ExecutableBy", + "type": "list", + "member": { + "locationName": "ExecutableBy" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "Images": { + "locationName": "imagesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + }, + "ImageLocation": { + "locationName": "imageLocation" + }, + "State": { + "locationName": "imageState" + }, + "OwnerId": { + "locationName": "imageOwnerId" + }, + "CreationDate": { + "locationName": "creationDate" + }, + "Public": { + "locationName": "isPublic", + "type": "boolean" + }, + "ProductCodes": { + "shape": "S9v", + "locationName": "productCodes" + }, + "Architecture": { + "locationName": "architecture" + }, + "ImageType": { + "locationName": "imageType" + }, + "KernelId": { + "locationName": "kernelId" + }, + "RamdiskId": { + "locationName": "ramdiskId" + }, + "Platform": { + "locationName": "platform" + }, + "SriovNetSupport": { + "locationName": "sriovNetSupport" + }, + "StateReason": { + "shape": "Sa9", + "locationName": "stateReason" + }, + "ImageOwnerAlias": { + "locationName": "imageOwnerAlias" + }, + "Name": { + "locationName": "name" + }, + "Description": { + "locationName": "description" + }, + "RootDeviceType": { + "locationName": "rootDeviceType" + }, + "RootDeviceName": { + "locationName": "rootDeviceName" + }, + "BlockDeviceMappings": { + "shape": "S9y", + "locationName": "blockDeviceMapping" + }, + "VirtualizationType": { + "locationName": "virtualizationType" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "Hypervisor": { + "locationName": "hypervisor" + } + } + } + } + } + } + }, + "DescribeImportImageTasks": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImportTaskIds": { + "shape": "Sae", + "locationName": "ImportTaskId" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S7t" + } + } + }, + "output": { + "type": "structure", + "members": { + "ImportImageTasks": { + "locationName": "importImageTaskSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ImportTaskId": { + "locationName": "importTaskId" + }, + "Architecture": { + "locationName": "architecture" + }, + "LicenseType": { + "locationName": "licenseType" + }, + "Platform": { + "locationName": "platform" + }, + "Hypervisor": { + "locationName": "hypervisor" + }, + "Description": { + "locationName": "description" + }, + "SnapshotDetails": { + "shape": "Sai", + "locationName": "snapshotDetailSet" + }, + "ImageId": { + "locationName": "imageId" + }, + "Progress": { + "locationName": "progress" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeImportSnapshotTasks": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImportTaskIds": { + "shape": "Sae", + "locationName": "ImportTaskId" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S7t" + } + } + }, + "output": { + "type": "structure", + "members": { + "ImportSnapshotTasks": { + "locationName": "importSnapshotTaskSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ImportTaskId": { + "locationName": "importTaskId" + }, + "SnapshotTaskDetail": { + "shape": "Sap", + "locationName": "snapshotTaskDetail" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeInstanceAttribute": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "Attribute": { + "locationName": "attribute" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "InstanceType": { + "shape": "S34", + "locationName": "instanceType" + }, + "KernelId": { + "shape": "S34", + "locationName": "kernel" + }, + "RamdiskId": { + "shape": "S34", + "locationName": "ramdisk" + }, + "UserData": { + "shape": "S34", + "locationName": "userData" + }, + "DisableApiTermination": { + "shape": "Sat", + "locationName": "disableApiTermination" + }, + "InstanceInitiatedShutdownBehavior": { + "shape": "S34", + "locationName": "instanceInitiatedShutdownBehavior" + }, + "RootDeviceName": { + "shape": "S34", + "locationName": "rootDeviceName" + }, + "BlockDeviceMappings": { + "shape": "Sau", + "locationName": "blockDeviceMapping" + }, + "ProductCodes": { + "shape": "S9v", + "locationName": "productCodes" + }, + "EbsOptimized": { + "shape": "Sat", + "locationName": "ebsOptimized" + }, + "SriovNetSupport": { + "shape": "S34", + "locationName": "sriovNetSupport" + }, + "SourceDestCheck": { + "shape": "Sat", + "locationName": "sourceDestCheck" + }, + "Groups": { + "shape": "S4o", + "locationName": "groupSet" + } + } + } + }, + "DescribeInstanceStatus": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "IncludeAllInstances": { + "locationName": "includeAllInstances", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceStatuses": { + "locationName": "instanceStatusSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Events": { + "locationName": "eventsSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "Description": { + "locationName": "description" + }, + "NotBefore": { + "locationName": "notBefore", + "type": "timestamp" + }, + "NotAfter": { + "locationName": "notAfter", + "type": "timestamp" + } + } + } + }, + "InstanceState": { + "shape": "Sb4", + "locationName": "instanceState" + }, + "SystemStatus": { + "shape": "Sb6", + "locationName": "systemStatus" + }, + "InstanceStatus": { + "shape": "Sb6", + "locationName": "instanceStatus" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeInstances": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Reservations": { + "locationName": "reservationSet", + "type": "list", + "member": { + "shape": "Sbf", + "locationName": "item" + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeInternetGateways": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InternetGatewayIds": { + "shape": "S27", + "locationName": "internetGatewayId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "InternetGateways": { + "locationName": "internetGatewaySet", + "type": "list", + "member": { + "shape": "S3u", + "locationName": "item" + } + } + } + } + }, + "DescribeKeyPairs": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "KeyNames": { + "locationName": "KeyName", + "type": "list", + "member": { + "locationName": "KeyName" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "KeyPairs": { + "locationName": "keySet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "KeyName": { + "locationName": "keyName" + }, + "KeyFingerprint": { + "locationName": "keyFingerprint" + } + } + } + } + } + } + }, + "DescribeMovingAddresses": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "PublicIps": { + "shape": "S27", + "locationName": "publicIp" + }, + "NextToken": { + "locationName": "nextToken" + }, + "Filters": { + "shape": "S7t", + "locationName": "filter" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "MovingAddressStatuses": { + "locationName": "movingAddressStatusSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "PublicIp": { + "locationName": "publicIp" + }, + "MoveStatus": { + "locationName": "moveStatus" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeNatGateways": { + "input": { + "type": "structure", + "members": { + "NatGatewayIds": { + "shape": "S27", + "locationName": "NatGatewayId" + }, + "Filter": { + "shape": "S7t" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "NatGateways": { + "locationName": "natGatewaySet", + "type": "list", + "member": { + "shape": "S41", + "locationName": "item" + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeNetworkAcls": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkAclIds": { + "shape": "S27", + "locationName": "NetworkAclId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkAcls": { + "locationName": "networkAclSet", + "type": "list", + "member": { + "shape": "S48", + "locationName": "item" + } + } + } + } + }, + "DescribeNetworkInterfaceAttribute": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "Attribute": { + "locationName": "attribute" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "Description": { + "shape": "S34", + "locationName": "description" + }, + "SourceDestCheck": { + "shape": "Sat", + "locationName": "sourceDestCheck" + }, + "Groups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "Attachment": { + "shape": "S4q", + "locationName": "attachment" + } + } + } + }, + "DescribeNetworkInterfaces": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkInterfaceIds": { + "locationName": "NetworkInterfaceId", + "type": "list", + "member": { + "locationName": "item" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkInterfaces": { + "locationName": "networkInterfaceSet", + "type": "list", + "member": { + "shape": "S4m", + "locationName": "item" + } + } + } + } + }, + "DescribePlacementGroups": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupNames": { + "locationName": "groupName", + "type": "list", + "member": {} + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "PlacementGroups": { + "locationName": "placementGroupSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "GroupName": { + "locationName": "groupName" + }, + "Strategy": { + "locationName": "strategy" + }, + "State": { + "locationName": "state" + } + } + } + } + } + } + }, + "DescribePrefixLists": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "PrefixListIds": { + "shape": "S27", + "locationName": "PrefixListId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "PrefixLists": { + "locationName": "prefixListSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "PrefixListId": { + "locationName": "prefixListId" + }, + "PrefixListName": { + "locationName": "prefixListName" + }, + "Cidrs": { + "shape": "S27", + "locationName": "cidrSet" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeRegions": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "RegionNames": { + "locationName": "RegionName", + "type": "list", + "member": { + "locationName": "RegionName" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "Regions": { + "locationName": "regionInfo", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "RegionName": { + "locationName": "regionName" + }, + "Endpoint": { + "locationName": "regionEndpoint" + } + } + } + } + } + } + }, + "DescribeReservedInstances": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ReservedInstancesIds": { + "shape": "Sd0", + "locationName": "ReservedInstancesId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "OfferingType": { + "locationName": "offeringType" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstances": { + "locationName": "reservedInstancesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Start": { + "locationName": "start", + "type": "timestamp" + }, + "End": { + "locationName": "end", + "type": "timestamp" + }, + "Duration": { + "locationName": "duration", + "type": "long" + }, + "UsagePrice": { + "locationName": "usagePrice", + "type": "float" + }, + "FixedPrice": { + "locationName": "fixedPrice", + "type": "float" + }, + "InstanceCount": { + "locationName": "instanceCount", + "type": "integer" + }, + "ProductDescription": { + "locationName": "productDescription" + }, + "State": { + "locationName": "state" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "InstanceTenancy": { + "locationName": "instanceTenancy" + }, + "CurrencyCode": { + "locationName": "currencyCode" + }, + "OfferingType": { + "locationName": "offeringType" + }, + "RecurringCharges": { + "shape": "Sd8", + "locationName": "recurringCharges" + } + } + } + } + } + } + }, + "DescribeReservedInstancesListings": { + "input": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + }, + "ReservedInstancesListingId": { + "locationName": "reservedInstancesListingId" + }, + "Filters": { + "shape": "S7t", + "locationName": "filters" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesListings": { + "shape": "S1v", + "locationName": "reservedInstancesListingsSet" + } + } + } + }, + "DescribeReservedInstancesModifications": { + "input": { + "type": "structure", + "members": { + "ReservedInstancesModificationIds": { + "locationName": "ReservedInstancesModificationId", + "type": "list", + "member": { + "locationName": "ReservedInstancesModificationId" + } + }, + "NextToken": { + "locationName": "nextToken" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesModifications": { + "locationName": "reservedInstancesModificationsSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ReservedInstancesModificationId": { + "locationName": "reservedInstancesModificationId" + }, + "ReservedInstancesIds": { + "locationName": "reservedInstancesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + } + } + } + }, + "ModificationResults": { + "locationName": "modificationResultSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + }, + "TargetConfiguration": { + "shape": "Sdm", + "locationName": "targetConfiguration" + } + } + } + }, + "CreateDate": { + "locationName": "createDate", + "type": "timestamp" + }, + "UpdateDate": { + "locationName": "updateDate", + "type": "timestamp" + }, + "EffectiveDate": { + "locationName": "effectiveDate", + "type": "timestamp" + }, + "Status": { + "locationName": "status" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "ClientToken": { + "locationName": "clientToken" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeReservedInstancesOfferings": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ReservedInstancesOfferingIds": { + "locationName": "ReservedInstancesOfferingId", + "type": "list", + "member": {} + }, + "InstanceType": {}, + "AvailabilityZone": {}, + "ProductDescription": {}, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "InstanceTenancy": { + "locationName": "instanceTenancy" + }, + "OfferingType": { + "locationName": "offeringType" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + }, + "IncludeMarketplace": { + "type": "boolean" + }, + "MinDuration": { + "type": "long" + }, + "MaxDuration": { + "type": "long" + }, + "MaxInstanceCount": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesOfferings": { + "locationName": "reservedInstancesOfferingsSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ReservedInstancesOfferingId": { + "locationName": "reservedInstancesOfferingId" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Duration": { + "locationName": "duration", + "type": "long" + }, + "UsagePrice": { + "locationName": "usagePrice", + "type": "float" + }, + "FixedPrice": { + "locationName": "fixedPrice", + "type": "float" + }, + "ProductDescription": { + "locationName": "productDescription" + }, + "InstanceTenancy": { + "locationName": "instanceTenancy" + }, + "CurrencyCode": { + "locationName": "currencyCode" + }, + "OfferingType": { + "locationName": "offeringType" + }, + "RecurringCharges": { + "shape": "Sd8", + "locationName": "recurringCharges" + }, + "Marketplace": { + "locationName": "marketplace", + "type": "boolean" + }, + "PricingDetails": { + "locationName": "pricingDetailsSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Price": { + "locationName": "price", + "type": "double" + }, + "Count": { + "locationName": "count", + "type": "integer" + } + } + } + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeRouteTables": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "RouteTableIds": { + "shape": "S27", + "locationName": "RouteTableId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "RouteTables": { + "locationName": "routeTableSet", + "type": "list", + "member": { + "shape": "S55", + "locationName": "item" + } + } + } + } + }, + "DescribeScheduledInstanceAvailability": { + "input": { + "type": "structure", + "required": [ + "Recurrence", + "FirstSlotStartTimeRange" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "Recurrence": { + "type": "structure", + "members": { + "Frequency": {}, + "Interval": { + "type": "integer" + }, + "OccurrenceDays": { + "locationName": "OccurrenceDay", + "type": "list", + "member": { + "locationName": "OccurenceDay", + "type": "integer" + } + }, + "OccurrenceRelativeToEnd": { + "type": "boolean" + }, + "OccurrenceUnit": {} + } + }, + "FirstSlotStartTimeRange": { + "type": "structure", + "required": [ + "EarliestTime", + "LatestTime" + ], + "members": { + "EarliestTime": { + "type": "timestamp" + }, + "LatestTime": { + "type": "timestamp" + } + } + }, + "MinSlotDurationInHours": { + "type": "integer" + }, + "MaxSlotDurationInHours": { + "type": "integer" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": { + "locationName": "nextToken" + }, + "ScheduledInstanceAvailabilitySet": { + "locationName": "scheduledInstanceAvailabilitySet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceType": { + "locationName": "instanceType" + }, + "Platform": { + "locationName": "platform" + }, + "NetworkPlatform": { + "locationName": "networkPlatform" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "PurchaseToken": { + "locationName": "purchaseToken" + }, + "SlotDurationInHours": { + "locationName": "slotDurationInHours", + "type": "integer" + }, + "Recurrence": { + "shape": "Se4", + "locationName": "recurrence" + }, + "FirstSlotStartTime": { + "locationName": "firstSlotStartTime", + "type": "timestamp" + }, + "HourlyPrice": { + "locationName": "hourlyPrice" + }, + "TotalScheduledInstanceHours": { + "locationName": "totalScheduledInstanceHours", + "type": "integer" + }, + "AvailableInstanceCount": { + "locationName": "availableInstanceCount", + "type": "integer" + }, + "MinTermDurationInDays": { + "locationName": "minTermDurationInDays", + "type": "integer" + }, + "MaxTermDurationInDays": { + "locationName": "maxTermDurationInDays", + "type": "integer" + } + } + } + } + } + } + }, + "DescribeScheduledInstances": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ScheduledInstanceIds": { + "locationName": "ScheduledInstanceId", + "type": "list", + "member": { + "locationName": "ScheduledInstanceId" + } + }, + "SlotStartTimeRange": { + "type": "structure", + "members": { + "EarliestTime": { + "type": "timestamp" + }, + "LatestTime": { + "type": "timestamp" + } + } + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": { + "locationName": "nextToken" + }, + "ScheduledInstanceSet": { + "locationName": "scheduledInstanceSet", + "type": "list", + "member": { + "shape": "Seb", + "locationName": "item" + } + } + } + } + }, + "DescribeSecurityGroupReferences": { + "input": { + "type": "structure", + "required": [ + "GroupId" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupId": { + "type": "list", + "member": { + "locationName": "item" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "SecurityGroupReferenceSet": { + "locationName": "securityGroupReferenceSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "GroupId", + "ReferencingVpcId" + ], + "members": { + "GroupId": { + "locationName": "groupId" + }, + "ReferencingVpcId": { + "locationName": "referencingVpcId" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + } + } + } + } + } + } + }, + "DescribeSecurityGroups": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupNames": { + "shape": "Sei", + "locationName": "GroupName" + }, + "GroupIds": { + "shape": "St", + "locationName": "GroupId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "SecurityGroups": { + "locationName": "securityGroupInfo", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "OwnerId": { + "locationName": "ownerId" + }, + "GroupName": { + "locationName": "groupName" + }, + "GroupId": { + "locationName": "groupId" + }, + "Description": { + "locationName": "groupDescription" + }, + "IpPermissions": { + "shape": "S16", + "locationName": "ipPermissions" + }, + "IpPermissionsEgress": { + "shape": "S16", + "locationName": "ipPermissionsEgress" + }, + "VpcId": { + "locationName": "vpcId" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + } + } + } + } + }, + "DescribeSnapshotAttribute": { + "input": { + "type": "structure", + "required": [ + "SnapshotId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SnapshotId": {}, + "Attribute": {} + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotId": { + "locationName": "snapshotId" + }, + "CreateVolumePermissions": { + "shape": "Sep", + "locationName": "createVolumePermission" + }, + "ProductCodes": { + "shape": "S9v", + "locationName": "productCodes" + } + } + } + }, + "DescribeSnapshots": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SnapshotIds": { + "locationName": "SnapshotId", + "type": "list", + "member": { + "locationName": "SnapshotId" + } + }, + "OwnerIds": { + "shape": "Sa1", + "locationName": "Owner" + }, + "RestorableByUserIds": { + "locationName": "RestorableBy", + "type": "list", + "member": {} + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Snapshots": { + "locationName": "snapshotSet", + "type": "list", + "member": { + "shape": "S5h", + "locationName": "item" + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeSpotDatafeedSubscription": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "SpotDatafeedSubscription": { + "shape": "S5l", + "locationName": "spotDatafeedSubscription" + } + } + } + }, + "DescribeSpotFleetInstances": { + "input": { + "type": "structure", + "required": [ + "SpotFleetRequestId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SpotFleetRequestId", + "ActiveInstances" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "ActiveInstances": { + "locationName": "activeInstanceSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceType": { + "locationName": "instanceType" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "SpotInstanceRequestId": { + "locationName": "spotInstanceRequestId" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeSpotFleetRequestHistory": { + "input": { + "type": "structure", + "required": [ + "SpotFleetRequestId", + "StartTime" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "EventType": { + "locationName": "eventType" + }, + "StartTime": { + "locationName": "startTime", + "type": "timestamp" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SpotFleetRequestId", + "StartTime", + "LastEvaluatedTime", + "HistoryRecords" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "StartTime": { + "locationName": "startTime", + "type": "timestamp" + }, + "LastEvaluatedTime": { + "locationName": "lastEvaluatedTime", + "type": "timestamp" + }, + "HistoryRecords": { + "locationName": "historyRecordSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "Timestamp", + "EventType", + "EventInformation" + ], + "members": { + "Timestamp": { + "locationName": "timestamp", + "type": "timestamp" + }, + "EventType": { + "locationName": "eventType" + }, + "EventInformation": { + "locationName": "eventInformation", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "EventSubType": { + "locationName": "eventSubType" + }, + "EventDescription": { + "locationName": "eventDescription" + } + } + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeSpotFleetRequests": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotFleetRequestIds": { + "shape": "S27", + "locationName": "spotFleetRequestId" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SpotFleetRequestConfigs" + ], + "members": { + "SpotFleetRequestConfigs": { + "locationName": "spotFleetRequestConfigSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "SpotFleetRequestId", + "SpotFleetRequestState", + "SpotFleetRequestConfig", + "CreateTime" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "SpotFleetRequestState": { + "locationName": "spotFleetRequestState" + }, + "SpotFleetRequestConfig": { + "shape": "Sfc", + "locationName": "spotFleetRequestConfig" + }, + "CreateTime": { + "locationName": "createTime", + "type": "timestamp" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeSpotInstanceRequests": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotInstanceRequestIds": { + "shape": "S2h", + "locationName": "SpotInstanceRequestId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "SpotInstanceRequests": { + "shape": "Sfp", + "locationName": "spotInstanceRequestSet" + } + } + } + }, + "DescribeSpotPriceHistory": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "StartTime": { + "locationName": "startTime", + "type": "timestamp" + }, + "EndTime": { + "locationName": "endTime", + "type": "timestamp" + }, + "InstanceTypes": { + "locationName": "InstanceType", + "type": "list", + "member": {} + }, + "ProductDescriptions": { + "locationName": "ProductDescription", + "type": "list", + "member": {} + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + }, + "NextToken": { + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "SpotPriceHistory": { + "locationName": "spotPriceHistorySet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceType": { + "locationName": "instanceType" + }, + "ProductDescription": { + "locationName": "productDescription" + }, + "SpotPrice": { + "locationName": "spotPrice" + }, + "Timestamp": { + "locationName": "timestamp", + "type": "timestamp" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeStaleSecurityGroups": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "StaleSecurityGroupSet": { + "locationName": "staleSecurityGroupSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "GroupId" + ], + "members": { + "GroupId": { + "locationName": "groupId" + }, + "GroupName": { + "locationName": "groupName" + }, + "Description": { + "locationName": "description" + }, + "VpcId": { + "locationName": "vpcId" + }, + "StaleIpPermissions": { + "shape": "Sg8", + "locationName": "staleIpPermissions" + }, + "StaleIpPermissionsEgress": { + "shape": "Sg8", + "locationName": "staleIpPermissionsEgress" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeSubnets": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SubnetIds": { + "locationName": "SubnetId", + "type": "list", + "member": { + "locationName": "SubnetId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "Subnets": { + "locationName": "subnetSet", + "type": "list", + "member": { + "shape": "S5q", + "locationName": "item" + } + } + } + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + }, + "NextToken": { + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "locationName": "tagSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ResourceId": { + "locationName": "resourceId" + }, + "ResourceType": { + "locationName": "resourceType" + }, + "Key": { + "locationName": "key" + }, + "Value": { + "locationName": "value" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeVolumeAttribute": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": {}, + "Attribute": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeId": { + "locationName": "volumeId" + }, + "AutoEnableIO": { + "shape": "Sat", + "locationName": "autoEnableIO" + }, + "ProductCodes": { + "shape": "S9v", + "locationName": "productCodes" + } + } + } + }, + "DescribeVolumeStatus": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeIds": { + "shape": "Sgq", + "locationName": "VolumeId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeStatuses": { + "locationName": "volumeStatusSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "VolumeId": { + "locationName": "volumeId" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "VolumeStatus": { + "locationName": "volumeStatus", + "type": "structure", + "members": { + "Status": { + "locationName": "status" + }, + "Details": { + "locationName": "details", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Name": { + "locationName": "name" + }, + "Status": { + "locationName": "status" + } + } + } + } + } + }, + "Events": { + "locationName": "eventsSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "EventType": { + "locationName": "eventType" + }, + "Description": { + "locationName": "description" + }, + "NotBefore": { + "locationName": "notBefore", + "type": "timestamp" + }, + "NotAfter": { + "locationName": "notAfter", + "type": "timestamp" + }, + "EventId": { + "locationName": "eventId" + } + } + } + }, + "Actions": { + "locationName": "actionsSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "Description": { + "locationName": "description" + }, + "EventType": { + "locationName": "eventType" + }, + "EventId": { + "locationName": "eventId" + } + } + } + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeVolumes": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeIds": { + "shape": "Sgq", + "locationName": "VolumeId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "NextToken": { + "locationName": "nextToken" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Volumes": { + "locationName": "volumeSet", + "type": "list", + "member": { + "shape": "S5v", + "locationName": "item" + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeVpcAttribute": { + "input": { + "type": "structure", + "required": [ + "VpcId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": {}, + "Attribute": {} + } + }, + "output": { + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "EnableDnsSupport": { + "shape": "Sat", + "locationName": "enableDnsSupport" + }, + "EnableDnsHostnames": { + "shape": "Sat", + "locationName": "enableDnsHostnames" + } + } + } + }, + "DescribeVpcClassicLink": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcIds": { + "shape": "Sha", + "locationName": "VpcId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "Vpcs": { + "locationName": "vpcSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "ClassicLinkEnabled": { + "locationName": "classicLinkEnabled", + "type": "boolean" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + } + } + } + } + }, + "DescribeVpcClassicLinkDnsSupport": { + "input": { + "type": "structure", + "members": { + "VpcIds": { + "shape": "Sha" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + }, + "NextToken": { + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Vpcs": { + "locationName": "vpcs", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "ClassicLinkDnsSupported": { + "locationName": "classicLinkDnsSupported", + "type": "boolean" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeVpcEndpointServices": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ServiceNames": { + "shape": "S27", + "locationName": "serviceNameSet" + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeVpcEndpoints": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcEndpointIds": { + "shape": "S27", + "locationName": "VpcEndpointId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "VpcEndpoints": { + "locationName": "vpcEndpointSet", + "type": "list", + "member": { + "shape": "S65", + "locationName": "item" + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "DescribeVpcPeeringConnections": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcPeeringConnectionIds": { + "shape": "S27", + "locationName": "VpcPeeringConnectionId" + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "VpcPeeringConnections": { + "locationName": "vpcPeeringConnectionSet", + "type": "list", + "member": { + "shape": "S5", + "locationName": "item" + } + } + } + } + }, + "DescribeVpcs": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcIds": { + "locationName": "VpcId", + "type": "list", + "member": { + "locationName": "VpcId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "Vpcs": { + "locationName": "vpcSet", + "type": "list", + "member": { + "shape": "S61", + "locationName": "item" + } + } + } + } + }, + "DescribeVpnConnections": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpnConnectionIds": { + "locationName": "VpnConnectionId", + "type": "list", + "member": { + "locationName": "VpnConnectionId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "VpnConnections": { + "locationName": "vpnConnectionSet", + "type": "list", + "member": { + "shape": "S6c", + "locationName": "item" + } + } + } + } + }, + "DescribeVpnGateways": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpnGatewayIds": { + "locationName": "VpnGatewayId", + "type": "list", + "member": { + "locationName": "VpnGatewayId" + } + }, + "Filters": { + "shape": "S7t", + "locationName": "Filter" + } + } + }, + "output": { + "type": "structure", + "members": { + "VpnGateways": { + "locationName": "vpnGatewaySet", + "type": "list", + "member": { + "shape": "S6o", + "locationName": "item" + } + } + } + } + }, + "DetachClassicLinkVpc": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "VpcId": { + "locationName": "vpcId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "DetachInternetGateway": { + "input": { + "type": "structure", + "required": [ + "InternetGatewayId", + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InternetGatewayId": { + "locationName": "internetGatewayId" + }, + "VpcId": { + "locationName": "vpcId" + } + } + } + }, + "DetachNetworkInterface": { + "input": { + "type": "structure", + "required": [ + "AttachmentId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "AttachmentId": { + "locationName": "attachmentId" + }, + "Force": { + "locationName": "force", + "type": "boolean" + } + } + } + }, + "DetachVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": {}, + "InstanceId": {}, + "Device": {}, + "Force": { + "type": "boolean" + } + } + }, + "output": { + "shape": "Sz" + } + }, + "DetachVpnGateway": { + "input": { + "type": "structure", + "required": [ + "VpnGatewayId", + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpnGatewayId": {}, + "VpcId": {} + } + } + }, + "DisableVgwRoutePropagation": { + "input": { + "type": "structure", + "required": [ + "RouteTableId", + "GatewayId" + ], + "members": { + "RouteTableId": {}, + "GatewayId": {} + } + } + }, + "DisableVpcClassicLink": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": { + "locationName": "vpcId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "DisableVpcClassicLinkDnsSupport": { + "input": { + "type": "structure", + "members": { + "VpcId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "DisassociateAddress": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "PublicIp": {}, + "AssociationId": {} + } + } + }, + "DisassociateRouteTable": { + "input": { + "type": "structure", + "required": [ + "AssociationId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "AssociationId": { + "locationName": "associationId" + } + } + } + }, + "EnableVgwRoutePropagation": { + "input": { + "type": "structure", + "required": [ + "RouteTableId", + "GatewayId" + ], + "members": { + "RouteTableId": {}, + "GatewayId": {} + } + } + }, + "EnableVolumeIO": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": { + "locationName": "volumeId" + } + } + } + }, + "EnableVpcClassicLink": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcId": { + "locationName": "vpcId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "EnableVpcClassicLinkDnsSupport": { + "input": { + "type": "structure", + "members": { + "VpcId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "GetConsoleOutput": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "Timestamp": { + "locationName": "timestamp", + "type": "timestamp" + }, + "Output": { + "locationName": "output" + } + } + } + }, + "GetConsoleScreenshot": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": {}, + "WakeUp": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "ImageData": { + "locationName": "imageData" + } + } + } + }, + "GetPasswordData": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "Timestamp": { + "locationName": "timestamp", + "type": "timestamp" + }, + "PasswordData": { + "locationName": "passwordData" + } + } + } + }, + "ImportImage": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Description": {}, + "DiskContainers": { + "locationName": "DiskContainer", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Description": {}, + "Format": {}, + "Url": {}, + "UserBucket": { + "shape": "Siu" + }, + "DeviceName": {}, + "SnapshotId": {} + } + } + }, + "LicenseType": {}, + "Hypervisor": {}, + "Architecture": {}, + "Platform": {}, + "ClientData": { + "shape": "Siv" + }, + "ClientToken": {}, + "RoleName": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImportTaskId": { + "locationName": "importTaskId" + }, + "Architecture": { + "locationName": "architecture" + }, + "LicenseType": { + "locationName": "licenseType" + }, + "Platform": { + "locationName": "platform" + }, + "Hypervisor": { + "locationName": "hypervisor" + }, + "Description": { + "locationName": "description" + }, + "SnapshotDetails": { + "shape": "Sai", + "locationName": "snapshotDetailSet" + }, + "ImageId": { + "locationName": "imageId" + }, + "Progress": { + "locationName": "progress" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "ImportInstance": { + "input": { + "type": "structure", + "required": [ + "Platform" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Description": { + "locationName": "description" + }, + "LaunchSpecification": { + "locationName": "launchSpecification", + "type": "structure", + "members": { + "Architecture": { + "locationName": "architecture" + }, + "GroupNames": { + "shape": "Siz", + "locationName": "GroupName" + }, + "GroupIds": { + "shape": "S4i", + "locationName": "GroupId" + }, + "AdditionalInfo": { + "locationName": "additionalInfo" + }, + "UserData": { + "locationName": "userData", + "type": "structure", + "members": { + "Data": { + "locationName": "data" + } + } + }, + "InstanceType": { + "locationName": "instanceType" + }, + "Placement": { + "shape": "Sbj", + "locationName": "placement" + }, + "Monitoring": { + "locationName": "monitoring", + "type": "boolean" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "InstanceInitiatedShutdownBehavior": { + "locationName": "instanceInitiatedShutdownBehavior" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + } + } + }, + "DiskImages": { + "locationName": "diskImage", + "type": "list", + "member": { + "type": "structure", + "members": { + "Image": { + "shape": "Sj4" + }, + "Description": {}, + "Volume": { + "shape": "Sj5" + } + } + } + }, + "Platform": { + "locationName": "platform" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConversionTask": { + "shape": "S8k", + "locationName": "conversionTask" + } + } + } + }, + "ImportKeyPair": { + "input": { + "type": "structure", + "required": [ + "KeyName", + "PublicKeyMaterial" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "KeyName": { + "locationName": "keyName" + }, + "PublicKeyMaterial": { + "locationName": "publicKeyMaterial", + "type": "blob" + } + } + }, + "output": { + "type": "structure", + "members": { + "KeyName": { + "locationName": "keyName" + }, + "KeyFingerprint": { + "locationName": "keyFingerprint" + } + } + } + }, + "ImportSnapshot": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Description": {}, + "DiskContainer": { + "type": "structure", + "members": { + "Description": {}, + "Format": {}, + "Url": {}, + "UserBucket": { + "shape": "Siu" + } + } + }, + "ClientData": { + "shape": "Siv" + }, + "ClientToken": {}, + "RoleName": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImportTaskId": { + "locationName": "importTaskId" + }, + "SnapshotTaskDetail": { + "shape": "Sap", + "locationName": "snapshotTaskDetail" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "ImportVolume": { + "input": { + "type": "structure", + "required": [ + "AvailabilityZone", + "Image", + "Volume" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Image": { + "shape": "Sj4", + "locationName": "image" + }, + "Description": { + "locationName": "description" + }, + "Volume": { + "shape": "Sj5", + "locationName": "volume" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConversionTask": { + "shape": "S8k", + "locationName": "conversionTask" + } + } + } + }, + "ModifyHosts": { + "input": { + "type": "structure", + "required": [ + "HostIds", + "AutoPlacement" + ], + "members": { + "HostIds": { + "shape": "S9a", + "locationName": "hostId" + }, + "AutoPlacement": { + "locationName": "autoPlacement" + } + } + }, + "output": { + "type": "structure", + "members": { + "Successful": { + "shape": "Sk", + "locationName": "successful" + }, + "Unsuccessful": { + "shape": "Sjg", + "locationName": "unsuccessful" + } + } + } + }, + "ModifyIdFormat": { + "input": { + "type": "structure", + "required": [ + "Resource", + "UseLongIds" + ], + "members": { + "Resource": {}, + "UseLongIds": { + "type": "boolean" + } + } + } + }, + "ModifyImageAttribute": { + "input": { + "type": "structure", + "required": [ + "ImageId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageId": {}, + "Attribute": {}, + "OperationType": {}, + "UserIds": { + "shape": "Sjk", + "locationName": "UserId" + }, + "UserGroups": { + "locationName": "UserGroup", + "type": "list", + "member": { + "locationName": "UserGroup" + } + }, + "ProductCodes": { + "locationName": "ProductCode", + "type": "list", + "member": { + "locationName": "ProductCode" + } + }, + "Value": {}, + "LaunchPermission": { + "type": "structure", + "members": { + "Add": { + "shape": "S9s" + }, + "Remove": { + "shape": "S9s" + } + } + }, + "Description": { + "shape": "S34" + } + } + } + }, + "ModifyInstanceAttribute": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "Attribute": { + "locationName": "attribute" + }, + "Value": { + "locationName": "value" + }, + "BlockDeviceMappings": { + "locationName": "blockDeviceMapping", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "DeviceName": { + "locationName": "deviceName" + }, + "Ebs": { + "locationName": "ebs", + "type": "structure", + "members": { + "VolumeId": { + "locationName": "volumeId" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + } + } + }, + "VirtualName": { + "locationName": "virtualName" + }, + "NoDevice": { + "locationName": "noDevice" + } + } + } + }, + "SourceDestCheck": { + "shape": "Sat" + }, + "DisableApiTermination": { + "shape": "Sat", + "locationName": "disableApiTermination" + }, + "InstanceType": { + "shape": "S34", + "locationName": "instanceType" + }, + "Kernel": { + "shape": "S34", + "locationName": "kernel" + }, + "Ramdisk": { + "shape": "S34", + "locationName": "ramdisk" + }, + "UserData": { + "locationName": "userData", + "type": "structure", + "members": { + "Value": { + "locationName": "value", + "type": "blob" + } + } + }, + "InstanceInitiatedShutdownBehavior": { + "shape": "S34", + "locationName": "instanceInitiatedShutdownBehavior" + }, + "Groups": { + "shape": "St", + "locationName": "GroupId" + }, + "EbsOptimized": { + "shape": "Sat", + "locationName": "ebsOptimized" + }, + "SriovNetSupport": { + "shape": "S34", + "locationName": "sriovNetSupport" + } + } + } + }, + "ModifyInstancePlacement": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "Tenancy": { + "locationName": "tenancy" + }, + "Affinity": { + "locationName": "affinity" + }, + "HostId": { + "locationName": "hostId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "ModifyNetworkInterfaceAttribute": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "Description": { + "shape": "S34", + "locationName": "description" + }, + "SourceDestCheck": { + "shape": "Sat", + "locationName": "sourceDestCheck" + }, + "Groups": { + "shape": "S4i", + "locationName": "SecurityGroupId" + }, + "Attachment": { + "locationName": "attachment", + "type": "structure", + "members": { + "AttachmentId": { + "locationName": "attachmentId" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + } + } + } + } + } + }, + "ModifyReservedInstances": { + "input": { + "type": "structure", + "required": [ + "ReservedInstancesIds", + "TargetConfigurations" + ], + "members": { + "ClientToken": { + "locationName": "clientToken" + }, + "ReservedInstancesIds": { + "shape": "Sd0", + "locationName": "ReservedInstancesId" + }, + "TargetConfigurations": { + "locationName": "ReservedInstancesConfigurationSetItemType", + "type": "list", + "member": { + "shape": "Sdm", + "locationName": "item" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesModificationId": { + "locationName": "reservedInstancesModificationId" + } + } + } + }, + "ModifySnapshotAttribute": { + "input": { + "type": "structure", + "required": [ + "SnapshotId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SnapshotId": {}, + "Attribute": {}, + "OperationType": {}, + "UserIds": { + "shape": "Sjk", + "locationName": "UserId" + }, + "GroupNames": { + "shape": "Sei", + "locationName": "UserGroup" + }, + "CreateVolumePermission": { + "type": "structure", + "members": { + "Add": { + "shape": "Sep" + }, + "Remove": { + "shape": "Sep" + } + } + } + } + } + }, + "ModifySpotFleetRequest": { + "input": { + "type": "structure", + "required": [ + "SpotFleetRequestId" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + }, + "TargetCapacity": { + "locationName": "targetCapacity", + "type": "integer" + }, + "ExcessCapacityTerminationPolicy": { + "locationName": "excessCapacityTerminationPolicy" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "ModifySubnetAttribute": { + "input": { + "type": "structure", + "required": [ + "SubnetId" + ], + "members": { + "SubnetId": { + "locationName": "subnetId" + }, + "MapPublicIpOnLaunch": { + "shape": "Sat" + } + } + } + }, + "ModifyVolumeAttribute": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VolumeId": {}, + "AutoEnableIO": { + "shape": "Sat" + } + } + } + }, + "ModifyVpcAttribute": { + "input": { + "type": "structure", + "required": [ + "VpcId" + ], + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "EnableDnsSupport": { + "shape": "Sat" + }, + "EnableDnsHostnames": { + "shape": "Sat" + } + } + } + }, + "ModifyVpcEndpoint": { + "input": { + "type": "structure", + "required": [ + "VpcEndpointId" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcEndpointId": {}, + "ResetPolicy": { + "type": "boolean" + }, + "PolicyDocument": {}, + "AddRouteTableIds": { + "shape": "S27", + "locationName": "AddRouteTableId" + }, + "RemoveRouteTableIds": { + "shape": "S27", + "locationName": "RemoveRouteTableId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "ModifyVpcPeeringConnectionOptions": { + "input": { + "type": "structure", + "required": [ + "VpcPeeringConnectionId" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcPeeringConnectionId": {}, + "RequesterPeeringConnectionOptions": { + "shape": "Skc" + }, + "AccepterPeeringConnectionOptions": { + "shape": "Skc" + } + } + }, + "output": { + "type": "structure", + "members": { + "RequesterPeeringConnectionOptions": { + "shape": "Ske", + "locationName": "requesterPeeringConnectionOptions" + }, + "AccepterPeeringConnectionOptions": { + "shape": "Ske", + "locationName": "accepterPeeringConnectionOptions" + } + } + } + }, + "MonitorInstances": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceMonitorings": { + "shape": "Skh", + "locationName": "instancesSet" + } + } + } + }, + "MoveAddressToVpc": { + "input": { + "type": "structure", + "required": [ + "PublicIp" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "PublicIp": { + "locationName": "publicIp" + } + } + }, + "output": { + "type": "structure", + "members": { + "AllocationId": { + "locationName": "allocationId" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "PurchaseReservedInstancesOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedInstancesOfferingId", + "InstanceCount" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ReservedInstancesOfferingId": {}, + "InstanceCount": { + "type": "integer" + }, + "LimitPrice": { + "locationName": "limitPrice", + "type": "structure", + "members": { + "Amount": { + "locationName": "amount", + "type": "double" + }, + "CurrencyCode": { + "locationName": "currencyCode" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + } + } + } + }, + "PurchaseScheduledInstances": { + "input": { + "type": "structure", + "required": [ + "PurchaseRequests" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "ClientToken": { + "idempotencyToken": true + }, + "PurchaseRequests": { + "locationName": "PurchaseRequest", + "type": "list", + "member": { + "locationName": "PurchaseRequest", + "type": "structure", + "required": [ + "PurchaseToken", + "InstanceCount" + ], + "members": { + "PurchaseToken": {}, + "InstanceCount": { + "type": "integer" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ScheduledInstanceSet": { + "locationName": "scheduledInstanceSet", + "type": "list", + "member": { + "shape": "Seb", + "locationName": "item" + } + } + } + } + }, + "RebootInstances": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + } + } + } + }, + "RegisterImage": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageLocation": {}, + "Name": { + "locationName": "name" + }, + "Description": { + "locationName": "description" + }, + "Architecture": { + "locationName": "architecture" + }, + "KernelId": { + "locationName": "kernelId" + }, + "RamdiskId": { + "locationName": "ramdiskId" + }, + "RootDeviceName": { + "locationName": "rootDeviceName" + }, + "BlockDeviceMappings": { + "shape": "S3d", + "locationName": "BlockDeviceMapping" + }, + "VirtualizationType": { + "locationName": "virtualizationType" + }, + "SriovNetSupport": { + "locationName": "sriovNetSupport" + } + } + }, + "output": { + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + } + } + } + }, + "RejectVpcPeeringConnection": { + "input": { + "type": "structure", + "required": [ + "VpcPeeringConnectionId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Return": { + "locationName": "return", + "type": "boolean" + } + } + } + }, + "ReleaseAddress": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "PublicIp": {}, + "AllocationId": {} + } + } + }, + "ReleaseHosts": { + "input": { + "type": "structure", + "required": [ + "HostIds" + ], + "members": { + "HostIds": { + "shape": "S9a", + "locationName": "hostId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Successful": { + "shape": "Sk", + "locationName": "successful" + }, + "Unsuccessful": { + "shape": "Sjg", + "locationName": "unsuccessful" + } + } + } + }, + "ReplaceNetworkAclAssociation": { + "input": { + "type": "structure", + "required": [ + "AssociationId", + "NetworkAclId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "AssociationId": { + "locationName": "associationId" + }, + "NetworkAclId": { + "locationName": "networkAclId" + } + } + }, + "output": { + "type": "structure", + "members": { + "NewAssociationId": { + "locationName": "newAssociationId" + } + } + } + }, + "ReplaceNetworkAclEntry": { + "input": { + "type": "structure", + "required": [ + "NetworkAclId", + "RuleNumber", + "Protocol", + "RuleAction", + "Egress", + "CidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkAclId": { + "locationName": "networkAclId" + }, + "RuleNumber": { + "locationName": "ruleNumber", + "type": "integer" + }, + "Protocol": { + "locationName": "protocol" + }, + "RuleAction": { + "locationName": "ruleAction" + }, + "Egress": { + "locationName": "egress", + "type": "boolean" + }, + "CidrBlock": { + "locationName": "cidrBlock" + }, + "IcmpTypeCode": { + "shape": "S4c", + "locationName": "Icmp" + }, + "PortRange": { + "shape": "S4d", + "locationName": "portRange" + } + } + } + }, + "ReplaceRoute": { + "input": { + "type": "structure", + "required": [ + "RouteTableId", + "DestinationCidrBlock" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "RouteTableId": { + "locationName": "routeTableId" + }, + "DestinationCidrBlock": { + "locationName": "destinationCidrBlock" + }, + "GatewayId": { + "locationName": "gatewayId" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + }, + "NatGatewayId": { + "locationName": "natGatewayId" + } + } + } + }, + "ReplaceRouteTableAssociation": { + "input": { + "type": "structure", + "required": [ + "AssociationId", + "RouteTableId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "AssociationId": { + "locationName": "associationId" + }, + "RouteTableId": { + "locationName": "routeTableId" + } + } + }, + "output": { + "type": "structure", + "members": { + "NewAssociationId": { + "locationName": "newAssociationId" + } + } + } + }, + "ReportInstanceStatus": { + "input": { + "type": "structure", + "required": [ + "Instances", + "Status", + "ReasonCodes" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "Instances": { + "shape": "S8c", + "locationName": "instanceId" + }, + "Status": { + "locationName": "status" + }, + "StartTime": { + "locationName": "startTime", + "type": "timestamp" + }, + "EndTime": { + "locationName": "endTime", + "type": "timestamp" + }, + "ReasonCodes": { + "locationName": "reasonCode", + "type": "list", + "member": { + "locationName": "item" + } + }, + "Description": { + "locationName": "description" + } + } + } + }, + "RequestSpotFleet": { + "input": { + "type": "structure", + "required": [ + "SpotFleetRequestConfig" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotFleetRequestConfig": { + "shape": "Sfc", + "locationName": "spotFleetRequestConfig" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SpotFleetRequestId" + ], + "members": { + "SpotFleetRequestId": { + "locationName": "spotFleetRequestId" + } + } + } + }, + "RequestSpotInstances": { + "input": { + "type": "structure", + "required": [ + "SpotPrice" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SpotPrice": { + "locationName": "spotPrice" + }, + "ClientToken": { + "locationName": "clientToken" + }, + "InstanceCount": { + "locationName": "instanceCount", + "type": "integer" + }, + "Type": { + "locationName": "type" + }, + "ValidFrom": { + "locationName": "validFrom", + "type": "timestamp" + }, + "ValidUntil": { + "locationName": "validUntil", + "type": "timestamp" + }, + "LaunchGroup": { + "locationName": "launchGroup" + }, + "AvailabilityZoneGroup": { + "locationName": "availabilityZoneGroup" + }, + "BlockDurationMinutes": { + "locationName": "blockDurationMinutes", + "type": "integer" + }, + "LaunchSpecification": { + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + }, + "KeyName": { + "locationName": "keyName" + }, + "SecurityGroups": { + "shape": "S27", + "locationName": "SecurityGroup" + }, + "UserData": { + "locationName": "userData" + }, + "AddressingType": { + "locationName": "addressingType" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "Placement": { + "shape": "Sff", + "locationName": "placement" + }, + "KernelId": { + "locationName": "kernelId" + }, + "RamdiskId": { + "locationName": "ramdiskId" + }, + "BlockDeviceMappings": { + "shape": "S9y", + "locationName": "blockDeviceMapping" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "NetworkInterfaces": { + "shape": "Sfh", + "locationName": "NetworkInterface" + }, + "IamInstanceProfile": { + "shape": "Sfj", + "locationName": "iamInstanceProfile" + }, + "EbsOptimized": { + "locationName": "ebsOptimized", + "type": "boolean" + }, + "Monitoring": { + "shape": "Sfv", + "locationName": "monitoring" + }, + "SecurityGroupIds": { + "shape": "S27", + "locationName": "SecurityGroupId" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "SpotInstanceRequests": { + "shape": "Sfp", + "locationName": "spotInstanceRequestSet" + } + } + } + }, + "ResetImageAttribute": { + "input": { + "type": "structure", + "required": [ + "ImageId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageId": {}, + "Attribute": {} + } + } + }, + "ResetInstanceAttribute": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "Attribute": { + "locationName": "attribute" + } + } + } + }, + "ResetNetworkInterfaceAttribute": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "SourceDestCheck": { + "locationName": "sourceDestCheck" + } + } + } + }, + "ResetSnapshotAttribute": { + "input": { + "type": "structure", + "required": [ + "SnapshotId", + "Attribute" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "SnapshotId": {}, + "Attribute": {} + } + } + }, + "RestoreAddressToClassic": { + "input": { + "type": "structure", + "required": [ + "PublicIp" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "PublicIp": { + "locationName": "publicIp" + } + } + }, + "output": { + "type": "structure", + "members": { + "Status": { + "locationName": "status" + }, + "PublicIp": { + "locationName": "publicIp" + } + } + } + }, + "RevokeSecurityGroupEgress": { + "input": { + "type": "structure", + "required": [ + "GroupId" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupId": { + "locationName": "groupId" + }, + "SourceSecurityGroupName": { + "locationName": "sourceSecurityGroupName" + }, + "SourceSecurityGroupOwnerId": { + "locationName": "sourceSecurityGroupOwnerId" + }, + "IpProtocol": { + "locationName": "ipProtocol" + }, + "FromPort": { + "locationName": "fromPort", + "type": "integer" + }, + "ToPort": { + "locationName": "toPort", + "type": "integer" + }, + "CidrIp": { + "locationName": "cidrIp" + }, + "IpPermissions": { + "shape": "S16", + "locationName": "ipPermissions" + } + } + } + }, + "RevokeSecurityGroupIngress": { + "input": { + "type": "structure", + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "GroupName": {}, + "GroupId": {}, + "SourceSecurityGroupName": {}, + "SourceSecurityGroupOwnerId": {}, + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "CidrIp": {}, + "IpPermissions": { + "shape": "S16" + } + } + } + }, + "RunInstances": { + "input": { + "type": "structure", + "required": [ + "ImageId", + "MinCount", + "MaxCount" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "ImageId": {}, + "MinCount": { + "type": "integer" + }, + "MaxCount": { + "type": "integer" + }, + "KeyName": {}, + "SecurityGroups": { + "shape": "Siz", + "locationName": "SecurityGroup" + }, + "SecurityGroupIds": { + "shape": "S4i", + "locationName": "SecurityGroupId" + }, + "UserData": {}, + "InstanceType": {}, + "Placement": { + "shape": "Sbj" + }, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "shape": "S3d", + "locationName": "BlockDeviceMapping" + }, + "Monitoring": { + "shape": "Sfv" + }, + "SubnetId": {}, + "DisableApiTermination": { + "locationName": "disableApiTermination", + "type": "boolean" + }, + "InstanceInitiatedShutdownBehavior": { + "locationName": "instanceInitiatedShutdownBehavior" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "ClientToken": { + "locationName": "clientToken" + }, + "AdditionalInfo": { + "locationName": "additionalInfo" + }, + "NetworkInterfaces": { + "shape": "Sfh", + "locationName": "networkInterface" + }, + "IamInstanceProfile": { + "shape": "Sfj", + "locationName": "iamInstanceProfile" + }, + "EbsOptimized": { + "locationName": "ebsOptimized", + "type": "boolean" + } + } + }, + "output": { + "shape": "Sbf" + } + }, + "RunScheduledInstances": { + "input": { + "type": "structure", + "required": [ + "ScheduledInstanceId", + "LaunchSpecification" + ], + "members": { + "DryRun": { + "type": "boolean" + }, + "ClientToken": { + "idempotencyToken": true + }, + "InstanceCount": { + "type": "integer" + }, + "ScheduledInstanceId": {}, + "LaunchSpecification": { + "type": "structure", + "required": [ + "ImageId" + ], + "members": { + "ImageId": {}, + "KeyName": {}, + "SecurityGroupIds": { + "shape": "Slt", + "locationName": "SecurityGroupId" + }, + "UserData": {}, + "Placement": { + "type": "structure", + "members": { + "AvailabilityZone": {}, + "GroupName": {} + } + }, + "KernelId": {}, + "InstanceType": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "locationName": "BlockDeviceMapping", + "type": "list", + "member": { + "locationName": "BlockDeviceMapping", + "type": "structure", + "members": { + "DeviceName": {}, + "NoDevice": {}, + "VirtualName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + }, + "Encrypted": { + "type": "boolean" + } + } + } + } + } + }, + "Monitoring": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "SubnetId": {}, + "NetworkInterfaces": { + "locationName": "NetworkInterface", + "type": "list", + "member": { + "locationName": "NetworkInterface", + "type": "structure", + "members": { + "NetworkInterfaceId": {}, + "DeviceIndex": { + "type": "integer" + }, + "SubnetId": {}, + "Description": {}, + "PrivateIpAddress": {}, + "PrivateIpAddressConfigs": { + "locationName": "PrivateIpAddressConfig", + "type": "list", + "member": { + "locationName": "PrivateIpAddressConfigSet", + "type": "structure", + "members": { + "PrivateIpAddress": {}, + "Primary": { + "type": "boolean" + } + } + } + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "Groups": { + "shape": "Slt", + "locationName": "Group" + }, + "DeleteOnTermination": { + "type": "boolean" + } + } + } + }, + "IamInstanceProfile": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {} + } + }, + "EbsOptimized": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceIdSet": { + "locationName": "instanceIdSet", + "type": "list", + "member": { + "locationName": "item" + } + } + } + } + }, + "StartInstances": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + }, + "AdditionalInfo": { + "locationName": "additionalInfo" + }, + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "StartingInstances": { + "shape": "Sm8", + "locationName": "instancesSet" + } + } + } + }, + "StopInstances": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + }, + "Force": { + "locationName": "force", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "StoppingInstances": { + "shape": "Sm8", + "locationName": "instancesSet" + } + } + } + }, + "TerminateInstances": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + } + } + }, + "output": { + "type": "structure", + "members": { + "TerminatingInstances": { + "shape": "Sm8", + "locationName": "instancesSet" + } + } + } + }, + "UnassignPrivateIpAddresses": { + "input": { + "type": "structure", + "required": [ + "NetworkInterfaceId", + "PrivateIpAddresses" + ], + "members": { + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "PrivateIpAddresses": { + "shape": "Sm", + "locationName": "privateIpAddress" + } + } + } + }, + "UnmonitorInstances": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "DryRun": { + "locationName": "dryRun", + "type": "boolean" + }, + "InstanceIds": { + "shape": "S8c", + "locationName": "InstanceId" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceMonitorings": { + "shape": "Skh", + "locationName": "instancesSet" + } + } + } + } + }, + "shapes": { + "S5": { + "type": "structure", + "members": { + "AccepterVpcInfo": { + "shape": "S6", + "locationName": "accepterVpcInfo" + }, + "ExpirationTime": { + "locationName": "expirationTime", + "type": "timestamp" + }, + "RequesterVpcInfo": { + "shape": "S6", + "locationName": "requesterVpcInfo" + }, + "Status": { + "locationName": "status", + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "Message": { + "locationName": "message" + } + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + } + } + }, + "S6": { + "type": "structure", + "members": { + "CidrBlock": { + "locationName": "cidrBlock" + }, + "OwnerId": { + "locationName": "ownerId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "PeeringOptions": { + "locationName": "peeringOptions", + "type": "structure", + "members": { + "AllowEgressFromLocalClassicLinkToRemoteVpc": { + "locationName": "allowEgressFromLocalClassicLinkToRemoteVpc", + "type": "boolean" + }, + "AllowEgressFromLocalVpcToRemoteClassicLink": { + "locationName": "allowEgressFromLocalVpcToRemoteClassicLink", + "type": "boolean" + } + } + } + } + }, + "Sb": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Key": { + "locationName": "key" + }, + "Value": { + "locationName": "value" + } + } + } + }, + "Sk": { + "type": "list", + "member": { + "locationName": "item" + } + }, + "Sm": { + "type": "list", + "member": { + "locationName": "PrivateIpAddress" + } + }, + "St": { + "type": "list", + "member": { + "locationName": "groupId" + } + }, + "Sz": { + "type": "structure", + "members": { + "VolumeId": { + "locationName": "volumeId" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "Device": { + "locationName": "device" + }, + "State": { + "locationName": "status" + }, + "AttachTime": { + "locationName": "attachTime", + "type": "timestamp" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + } + } + }, + "S13": { + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "State": { + "locationName": "state" + } + } + }, + "S16": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "IpProtocol": { + "locationName": "ipProtocol" + }, + "FromPort": { + "locationName": "fromPort", + "type": "integer" + }, + "ToPort": { + "locationName": "toPort", + "type": "integer" + }, + "UserIdGroupPairs": { + "locationName": "groups", + "type": "list", + "member": { + "shape": "S19", + "locationName": "item" + } + }, + "IpRanges": { + "locationName": "ipRanges", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "CidrIp": { + "locationName": "cidrIp" + } + } + } + }, + "PrefixListIds": { + "locationName": "prefixListIds", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "PrefixListId": { + "locationName": "prefixListId" + } + } + } + } + } + } + }, + "S19": { + "type": "structure", + "members": { + "UserId": { + "locationName": "userId" + }, + "GroupName": { + "locationName": "groupName" + }, + "GroupId": { + "locationName": "groupId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + }, + "PeeringStatus": { + "locationName": "peeringStatus" + } + } + }, + "S1g": { + "type": "structure", + "members": { + "S3": { + "type": "structure", + "members": { + "Bucket": { + "locationName": "bucket" + }, + "Prefix": { + "locationName": "prefix" + }, + "AWSAccessKeyId": {}, + "UploadPolicy": { + "locationName": "uploadPolicy", + "type": "blob" + }, + "UploadPolicySignature": { + "locationName": "uploadPolicySignature" + } + } + } + } + }, + "S1k": { + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "BundleId": { + "locationName": "bundleId" + }, + "State": { + "locationName": "state" + }, + "StartTime": { + "locationName": "startTime", + "type": "timestamp" + }, + "UpdateTime": { + "locationName": "updateTime", + "type": "timestamp" + }, + "Storage": { + "shape": "S1g", + "locationName": "storage" + }, + "Progress": { + "locationName": "progress" + }, + "BundleTaskError": { + "locationName": "error", + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "Message": { + "locationName": "message" + } + } + } + } + }, + "S1v": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ReservedInstancesListingId": { + "locationName": "reservedInstancesListingId" + }, + "ReservedInstancesId": { + "locationName": "reservedInstancesId" + }, + "CreateDate": { + "locationName": "createDate", + "type": "timestamp" + }, + "UpdateDate": { + "locationName": "updateDate", + "type": "timestamp" + }, + "Status": { + "locationName": "status" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "InstanceCounts": { + "locationName": "instanceCounts", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "State": { + "locationName": "state" + }, + "InstanceCount": { + "locationName": "instanceCount", + "type": "integer" + } + } + } + }, + "PriceSchedules": { + "locationName": "priceSchedules", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Term": { + "locationName": "term", + "type": "long" + }, + "Price": { + "locationName": "price", + "type": "double" + }, + "CurrencyCode": { + "locationName": "currencyCode" + }, + "Active": { + "locationName": "active", + "type": "boolean" + } + } + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "ClientToken": { + "locationName": "clientToken" + } + } + } + }, + "S27": { + "type": "list", + "member": { + "locationName": "item" + } + }, + "S2h": { + "type": "list", + "member": { + "locationName": "SpotInstanceRequestId" + } + }, + "S2v": { + "type": "structure", + "members": { + "CustomerGatewayId": { + "locationName": "customerGatewayId" + }, + "State": { + "locationName": "state" + }, + "Type": { + "locationName": "type" + }, + "IpAddress": { + "locationName": "ipAddress" + }, + "BgpAsn": { + "locationName": "bgpAsn" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S30": { + "type": "structure", + "members": { + "DhcpOptionsId": { + "locationName": "dhcpOptionsId" + }, + "DhcpConfigurations": { + "locationName": "dhcpConfigurationSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Key": { + "locationName": "key" + }, + "Values": { + "locationName": "valueSet", + "type": "list", + "member": { + "shape": "S34", + "locationName": "item" + } + } + } + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S34": { + "type": "structure", + "members": { + "Value": { + "locationName": "value" + } + } + }, + "S39": { + "type": "list", + "member": { + "shape": "S3a", + "locationName": "item" + } + }, + "S3a": { + "type": "structure", + "required": [ + "Error" + ], + "members": { + "Error": { + "locationName": "error", + "type": "structure", + "required": [ + "Code", + "Message" + ], + "members": { + "Code": { + "locationName": "code" + }, + "Message": { + "locationName": "message" + } + } + }, + "ResourceId": { + "locationName": "resourceId" + } + } + }, + "S3d": { + "type": "list", + "member": { + "shape": "S3e", + "locationName": "BlockDeviceMapping" + } + }, + "S3e": { + "type": "structure", + "members": { + "VirtualName": { + "locationName": "virtualName" + }, + "DeviceName": { + "locationName": "deviceName" + }, + "Ebs": { + "locationName": "ebs", + "type": "structure", + "members": { + "SnapshotId": { + "locationName": "snapshotId" + }, + "VolumeSize": { + "locationName": "volumeSize", + "type": "integer" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + }, + "VolumeType": { + "locationName": "volumeType" + }, + "Iops": { + "locationName": "iops", + "type": "integer" + }, + "Encrypted": { + "locationName": "encrypted", + "type": "boolean" + } + } + }, + "NoDevice": { + "locationName": "noDevice" + } + } + }, + "S3o": { + "type": "structure", + "members": { + "ExportTaskId": { + "locationName": "exportTaskId" + }, + "Description": { + "locationName": "description" + }, + "State": { + "locationName": "state" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "InstanceExportDetails": { + "locationName": "instanceExport", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "TargetEnvironment": { + "locationName": "targetEnvironment" + } + } + }, + "ExportToS3Task": { + "locationName": "exportToS3", + "type": "structure", + "members": { + "DiskImageFormat": { + "locationName": "diskImageFormat" + }, + "ContainerFormat": { + "locationName": "containerFormat" + }, + "S3Bucket": { + "locationName": "s3Bucket" + }, + "S3Key": { + "locationName": "s3Key" + } + } + } + } + }, + "S3u": { + "type": "structure", + "members": { + "InternetGatewayId": { + "locationName": "internetGatewayId" + }, + "Attachments": { + "locationName": "attachmentSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "State": { + "locationName": "state" + } + } + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S41": { + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "NatGatewayId": { + "locationName": "natGatewayId" + }, + "CreateTime": { + "locationName": "createTime", + "type": "timestamp" + }, + "DeleteTime": { + "locationName": "deleteTime", + "type": "timestamp" + }, + "NatGatewayAddresses": { + "locationName": "natGatewayAddressSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "PublicIp": { + "locationName": "publicIp" + }, + "AllocationId": { + "locationName": "allocationId" + }, + "PrivateIp": { + "locationName": "privateIp" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + } + } + } + }, + "State": { + "locationName": "state" + }, + "FailureCode": { + "locationName": "failureCode" + }, + "FailureMessage": { + "locationName": "failureMessage" + }, + "ProvisionedBandwidth": { + "locationName": "provisionedBandwidth", + "type": "structure", + "members": { + "Provisioned": { + "locationName": "provisioned" + }, + "Requested": { + "locationName": "requested" + }, + "RequestTime": { + "locationName": "requestTime", + "type": "timestamp" + }, + "ProvisionTime": { + "locationName": "provisionTime", + "type": "timestamp" + }, + "Status": { + "locationName": "status" + } + } + } + } + }, + "S48": { + "type": "structure", + "members": { + "NetworkAclId": { + "locationName": "networkAclId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "IsDefault": { + "locationName": "default", + "type": "boolean" + }, + "Entries": { + "locationName": "entrySet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "RuleNumber": { + "locationName": "ruleNumber", + "type": "integer" + }, + "Protocol": { + "locationName": "protocol" + }, + "RuleAction": { + "locationName": "ruleAction" + }, + "Egress": { + "locationName": "egress", + "type": "boolean" + }, + "CidrBlock": { + "locationName": "cidrBlock" + }, + "IcmpTypeCode": { + "shape": "S4c", + "locationName": "icmpTypeCode" + }, + "PortRange": { + "shape": "S4d", + "locationName": "portRange" + } + } + } + }, + "Associations": { + "locationName": "associationSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "NetworkAclAssociationId": { + "locationName": "networkAclAssociationId" + }, + "NetworkAclId": { + "locationName": "networkAclId" + }, + "SubnetId": { + "locationName": "subnetId" + } + } + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S4c": { + "type": "structure", + "members": { + "Type": { + "locationName": "type", + "type": "integer" + }, + "Code": { + "locationName": "code", + "type": "integer" + } + } + }, + "S4d": { + "type": "structure", + "members": { + "From": { + "locationName": "from", + "type": "integer" + }, + "To": { + "locationName": "to", + "type": "integer" + } + } + }, + "S4i": { + "type": "list", + "member": { + "locationName": "SecurityGroupId" + } + }, + "S4j": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "PrivateIpAddress" + ], + "members": { + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "Primary": { + "locationName": "primary", + "type": "boolean" + } + } + } + }, + "S4m": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Description": { + "locationName": "description" + }, + "OwnerId": { + "locationName": "ownerId" + }, + "RequesterId": { + "locationName": "requesterId" + }, + "RequesterManaged": { + "locationName": "requesterManaged", + "type": "boolean" + }, + "Status": { + "locationName": "status" + }, + "MacAddress": { + "locationName": "macAddress" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "PrivateDnsName": { + "locationName": "privateDnsName" + }, + "SourceDestCheck": { + "locationName": "sourceDestCheck", + "type": "boolean" + }, + "Groups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "Attachment": { + "shape": "S4q", + "locationName": "attachment" + }, + "Association": { + "shape": "S4r", + "locationName": "association" + }, + "TagSet": { + "shape": "Sb", + "locationName": "tagSet" + }, + "PrivateIpAddresses": { + "locationName": "privateIpAddressesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "PrivateDnsName": { + "locationName": "privateDnsName" + }, + "Primary": { + "locationName": "primary", + "type": "boolean" + }, + "Association": { + "shape": "S4r", + "locationName": "association" + } + } + } + }, + "InterfaceType": { + "locationName": "interfaceType" + } + } + }, + "S4o": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "GroupName": { + "locationName": "groupName" + }, + "GroupId": { + "locationName": "groupId" + } + } + } + }, + "S4q": { + "type": "structure", + "members": { + "AttachmentId": { + "locationName": "attachmentId" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "InstanceOwnerId": { + "locationName": "instanceOwnerId" + }, + "DeviceIndex": { + "locationName": "deviceIndex", + "type": "integer" + }, + "Status": { + "locationName": "status" + }, + "AttachTime": { + "locationName": "attachTime", + "type": "timestamp" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + } + } + }, + "S4r": { + "type": "structure", + "members": { + "PublicIp": { + "locationName": "publicIp" + }, + "PublicDnsName": { + "locationName": "publicDnsName" + }, + "IpOwnerId": { + "locationName": "ipOwnerId" + }, + "AllocationId": { + "locationName": "allocationId" + }, + "AssociationId": { + "locationName": "associationId" + } + } + }, + "S55": { + "type": "structure", + "members": { + "RouteTableId": { + "locationName": "routeTableId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "Routes": { + "locationName": "routeSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "DestinationCidrBlock": { + "locationName": "destinationCidrBlock" + }, + "DestinationPrefixListId": { + "locationName": "destinationPrefixListId" + }, + "GatewayId": { + "locationName": "gatewayId" + }, + "InstanceId": { + "locationName": "instanceId" + }, + "InstanceOwnerId": { + "locationName": "instanceOwnerId" + }, + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "VpcPeeringConnectionId": { + "locationName": "vpcPeeringConnectionId" + }, + "NatGatewayId": { + "locationName": "natGatewayId" + }, + "State": { + "locationName": "state" + }, + "Origin": { + "locationName": "origin" + } + } + } + }, + "Associations": { + "locationName": "associationSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "RouteTableAssociationId": { + "locationName": "routeTableAssociationId" + }, + "RouteTableId": { + "locationName": "routeTableId" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "Main": { + "locationName": "main", + "type": "boolean" + } + } + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "PropagatingVgws": { + "locationName": "propagatingVgwSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "GatewayId": { + "locationName": "gatewayId" + } + } + } + } + } + }, + "S5h": { + "type": "structure", + "members": { + "SnapshotId": { + "locationName": "snapshotId" + }, + "VolumeId": { + "locationName": "volumeId" + }, + "State": { + "locationName": "status" + }, + "StateMessage": { + "locationName": "statusMessage" + }, + "StartTime": { + "locationName": "startTime", + "type": "timestamp" + }, + "Progress": { + "locationName": "progress" + }, + "OwnerId": { + "locationName": "ownerId" + }, + "Description": { + "locationName": "description" + }, + "VolumeSize": { + "locationName": "volumeSize", + "type": "integer" + }, + "OwnerAlias": { + "locationName": "ownerAlias" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "Encrypted": { + "locationName": "encrypted", + "type": "boolean" + }, + "KmsKeyId": { + "locationName": "kmsKeyId" + }, + "DataEncryptionKeyId": { + "locationName": "dataEncryptionKeyId" + } + } + }, + "S5l": { + "type": "structure", + "members": { + "OwnerId": { + "locationName": "ownerId" + }, + "Bucket": { + "locationName": "bucket" + }, + "Prefix": { + "locationName": "prefix" + }, + "State": { + "locationName": "state" + }, + "Fault": { + "shape": "S5n", + "locationName": "fault" + } + } + }, + "S5n": { + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "Message": { + "locationName": "message" + } + } + }, + "S5q": { + "type": "structure", + "members": { + "SubnetId": { + "locationName": "subnetId" + }, + "State": { + "locationName": "state" + }, + "VpcId": { + "locationName": "vpcId" + }, + "CidrBlock": { + "locationName": "cidrBlock" + }, + "AvailableIpAddressCount": { + "locationName": "availableIpAddressCount", + "type": "integer" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "DefaultForAz": { + "locationName": "defaultForAz", + "type": "boolean" + }, + "MapPublicIpOnLaunch": { + "locationName": "mapPublicIpOnLaunch", + "type": "boolean" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S5t": { + "type": "list", + "member": {} + }, + "S5v": { + "type": "structure", + "members": { + "VolumeId": { + "locationName": "volumeId" + }, + "Size": { + "locationName": "size", + "type": "integer" + }, + "SnapshotId": { + "locationName": "snapshotId" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "State": { + "locationName": "status" + }, + "CreateTime": { + "locationName": "createTime", + "type": "timestamp" + }, + "Attachments": { + "locationName": "attachmentSet", + "type": "list", + "member": { + "shape": "Sz", + "locationName": "item" + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "VolumeType": { + "locationName": "volumeType" + }, + "Iops": { + "locationName": "iops", + "type": "integer" + }, + "Encrypted": { + "locationName": "encrypted", + "type": "boolean" + }, + "KmsKeyId": { + "locationName": "kmsKeyId" + } + } + }, + "S61": { + "type": "structure", + "members": { + "VpcId": { + "locationName": "vpcId" + }, + "State": { + "locationName": "state" + }, + "CidrBlock": { + "locationName": "cidrBlock" + }, + "DhcpOptionsId": { + "locationName": "dhcpOptionsId" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "InstanceTenancy": { + "locationName": "instanceTenancy" + }, + "IsDefault": { + "locationName": "isDefault", + "type": "boolean" + } + } + }, + "S65": { + "type": "structure", + "members": { + "VpcEndpointId": { + "locationName": "vpcEndpointId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "ServiceName": { + "locationName": "serviceName" + }, + "State": { + "locationName": "state" + }, + "PolicyDocument": { + "locationName": "policyDocument" + }, + "RouteTableIds": { + "shape": "S27", + "locationName": "routeTableIdSet" + }, + "CreationTimestamp": { + "locationName": "creationTimestamp", + "type": "timestamp" + } + } + }, + "S6c": { + "type": "structure", + "members": { + "VpnConnectionId": { + "locationName": "vpnConnectionId" + }, + "State": { + "locationName": "state" + }, + "CustomerGatewayConfiguration": { + "locationName": "customerGatewayConfiguration" + }, + "Type": { + "locationName": "type" + }, + "CustomerGatewayId": { + "locationName": "customerGatewayId" + }, + "VpnGatewayId": { + "locationName": "vpnGatewayId" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "VgwTelemetry": { + "locationName": "vgwTelemetry", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "OutsideIpAddress": { + "locationName": "outsideIpAddress" + }, + "Status": { + "locationName": "status" + }, + "LastStatusChange": { + "locationName": "lastStatusChange", + "type": "timestamp" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "AcceptedRouteCount": { + "locationName": "acceptedRouteCount", + "type": "integer" + } + } + } + }, + "Options": { + "locationName": "options", + "type": "structure", + "members": { + "StaticRoutesOnly": { + "locationName": "staticRoutesOnly", + "type": "boolean" + } + } + }, + "Routes": { + "locationName": "routes", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "DestinationCidrBlock": { + "locationName": "destinationCidrBlock" + }, + "Source": { + "locationName": "source" + }, + "State": { + "locationName": "state" + } + } + } + } + } + }, + "S6o": { + "type": "structure", + "members": { + "VpnGatewayId": { + "locationName": "vpnGatewayId" + }, + "State": { + "locationName": "state" + }, + "Type": { + "locationName": "type" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "VpcAttachments": { + "locationName": "attachments", + "type": "list", + "member": { + "shape": "S13", + "locationName": "item" + } + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S7t": { + "type": "list", + "member": { + "locationName": "Filter", + "type": "structure", + "members": { + "Name": {}, + "Values": { + "shape": "S27", + "locationName": "Value" + } + } + } + }, + "S8c": { + "type": "list", + "member": { + "locationName": "InstanceId" + } + }, + "S8k": { + "type": "structure", + "required": [ + "ConversionTaskId", + "State" + ], + "members": { + "ConversionTaskId": { + "locationName": "conversionTaskId" + }, + "ExpirationTime": { + "locationName": "expirationTime" + }, + "ImportInstance": { + "locationName": "importInstance", + "type": "structure", + "required": [ + "Volumes" + ], + "members": { + "Volumes": { + "locationName": "volumes", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "required": [ + "BytesConverted", + "AvailabilityZone", + "Image", + "Volume", + "Status" + ], + "members": { + "BytesConverted": { + "locationName": "bytesConverted", + "type": "long" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Image": { + "shape": "S8o", + "locationName": "image" + }, + "Volume": { + "shape": "S8p", + "locationName": "volume" + }, + "Status": { + "locationName": "status" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "InstanceId": { + "locationName": "instanceId" + }, + "Platform": { + "locationName": "platform" + }, + "Description": { + "locationName": "description" + } + } + }, + "ImportVolume": { + "locationName": "importVolume", + "type": "structure", + "required": [ + "BytesConverted", + "AvailabilityZone", + "Image", + "Volume" + ], + "members": { + "BytesConverted": { + "locationName": "bytesConverted", + "type": "long" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Description": { + "locationName": "description" + }, + "Image": { + "shape": "S8o", + "locationName": "image" + }, + "Volume": { + "shape": "S8p", + "locationName": "volume" + } + } + }, + "State": { + "locationName": "state" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + } + } + }, + "S8o": { + "type": "structure", + "required": [ + "Format", + "Size", + "ImportManifestUrl" + ], + "members": { + "Format": { + "locationName": "format" + }, + "Size": { + "locationName": "size", + "type": "long" + }, + "ImportManifestUrl": { + "locationName": "importManifestUrl" + }, + "Checksum": { + "locationName": "checksum" + } + } + }, + "S8p": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Size": { + "locationName": "size", + "type": "long" + }, + "Id": { + "locationName": "id" + } + } + }, + "S9a": { + "type": "list", + "member": { + "locationName": "item" + } + }, + "S9s": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "UserId": { + "locationName": "userId" + }, + "Group": { + "locationName": "group" + } + } + } + }, + "S9v": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ProductCodeId": { + "locationName": "productCode" + }, + "ProductCodeType": { + "locationName": "type" + } + } + } + }, + "S9y": { + "type": "list", + "member": { + "shape": "S3e", + "locationName": "item" + } + }, + "Sa1": { + "type": "list", + "member": { + "locationName": "Owner" + } + }, + "Sa9": { + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "Message": { + "locationName": "message" + } + } + }, + "Sae": { + "type": "list", + "member": { + "locationName": "ImportTaskId" + } + }, + "Sai": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "DiskImageSize": { + "locationName": "diskImageSize", + "type": "double" + }, + "Description": { + "locationName": "description" + }, + "Format": { + "locationName": "format" + }, + "Url": { + "locationName": "url" + }, + "UserBucket": { + "shape": "Sak", + "locationName": "userBucket" + }, + "DeviceName": { + "locationName": "deviceName" + }, + "SnapshotId": { + "locationName": "snapshotId" + }, + "Progress": { + "locationName": "progress" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "Sak": { + "type": "structure", + "members": { + "S3Bucket": { + "locationName": "s3Bucket" + }, + "S3Key": { + "locationName": "s3Key" + } + } + }, + "Sap": { + "type": "structure", + "members": { + "DiskImageSize": { + "locationName": "diskImageSize", + "type": "double" + }, + "Description": { + "locationName": "description" + }, + "Format": { + "locationName": "format" + }, + "Url": { + "locationName": "url" + }, + "UserBucket": { + "shape": "Sak", + "locationName": "userBucket" + }, + "SnapshotId": { + "locationName": "snapshotId" + }, + "Progress": { + "locationName": "progress" + }, + "StatusMessage": { + "locationName": "statusMessage" + }, + "Status": { + "locationName": "status" + } + } + }, + "Sat": { + "type": "structure", + "members": { + "Value": { + "locationName": "value", + "type": "boolean" + } + } + }, + "Sau": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "DeviceName": { + "locationName": "deviceName" + }, + "Ebs": { + "locationName": "ebs", + "type": "structure", + "members": { + "VolumeId": { + "locationName": "volumeId" + }, + "Status": { + "locationName": "status" + }, + "AttachTime": { + "locationName": "attachTime", + "type": "timestamp" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + } + } + } + } + } + }, + "Sb4": { + "type": "structure", + "members": { + "Code": { + "locationName": "code", + "type": "integer" + }, + "Name": { + "locationName": "name" + } + } + }, + "Sb6": { + "type": "structure", + "members": { + "Status": { + "locationName": "status" + }, + "Details": { + "locationName": "details", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Name": { + "locationName": "name" + }, + "Status": { + "locationName": "status" + }, + "ImpairedSince": { + "locationName": "impairedSince", + "type": "timestamp" + } + } + } + } + } + }, + "Sbf": { + "type": "structure", + "members": { + "ReservationId": { + "locationName": "reservationId" + }, + "OwnerId": { + "locationName": "ownerId" + }, + "RequesterId": { + "locationName": "requesterId" + }, + "Groups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "Instances": { + "locationName": "instancesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "ImageId": { + "locationName": "imageId" + }, + "State": { + "shape": "Sb4", + "locationName": "instanceState" + }, + "PrivateDnsName": { + "locationName": "privateDnsName" + }, + "PublicDnsName": { + "locationName": "dnsName" + }, + "StateTransitionReason": { + "locationName": "reason" + }, + "KeyName": { + "locationName": "keyName" + }, + "AmiLaunchIndex": { + "locationName": "amiLaunchIndex", + "type": "integer" + }, + "ProductCodes": { + "shape": "S9v", + "locationName": "productCodes" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "LaunchTime": { + "locationName": "launchTime", + "type": "timestamp" + }, + "Placement": { + "shape": "Sbj", + "locationName": "placement" + }, + "KernelId": { + "locationName": "kernelId" + }, + "RamdiskId": { + "locationName": "ramdiskId" + }, + "Platform": { + "locationName": "platform" + }, + "Monitoring": { + "shape": "Sbk", + "locationName": "monitoring" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "PublicIpAddress": { + "locationName": "ipAddress" + }, + "StateReason": { + "shape": "Sa9", + "locationName": "stateReason" + }, + "Architecture": { + "locationName": "architecture" + }, + "RootDeviceType": { + "locationName": "rootDeviceType" + }, + "RootDeviceName": { + "locationName": "rootDeviceName" + }, + "BlockDeviceMappings": { + "shape": "Sau", + "locationName": "blockDeviceMapping" + }, + "VirtualizationType": { + "locationName": "virtualizationType" + }, + "InstanceLifecycle": { + "locationName": "instanceLifecycle" + }, + "SpotInstanceRequestId": { + "locationName": "spotInstanceRequestId" + }, + "ClientToken": { + "locationName": "clientToken" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "SecurityGroups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "SourceDestCheck": { + "locationName": "sourceDestCheck", + "type": "boolean" + }, + "Hypervisor": { + "locationName": "hypervisor" + }, + "NetworkInterfaces": { + "locationName": "networkInterfaceSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "VpcId": { + "locationName": "vpcId" + }, + "Description": { + "locationName": "description" + }, + "OwnerId": { + "locationName": "ownerId" + }, + "Status": { + "locationName": "status" + }, + "MacAddress": { + "locationName": "macAddress" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "PrivateDnsName": { + "locationName": "privateDnsName" + }, + "SourceDestCheck": { + "locationName": "sourceDestCheck", + "type": "boolean" + }, + "Groups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "Attachment": { + "locationName": "attachment", + "type": "structure", + "members": { + "AttachmentId": { + "locationName": "attachmentId" + }, + "DeviceIndex": { + "locationName": "deviceIndex", + "type": "integer" + }, + "Status": { + "locationName": "status" + }, + "AttachTime": { + "locationName": "attachTime", + "type": "timestamp" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + } + } + }, + "Association": { + "shape": "Sbq", + "locationName": "association" + }, + "PrivateIpAddresses": { + "locationName": "privateIpAddressesSet", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "PrivateDnsName": { + "locationName": "privateDnsName" + }, + "Primary": { + "locationName": "primary", + "type": "boolean" + }, + "Association": { + "shape": "Sbq", + "locationName": "association" + } + } + } + } + } + } + }, + "IamInstanceProfile": { + "locationName": "iamInstanceProfile", + "type": "structure", + "members": { + "Arn": { + "locationName": "arn" + }, + "Id": { + "locationName": "id" + } + } + }, + "EbsOptimized": { + "locationName": "ebsOptimized", + "type": "boolean" + }, + "SriovNetSupport": { + "locationName": "sriovNetSupport" + } + } + } + } + } + }, + "Sbj": { + "type": "structure", + "members": { + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "GroupName": { + "locationName": "groupName" + }, + "Tenancy": { + "locationName": "tenancy" + }, + "HostId": { + "locationName": "hostId" + }, + "Affinity": { + "locationName": "affinity" + } + } + }, + "Sbk": { + "type": "structure", + "members": { + "State": { + "locationName": "state" + } + } + }, + "Sbq": { + "type": "structure", + "members": { + "PublicIp": { + "locationName": "publicIp" + }, + "PublicDnsName": { + "locationName": "publicDnsName" + }, + "IpOwnerId": { + "locationName": "ipOwnerId" + } + } + }, + "Sd0": { + "type": "list", + "member": { + "locationName": "ReservedInstancesId" + } + }, + "Sd8": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "Frequency": { + "locationName": "frequency" + }, + "Amount": { + "locationName": "amount", + "type": "double" + } + } + } + }, + "Sdm": { + "type": "structure", + "members": { + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "Platform": { + "locationName": "platform" + }, + "InstanceCount": { + "locationName": "instanceCount", + "type": "integer" + }, + "InstanceType": { + "locationName": "instanceType" + } + } + }, + "Se4": { + "type": "structure", + "members": { + "Frequency": { + "locationName": "frequency" + }, + "Interval": { + "locationName": "interval", + "type": "integer" + }, + "OccurrenceDaySet": { + "locationName": "occurrenceDaySet", + "type": "list", + "member": { + "locationName": "item", + "type": "integer" + } + }, + "OccurrenceRelativeToEnd": { + "locationName": "occurrenceRelativeToEnd", + "type": "boolean" + }, + "OccurrenceUnit": { + "locationName": "occurrenceUnit" + } + } + }, + "Seb": { + "type": "structure", + "members": { + "ScheduledInstanceId": { + "locationName": "scheduledInstanceId" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "Platform": { + "locationName": "platform" + }, + "NetworkPlatform": { + "locationName": "networkPlatform" + }, + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "SlotDurationInHours": { + "locationName": "slotDurationInHours", + "type": "integer" + }, + "Recurrence": { + "shape": "Se4", + "locationName": "recurrence" + }, + "PreviousSlotEndTime": { + "locationName": "previousSlotEndTime", + "type": "timestamp" + }, + "NextSlotStartTime": { + "locationName": "nextSlotStartTime", + "type": "timestamp" + }, + "HourlyPrice": { + "locationName": "hourlyPrice" + }, + "TotalScheduledInstanceHours": { + "locationName": "totalScheduledInstanceHours", + "type": "integer" + }, + "InstanceCount": { + "locationName": "instanceCount", + "type": "integer" + }, + "TermStartDate": { + "locationName": "termStartDate", + "type": "timestamp" + }, + "TermEndDate": { + "locationName": "termEndDate", + "type": "timestamp" + }, + "CreateDate": { + "locationName": "createDate", + "type": "timestamp" + } + } + }, + "Sei": { + "type": "list", + "member": { + "locationName": "GroupName" + } + }, + "Sep": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "UserId": { + "locationName": "userId" + }, + "Group": { + "locationName": "group" + } + } + } + }, + "Sfc": { + "type": "structure", + "required": [ + "SpotPrice", + "TargetCapacity", + "IamFleetRole", + "LaunchSpecifications" + ], + "members": { + "ClientToken": { + "locationName": "clientToken" + }, + "SpotPrice": { + "locationName": "spotPrice" + }, + "TargetCapacity": { + "locationName": "targetCapacity", + "type": "integer" + }, + "ValidFrom": { + "locationName": "validFrom", + "type": "timestamp" + }, + "ValidUntil": { + "locationName": "validUntil", + "type": "timestamp" + }, + "TerminateInstancesWithExpiration": { + "locationName": "terminateInstancesWithExpiration", + "type": "boolean" + }, + "IamFleetRole": { + "locationName": "iamFleetRole" + }, + "LaunchSpecifications": { + "locationName": "launchSpecifications", + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + }, + "KeyName": { + "locationName": "keyName" + }, + "SecurityGroups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "UserData": { + "locationName": "userData" + }, + "AddressingType": { + "locationName": "addressingType" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "Placement": { + "shape": "Sff", + "locationName": "placement" + }, + "KernelId": { + "locationName": "kernelId" + }, + "RamdiskId": { + "locationName": "ramdiskId" + }, + "BlockDeviceMappings": { + "shape": "S9y", + "locationName": "blockDeviceMapping" + }, + "Monitoring": { + "locationName": "monitoring", + "type": "structure", + "members": { + "Enabled": { + "locationName": "enabled", + "type": "boolean" + } + } + }, + "SubnetId": { + "locationName": "subnetId" + }, + "NetworkInterfaces": { + "shape": "Sfh", + "locationName": "networkInterfaceSet" + }, + "IamInstanceProfile": { + "shape": "Sfj", + "locationName": "iamInstanceProfile" + }, + "EbsOptimized": { + "locationName": "ebsOptimized", + "type": "boolean" + }, + "WeightedCapacity": { + "locationName": "weightedCapacity", + "type": "double" + }, + "SpotPrice": { + "locationName": "spotPrice" + } + } + } + }, + "ExcessCapacityTerminationPolicy": { + "locationName": "excessCapacityTerminationPolicy" + }, + "AllocationStrategy": { + "locationName": "allocationStrategy" + }, + "FulfilledCapacity": { + "locationName": "fulfilledCapacity", + "type": "double" + }, + "Type": { + "locationName": "type" + } + } + }, + "Sff": { + "type": "structure", + "members": { + "AvailabilityZone": { + "locationName": "availabilityZone" + }, + "GroupName": { + "locationName": "groupName" + } + } + }, + "Sfh": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "NetworkInterfaceId": { + "locationName": "networkInterfaceId" + }, + "DeviceIndex": { + "locationName": "deviceIndex", + "type": "integer" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "Description": { + "locationName": "description" + }, + "PrivateIpAddress": { + "locationName": "privateIpAddress" + }, + "Groups": { + "shape": "S4i", + "locationName": "SecurityGroupId" + }, + "DeleteOnTermination": { + "locationName": "deleteOnTermination", + "type": "boolean" + }, + "PrivateIpAddresses": { + "shape": "S4j", + "locationName": "privateIpAddressesSet", + "queryName": "PrivateIpAddresses" + }, + "SecondaryPrivateIpAddressCount": { + "locationName": "secondaryPrivateIpAddressCount", + "type": "integer" + }, + "AssociatePublicIpAddress": { + "locationName": "associatePublicIpAddress", + "type": "boolean" + } + } + } + }, + "Sfj": { + "type": "structure", + "members": { + "Arn": { + "locationName": "arn" + }, + "Name": { + "locationName": "name" + } + } + }, + "Sfp": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "SpotInstanceRequestId": { + "locationName": "spotInstanceRequestId" + }, + "SpotPrice": { + "locationName": "spotPrice" + }, + "Type": { + "locationName": "type" + }, + "State": { + "locationName": "state" + }, + "Fault": { + "shape": "S5n", + "locationName": "fault" + }, + "Status": { + "locationName": "status", + "type": "structure", + "members": { + "Code": { + "locationName": "code" + }, + "UpdateTime": { + "locationName": "updateTime", + "type": "timestamp" + }, + "Message": { + "locationName": "message" + } + } + }, + "ValidFrom": { + "locationName": "validFrom", + "type": "timestamp" + }, + "ValidUntil": { + "locationName": "validUntil", + "type": "timestamp" + }, + "LaunchGroup": { + "locationName": "launchGroup" + }, + "AvailabilityZoneGroup": { + "locationName": "availabilityZoneGroup" + }, + "LaunchSpecification": { + "locationName": "launchSpecification", + "type": "structure", + "members": { + "ImageId": { + "locationName": "imageId" + }, + "KeyName": { + "locationName": "keyName" + }, + "SecurityGroups": { + "shape": "S4o", + "locationName": "groupSet" + }, + "UserData": { + "locationName": "userData" + }, + "AddressingType": { + "locationName": "addressingType" + }, + "InstanceType": { + "locationName": "instanceType" + }, + "Placement": { + "shape": "Sff", + "locationName": "placement" + }, + "KernelId": { + "locationName": "kernelId" + }, + "RamdiskId": { + "locationName": "ramdiskId" + }, + "BlockDeviceMappings": { + "shape": "S9y", + "locationName": "blockDeviceMapping" + }, + "SubnetId": { + "locationName": "subnetId" + }, + "NetworkInterfaces": { + "shape": "Sfh", + "locationName": "networkInterfaceSet" + }, + "IamInstanceProfile": { + "shape": "Sfj", + "locationName": "iamInstanceProfile" + }, + "EbsOptimized": { + "locationName": "ebsOptimized", + "type": "boolean" + }, + "Monitoring": { + "shape": "Sfv", + "locationName": "monitoring" + } + } + }, + "InstanceId": { + "locationName": "instanceId" + }, + "CreateTime": { + "locationName": "createTime", + "type": "timestamp" + }, + "ProductDescription": { + "locationName": "productDescription" + }, + "BlockDurationMinutes": { + "locationName": "blockDurationMinutes", + "type": "integer" + }, + "ActualBlockHourlyPrice": { + "locationName": "actualBlockHourlyPrice" + }, + "Tags": { + "shape": "Sb", + "locationName": "tagSet" + }, + "LaunchedAvailabilityZone": { + "locationName": "launchedAvailabilityZone" + } + } + } + }, + "Sfv": { + "type": "structure", + "required": [ + "Enabled" + ], + "members": { + "Enabled": { + "locationName": "enabled", + "type": "boolean" + } + } + }, + "Sg8": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "FromPort": { + "locationName": "fromPort", + "type": "integer" + }, + "IpProtocol": { + "locationName": "ipProtocol" + }, + "IpRanges": { + "locationName": "ipRanges", + "type": "list", + "member": { + "locationName": "item" + } + }, + "PrefixListIds": { + "locationName": "prefixListIds", + "type": "list", + "member": { + "locationName": "item" + } + }, + "ToPort": { + "locationName": "toPort", + "type": "integer" + }, + "UserIdGroupPairs": { + "locationName": "groups", + "type": "list", + "member": { + "shape": "S19", + "locationName": "item" + } + } + } + } + }, + "Sgq": { + "type": "list", + "member": { + "locationName": "VolumeId" + } + }, + "Sha": { + "type": "list", + "member": { + "locationName": "VpcId" + } + }, + "Siu": { + "type": "structure", + "members": { + "S3Bucket": {}, + "S3Key": {} + } + }, + "Siv": { + "type": "structure", + "members": { + "UploadStart": { + "type": "timestamp" + }, + "UploadEnd": { + "type": "timestamp" + }, + "UploadSize": { + "type": "double" + }, + "Comment": {} + } + }, + "Siz": { + "type": "list", + "member": { + "locationName": "SecurityGroup" + } + }, + "Sj4": { + "type": "structure", + "required": [ + "Format", + "Bytes", + "ImportManifestUrl" + ], + "members": { + "Format": { + "locationName": "format" + }, + "Bytes": { + "locationName": "bytes", + "type": "long" + }, + "ImportManifestUrl": { + "locationName": "importManifestUrl" + } + } + }, + "Sj5": { + "type": "structure", + "required": [ + "Size" + ], + "members": { + "Size": { + "locationName": "size", + "type": "long" + } + } + }, + "Sjg": { + "type": "list", + "member": { + "shape": "S3a", + "locationName": "item" + } + }, + "Sjk": { + "type": "list", + "member": { + "locationName": "UserId" + } + }, + "Skc": { + "type": "structure", + "required": [ + "AllowEgressFromLocalClassicLinkToRemoteVpc", + "AllowEgressFromLocalVpcToRemoteClassicLink" + ], + "members": { + "AllowEgressFromLocalClassicLinkToRemoteVpc": { + "type": "boolean" + }, + "AllowEgressFromLocalVpcToRemoteClassicLink": { + "type": "boolean" + } + } + }, + "Ske": { + "type": "structure", + "members": { + "AllowEgressFromLocalClassicLinkToRemoteVpc": { + "locationName": "allowEgressFromLocalClassicLinkToRemoteVpc", + "type": "boolean" + }, + "AllowEgressFromLocalVpcToRemoteClassicLink": { + "locationName": "allowEgressFromLocalVpcToRemoteClassicLink", + "type": "boolean" + } + } + }, + "Skh": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "Monitoring": { + "shape": "Sbk", + "locationName": "monitoring" + } + } + } + }, + "Slt": { + "type": "list", + "member": { + "locationName": "SecurityGroupId" + } + }, + "Sm8": { + "type": "list", + "member": { + "locationName": "item", + "type": "structure", + "members": { + "InstanceId": { + "locationName": "instanceId" + }, + "CurrentState": { + "shape": "Sb4", + "locationName": "currentState" + }, + "PreviousState": { + "shape": "Sb4", + "locationName": "previousState" + } + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.paginators.json new file mode 100755 index 0000000..9d04d89 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.paginators.json @@ -0,0 +1,138 @@ +{ + "pagination": { + "DescribeAccountAttributes": { + "result_key": "AccountAttributes" + }, + "DescribeAddresses": { + "result_key": "Addresses" + }, + "DescribeAvailabilityZones": { + "result_key": "AvailabilityZones" + }, + "DescribeBundleTasks": { + "result_key": "BundleTasks" + }, + "DescribeConversionTasks": { + "result_key": "ConversionTasks" + }, + "DescribeCustomerGateways": { + "result_key": "CustomerGateways" + }, + "DescribeDhcpOptions": { + "result_key": "DhcpOptions" + }, + "DescribeExportTasks": { + "result_key": "ExportTasks" + }, + "DescribeImages": { + "result_key": "Images" + }, + "DescribeInstanceStatus": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "InstanceStatuses" + }, + "DescribeInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Reservations" + }, + "DescribeInternetGateways": { + "result_key": "InternetGateways" + }, + "DescribeKeyPairs": { + "result_key": "KeyPairs" + }, + "DescribeNetworkAcls": { + "result_key": "NetworkAcls" + }, + "DescribeNetworkInterfaces": { + "result_key": "NetworkInterfaces" + }, + "DescribePlacementGroups": { + "result_key": "PlacementGroups" + }, + "DescribeRegions": { + "result_key": "Regions" + }, + "DescribeReservedInstances": { + "result_key": "ReservedInstances" + }, + "DescribeReservedInstancesListings": { + "result_key": "ReservedInstancesListings" + }, + "DescribeReservedInstancesOfferings": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ReservedInstancesOfferings" + }, + "DescribeReservedInstancesModifications": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "ReservedInstancesModifications" + }, + "DescribeRouteTables": { + "result_key": "RouteTables" + }, + "DescribeSecurityGroups": { + "result_key": "SecurityGroups" + }, + "DescribeSnapshots": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Snapshots" + }, + "DescribeSpotInstanceRequests": { + "result_key": "SpotInstanceRequests" + }, + "DescribeSpotFleetRequests": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SpotFleetRequestConfigs" + }, + "DescribeSpotPriceHistory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SpotPriceHistory" + }, + "DescribeSubnets": { + "result_key": "Subnets" + }, + "DescribeTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Tags" + }, + "DescribeVolumeStatus": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "VolumeStatuses" + }, + "DescribeVolumes": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Volumes" + }, + "DescribeVpcs": { + "result_key": "Vpcs" + }, + "DescribeVpcPeeringConnections": { + "result_key": "VpcPeeringConnections" + }, + "DescribeVpnConnections": { + "result_key": "VpnConnections" + }, + "DescribeVpnGateways": { + "result_key": "VpnGateways" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.waiters2.json new file mode 100755 index 0000000..6560dcf --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ec2-2015-10-01.waiters2.json @@ -0,0 +1,576 @@ +{ + "version": 2, + "waiters": { + "InstanceExists": { + "delay": 5, + "maxAttempts": 40, + "operation": "DescribeInstances", + "acceptors": [ + { + "matcher": "path", + "expected": true, + "argument": "length(Reservations[]) > `0`", + "state": "success" + }, + { + "matcher": "error", + "expected": "InvalidInstanceID.NotFound", + "state": "retry" + } + ] + }, + "BundleTaskComplete": { + "delay": 15, + "operation": "DescribeBundleTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "complete", + "matcher": "pathAll", + "state": "success", + "argument": "BundleTasks[].State" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "BundleTasks[].State" + } + ] + }, + "ConversionTaskCancelled": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "cancelled", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + } + ] + }, + "ConversionTaskCompleted": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + }, + { + "expected": "cancelled", + "matcher": "pathAny", + "state": "failure", + "argument": "ConversionTasks[].State" + }, + { + "expected": "cancelling", + "matcher": "pathAny", + "state": "failure", + "argument": "ConversionTasks[].State" + } + ] + }, + "ConversionTaskDeleted": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + } + ] + }, + "CustomerGatewayAvailable": { + "delay": 15, + "operation": "DescribeCustomerGateways", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "CustomerGateways[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "CustomerGateways[].State" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "CustomerGateways[].State" + } + ] + }, + "ExportTaskCancelled": { + "delay": 15, + "operation": "DescribeExportTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "cancelled", + "matcher": "pathAll", + "state": "success", + "argument": "ExportTasks[].State" + } + ] + }, + "ExportTaskCompleted": { + "delay": 15, + "operation": "DescribeExportTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ExportTasks[].State" + } + ] + }, + "ImageExists": { + "operation": "DescribeImages", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "matcher": "path", + "expected": true, + "argument": "length(Images[]) > `0`", + "state": "success" + }, + { + "matcher": "error", + "expected": "InvalidAMIID.NotFound", + "state": "retry" + } + ] + }, + "ImageAvailable": { + "operation": "DescribeImages", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Images[].State", + "expected": "available" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Images[].State", + "expected": "failed" + } + ] + }, + "InstanceRunning": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "running", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "shutting-down", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "matcher": "error", + "expected": "InvalidInstanceID.NotFound", + "state": "retry" + } + ] + }, + "InstanceStatusOk": { + "operation": "DescribeInstanceStatus", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "InstanceStatuses[].InstanceStatus.Status", + "expected": "ok" + }, + { + "matcher": "error", + "expected": "InvalidInstanceID.NotFound", + "state": "retry" + } + ] + }, + "InstanceStopped": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "stopped", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "InstanceTerminated": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "terminated", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "KeyPairExists": { + "operation": "DescribeKeyPairs", + "delay": 5, + "maxAttempts": 6, + "acceptors": [ + { + "expected": true, + "matcher": "pathAll", + "state": "success", + "argument": "length(KeyPairs[].KeyName) > `0`" + }, + { + "expected": "InvalidKeyPair.NotFound", + "matcher": "error", + "state": "retry" + } + ] + }, + "NatGatewayAvailable": { + "operation": "DescribeNatGateways", + "delay": 15, + "maxAttempts": 40, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "NatGateways[].State", + "expected": "available" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "NatGateways[].State", + "expected": "failed" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "NatGateways[].State", + "expected": "deleting" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "NatGateways[].State", + "expected": "deleted" + }, + { + "state": "retry", + "matcher": "error", + "expected": "NatGatewayNotFound" + } + ] + }, + "NetworkInterfaceAvailable": { + "operation": "DescribeNetworkInterfaces", + "delay": 20, + "maxAttempts": 10, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "NetworkInterfaces[].Status" + }, + { + "expected": "InvalidNetworkInterfaceID.NotFound", + "matcher": "error", + "state": "failure" + } + ] + }, + "PasswordDataAvailable": { + "operation": "GetPasswordData", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "length(PasswordData) > `0`", + "expected": true + } + ] + }, + "SnapshotCompleted": { + "delay": 15, + "operation": "DescribeSnapshots", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "Snapshots[].State" + } + ] + }, + "SpotInstanceRequestFulfilled": { + "operation": "DescribeSpotInstanceRequests", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "fulfilled" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "schedule-expired" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "canceled-before-fulfillment" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "bad-parameters" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "system-error" + } + ] + }, + "SubnetAvailable": { + "delay": 15, + "operation": "DescribeSubnets", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Subnets[].State" + } + ] + }, + "SystemStatusOk": { + "operation": "DescribeInstanceStatus", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "InstanceStatuses[].SystemStatus.Status", + "expected": "ok" + } + ] + }, + "VolumeAvailable": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Volumes[].State" + } + ] + }, + "VolumeDeleted": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "matcher": "error", + "expected": "InvalidVolume.NotFound", + "state": "success" + } + ] + }, + "VolumeInUse": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "in-use", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Volumes[].State" + } + ] + }, + "VpcAvailable": { + "delay": 15, + "operation": "DescribeVpcs", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Vpcs[].State" + } + ] + }, + "VpnConnectionAvailable": { + "delay": 15, + "operation": "DescribeVpnConnections", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "VpnConnections[].State" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + } + ] + }, + "VpnConnectionDeleted": { + "delay": 15, + "operation": "DescribeVpnConnections", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "VpnConnections[].State" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + } + ] + }, + "VpcPeeringConnectionExists": { + "delay": 15, + "operation": "DescribeVpcPeeringConnections", + "maxAttempts": 40, + "acceptors": [ + { + "matcher": "status", + "expected": 200, + "state": "success" + }, + { + "matcher": "error", + "expected": "InvalidVpcPeeringConnectionID.NotFound", + "state": "retry" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecr-2015-09-21.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecr-2015-09-21.min.json new file mode 100755 index 0000000..1890d5b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecr-2015-09-21.min.json @@ -0,0 +1,484 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-09-21", + "endpointPrefix": "ecr", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Amazon ECR", + "serviceFullName": "Amazon EC2 Container Registry", + "signatureVersion": "v4", + "targetPrefix": "AmazonEC2ContainerRegistry_V20150921" + }, + "operations": { + "BatchCheckLayerAvailability": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "layerDigests" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "layerDigests": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "layers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "layerDigest": {}, + "layerAvailability": {}, + "layerSize": { + "type": "long" + } + } + } + }, + "failures": { + "type": "list", + "member": { + "type": "structure", + "members": { + "layerDigest": {}, + "failureCode": {}, + "failureReason": {} + } + } + } + } + } + }, + "BatchDeleteImage": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "imageIds" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "imageIds": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": { + "imageIds": { + "shape": "Sh" + }, + "failures": { + "shape": "Sm" + } + } + } + }, + "BatchGetImage": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "imageIds" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "imageIds": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": { + "images": { + "type": "list", + "member": { + "shape": "St" + } + }, + "failures": { + "shape": "Sm" + } + } + } + }, + "CompleteLayerUpload": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "uploadId", + "layerDigests" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "uploadId": {}, + "layerDigests": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryName": {}, + "uploadId": {}, + "layerDigest": {} + } + } + }, + "CreateRepository": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "repository": { + "shape": "S11" + } + } + } + }, + "DeleteRepository": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "force": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "repository": { + "shape": "S11" + } + } + } + }, + "DeleteRepositoryPolicy": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "registryId": {}, + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryName": {}, + "policyText": {} + } + } + }, + "DescribeRepositories": { + "input": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryNames": { + "type": "list", + "member": {} + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "repositories": { + "type": "list", + "member": { + "shape": "S11" + } + }, + "nextToken": {} + } + } + }, + "GetAuthorizationToken": { + "input": { + "type": "structure", + "members": { + "registryIds": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "authorizationData": { + "type": "list", + "member": { + "type": "structure", + "members": { + "authorizationToken": {}, + "expiresAt": { + "type": "timestamp" + }, + "proxyEndpoint": {} + } + } + } + } + } + }, + "GetDownloadUrlForLayer": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "layerDigest" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "layerDigest": {} + } + }, + "output": { + "type": "structure", + "members": { + "downloadUrl": {}, + "layerDigest": {} + } + } + }, + "GetRepositoryPolicy": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "registryId": {}, + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryName": {}, + "policyText": {} + } + } + }, + "InitiateLayerUpload": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "registryId": {}, + "repositoryName": {} + } + }, + "output": { + "type": "structure", + "members": { + "uploadId": {}, + "partSize": { + "type": "long" + } + } + } + }, + "ListImages": { + "input": { + "type": "structure", + "required": [ + "repositoryName" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "imageIds": { + "shape": "Sh" + }, + "nextToken": {} + } + } + }, + "PutImage": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "imageManifest" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "imageManifest": {} + } + }, + "output": { + "type": "structure", + "members": { + "image": { + "shape": "St" + } + } + } + }, + "SetRepositoryPolicy": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "policyText" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "policyText": {}, + "force": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryName": {}, + "policyText": {} + } + } + }, + "UploadLayerPart": { + "input": { + "type": "structure", + "required": [ + "repositoryName", + "uploadId", + "partFirstByte", + "partLastByte", + "layerPartBlob" + ], + "members": { + "registryId": {}, + "repositoryName": {}, + "uploadId": {}, + "partFirstByte": { + "type": "long" + }, + "partLastByte": { + "type": "long" + }, + "layerPartBlob": { + "type": "blob" + } + } + }, + "output": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryName": {}, + "uploadId": {}, + "lastByteReceived": { + "type": "long" + } + } + } + } + }, + "shapes": { + "Sh": { + "type": "list", + "member": { + "shape": "Si" + } + }, + "Si": { + "type": "structure", + "members": { + "imageDigest": {}, + "imageTag": {} + } + }, + "Sm": { + "type": "list", + "member": { + "type": "structure", + "members": { + "imageId": { + "shape": "Si" + }, + "failureCode": {}, + "failureReason": {} + } + } + }, + "St": { + "type": "structure", + "members": { + "registryId": {}, + "repositoryName": {}, + "imageId": { + "shape": "Si" + }, + "imageManifest": {} + } + }, + "S11": { + "type": "structure", + "members": { + "repositoryArn": {}, + "registryId": {}, + "repositoryName": {}, + "repositoryUri": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.min.json new file mode 100755 index 0000000..045185b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.min.json @@ -0,0 +1,1126 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-11-13", + "endpointPrefix": "ecs", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Amazon ECS", + "serviceFullName": "Amazon EC2 Container Service", + "signatureVersion": "v4", + "targetPrefix": "AmazonEC2ContainerServiceV20141113" + }, + "operations": { + "CreateCluster": { + "input": { + "type": "structure", + "members": { + "clusterName": {} + } + }, + "output": { + "type": "structure", + "members": { + "cluster": { + "shape": "S4" + } + } + } + }, + "CreateService": { + "input": { + "type": "structure", + "required": [ + "serviceName", + "taskDefinition", + "desiredCount" + ], + "members": { + "cluster": {}, + "serviceName": {}, + "taskDefinition": {}, + "loadBalancers": { + "shape": "S7" + }, + "desiredCount": { + "type": "integer" + }, + "clientToken": {}, + "role": {}, + "deploymentConfiguration": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": { + "service": { + "shape": "Sc" + } + } + } + }, + "DeleteCluster": { + "input": { + "type": "structure", + "required": [ + "cluster" + ], + "members": { + "cluster": {} + } + }, + "output": { + "type": "structure", + "members": { + "cluster": { + "shape": "S4" + } + } + } + }, + "DeleteService": { + "input": { + "type": "structure", + "required": [ + "service" + ], + "members": { + "cluster": {}, + "service": {} + } + }, + "output": { + "type": "structure", + "members": { + "service": { + "shape": "Sc" + } + } + } + }, + "DeregisterContainerInstance": { + "input": { + "type": "structure", + "required": [ + "containerInstance" + ], + "members": { + "cluster": {}, + "containerInstance": {}, + "force": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "containerInstance": { + "shape": "Sp" + } + } + } + }, + "DeregisterTaskDefinition": { + "input": { + "type": "structure", + "required": [ + "taskDefinition" + ], + "members": { + "taskDefinition": {} + } + }, + "output": { + "type": "structure", + "members": { + "taskDefinition": { + "shape": "S12" + } + } + } + }, + "DescribeClusters": { + "input": { + "type": "structure", + "members": { + "clusters": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "clusters": { + "type": "list", + "member": { + "shape": "S4" + } + }, + "failures": { + "shape": "S1v" + } + } + } + }, + "DescribeContainerInstances": { + "input": { + "type": "structure", + "required": [ + "containerInstances" + ], + "members": { + "cluster": {}, + "containerInstances": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "containerInstances": { + "type": "list", + "member": { + "shape": "Sp" + } + }, + "failures": { + "shape": "S1v" + } + } + } + }, + "DescribeServices": { + "input": { + "type": "structure", + "required": [ + "services" + ], + "members": { + "cluster": {}, + "services": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "services": { + "type": "list", + "member": { + "shape": "Sc" + } + }, + "failures": { + "shape": "S1v" + } + } + } + }, + "DescribeTaskDefinition": { + "input": { + "type": "structure", + "required": [ + "taskDefinition" + ], + "members": { + "taskDefinition": {} + } + }, + "output": { + "type": "structure", + "members": { + "taskDefinition": { + "shape": "S12" + } + } + } + }, + "DescribeTasks": { + "input": { + "type": "structure", + "required": [ + "tasks" + ], + "members": { + "cluster": {}, + "tasks": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "tasks": { + "shape": "S27" + }, + "failures": { + "shape": "S1v" + } + } + } + }, + "DiscoverPollEndpoint": { + "input": { + "type": "structure", + "members": { + "containerInstance": {}, + "cluster": {} + } + }, + "output": { + "type": "structure", + "members": { + "endpoint": {}, + "telemetryEndpoint": {} + } + } + }, + "ListClusters": { + "input": { + "type": "structure", + "members": { + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "clusterArns": { + "shape": "Sv" + }, + "nextToken": {} + } + } + }, + "ListContainerInstances": { + "input": { + "type": "structure", + "members": { + "cluster": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "containerInstanceArns": { + "shape": "Sv" + }, + "nextToken": {} + } + } + }, + "ListServices": { + "input": { + "type": "structure", + "members": { + "cluster": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "serviceArns": { + "shape": "Sv" + }, + "nextToken": {} + } + } + }, + "ListTaskDefinitionFamilies": { + "input": { + "type": "structure", + "members": { + "familyPrefix": {}, + "status": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "families": { + "shape": "Sv" + }, + "nextToken": {} + } + } + }, + "ListTaskDefinitions": { + "input": { + "type": "structure", + "members": { + "familyPrefix": {}, + "status": {}, + "sort": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "taskDefinitionArns": { + "shape": "Sv" + }, + "nextToken": {} + } + } + }, + "ListTasks": { + "input": { + "type": "structure", + "members": { + "cluster": {}, + "containerInstance": {}, + "family": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + }, + "startedBy": {}, + "serviceName": {}, + "desiredStatus": {} + } + }, + "output": { + "type": "structure", + "members": { + "taskArns": { + "shape": "Sv" + }, + "nextToken": {} + } + } + }, + "RegisterContainerInstance": { + "input": { + "type": "structure", + "members": { + "cluster": {}, + "instanceIdentityDocument": {}, + "instanceIdentityDocumentSignature": {}, + "totalResources": { + "shape": "Sr" + }, + "versionInfo": { + "shape": "Sq" + }, + "containerInstanceArn": {}, + "attributes": { + "shape": "Sy" + } + } + }, + "output": { + "type": "structure", + "members": { + "containerInstance": { + "shape": "Sp" + } + } + } + }, + "RegisterTaskDefinition": { + "input": { + "type": "structure", + "required": [ + "family", + "containerDefinitions" + ], + "members": { + "family": {}, + "containerDefinitions": { + "shape": "S13" + }, + "volumes": { + "shape": "S1n" + } + } + }, + "output": { + "type": "structure", + "members": { + "taskDefinition": { + "shape": "S12" + } + } + } + }, + "RunTask": { + "input": { + "type": "structure", + "required": [ + "taskDefinition" + ], + "members": { + "cluster": {}, + "taskDefinition": {}, + "overrides": { + "shape": "S29" + }, + "count": { + "type": "integer" + }, + "startedBy": {} + } + }, + "output": { + "type": "structure", + "members": { + "tasks": { + "shape": "S27" + }, + "failures": { + "shape": "S1v" + } + } + } + }, + "StartTask": { + "input": { + "type": "structure", + "required": [ + "taskDefinition", + "containerInstances" + ], + "members": { + "cluster": {}, + "taskDefinition": {}, + "overrides": { + "shape": "S29" + }, + "containerInstances": { + "shape": "Sv" + }, + "startedBy": {} + } + }, + "output": { + "type": "structure", + "members": { + "tasks": { + "shape": "S27" + }, + "failures": { + "shape": "S1v" + } + } + } + }, + "StopTask": { + "input": { + "type": "structure", + "required": [ + "task" + ], + "members": { + "cluster": {}, + "task": {}, + "reason": {} + } + }, + "output": { + "type": "structure", + "members": { + "task": { + "shape": "S28" + } + } + } + }, + "SubmitContainerStateChange": { + "input": { + "type": "structure", + "members": { + "cluster": {}, + "task": {}, + "containerName": {}, + "status": {}, + "exitCode": { + "type": "integer" + }, + "reason": {}, + "networkBindings": { + "shape": "S2e" + } + } + }, + "output": { + "type": "structure", + "members": { + "acknowledgment": {} + } + } + }, + "SubmitTaskStateChange": { + "input": { + "type": "structure", + "members": { + "cluster": {}, + "task": {}, + "status": {}, + "reason": {} + } + }, + "output": { + "type": "structure", + "members": { + "acknowledgment": {} + } + } + }, + "UpdateContainerAgent": { + "input": { + "type": "structure", + "required": [ + "containerInstance" + ], + "members": { + "cluster": {}, + "containerInstance": {} + } + }, + "output": { + "type": "structure", + "members": { + "containerInstance": { + "shape": "Sp" + } + } + } + }, + "UpdateService": { + "input": { + "type": "structure", + "required": [ + "service" + ], + "members": { + "cluster": {}, + "service": {}, + "desiredCount": { + "type": "integer" + }, + "taskDefinition": {}, + "deploymentConfiguration": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": { + "service": { + "shape": "Sc" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "clusterArn": {}, + "clusterName": {}, + "status": {}, + "registeredContainerInstancesCount": { + "type": "integer" + }, + "runningTasksCount": { + "type": "integer" + }, + "pendingTasksCount": { + "type": "integer" + }, + "activeServicesCount": { + "type": "integer" + } + } + }, + "S7": { + "type": "list", + "member": { + "type": "structure", + "members": { + "loadBalancerName": {}, + "containerName": {}, + "containerPort": { + "type": "integer" + } + } + } + }, + "Sa": { + "type": "structure", + "members": { + "maximumPercent": { + "type": "integer" + }, + "minimumHealthyPercent": { + "type": "integer" + } + } + }, + "Sc": { + "type": "structure", + "members": { + "serviceArn": {}, + "serviceName": {}, + "clusterArn": {}, + "loadBalancers": { + "shape": "S7" + }, + "status": {}, + "desiredCount": { + "type": "integer" + }, + "runningCount": { + "type": "integer" + }, + "pendingCount": { + "type": "integer" + }, + "taskDefinition": {}, + "deploymentConfiguration": { + "shape": "Sa" + }, + "deployments": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "status": {}, + "taskDefinition": {}, + "desiredCount": { + "type": "integer" + }, + "pendingCount": { + "type": "integer" + }, + "runningCount": { + "type": "integer" + }, + "createdAt": { + "type": "timestamp" + }, + "updatedAt": { + "type": "timestamp" + } + } + } + }, + "roleArn": {}, + "events": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "createdAt": { + "type": "timestamp" + }, + "message": {} + } + } + }, + "createdAt": { + "type": "timestamp" + } + } + }, + "Sp": { + "type": "structure", + "members": { + "containerInstanceArn": {}, + "ec2InstanceId": {}, + "versionInfo": { + "shape": "Sq" + }, + "remainingResources": { + "shape": "Sr" + }, + "registeredResources": { + "shape": "Sr" + }, + "status": {}, + "agentConnected": { + "type": "boolean" + }, + "runningTasksCount": { + "type": "integer" + }, + "pendingTasksCount": { + "type": "integer" + }, + "agentUpdateStatus": {}, + "attributes": { + "shape": "Sy" + } + } + }, + "Sq": { + "type": "structure", + "members": { + "agentVersion": {}, + "agentHash": {}, + "dockerVersion": {} + } + }, + "Sr": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "type": {}, + "doubleValue": { + "type": "double" + }, + "longValue": { + "type": "long" + }, + "integerValue": { + "type": "integer" + }, + "stringSetValue": { + "shape": "Sv" + } + } + } + }, + "Sv": { + "type": "list", + "member": {} + }, + "Sy": { + "type": "list", + "member": { + "shape": "Sz" + } + }, + "Sz": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "value": {} + } + }, + "S12": { + "type": "structure", + "members": { + "taskDefinitionArn": {}, + "containerDefinitions": { + "shape": "S13" + }, + "family": {}, + "revision": { + "type": "integer" + }, + "volumes": { + "shape": "S1n" + }, + "status": {}, + "requiresAttributes": { + "type": "list", + "member": { + "shape": "Sz" + } + } + } + }, + "S13": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "image": {}, + "cpu": { + "type": "integer" + }, + "memory": { + "type": "integer" + }, + "links": { + "shape": "Sv" + }, + "portMappings": { + "type": "list", + "member": { + "type": "structure", + "members": { + "containerPort": { + "type": "integer" + }, + "hostPort": { + "type": "integer" + }, + "protocol": {} + } + } + }, + "essential": { + "type": "boolean" + }, + "entryPoint": { + "shape": "Sv" + }, + "command": { + "shape": "Sv" + }, + "environment": { + "shape": "S18" + }, + "mountPoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "sourceVolume": {}, + "containerPath": {}, + "readOnly": { + "type": "boolean" + } + } + } + }, + "volumesFrom": { + "type": "list", + "member": { + "type": "structure", + "members": { + "sourceContainer": {}, + "readOnly": { + "type": "boolean" + } + } + } + }, + "hostname": {}, + "user": {}, + "workingDirectory": {}, + "disableNetworking": { + "type": "boolean" + }, + "privileged": { + "type": "boolean" + }, + "readonlyRootFilesystem": { + "type": "boolean" + }, + "dnsServers": { + "shape": "Sv" + }, + "dnsSearchDomains": { + "shape": "Sv" + }, + "extraHosts": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "hostname", + "ipAddress" + ], + "members": { + "hostname": {}, + "ipAddress": {} + } + } + }, + "dockerSecurityOptions": { + "shape": "Sv" + }, + "dockerLabels": { + "type": "map", + "key": {}, + "value": {} + }, + "ulimits": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "softLimit", + "hardLimit" + ], + "members": { + "name": {}, + "softLimit": { + "type": "integer" + }, + "hardLimit": { + "type": "integer" + } + } + } + }, + "logConfiguration": { + "type": "structure", + "required": [ + "logDriver" + ], + "members": { + "logDriver": {}, + "options": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } + } + }, + "S18": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "value": {} + } + } + }, + "S1n": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "host": { + "type": "structure", + "members": { + "sourcePath": {} + } + } + } + } + }, + "S1v": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "reason": {} + } + } + }, + "S27": { + "type": "list", + "member": { + "shape": "S28" + } + }, + "S28": { + "type": "structure", + "members": { + "taskArn": {}, + "clusterArn": {}, + "taskDefinitionArn": {}, + "containerInstanceArn": {}, + "overrides": { + "shape": "S29" + }, + "lastStatus": {}, + "desiredStatus": {}, + "containers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "containerArn": {}, + "taskArn": {}, + "name": {}, + "lastStatus": {}, + "exitCode": { + "type": "integer" + }, + "reason": {}, + "networkBindings": { + "shape": "S2e" + } + } + } + }, + "startedBy": {}, + "stoppedReason": {}, + "createdAt": { + "type": "timestamp" + }, + "startedAt": { + "type": "timestamp" + }, + "stoppedAt": { + "type": "timestamp" + } + } + }, + "S29": { + "type": "structure", + "members": { + "containerOverrides": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "command": { + "shape": "Sv" + }, + "environment": { + "shape": "S18" + } + } + } + } + } + }, + "S2e": { + "type": "list", + "member": { + "type": "structure", + "members": { + "bindIP": {}, + "containerPort": { + "type": "integer" + }, + "hostPort": { + "type": "integer" + }, + "protocol": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.paginators.json new file mode 100755 index 0000000..081a2df --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.paginators.json @@ -0,0 +1,40 @@ +{ + "pagination": { + "ListClusters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "clusterArns" + }, + "ListContainerInstances": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "containerInstanceArns" + }, + "ListTaskDefinitions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "taskDefinitionArns" + }, + "ListTaskDefinitionFamilies": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "families" + }, + "ListTasks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "taskArns" + }, + "ListServices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "serviceArns" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.waiters2.json new file mode 100755 index 0000000..8866d15 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ecs-2014-11-13.waiters2.json @@ -0,0 +1,93 @@ +{ + "version": 2, + "waiters": { + "TasksRunning": { + "delay": 6, + "operation": "DescribeTasks", + "maxAttempts": 100, + "acceptors": [ + { + "expected": "STOPPED", + "matcher": "pathAny", + "state": "failure", + "argument": "tasks[].lastStatus" + }, + { + "expected": "MISSING", + "matcher": "pathAny", + "state": "failure", + "argument": "failures[].reason" + }, + { + "expected": "RUNNING", + "matcher": "pathAll", + "state": "success", + "argument": "tasks[].lastStatus" + } + ] + }, + "TasksStopped": { + "delay": 6, + "operation": "DescribeTasks", + "maxAttempts": 100, + "acceptors": [ + { + "expected": "STOPPED", + "matcher": "pathAll", + "state": "success", + "argument": "tasks[].lastStatus" + } + ] + }, + "ServicesStable": { + "delay": 15, + "operation": "DescribeServices", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "MISSING", + "matcher": "pathAny", + "state": "failure", + "argument": "failures[].reason" + }, + { + "expected": "DRAINING", + "matcher": "pathAny", + "state": "failure", + "argument": "services[].status" + }, + { + "expected": "INACTIVE", + "matcher": "pathAny", + "state": "failure", + "argument": "services[].status" + }, + { + "expected": true, + "matcher": "path", + "state": "success", + "argument": "services | [@[?length(deployments)!=`1`], @[?desiredCount!=runningCount]][] | length(@) == `0`" + } + ] + }, + "ServicesInactive": { + "delay": 15, + "operation": "DescribeServices", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "MISSING", + "matcher": "pathAny", + "state": "failure", + "argument": "failures[].reason" + }, + { + "expected": "INACTIVE", + "matcher": "pathAny", + "state": "success", + "argument": "services[].status" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2014-09-30.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2014-09-30.waiters2.json new file mode 100755 index 0000000..c177d7b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2014-09-30.waiters2.json @@ -0,0 +1,143 @@ +{ + "version":2, + "waiters":{ + "CacheClusterAvailable":{ + "acceptors":[ + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"available", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"deleted", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"deleting", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"incompatible-network", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"restore-failed", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until ElastiCache cluster is available.", + "maxAttempts":40, + "operation":"DescribeCacheClusters" + }, + "CacheClusterDeleted":{ + "acceptors":[ + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"deleted", + "matcher":"pathAll", + "state":"success" + }, + { + "expected":"CacheClusterNotFound", + "matcher":"error", + "state":"success" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"available", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"creating", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"incompatible-network", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"modifying", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"restore-failed", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"snapshotting", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until ElastiCache cluster is deleted.", + "maxAttempts":40, + "operation":"DescribeCacheClusters" + }, + "ReplicationGroupAvailable":{ + "acceptors":[ + { + "argument":"ReplicationGroups[].Status", + "expected":"available", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"ReplicationGroups[].Status", + "expected":"deleted", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until ElastiCache replication group is available.", + "maxAttempts":40, + "operation":"DescribeReplicationGroups" + }, + "ReplicationGroupDeleted":{ + "acceptors":[ + { + "argument":"ReplicationGroups[].Status", + "expected":"deleted", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"ReplicationGroups[].Status", + "expected":"available", + "matcher":"pathAny", + "state":"failure" + }, + { + "expected":"ReplicationGroupNotFoundFault", + "matcher":"error", + "state":"success" + } + ], + "delay":15, + "description":"Wait until ElastiCache replication group is deleted.", + "maxAttempts":40, + "operation":"DescribeReplicationGroups" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.min.json new file mode 100755 index 0000000..c711041 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.min.json @@ -0,0 +1,1515 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-02-02", + "endpointPrefix": "elasticache", + "protocol": "query", + "serviceFullName": "Amazon ElastiCache", + "signatureVersion": "v4", + "xmlNamespace": "http://elasticache.amazonaws.com/doc/2015-02-02/" + }, + "operations": { + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "Tags" + ], + "members": { + "ResourceName": {}, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "shape": "S5", + "resultWrapper": "AddTagsToResourceResult" + } + }, + "AuthorizeCacheSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName", + "EC2SecurityGroupOwnerId" + ], + "members": { + "CacheSecurityGroupName": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "AuthorizeCacheSecurityGroupIngressResult", + "type": "structure", + "members": { + "CacheSecurityGroup": { + "shape": "S8" + } + } + } + }, + "CopySnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceSnapshotName", + "TargetSnapshotName" + ], + "members": { + "SourceSnapshotName": {}, + "TargetSnapshotName": {}, + "TargetBucket": {} + } + }, + "output": { + "resultWrapper": "CopySnapshotResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "CreateCacheCluster": { + "input": { + "type": "structure", + "required": [ + "CacheClusterId" + ], + "members": { + "CacheClusterId": {}, + "ReplicationGroupId": {}, + "AZMode": {}, + "PreferredAvailabilityZone": {}, + "PreferredAvailabilityZones": { + "shape": "Sl" + }, + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupName": {}, + "CacheSubnetGroupName": {}, + "CacheSecurityGroupNames": { + "shape": "Sm" + }, + "SecurityGroupIds": { + "shape": "Sn" + }, + "Tags": { + "shape": "S3" + }, + "SnapshotArns": { + "shape": "So" + }, + "SnapshotName": {}, + "PreferredMaintenanceWindow": {}, + "Port": { + "type": "integer" + }, + "NotificationTopicArn": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SnapshotRetentionLimit": { + "type": "integer" + }, + "SnapshotWindow": {} + } + }, + "output": { + "resultWrapper": "CreateCacheClusterResult", + "type": "structure", + "members": { + "CacheCluster": { + "shape": "Sr" + } + } + } + }, + "CreateCacheParameterGroup": { + "input": { + "type": "structure", + "required": [ + "CacheParameterGroupName", + "CacheParameterGroupFamily", + "Description" + ], + "members": { + "CacheParameterGroupName": {}, + "CacheParameterGroupFamily": {}, + "Description": {} + } + }, + "output": { + "resultWrapper": "CreateCacheParameterGroupResult", + "type": "structure", + "members": { + "CacheParameterGroup": { + "shape": "S16" + } + } + } + }, + "CreateCacheSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "CacheSecurityGroupName", + "Description" + ], + "members": { + "CacheSecurityGroupName": {}, + "Description": {} + } + }, + "output": { + "resultWrapper": "CreateCacheSecurityGroupResult", + "type": "structure", + "members": { + "CacheSecurityGroup": { + "shape": "S8" + } + } + } + }, + "CreateCacheSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "CacheSubnetGroupName", + "CacheSubnetGroupDescription", + "SubnetIds" + ], + "members": { + "CacheSubnetGroupName": {}, + "CacheSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1a" + } + } + }, + "output": { + "resultWrapper": "CreateCacheSubnetGroupResult", + "type": "structure", + "members": { + "CacheSubnetGroup": { + "shape": "S1c" + } + } + } + }, + "CreateReplicationGroup": { + "input": { + "type": "structure", + "required": [ + "ReplicationGroupId", + "ReplicationGroupDescription" + ], + "members": { + "ReplicationGroupId": {}, + "ReplicationGroupDescription": {}, + "PrimaryClusterId": {}, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "NumCacheClusters": { + "type": "integer" + }, + "PreferredCacheClusterAZs": { + "type": "list", + "member": { + "locationName": "AvailabilityZone" + } + }, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupName": {}, + "CacheSubnetGroupName": {}, + "CacheSecurityGroupNames": { + "shape": "Sm" + }, + "SecurityGroupIds": { + "shape": "Sn" + }, + "Tags": { + "shape": "S3" + }, + "SnapshotArns": { + "shape": "So" + }, + "SnapshotName": {}, + "PreferredMaintenanceWindow": {}, + "Port": { + "type": "integer" + }, + "NotificationTopicArn": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SnapshotRetentionLimit": { + "type": "integer" + }, + "SnapshotWindow": {} + } + }, + "output": { + "resultWrapper": "CreateReplicationGroupResult", + "type": "structure", + "members": { + "ReplicationGroup": { + "shape": "S1j" + } + } + } + }, + "CreateSnapshot": { + "input": { + "type": "structure", + "required": [ + "CacheClusterId", + "SnapshotName" + ], + "members": { + "CacheClusterId": {}, + "SnapshotName": {} + } + }, + "output": { + "resultWrapper": "CreateSnapshotResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "DeleteCacheCluster": { + "input": { + "type": "structure", + "required": [ + "CacheClusterId" + ], + "members": { + "CacheClusterId": {}, + "FinalSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteCacheClusterResult", + "type": "structure", + "members": { + "CacheCluster": { + "shape": "Sr" + } + } + } + }, + "DeleteCacheParameterGroup": { + "input": { + "type": "structure", + "required": [ + "CacheParameterGroupName" + ], + "members": { + "CacheParameterGroupName": {} + } + } + }, + "DeleteCacheSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "CacheSecurityGroupName" + ], + "members": { + "CacheSecurityGroupName": {} + } + } + }, + "DeleteCacheSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "CacheSubnetGroupName" + ], + "members": { + "CacheSubnetGroupName": {} + } + } + }, + "DeleteReplicationGroup": { + "input": { + "type": "structure", + "required": [ + "ReplicationGroupId" + ], + "members": { + "ReplicationGroupId": {}, + "RetainPrimaryCluster": { + "type": "boolean" + }, + "FinalSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteReplicationGroupResult", + "type": "structure", + "members": { + "ReplicationGroup": { + "shape": "S1j" + } + } + } + }, + "DeleteSnapshot": { + "input": { + "type": "structure", + "required": [ + "SnapshotName" + ], + "members": { + "SnapshotName": {} + } + }, + "output": { + "resultWrapper": "DeleteSnapshotResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "DescribeCacheClusters": { + "input": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "ShowCacheNodeInfo": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeCacheClustersResult", + "type": "structure", + "members": { + "Marker": {}, + "CacheClusters": { + "type": "list", + "member": { + "shape": "Sr", + "locationName": "CacheCluster" + } + } + } + } + }, + "DescribeCacheEngineVersions": { + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeCacheEngineVersionsResult", + "type": "structure", + "members": { + "Marker": {}, + "CacheEngineVersions": { + "type": "list", + "member": { + "locationName": "CacheEngineVersion", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupFamily": {}, + "CacheEngineDescription": {}, + "CacheEngineVersionDescription": {} + } + } + } + } + } + }, + "DescribeCacheParameterGroups": { + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeCacheParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "CacheParameterGroups": { + "type": "list", + "member": { + "shape": "S16", + "locationName": "CacheParameterGroup" + } + } + } + } + }, + "DescribeCacheParameters": { + "input": { + "type": "structure", + "required": [ + "CacheParameterGroupName" + ], + "members": { + "CacheParameterGroupName": {}, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeCacheParametersResult", + "type": "structure", + "members": { + "Marker": {}, + "Parameters": { + "shape": "S2f" + }, + "CacheNodeTypeSpecificParameters": { + "shape": "S2i" + } + } + } + }, + "DescribeCacheSecurityGroups": { + "input": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeCacheSecurityGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "CacheSecurityGroups": { + "type": "list", + "member": { + "shape": "S8", + "locationName": "CacheSecurityGroup" + } + } + } + } + }, + "DescribeCacheSubnetGroups": { + "input": { + "type": "structure", + "members": { + "CacheSubnetGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeCacheSubnetGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "CacheSubnetGroups": { + "type": "list", + "member": { + "shape": "S1c", + "locationName": "CacheSubnetGroup" + } + } + } + } + }, + "DescribeEngineDefaultParameters": { + "input": { + "type": "structure", + "required": [ + "CacheParameterGroupFamily" + ], + "members": { + "CacheParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEngineDefaultParametersResult", + "type": "structure", + "members": { + "EngineDefaults": { + "type": "structure", + "members": { + "CacheParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "shape": "S2f" + }, + "CacheNodeTypeSpecificParameters": { + "shape": "S2i" + } + }, + "wrapper": true + } + } + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "member": { + "locationName": "Event", + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "Date": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeReplicationGroups": { + "input": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReplicationGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReplicationGroups": { + "type": "list", + "member": { + "shape": "S1j", + "locationName": "ReplicationGroup" + } + } + } + } + }, + "DescribeReservedCacheNodes": { + "input": { + "type": "structure", + "members": { + "ReservedCacheNodeId": {}, + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedCacheNodesResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedCacheNodes": { + "type": "list", + "member": { + "shape": "S36", + "locationName": "ReservedCacheNode" + } + } + } + } + }, + "DescribeReservedCacheNodesOfferings": { + "input": { + "type": "structure", + "members": { + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedCacheNodesOfferingsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedCacheNodesOfferings": { + "type": "list", + "member": { + "locationName": "ReservedCacheNodesOffering", + "type": "structure", + "members": { + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "ProductDescription": {}, + "OfferingType": {}, + "RecurringCharges": { + "shape": "S38" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeSnapshots": { + "input": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "SnapshotName": {}, + "SnapshotSource": {}, + "Marker": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "Snapshots": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "Snapshot" + } + } + } + } + }, + "ListAllowedNodeTypeModifications": { + "input": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ReplicationGroupId": {} + } + }, + "output": { + "resultWrapper": "ListAllowedNodeTypeModificationsResult", + "type": "structure", + "members": { + "ScaleUpModifications": { + "type": "list", + "member": {} + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName" + ], + "members": { + "ResourceName": {} + } + }, + "output": { + "shape": "S5", + "resultWrapper": "ListTagsForResourceResult" + } + }, + "ModifyCacheCluster": { + "input": { + "type": "structure", + "required": [ + "CacheClusterId" + ], + "members": { + "CacheClusterId": {}, + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "shape": "Sv" + }, + "AZMode": {}, + "NewAvailabilityZones": { + "shape": "Sl" + }, + "CacheSecurityGroupNames": { + "shape": "Sm" + }, + "SecurityGroupIds": { + "shape": "Sn" + }, + "PreferredMaintenanceWindow": {}, + "NotificationTopicArn": {}, + "CacheParameterGroupName": {}, + "NotificationTopicStatus": {}, + "ApplyImmediately": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SnapshotRetentionLimit": { + "type": "integer" + }, + "SnapshotWindow": {}, + "CacheNodeType": {} + } + }, + "output": { + "resultWrapper": "ModifyCacheClusterResult", + "type": "structure", + "members": { + "CacheCluster": { + "shape": "Sr" + } + } + } + }, + "ModifyCacheParameterGroup": { + "input": { + "type": "structure", + "required": [ + "CacheParameterGroupName", + "ParameterNameValues" + ], + "members": { + "CacheParameterGroupName": {}, + "ParameterNameValues": { + "shape": "S3o" + } + } + }, + "output": { + "shape": "S3q", + "resultWrapper": "ModifyCacheParameterGroupResult" + } + }, + "ModifyCacheSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "CacheSubnetGroupName" + ], + "members": { + "CacheSubnetGroupName": {}, + "CacheSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1a" + } + } + }, + "output": { + "resultWrapper": "ModifyCacheSubnetGroupResult", + "type": "structure", + "members": { + "CacheSubnetGroup": { + "shape": "S1c" + } + } + } + }, + "ModifyReplicationGroup": { + "input": { + "type": "structure", + "required": [ + "ReplicationGroupId" + ], + "members": { + "ReplicationGroupId": {}, + "ReplicationGroupDescription": {}, + "PrimaryClusterId": {}, + "SnapshottingClusterId": {}, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheSecurityGroupNames": { + "shape": "Sm" + }, + "SecurityGroupIds": { + "shape": "Sn" + }, + "PreferredMaintenanceWindow": {}, + "NotificationTopicArn": {}, + "CacheParameterGroupName": {}, + "NotificationTopicStatus": {}, + "ApplyImmediately": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SnapshotRetentionLimit": { + "type": "integer" + }, + "SnapshotWindow": {}, + "CacheNodeType": {} + } + }, + "output": { + "resultWrapper": "ModifyReplicationGroupResult", + "type": "structure", + "members": { + "ReplicationGroup": { + "shape": "S1j" + } + } + } + }, + "PurchaseReservedCacheNodesOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedCacheNodesOfferingId" + ], + "members": { + "ReservedCacheNodesOfferingId": {}, + "ReservedCacheNodeId": {}, + "CacheNodeCount": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "PurchaseReservedCacheNodesOfferingResult", + "type": "structure", + "members": { + "ReservedCacheNode": { + "shape": "S36" + } + } + } + }, + "RebootCacheCluster": { + "input": { + "type": "structure", + "required": [ + "CacheClusterId", + "CacheNodeIdsToReboot" + ], + "members": { + "CacheClusterId": {}, + "CacheNodeIdsToReboot": { + "shape": "Sv" + } + } + }, + "output": { + "resultWrapper": "RebootCacheClusterResult", + "type": "structure", + "members": { + "CacheCluster": { + "shape": "Sr" + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "TagKeys" + ], + "members": { + "ResourceName": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "shape": "S5", + "resultWrapper": "RemoveTagsFromResourceResult" + } + }, + "ResetCacheParameterGroup": { + "input": { + "type": "structure", + "required": [ + "CacheParameterGroupName" + ], + "members": { + "CacheParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "ParameterNameValues": { + "shape": "S3o" + } + } + }, + "output": { + "shape": "S3q", + "resultWrapper": "ResetCacheParameterGroupResult" + } + }, + "RevokeCacheSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName", + "EC2SecurityGroupOwnerId" + ], + "members": { + "CacheSecurityGroupName": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "RevokeCacheSecurityGroupIngressResult", + "type": "structure", + "members": { + "CacheSecurityGroup": { + "shape": "S8" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S5": { + "type": "structure", + "members": { + "TagList": { + "shape": "S3" + } + } + }, + "S8": { + "type": "structure", + "members": { + "OwnerId": {}, + "CacheSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "member": { + "locationName": "EC2SecurityGroup", + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + } + } + }, + "wrapper": true + }, + "Sd": { + "type": "structure", + "members": { + "SnapshotName": {}, + "CacheClusterId": {}, + "SnapshotStatus": {}, + "SnapshotSource": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "TopicArn": {}, + "Port": { + "type": "integer" + }, + "CacheParameterGroupName": {}, + "CacheSubnetGroupName": {}, + "VpcId": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SnapshotRetentionLimit": { + "type": "integer" + }, + "SnapshotWindow": {}, + "NodeSnapshots": { + "type": "list", + "member": { + "locationName": "NodeSnapshot", + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheSize": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "SnapshotCreateTime": { + "type": "timestamp" + } + }, + "wrapper": true + } + } + }, + "wrapper": true + }, + "Sl": { + "type": "list", + "member": { + "locationName": "PreferredAvailabilityZone" + } + }, + "Sm": { + "type": "list", + "member": { + "locationName": "CacheSecurityGroupName" + } + }, + "Sn": { + "type": "list", + "member": { + "locationName": "SecurityGroupId" + } + }, + "So": { + "type": "list", + "member": { + "locationName": "SnapshotArn" + } + }, + "Sr": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ConfigurationEndpoint": { + "shape": "Ss" + }, + "ClientDownloadLandingPage": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheClusterStatus": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "shape": "Sv" + }, + "EngineVersion": {}, + "CacheNodeType": {} + } + }, + "NotificationConfiguration": { + "type": "structure", + "members": { + "TopicArn": {}, + "TopicStatus": {} + } + }, + "CacheSecurityGroups": { + "type": "list", + "member": { + "locationName": "CacheSecurityGroup", + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "Status": {} + } + } + }, + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "ParameterApplyStatus": {}, + "CacheNodeIdsToReboot": { + "shape": "Sv" + } + } + }, + "CacheSubnetGroupName": {}, + "CacheNodes": { + "type": "list", + "member": { + "locationName": "CacheNode", + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheNodeStatus": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "Endpoint": { + "shape": "Ss" + }, + "ParameterGroupStatus": {}, + "SourceCacheNodeId": {}, + "CustomerAvailabilityZone": {} + } + } + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SecurityGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SecurityGroupId": {}, + "Status": {} + } + } + }, + "ReplicationGroupId": {}, + "SnapshotRetentionLimit": { + "type": "integer" + }, + "SnapshotWindow": {} + }, + "wrapper": true + }, + "Ss": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "Sv": { + "type": "list", + "member": { + "locationName": "CacheNodeId" + } + }, + "S16": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "CacheParameterGroupFamily": {}, + "Description": {} + }, + "wrapper": true + }, + "S1a": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "S1c": { + "type": "structure", + "members": { + "CacheSubnetGroupName": {}, + "CacheSubnetGroupDescription": {}, + "VpcId": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + }, + "wrapper": true + } + } + } + } + }, + "wrapper": true + }, + "S1j": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "Description": {}, + "Status": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "PrimaryClusterId": {}, + "AutomaticFailoverStatus": {} + } + }, + "MemberClusters": { + "type": "list", + "member": { + "locationName": "ClusterId" + } + }, + "NodeGroups": { + "type": "list", + "member": { + "locationName": "NodeGroup", + "type": "structure", + "members": { + "NodeGroupId": {}, + "Status": {}, + "PrimaryEndpoint": { + "shape": "Ss" + }, + "NodeGroupMembers": { + "type": "list", + "member": { + "locationName": "NodeGroupMember", + "type": "structure", + "members": { + "CacheClusterId": {}, + "CacheNodeId": {}, + "ReadEndpoint": { + "shape": "Ss" + }, + "PreferredAvailabilityZone": {}, + "CurrentRole": {} + } + } + } + } + } + }, + "SnapshottingClusterId": {}, + "AutomaticFailover": {} + }, + "wrapper": true + }, + "S2f": { + "type": "list", + "member": { + "locationName": "Parameter", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ChangeType": {} + } + } + }, + "S2i": { + "type": "list", + "member": { + "locationName": "CacheNodeTypeSpecificParameter", + "type": "structure", + "members": { + "ParameterName": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "CacheNodeTypeSpecificValues": { + "type": "list", + "member": { + "locationName": "CacheNodeTypeSpecificValue", + "type": "structure", + "members": { + "CacheNodeType": {}, + "Value": {} + } + } + }, + "ChangeType": {} + } + } + }, + "S36": { + "type": "structure", + "members": { + "ReservedCacheNodeId": {}, + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CacheNodeCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "State": {}, + "RecurringCharges": { + "shape": "S38" + } + }, + "wrapper": true + }, + "S38": { + "type": "list", + "member": { + "locationName": "RecurringCharge", + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "double" + }, + "RecurringChargeFrequency": {} + }, + "wrapper": true + } + }, + "S3o": { + "type": "list", + "member": { + "locationName": "ParameterNameValue", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {} + } + } + }, + "S3q": { + "type": "structure", + "members": { + "CacheParameterGroupName": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.paginators.json new file mode 100755 index 0000000..8724740 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.paginators.json @@ -0,0 +1,76 @@ +{ + "pagination": { + "DescribeCacheClusters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheClusters" + }, + "DescribeCacheEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheEngineVersions" + }, + "DescribeCacheParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheParameterGroups" + }, + "DescribeCacheParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeCacheSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheSecurityGroups" + }, + "DescribeCacheSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeReservedCacheNodes": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedCacheNodes" + }, + "DescribeReservedCacheNodesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedCacheNodesOfferings" + }, + "DescribeReplicationGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReplicationGroups" + }, + "DescribeSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Snapshots" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.waiters2.json new file mode 100755 index 0000000..c177d7b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticache-2015-02-02.waiters2.json @@ -0,0 +1,143 @@ +{ + "version":2, + "waiters":{ + "CacheClusterAvailable":{ + "acceptors":[ + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"available", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"deleted", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"deleting", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"incompatible-network", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"restore-failed", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until ElastiCache cluster is available.", + "maxAttempts":40, + "operation":"DescribeCacheClusters" + }, + "CacheClusterDeleted":{ + "acceptors":[ + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"deleted", + "matcher":"pathAll", + "state":"success" + }, + { + "expected":"CacheClusterNotFound", + "matcher":"error", + "state":"success" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"available", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"creating", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"incompatible-network", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"modifying", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"restore-failed", + "matcher":"pathAny", + "state":"failure" + }, + { + "argument":"CacheClusters[].CacheClusterStatus", + "expected":"snapshotting", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until ElastiCache cluster is deleted.", + "maxAttempts":40, + "operation":"DescribeCacheClusters" + }, + "ReplicationGroupAvailable":{ + "acceptors":[ + { + "argument":"ReplicationGroups[].Status", + "expected":"available", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"ReplicationGroups[].Status", + "expected":"deleted", + "matcher":"pathAny", + "state":"failure" + } + ], + "delay":15, + "description":"Wait until ElastiCache replication group is available.", + "maxAttempts":40, + "operation":"DescribeReplicationGroups" + }, + "ReplicationGroupDeleted":{ + "acceptors":[ + { + "argument":"ReplicationGroups[].Status", + "expected":"deleted", + "matcher":"pathAll", + "state":"success" + }, + { + "argument":"ReplicationGroups[].Status", + "expected":"available", + "matcher":"pathAny", + "state":"failure" + }, + { + "expected":"ReplicationGroupNotFoundFault", + "matcher":"error", + "state":"success" + } + ], + "delay":15, + "description":"Wait until ElastiCache replication group is deleted.", + "maxAttempts":40, + "operation":"DescribeReplicationGroups" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.examples.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.examples.json new file mode 100755 index 0000000..0fded62 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.examples.json @@ -0,0 +1,1109 @@ +{ + "version": "1.0", + "examples": { + "AbortEnvironmentUpdate": [ + { + "input": { + "EnvironmentName": "my-env" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following code aborts a running application version deployment for an environment named my-env:", + "id": "to-abort-a-deployment-1456267848227", + "title": "To abort a deployment" + } + ], + "CheckDNSAvailability": [ + { + "input": { + "CNAMEPrefix": "my-cname" + }, + "output": { + "Available": true, + "FullyQualifiedCNAME": "my-cname.us-west-2.elasticbeanstalk.com" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation checks the availability of the subdomain my-cname:", + "id": "to-check-the-availability-of-a-cname-1456268589537", + "title": "To check the availability of a CNAME" + } + ], + "CreateApplication": [ + { + "input": { + "ApplicationName": "my-app", + "Description": "my application" + }, + "output": { + "Application": { + "ApplicationName": "my-app", + "ConfigurationTemplates": [ + + ], + "DateCreated": "2015-02-12T18:32:21.181Z", + "DateUpdated": "2015-02-12T18:32:21.181Z", + "Description": "my application" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation creates a new application named my-app:", + "id": "to-create-a-new-application-1456268895683", + "title": "To create a new application" + } + ], + "CreateApplicationVersion": [ + { + "input": { + "ApplicationName": "my-app", + "AutoCreateApplication": true, + "Description": "my-app-v1", + "Process": true, + "SourceBundle": { + "S3Bucket": "my-bucket", + "S3Key": "sample.war" + }, + "VersionLabel": "v1" + }, + "output": { + "ApplicationVersion": { + "ApplicationName": "my-app", + "DateCreated": "2015-02-03T23:01:25.412Z", + "DateUpdated": "2015-02-03T23:01:25.412Z", + "Description": "my-app-v1", + "SourceBundle": { + "S3Bucket": "my-bucket", + "S3Key": "sample.war" + }, + "VersionLabel": "v1" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation creates a new version (v1) of an application named my-app:", + "id": "to-create-a-new-application-1456268895683", + "title": "To create a new application" + } + ], + "CreateConfigurationTemplate": [ + { + "input": { + "ApplicationName": "my-app", + "EnvironmentId": "e-rpqsewtp2j", + "TemplateName": "my-app-v1" + }, + "output": { + "ApplicationName": "my-app", + "DateCreated": "2015-08-12T18:40:39Z", + "DateUpdated": "2015-08-12T18:40:39Z", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "TemplateName": "my-app-v1" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation creates a configuration template named my-app-v1 from the settings applied to an environment with the id e-rpqsewtp2j:", + "id": "to-create-a-configuration-template-1456269283586", + "title": "To create a configuration template" + } + ], + "CreateEnvironment": [ + { + "input": { + "ApplicationName": "my-app", + "CNAMEPrefix": "my-app", + "EnvironmentName": "my-env", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "VersionLabel": "v1" + }, + "output": { + "ApplicationName": "my-app", + "CNAME": "my-app.elasticbeanstalk.com", + "DateCreated": "2015-02-03T23:04:54.479Z", + "DateUpdated": "2015-02-03T23:04:54.479Z", + "EnvironmentId": "e-izqpassy4h", + "EnvironmentName": "my-env", + "Health": "Grey", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "Status": "Launching", + "Tier": { + "Name": "WebServer", + "Type": "Standard", + "Version": " " + }, + "VersionLabel": "v1" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation creates a new environment for version v1 of a java application named my-app:", + "id": "to-create-a-new-environment-for-an-application-1456269380396", + "title": "To create a new environment for an application" + } + ], + "CreateStorageLocation": [ + { + "output": { + "S3Bucket": "elasticbeanstalk-us-west-2-0123456789012" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation creates a new environment for version v1 of a java application named my-app:", + "id": "to-create-a-new-environment-for-an-application-1456269380396", + "title": "To create a new environment for an application" + } + ], + "DeleteApplication": [ + { + "input": { + "ApplicationName": "my-app" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation deletes an application named my-app:", + "id": "to-delete-an-application-1456269699366", + "title": "To delete an application" + } + ], + "DeleteApplicationVersion": [ + { + "input": { + "ApplicationName": "my-app", + "DeleteSourceBundle": true, + "VersionLabel": "22a0-stage-150819_182129" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation deletes an application version named 22a0-stage-150819_182129 for an application named my-app:", + "id": "to-delete-an-application-version-1456269792956", + "title": "To delete an application version" + } + ], + "DeleteConfigurationTemplate": [ + { + "input": { + "ApplicationName": "my-app", + "TemplateName": "my-template" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation deletes a configuration template named my-template for an application named my-app:", + "id": "to-delete-a-configuration-template-1456269836701", + "title": "To delete a configuration template" + } + ], + "DeleteEnvironmentConfiguration": [ + { + "input": { + "ApplicationName": "my-app", + "EnvironmentName": "my-env" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation deletes a draft configuration for an environment named my-env:", + "id": "to-delete-a-draft-configuration-1456269886654", + "title": "To delete a draft configuration" + } + ], + "DescribeApplicationVersions": [ + { + "input": { + "ApplicationName": "my-app", + "VersionLabels": [ + "v2" + ] + }, + "output": { + "ApplicationVersions": [ + { + "ApplicationName": "my-app", + "DateCreated": "2015-07-23T01:32:26.079Z", + "DateUpdated": "2015-07-23T01:32:26.079Z", + "Description": "update cover page", + "SourceBundle": { + "S3Bucket": "elasticbeanstalk-us-west-2-015321684451", + "S3Key": "my-app/5026-stage-150723_224258.war" + }, + "VersionLabel": "v2" + }, + { + "ApplicationName": "my-app", + "DateCreated": "2015-07-23T22:26:10.816Z", + "DateUpdated": "2015-07-23T22:26:10.816Z", + "Description": "initial version", + "SourceBundle": { + "S3Bucket": "elasticbeanstalk-us-west-2-015321684451", + "S3Key": "my-app/5026-stage-150723_222618.war" + }, + "VersionLabel": "v1" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves information about an application version labeled v2:", + "id": "to-view-information-about-an-application-version-1456269947428", + "title": "To view information about an application version" + } + ], + "DescribeApplications": [ + { + "input": { + }, + "output": { + "Applications": [ + { + "ApplicationName": "ruby", + "ConfigurationTemplates": [ + + ], + "DateCreated": "2015-08-13T21:05:44.376Z", + "DateUpdated": "2015-08-13T21:05:44.376Z", + "Versions": [ + "Sample Application" + ] + }, + { + "ApplicationName": "pythonsample", + "ConfigurationTemplates": [ + + ], + "DateCreated": "2015-08-13T19:05:43.637Z", + "DateUpdated": "2015-08-13T19:05:43.637Z", + "Description": "Application created from the EB CLI using \"eb init\"", + "Versions": [ + "Sample Application" + ] + }, + { + "ApplicationName": "nodejs-example", + "ConfigurationTemplates": [ + + ], + "DateCreated": "2015-08-06T17:50:02.486Z", + "DateUpdated": "2015-08-06T17:50:02.486Z", + "Versions": [ + "add elasticache", + "First Release" + ] + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves information about applications in the current region:", + "id": "to-view-a-list-of-applications-1456270027373", + "title": "To view a list of applications" + } + ], + "DescribeConfigurationOptions": [ + { + "input": { + "ApplicationName": "my-app", + "EnvironmentName": "my-env" + }, + "output": { + "Options": [ + { + "ChangeSeverity": "NoInterruption", + "DefaultValue": "30", + "MaxValue": 300, + "MinValue": 5, + "Name": "Interval", + "Namespace": "aws:elb:healthcheck", + "UserDefined": false, + "ValueType": "Scalar" + }, + { + "ChangeSeverity": "NoInterruption", + "DefaultValue": "2000000", + "MinValue": 0, + "Name": "LowerThreshold", + "Namespace": "aws:autoscaling:trigger", + "UserDefined": false, + "ValueType": "Scalar" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves descriptions of all available configuration options for an environment named my-env:", + "id": "to-view-configuration-options-for-an-environment-1456276763917", + "title": "To view configuration options for an environment" + } + ], + "DescribeConfigurationSettings": [ + { + "input": { + "ApplicationName": "my-app", + "EnvironmentName": "my-env" + }, + "output": { + "ConfigurationSettings": [ + { + "ApplicationName": "my-app", + "DateCreated": "2015-08-13T19:16:25Z", + "DateUpdated": "2015-08-13T23:30:07Z", + "DeploymentStatus": "deployed", + "Description": "Environment created from the EB CLI using \"eb create\"", + "EnvironmentName": "my-env", + "OptionSettings": [ + { + "Namespace": "aws:autoscaling:asg", + "OptionName": "Availability Zones", + "ResourceName": "AWSEBAutoScalingGroup", + "Value": "Any" + }, + { + "Namespace": "aws:autoscaling:asg", + "OptionName": "Cooldown", + "ResourceName": "AWSEBAutoScalingGroup", + "Value": "360" + }, + { + "Namespace": "aws:elb:policies", + "OptionName": "ConnectionDrainingTimeout", + "ResourceName": "AWSEBLoadBalancer", + "Value": "20" + }, + { + "Namespace": "aws:elb:policies", + "OptionName": "ConnectionSettingIdleTimeout", + "ResourceName": "AWSEBLoadBalancer", + "Value": "60" + } + ], + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8" + } + ] + }, + "comments": { + "input": { + }, + "output": { + "abbreviated": "Output is abbreviated" + } + }, + "description": "The following operation retrieves configuration settings for an environment named my-env:", + "id": "to-view-configurations-settings-for-an-environment-1456276924537", + "title": "To view configurations settings for an environment" + } + ], + "DescribeEnvironmentHealth": [ + { + "input": { + "AttributeNames": [ + "All" + ], + "EnvironmentName": "my-env" + }, + "output": { + "ApplicationMetrics": { + "Duration": 10, + "Latency": { + "P10": 0.001, + "P50": 0.001, + "P75": 0.002, + "P85": 0.003, + "P90": 0.003, + "P95": 0.004, + "P99": 0.004, + "P999": 0.004 + }, + "RequestCount": 45, + "StatusCodes": { + "Status2xx": 45, + "Status3xx": 0, + "Status4xx": 0, + "Status5xx": 0 + } + }, + "Causes": [ + + ], + "Color": "Green", + "EnvironmentName": "my-env", + "HealthStatus": "Ok", + "InstancesHealth": { + "Degraded": 0, + "Info": 0, + "NoData": 0, + "Ok": 1, + "Pending": 0, + "Severe": 0, + "Unknown": 0, + "Warning": 0 + }, + "RefreshedAt": "2015-08-20T21:09:18Z" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves overall health information for an environment named my-env:", + "id": "to-view-environment-health-1456277109510", + "title": "To view environment health" + } + ], + "DescribeEnvironmentResources": [ + { + "input": { + "EnvironmentName": "my-env" + }, + "output": { + "EnvironmentResources": { + "AutoScalingGroups": [ + { + "Name": "awseb-e-qu3fyyjyjs-stack-AWSEBAutoScalingGroup-QSB2ZO88SXZT" + } + ], + "EnvironmentName": "my-env", + "Instances": [ + { + "Id": "i-0c91c786" + } + ], + "LaunchConfigurations": [ + { + "Name": "awseb-e-qu3fyyjyjs-stack-AWSEBAutoScalingLaunchConfiguration-1UUVQIBC96TQ2" + } + ], + "LoadBalancers": [ + { + "Name": "awseb-e-q-AWSEBLoa-1EEPZ0K98BIF0" + } + ], + "Queues": [ + + ], + "Triggers": [ + + ] + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves information about resources in an environment named my-env:", + "id": "to-view-information-about-the-aws-resources-in-your-environment-1456277206232", + "title": "To view information about the AWS resources in your environment" + } + ], + "DescribeEnvironments": [ + { + "input": { + "EnvironmentNames": [ + "my-env" + ] + }, + "output": { + "Environments": [ + { + "AbortableOperationInProgress": false, + "ApplicationName": "my-app", + "CNAME": "my-env.elasticbeanstalk.com", + "DateCreated": "2015-08-07T20:48:49.599Z", + "DateUpdated": "2015-08-12T18:16:55.019Z", + "EndpointURL": "awseb-e-w-AWSEBLoa-1483140XB0Q4L-109QXY8121.us-west-2.elb.amazonaws.com", + "EnvironmentId": "e-rpqsewtp2j", + "EnvironmentName": "my-env", + "Health": "Green", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "Status": "Ready", + "Tier": { + "Name": "WebServer", + "Type": "Standard", + "Version": " " + }, + "VersionLabel": "7f58-stage-150812_025409" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves information about an environment named my-env:", + "id": "to-view-information-about-an-environment-1456277288662", + "title": "To view information about an environment" + } + ], + "DescribeEvents": [ + { + "input": { + "EnvironmentName": "my-env" + }, + "output": { + "Events": [ + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "EventDate": "2015-08-20T07:06:53.535Z", + "Message": "Environment health has transitioned from Info to Ok.", + "Severity": "INFO" + }, + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "EventDate": "2015-08-20T07:06:02.049Z", + "Message": "Environment update completed successfully.", + "RequestId": "b7f3960b-4709-11e5-ba1e-07e16200da41", + "Severity": "INFO" + }, + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "EventDate": "2015-08-13T19:16:27.561Z", + "Message": "Using elasticbeanstalk-us-west-2-012445113685 as Amazon S3 storage bucket for environment data.", + "RequestId": "ca8dfbf6-41ef-11e5-988b-651aa638f46b", + "Severity": "INFO" + }, + { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "EventDate": "2015-08-13T19:16:26.581Z", + "Message": "createEnvironment is starting.", + "RequestId": "cdfba8f6-41ef-11e5-988b-65638f41aa6b", + "Severity": "INFO" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves events for an environment named my-env:", + "id": "to-view-events-for-an-environment-1456277367589", + "title": "To view events for an environment" + } + ], + "DescribeInstancesHealth": [ + { + "input": { + "AttributeNames": [ + "All" + ], + "EnvironmentName": "my-env" + }, + "output": { + "InstanceHealthList": [ + { + "ApplicationMetrics": { + "Duration": 10, + "Latency": { + "P10": 0, + "P50": 0.001, + "P75": 0.002, + "P85": 0.003, + "P90": 0.004, + "P95": 0.005, + "P99": 0.006, + "P999": 0.006 + }, + "RequestCount": 48, + "StatusCodes": { + "Status2xx": 47, + "Status3xx": 0, + "Status4xx": 1, + "Status5xx": 0 + } + }, + "Causes": [ + + ], + "Color": "Green", + "HealthStatus": "Ok", + "InstanceId": "i-08691cc7", + "LaunchedAt": "2015-08-13T19:17:09Z", + "System": { + "CPUUtilization": { + "IOWait": 0.2, + "IRQ": 0, + "Idle": 97.8, + "Nice": 0.1, + "SoftIRQ": 0.1, + "System": 0.3, + "User": 1.5 + }, + "LoadAverage": [ + 0, + 0.02, + 0.05 + ] + } + } + ], + "RefreshedAt": "2015-08-20T21:09:08Z" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves health information for instances in an environment named my-env:", + "id": "to-view-environment-health-1456277424757", + "title": "To view environment health" + } + ], + "ListAvailableSolutionStacks": [ + { + "output": { + "SolutionStackDetails": [ + { + "PermittedFileTypes": [ + "zip" + ], + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Node.js" + } + ], + "SolutionStacks": [ + "64bit Amazon Linux 2015.03 v2.0.0 running Node.js", + "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.6", + "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.5", + "64bit Amazon Linux 2015.03 v2.0.0 running PHP 5.4", + "64bit Amazon Linux 2015.03 v2.0.0 running Python 3.4", + "64bit Amazon Linux 2015.03 v2.0.0 running Python 2.7", + "64bit Amazon Linux 2015.03 v2.0.0 running Python", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Puma)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.1 (Puma)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.1 (Passenger Standalone)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.0 (Puma)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.0 (Passenger Standalone)", + "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 1.9.3", + "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 7 Java 7", + "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 7 Java 6", + "64bit Windows Server Core 2012 R2 running IIS 8.5", + "64bit Windows Server 2012 R2 running IIS 8.5", + "64bit Windows Server 2012 running IIS 8", + "64bit Windows Server 2008 R2 running IIS 7.5", + "64bit Amazon Linux 2015.03 v2.0.0 running Docker 1.6.2", + "64bit Amazon Linux 2015.03 v2.0.0 running Multi-container Docker 1.6.2 (Generic)", + "64bit Debian jessie v2.0.0 running GlassFish 4.1 Java 8 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running GlassFish 4.0 Java 7 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running Go 1.4 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running Go 1.3 (Preconfigured - Docker)", + "64bit Debian jessie v2.0.0 running Python 3.4 (Preconfigured - Docker)" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation lists solution stacks for all currently available platform configurations and any that you have used in the past:", + "id": "to-view-solution-stacks-1456277504811", + "title": "To view solution stacks" + } + ], + "RebuildEnvironment": [ + { + "input": { + "EnvironmentName": "my-env" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation terminates and recreates the resources in an environment named my-env:", + "id": "to-rebuild-an-environment-1456277600918", + "title": "To rebuild an environment" + } + ], + "RequestEnvironmentInfo": [ + { + "input": { + "EnvironmentName": "my-env", + "InfoType": "tail" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation requests logs from an environment named my-env:", + "id": "to-request-tailed-logs-1456277657045", + "title": "To request tailed logs" + } + ], + "RestartAppServer": [ + { + "input": { + "EnvironmentName": "my-env" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation restarts application servers on all instances in an environment named my-env:", + "id": "to-restart-application-servers-1456277739302", + "title": "To restart application servers" + } + ], + "RetrieveEnvironmentInfo": [ + { + "input": { + "EnvironmentName": "my-env", + "InfoType": "tail" + }, + "output": { + "EnvironmentInfo": [ + { + "Ec2InstanceId": "i-09c1c867", + "InfoType": "tail", + "Message": "https://elasticbeanstalk-us-west-2-0123456789012.s3.amazonaws.com/resources/environments/logs/tail/e-fyqyju3yjs/i-09c1c867/TailLogs-1440109397703.out?AWSAccessKeyId=AKGPT4J56IAJ2EUBL5CQ&Expires=1440195891&Signature=n%2BEalOV6A2HIOx4Rcfb7LT16bBM%3D", + "SampleTimestamp": "2015-08-20T22:23:17.703Z" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation retrieves a link to logs from an environment named my-env:", + "id": "to-retrieve-tailed-logs-1456277792734", + "title": "To retrieve tailed logs" + } + ], + "SwapEnvironmentCNAMEs": [ + { + "input": { + "DestinationEnvironmentName": "my-env-green", + "SourceEnvironmentName": "my-env-blue" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation swaps the assigned subdomains of two environments:", + "id": "to-swap-environment-cnames-1456277839438", + "title": "To swap environment CNAMES" + } + ], + "TerminateEnvironment": [ + { + "input": { + "EnvironmentName": "my-env" + }, + "output": { + "AbortableOperationInProgress": false, + "ApplicationName": "my-app", + "CNAME": "my-env.elasticbeanstalk.com", + "DateCreated": "2015-08-12T18:52:53.622Z", + "DateUpdated": "2015-08-12T19:05:54.744Z", + "EndpointURL": "awseb-e-f-AWSEBLoa-1I9XUMP4-8492WNUP202574.us-west-2.elb.amazonaws.com", + "EnvironmentId": "e-fh2eravpns", + "EnvironmentName": "my-env", + "Health": "Grey", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "Status": "Terminating", + "Tier": { + "Name": "WebServer", + "Type": "Standard", + "Version": " " + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation terminates an Elastic Beanstalk environment named my-env:", + "id": "to-terminate-an-environment-1456277888556", + "title": "To terminate an environment" + } + ], + "UpdateApplication": [ + { + "input": { + "ApplicationName": "my-app", + "Description": "my Elastic Beanstalk application" + }, + "output": { + "Application": { + "ApplicationName": "my-app", + "ConfigurationTemplates": [ + + ], + "DateCreated": "2015-08-13T19:15:50.449Z", + "DateUpdated": "2015-08-20T22:34:56.195Z", + "Description": "my Elastic Beanstalk application", + "Versions": [ + "2fba-stage-150819_234450", + "bf07-stage-150820_214945", + "93f8", + "fd7c-stage-150820_000431", + "22a0-stage-150819_185942" + ] + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation updates the description of an application named my-app:", + "id": "to-change-an-applications-description-1456277957075", + "title": "To change an application's description" + } + ], + "UpdateApplicationVersion": [ + { + "input": { + "ApplicationName": "my-app", + "Description": "new description", + "VersionLabel": "22a0-stage-150819_185942" + }, + "output": { + "ApplicationVersion": { + "ApplicationName": "my-app", + "DateCreated": "2015-08-19T18:59:17.646Z", + "DateUpdated": "2015-08-20T22:53:28.871Z", + "Description": "new description", + "SourceBundle": { + "S3Bucket": "elasticbeanstalk-us-west-2-0123456789012", + "S3Key": "my-app/22a0-stage-150819_185942.war" + }, + "VersionLabel": "22a0-stage-150819_185942" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation updates the description of an application version named 22a0-stage-150819_185942:", + "id": "to-change-an-application-versions-description-1456278019237", + "title": "To change an application version's description" + } + ], + "UpdateConfigurationTemplate": [ + { + "input": { + "ApplicationName": "my-app", + "OptionsToRemove": [ + { + "Namespace": "aws:elasticbeanstalk:healthreporting:system", + "OptionName": "ConfigDocument" + } + ], + "TemplateName": "my-template" + }, + "output": { + "ApplicationName": "my-app", + "DateCreated": "2015-08-20T22:39:31Z", + "DateUpdated": "2015-08-20T22:43:11Z", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "TemplateName": "my-template" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation removes the configured CloudWatch custom health metrics configuration ConfigDocument from a saved configuration template named my-template:", + "id": "to-update-a-configuration-template-1456278075300", + "title": "To update a configuration template" + } + ], + "UpdateEnvironment": [ + { + "input": { + "EnvironmentName": "my-env", + "VersionLabel": "v2" + }, + "output": { + "ApplicationName": "my-app", + "CNAME": "my-env.elasticbeanstalk.com", + "DateCreated": "2015-02-03T23:04:54.453Z", + "DateUpdated": "2015-02-03T23:12:29.119Z", + "EndpointURL": "awseb-e-i-AWSEBLoa-1RDLX6TC9VUAO-0123456789.us-west-2.elb.amazonaws.com", + "EnvironmentId": "e-szqipays4h", + "EnvironmentName": "my-env", + "Health": "Grey", + "SolutionStackName": "64bit Amazon Linux running Tomcat 7", + "Status": "Updating", + "Tier": { + "Name": "WebServer", + "Type": "Standard", + "Version": " " + }, + "VersionLabel": "v2" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation updates an environment named \"my-env\" to version \"v2\" of the application to which it belongs:", + "id": "to-update-an-environment-to-a-new-version-1456278210718", + "title": "To update an environment to a new version" + }, + { + "input": { + "EnvironmentName": "my-env", + "OptionSettings": [ + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "Interval", + "Value": "15" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "Timeout", + "Value": "8" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "HealthyThreshold", + "Value": "2" + }, + { + "Namespace": "aws:elb:healthcheck", + "OptionName": "UnhealthyThreshold", + "Value": "3" + } + ] + }, + "output": { + "AbortableOperationInProgress": true, + "ApplicationName": "my-app", + "CNAME": "my-env.elasticbeanstalk.com", + "DateCreated": "2015-08-07T20:48:49.599Z", + "DateUpdated": "2015-08-12T18:15:23.804Z", + "EndpointURL": "awseb-e-w-AWSEBLoa-14XB83101Q4L-104QXY80921.sa-east-1.elb.amazonaws.com", + "EnvironmentId": "e-wtp2rpqsej", + "EnvironmentName": "my-env", + "Health": "Grey", + "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8", + "Status": "Updating", + "Tier": { + "Name": "WebServer", + "Type": "Standard", + "Version": " " + }, + "VersionLabel": "7f58-stage-150812_025409" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation configures several options in the aws:elb:loadbalancer namespace:", + "id": "to-configure-option-settings-1456278286349", + "title": "To configure option settings" + } + ], + "ValidateConfigurationSettings": [ + { + "input": { + "ApplicationName": "my-app", + "EnvironmentName": "my-env", + "OptionSettings": [ + { + "Namespace": "aws:elasticbeanstalk:healthreporting:system", + "OptionName": "ConfigDocument", + "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": null,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": null,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": null,\"ApplicationRequests2xx\": null,\"InstancesDegraded\": null,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": null,\"InstancesNoData\": null,\"InstancesPending\": 60,\"ApplicationLatencyP10\": null,\"ApplicationRequests5xx\": null,\"ApplicationLatencyP75\": null,\"InstancesOk\": 60,\"ApplicationRequests3xx\": null,\"ApplicationRequests4xx\": null},\"Instance\": {\"ApplicationLatencyP99.9\": null,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": null,\"ApplicationLatencyP95\": null,\"ApplicationLatencyP85\": null,\"CPUUser\": 60,\"ApplicationRequests2xx\": null,\"CPUIdle\": null,\"ApplicationLatencyP50\": null,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": null,\"LoadAverage1min\": null,\"CPUIrq\": null,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": null,\"LoadAverage5min\": null,\"ApplicationRequests5xx\": null,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": null,\"InstanceHealth\": null,\"CPUSoftirq\": 60}},\"Version\": 1}" + } + ] + }, + "output": { + "Messages": [ + + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation validates a CloudWatch custom metrics config document:", + "id": "to-validate-configuration-settings-1456278393654", + "title": "To validate configuration settings" + } + ] + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.min.json new file mode 100755 index 0000000..4c0bf0b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.min.json @@ -0,0 +1,1264 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2010-12-01", + "endpointPrefix": "elasticbeanstalk", + "protocol": "query", + "serviceAbbreviation": "Elastic Beanstalk", + "serviceFullName": "AWS Elastic Beanstalk", + "signatureVersion": "v4", + "xmlNamespace": "http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/" + }, + "operations": { + "AbortEnvironmentUpdate": { + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + } + }, + "ApplyEnvironmentManagedAction": { + "input": { + "type": "structure", + "required": [ + "ActionId" + ], + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "ActionId": {} + } + }, + "output": { + "resultWrapper": "ApplyEnvironmentManagedActionResult", + "type": "structure", + "members": { + "ActionId": {}, + "ActionDescription": {}, + "ActionType": {}, + "Status": {} + } + } + }, + "CheckDNSAvailability": { + "input": { + "type": "structure", + "required": [ + "CNAMEPrefix" + ], + "members": { + "CNAMEPrefix": {} + } + }, + "output": { + "resultWrapper": "CheckDNSAvailabilityResult", + "type": "structure", + "members": { + "Available": { + "type": "boolean" + }, + "FullyQualifiedCNAME": {} + } + } + }, + "ComposeEnvironments": { + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "GroupName": {}, + "VersionLabels": { + "type": "list", + "member": {} + } + } + }, + "output": { + "shape": "Si", + "resultWrapper": "ComposeEnvironmentsResult" + } + }, + "CreateApplication": { + "input": { + "type": "structure", + "required": [ + "ApplicationName" + ], + "members": { + "ApplicationName": {}, + "Description": {} + } + }, + "output": { + "shape": "S14", + "resultWrapper": "CreateApplicationResult" + } + }, + "CreateApplicationVersion": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "VersionLabel" + ], + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "Description": {}, + "SourceBundle": { + "shape": "S19" + }, + "AutoCreateApplication": { + "type": "boolean" + }, + "Process": { + "type": "boolean" + } + } + }, + "output": { + "shape": "S1e", + "resultWrapper": "CreateApplicationVersionResult" + } + }, + "CreateConfigurationTemplate": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "TemplateName" + ], + "members": { + "ApplicationName": {}, + "TemplateName": {}, + "SolutionStackName": {}, + "SourceConfiguration": { + "type": "structure", + "members": { + "ApplicationName": {}, + "TemplateName": {} + } + }, + "EnvironmentId": {}, + "Description": {}, + "OptionSettings": { + "shape": "S1j" + } + } + }, + "output": { + "shape": "S1p", + "resultWrapper": "CreateConfigurationTemplateResult" + } + }, + "CreateEnvironment": { + "input": { + "type": "structure", + "required": [ + "ApplicationName" + ], + "members": { + "ApplicationName": {}, + "EnvironmentName": {}, + "GroupName": {}, + "Description": {}, + "CNAMEPrefix": {}, + "Tier": { + "shape": "S10" + }, + "Tags": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "VersionLabel": {}, + "TemplateName": {}, + "SolutionStackName": {}, + "OptionSettings": { + "shape": "S1j" + }, + "OptionsToRemove": { + "shape": "S1w" + } + } + }, + "output": { + "shape": "Sk", + "resultWrapper": "CreateEnvironmentResult" + } + }, + "CreateStorageLocation": { + "output": { + "resultWrapper": "CreateStorageLocationResult", + "type": "structure", + "members": { + "S3Bucket": {} + } + } + }, + "DeleteApplication": { + "input": { + "type": "structure", + "required": [ + "ApplicationName" + ], + "members": { + "ApplicationName": {}, + "TerminateEnvByForce": { + "type": "boolean" + } + } + } + }, + "DeleteApplicationVersion": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "VersionLabel" + ], + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "DeleteSourceBundle": { + "type": "boolean" + } + } + } + }, + "DeleteConfigurationTemplate": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "TemplateName" + ], + "members": { + "ApplicationName": {}, + "TemplateName": {} + } + } + }, + "DeleteEnvironmentConfiguration": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "EnvironmentName" + ], + "members": { + "ApplicationName": {}, + "EnvironmentName": {} + } + } + }, + "DescribeApplicationVersions": { + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "VersionLabels": { + "shape": "S16" + } + } + }, + "output": { + "resultWrapper": "DescribeApplicationVersionsResult", + "type": "structure", + "members": { + "ApplicationVersions": { + "type": "list", + "member": { + "shape": "S1f" + } + } + } + } + }, + "DescribeApplications": { + "input": { + "type": "structure", + "members": { + "ApplicationNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeApplicationsResult", + "type": "structure", + "members": { + "Applications": { + "type": "list", + "member": { + "shape": "S15" + } + } + } + } + }, + "DescribeConfigurationOptions": { + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "TemplateName": {}, + "EnvironmentName": {}, + "SolutionStackName": {}, + "Options": { + "shape": "S1w" + } + } + }, + "output": { + "resultWrapper": "DescribeConfigurationOptionsResult", + "type": "structure", + "members": { + "SolutionStackName": {}, + "Options": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Namespace": {}, + "Name": {}, + "DefaultValue": {}, + "ChangeSeverity": {}, + "UserDefined": { + "type": "boolean" + }, + "ValueType": {}, + "ValueOptions": { + "type": "list", + "member": {} + }, + "MinValue": { + "type": "integer" + }, + "MaxValue": { + "type": "integer" + }, + "MaxLength": { + "type": "integer" + }, + "Regex": { + "type": "structure", + "members": { + "Pattern": {}, + "Label": {} + } + } + } + } + } + } + } + }, + "DescribeConfigurationSettings": { + "input": { + "type": "structure", + "required": [ + "ApplicationName" + ], + "members": { + "ApplicationName": {}, + "TemplateName": {}, + "EnvironmentName": {} + } + }, + "output": { + "resultWrapper": "DescribeConfigurationSettingsResult", + "type": "structure", + "members": { + "ConfigurationSettings": { + "type": "list", + "member": { + "shape": "S1p" + } + } + } + } + }, + "DescribeEnvironmentHealth": { + "input": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "AttributeNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeEnvironmentHealthResult", + "type": "structure", + "members": { + "EnvironmentName": {}, + "HealthStatus": {}, + "Status": {}, + "Color": {}, + "Causes": { + "shape": "S2z" + }, + "ApplicationMetrics": { + "shape": "S31" + }, + "InstancesHealth": { + "type": "structure", + "members": { + "NoData": { + "type": "integer" + }, + "Unknown": { + "type": "integer" + }, + "Pending": { + "type": "integer" + }, + "Ok": { + "type": "integer" + }, + "Info": { + "type": "integer" + }, + "Warning": { + "type": "integer" + }, + "Degraded": { + "type": "integer" + }, + "Severe": { + "type": "integer" + } + } + }, + "RefreshedAt": { + "type": "timestamp" + } + } + } + }, + "DescribeEnvironmentManagedActionHistory": { + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "NextToken": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeEnvironmentManagedActionHistoryResult", + "type": "structure", + "members": { + "ManagedActionHistoryItems": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ActionId": {}, + "ActionType": {}, + "ActionDescription": {}, + "FailureType": {}, + "Status": {}, + "FailureDescription": {}, + "ExecutedTime": { + "type": "timestamp" + }, + "FinishedTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeEnvironmentManagedActions": { + "input": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "Status": {} + } + }, + "output": { + "resultWrapper": "DescribeEnvironmentManagedActionsResult", + "type": "structure", + "members": { + "ManagedActions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ActionId": {}, + "ActionDescription": {}, + "ActionType": {}, + "Status": {}, + "WindowStartTime": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeEnvironmentResources": { + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + }, + "output": { + "resultWrapper": "DescribeEnvironmentResourcesResult", + "type": "structure", + "members": { + "EnvironmentResources": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "AutoScalingGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "Instances": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Id": {} + } + } + }, + "LaunchConfigurations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "LoadBalancers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "Triggers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "Queues": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "URL": {} + } + } + } + } + } + } + } + }, + "DescribeEnvironments": { + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "EnvironmentIds": { + "type": "list", + "member": {} + }, + "EnvironmentNames": { + "type": "list", + "member": {} + }, + "IncludeDeleted": { + "type": "boolean" + }, + "IncludedDeletedBackTo": { + "type": "timestamp" + } + } + }, + "output": { + "shape": "Si", + "resultWrapper": "DescribeEnvironmentsResult" + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "TemplateName": {}, + "EnvironmentId": {}, + "EnvironmentName": {}, + "RequestId": {}, + "Severity": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Events": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventDate": { + "type": "timestamp" + }, + "Message": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "TemplateName": {}, + "EnvironmentName": {}, + "RequestId": {}, + "Severity": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeInstancesHealth": { + "input": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "AttributeNames": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeInstancesHealthResult", + "type": "structure", + "members": { + "InstanceHealthList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstanceId": {}, + "HealthStatus": {}, + "Color": {}, + "Causes": { + "shape": "S2z" + }, + "LaunchedAt": { + "type": "timestamp" + }, + "ApplicationMetrics": { + "shape": "S31" + }, + "System": { + "type": "structure", + "members": { + "CPUUtilization": { + "type": "structure", + "members": { + "User": { + "type": "double" + }, + "Nice": { + "type": "double" + }, + "System": { + "type": "double" + }, + "Idle": { + "type": "double" + }, + "IOWait": { + "type": "double" + }, + "IRQ": { + "type": "double" + }, + "SoftIRQ": { + "type": "double" + } + } + }, + "LoadAverage": { + "type": "list", + "member": { + "type": "double" + } + } + } + }, + "Deployment": { + "type": "structure", + "members": { + "VersionLabel": {}, + "DeploymentId": { + "type": "long" + }, + "Status": {}, + "DeploymentTime": { + "type": "timestamp" + } + } + }, + "AvailabilityZone": {}, + "InstanceType": {} + } + } + }, + "RefreshedAt": { + "type": "timestamp" + }, + "NextToken": {} + } + } + }, + "ListAvailableSolutionStacks": { + "output": { + "resultWrapper": "ListAvailableSolutionStacksResult", + "type": "structure", + "members": { + "SolutionStacks": { + "type": "list", + "member": {} + }, + "SolutionStackDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "PermittedFileTypes": { + "type": "list", + "member": {} + } + } + } + } + } + } + }, + "RebuildEnvironment": { + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + } + }, + "RequestEnvironmentInfo": { + "input": { + "type": "structure", + "required": [ + "InfoType" + ], + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "InfoType": {} + } + } + }, + "RestartAppServer": { + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + } + }, + "RetrieveEnvironmentInfo": { + "input": { + "type": "structure", + "required": [ + "InfoType" + ], + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "InfoType": {} + } + }, + "output": { + "resultWrapper": "RetrieveEnvironmentInfoResult", + "type": "structure", + "members": { + "EnvironmentInfo": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InfoType": {}, + "Ec2InstanceId": {}, + "SampleTimestamp": { + "type": "timestamp" + }, + "Message": {} + } + } + } + } + } + }, + "SwapEnvironmentCNAMEs": { + "input": { + "type": "structure", + "members": { + "SourceEnvironmentId": {}, + "SourceEnvironmentName": {}, + "DestinationEnvironmentId": {}, + "DestinationEnvironmentName": {} + } + } + }, + "TerminateEnvironment": { + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "TerminateResources": { + "type": "boolean" + }, + "ForceTerminate": { + "type": "boolean" + } + } + }, + "output": { + "shape": "Sk", + "resultWrapper": "TerminateEnvironmentResult" + } + }, + "UpdateApplication": { + "input": { + "type": "structure", + "required": [ + "ApplicationName" + ], + "members": { + "ApplicationName": {}, + "Description": {} + } + }, + "output": { + "shape": "S14", + "resultWrapper": "UpdateApplicationResult" + } + }, + "UpdateApplicationVersion": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "VersionLabel" + ], + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "Description": {} + } + }, + "output": { + "shape": "S1e", + "resultWrapper": "UpdateApplicationVersionResult" + } + }, + "UpdateConfigurationTemplate": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "TemplateName" + ], + "members": { + "ApplicationName": {}, + "TemplateName": {}, + "Description": {}, + "OptionSettings": { + "shape": "S1j" + }, + "OptionsToRemove": { + "shape": "S1w" + } + } + }, + "output": { + "shape": "S1p", + "resultWrapper": "UpdateConfigurationTemplateResult" + } + }, + "UpdateEnvironment": { + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "EnvironmentId": {}, + "EnvironmentName": {}, + "GroupName": {}, + "Description": {}, + "Tier": { + "shape": "S10" + }, + "VersionLabel": {}, + "TemplateName": {}, + "SolutionStackName": {}, + "OptionSettings": { + "shape": "S1j" + }, + "OptionsToRemove": { + "shape": "S1w" + } + } + }, + "output": { + "shape": "Sk", + "resultWrapper": "UpdateEnvironmentResult" + } + }, + "ValidateConfigurationSettings": { + "input": { + "type": "structure", + "required": [ + "ApplicationName", + "OptionSettings" + ], + "members": { + "ApplicationName": {}, + "TemplateName": {}, + "EnvironmentName": {}, + "OptionSettings": { + "shape": "S1j" + } + } + }, + "output": { + "resultWrapper": "ValidateConfigurationSettingsResult", + "type": "structure", + "members": { + "Messages": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Message": {}, + "Severity": {}, + "Namespace": {}, + "OptionName": {} + } + } + } + } + } + } + }, + "shapes": { + "Si": { + "type": "structure", + "members": { + "Environments": { + "type": "list", + "member": { + "shape": "Sk" + } + } + } + }, + "Sk": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "SolutionStackName": {}, + "TemplateName": {}, + "Description": {}, + "EndpointURL": {}, + "CNAME": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Status": {}, + "AbortableOperationInProgress": { + "type": "boolean" + }, + "Health": {}, + "HealthStatus": {}, + "Resources": { + "type": "structure", + "members": { + "LoadBalancer": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "Domain": {}, + "Listeners": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Protocol": {}, + "Port": { + "type": "integer" + } + } + } + } + } + } + } + }, + "Tier": { + "shape": "S10" + }, + "EnvironmentLinks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LinkName": {}, + "EnvironmentName": {} + } + } + } + } + }, + "S10": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + }, + "S14": { + "type": "structure", + "members": { + "Application": { + "shape": "S15" + } + } + }, + "S15": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Versions": { + "shape": "S16" + }, + "ConfigurationTemplates": { + "type": "list", + "member": {} + } + } + }, + "S16": { + "type": "list", + "member": {} + }, + "S19": { + "type": "structure", + "members": { + "S3Bucket": {}, + "S3Key": {} + } + }, + "S1e": { + "type": "structure", + "members": { + "ApplicationVersion": { + "shape": "S1f" + } + } + }, + "S1f": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "VersionLabel": {}, + "SourceBundle": { + "shape": "S19" + }, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Status": {} + } + }, + "S1j": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceName": {}, + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + }, + "S1p": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "ApplicationName": {}, + "TemplateName": {}, + "Description": {}, + "EnvironmentName": {}, + "DeploymentStatus": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "OptionSettings": { + "shape": "S1j" + } + } + }, + "S1w": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceName": {}, + "Namespace": {}, + "OptionName": {} + } + } + }, + "S2z": { + "type": "list", + "member": {} + }, + "S31": { + "type": "structure", + "members": { + "Duration": { + "type": "integer" + }, + "RequestCount": { + "type": "integer" + }, + "StatusCodes": { + "type": "structure", + "members": { + "Status2xx": { + "type": "integer" + }, + "Status3xx": { + "type": "integer" + }, + "Status4xx": { + "type": "integer" + }, + "Status5xx": { + "type": "integer" + } + } + }, + "Latency": { + "type": "structure", + "members": { + "P999": { + "type": "double" + }, + "P99": { + "type": "double" + }, + "P95": { + "type": "double" + }, + "P90": { + "type": "double" + }, + "P85": { + "type": "double" + }, + "P75": { + "type": "double" + }, + "P50": { + "type": "double" + }, + "P10": { + "type": "double" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.paginators.json new file mode 100755 index 0000000..383ce8d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.paginators.json @@ -0,0 +1,25 @@ +{ + "pagination": { + "DescribeApplicationVersions": { + "result_key": "ApplicationVersions" + }, + "DescribeApplications": { + "result_key": "Applications" + }, + "DescribeConfigurationOptions": { + "result_key": "Options" + }, + "DescribeEnvironments": { + "result_key": "Environments" + }, + "DescribeEvents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "ListAvailableSolutionStacks": { + "result_key": "SolutionStacks" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.min.json new file mode 100755 index 0000000..0454ec2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.min.json @@ -0,0 +1,393 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-02-01", + "endpointPrefix": "elasticfilesystem", + "serviceAbbreviation": "EFS", + "serviceFullName": "Amazon Elastic File System", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "CreateFileSystem": { + "http": { + "requestUri": "/2015-02-01/file-systems", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "CreationToken" + ], + "members": { + "CreationToken": {} + } + }, + "output": { + "shape": "S3" + } + }, + "CreateMountTarget": { + "http": { + "requestUri": "/2015-02-01/mount-targets", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FileSystemId", + "SubnetId" + ], + "members": { + "FileSystemId": {}, + "SubnetId": {}, + "IpAddress": {}, + "SecurityGroups": { + "shape": "Sf" + } + } + }, + "output": { + "shape": "Sh" + } + }, + "CreateTags": { + "http": { + "requestUri": "/2015-02-01/create-tags/{FileSystemId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FileSystemId", + "Tags" + ], + "members": { + "FileSystemId": { + "location": "uri", + "locationName": "FileSystemId" + }, + "Tags": { + "shape": "Sl" + } + } + } + }, + "DeleteFileSystem": { + "http": { + "method": "DELETE", + "requestUri": "/2015-02-01/file-systems/{FileSystemId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FileSystemId" + ], + "members": { + "FileSystemId": { + "location": "uri", + "locationName": "FileSystemId" + } + } + } + }, + "DeleteMountTarget": { + "http": { + "method": "DELETE", + "requestUri": "/2015-02-01/mount-targets/{MountTargetId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MountTargetId" + ], + "members": { + "MountTargetId": { + "location": "uri", + "locationName": "MountTargetId" + } + } + } + }, + "DeleteTags": { + "http": { + "requestUri": "/2015-02-01/delete-tags/{FileSystemId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FileSystemId", + "TagKeys" + ], + "members": { + "FileSystemId": { + "location": "uri", + "locationName": "FileSystemId" + }, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "DescribeFileSystems": { + "http": { + "method": "GET", + "requestUri": "/2015-02-01/file-systems", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "CreationToken": { + "location": "querystring", + "locationName": "CreationToken" + }, + "FileSystemId": { + "location": "querystring", + "locationName": "FileSystemId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "FileSystems": { + "type": "list", + "member": { + "shape": "S3" + } + }, + "NextMarker": {} + } + } + }, + "DescribeMountTargetSecurityGroups": { + "http": { + "method": "GET", + "requestUri": "/2015-02-01/mount-targets/{MountTargetId}/security-groups", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "MountTargetId" + ], + "members": { + "MountTargetId": { + "location": "uri", + "locationName": "MountTargetId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SecurityGroups" + ], + "members": { + "SecurityGroups": { + "shape": "Sf" + } + } + } + }, + "DescribeMountTargets": { + "http": { + "method": "GET", + "requestUri": "/2015-02-01/mount-targets", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "FileSystemId": { + "location": "querystring", + "locationName": "FileSystemId" + }, + "MountTargetId": { + "location": "querystring", + "locationName": "MountTargetId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "MountTargets": { + "type": "list", + "member": { + "shape": "Sh" + } + }, + "NextMarker": {} + } + } + }, + "DescribeTags": { + "http": { + "method": "GET", + "requestUri": "/2015-02-01/tags/{FileSystemId}/", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FileSystemId" + ], + "members": { + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "FileSystemId": { + "location": "uri", + "locationName": "FileSystemId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Tags" + ], + "members": { + "Marker": {}, + "Tags": { + "shape": "Sl" + }, + "NextMarker": {} + } + } + }, + "ModifyMountTargetSecurityGroups": { + "http": { + "method": "PUT", + "requestUri": "/2015-02-01/mount-targets/{MountTargetId}/security-groups", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MountTargetId" + ], + "members": { + "MountTargetId": { + "location": "uri", + "locationName": "MountTargetId" + }, + "SecurityGroups": { + "shape": "Sf" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "required": [ + "OwnerId", + "CreationToken", + "FileSystemId", + "CreationTime", + "LifeCycleState", + "NumberOfMountTargets", + "SizeInBytes" + ], + "members": { + "OwnerId": {}, + "CreationToken": {}, + "FileSystemId": {}, + "CreationTime": { + "type": "timestamp" + }, + "LifeCycleState": {}, + "Name": {}, + "NumberOfMountTargets": { + "type": "integer" + }, + "SizeInBytes": { + "type": "structure", + "required": [ + "Value" + ], + "members": { + "Value": { + "type": "long" + }, + "Timestamp": { + "type": "timestamp" + } + } + } + } + }, + "Sf": { + "type": "list", + "member": {} + }, + "Sh": { + "type": "structure", + "required": [ + "MountTargetId", + "FileSystemId", + "SubnetId", + "LifeCycleState" + ], + "members": { + "OwnerId": {}, + "MountTargetId": {}, + "FileSystemId": {}, + "SubnetId": {}, + "LifeCycleState": {}, + "IpAddress": {}, + "NetworkInterfaceId": {} + } + }, + "Sl": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.min.json new file mode 100755 index 0000000..18f03b0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.min.json @@ -0,0 +1,974 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-06-01", + "endpointPrefix": "elasticloadbalancing", + "serviceFullName": "Elastic Load Balancing", + "signatureVersion": "v4", + "xmlNamespace": "http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/", + "protocol": "query" + }, + "operations": { + "AddTags": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerNames", + "Tags" + ], + "members": { + "LoadBalancerNames": { + "shape": "S2" + }, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "resultWrapper": "AddTagsResult", + "type": "structure", + "members": {} + } + }, + "ApplySecurityGroupsToLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "SecurityGroups" + ], + "members": { + "LoadBalancerName": {}, + "SecurityGroups": { + "shape": "Sa" + } + } + }, + "output": { + "resultWrapper": "ApplySecurityGroupsToLoadBalancerResult", + "type": "structure", + "members": { + "SecurityGroups": { + "shape": "Sa" + } + } + } + }, + "AttachLoadBalancerToSubnets": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "Subnets" + ], + "members": { + "LoadBalancerName": {}, + "Subnets": { + "shape": "Se" + } + } + }, + "output": { + "resultWrapper": "AttachLoadBalancerToSubnetsResult", + "type": "structure", + "members": { + "Subnets": { + "shape": "Se" + } + } + } + }, + "ConfigureHealthCheck": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "HealthCheck" + ], + "members": { + "LoadBalancerName": {}, + "HealthCheck": { + "shape": "Si" + } + } + }, + "output": { + "resultWrapper": "ConfigureHealthCheckResult", + "type": "structure", + "members": { + "HealthCheck": { + "shape": "Si" + } + } + } + }, + "CreateAppCookieStickinessPolicy": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "PolicyName", + "CookieName" + ], + "members": { + "LoadBalancerName": {}, + "PolicyName": {}, + "CookieName": {} + } + }, + "output": { + "resultWrapper": "CreateAppCookieStickinessPolicyResult", + "type": "structure", + "members": {} + } + }, + "CreateLBCookieStickinessPolicy": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "PolicyName" + ], + "members": { + "LoadBalancerName": {}, + "PolicyName": {}, + "CookieExpirationPeriod": { + "type": "long" + } + } + }, + "output": { + "resultWrapper": "CreateLBCookieStickinessPolicyResult", + "type": "structure", + "members": {} + } + }, + "CreateLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "Listeners" + ], + "members": { + "LoadBalancerName": {}, + "Listeners": { + "shape": "Sx" + }, + "AvailabilityZones": { + "shape": "S13" + }, + "Subnets": { + "shape": "Se" + }, + "SecurityGroups": { + "shape": "Sa" + }, + "Scheme": {}, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "resultWrapper": "CreateLoadBalancerResult", + "type": "structure", + "members": { + "DNSName": {} + } + } + }, + "CreateLoadBalancerListeners": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "Listeners" + ], + "members": { + "LoadBalancerName": {}, + "Listeners": { + "shape": "Sx" + } + } + }, + "output": { + "resultWrapper": "CreateLoadBalancerListenersResult", + "type": "structure", + "members": {} + } + }, + "CreateLoadBalancerPolicy": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "PolicyName", + "PolicyTypeName" + ], + "members": { + "LoadBalancerName": {}, + "PolicyName": {}, + "PolicyTypeName": {}, + "PolicyAttributes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeValue": {} + } + } + } + } + }, + "output": { + "resultWrapper": "CreateLoadBalancerPolicyResult", + "type": "structure", + "members": {} + } + }, + "DeleteLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName" + ], + "members": { + "LoadBalancerName": {} + } + }, + "output": { + "resultWrapper": "DeleteLoadBalancerResult", + "type": "structure", + "members": {} + } + }, + "DeleteLoadBalancerListeners": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "LoadBalancerPorts" + ], + "members": { + "LoadBalancerName": {}, + "LoadBalancerPorts": { + "type": "list", + "member": { + "type": "integer" + } + } + } + }, + "output": { + "resultWrapper": "DeleteLoadBalancerListenersResult", + "type": "structure", + "members": {} + } + }, + "DeleteLoadBalancerPolicy": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "PolicyName" + ], + "members": { + "LoadBalancerName": {}, + "PolicyName": {} + } + }, + "output": { + "resultWrapper": "DeleteLoadBalancerPolicyResult", + "type": "structure", + "members": {} + } + }, + "DeregisterInstancesFromLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "Instances" + ], + "members": { + "LoadBalancerName": {}, + "Instances": { + "shape": "S1p" + } + } + }, + "output": { + "resultWrapper": "DeregisterInstancesFromLoadBalancerResult", + "type": "structure", + "members": { + "Instances": { + "shape": "S1p" + } + } + } + }, + "DescribeInstanceHealth": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName" + ], + "members": { + "LoadBalancerName": {}, + "Instances": { + "shape": "S1p" + } + } + }, + "output": { + "resultWrapper": "DescribeInstanceHealthResult", + "type": "structure", + "members": { + "InstanceStates": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstanceId": {}, + "State": {}, + "ReasonCode": {}, + "Description": {} + } + } + } + } + } + }, + "DescribeLoadBalancerAttributes": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName" + ], + "members": { + "LoadBalancerName": {} + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancerAttributesResult", + "type": "structure", + "members": { + "LoadBalancerAttributes": { + "shape": "S22" + } + } + } + }, + "DescribeLoadBalancerPolicies": { + "input": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "PolicyNames": { + "shape": "S2j" + } + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancerPoliciesResult", + "type": "structure", + "members": { + "PolicyDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyName": {}, + "PolicyTypeName": {}, + "PolicyAttributeDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeValue": {} + } + } + } + } + } + } + } + } + }, + "DescribeLoadBalancerPolicyTypes": { + "input": { + "type": "structure", + "members": { + "PolicyTypeNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancerPolicyTypesResult", + "type": "structure", + "members": { + "PolicyTypeDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyTypeName": {}, + "Description": {}, + "PolicyAttributeTypeDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {}, + "Description": {}, + "DefaultValue": {}, + "Cardinality": {} + } + } + } + } + } + } + } + } + }, + "DescribeLoadBalancers": { + "input": { + "type": "structure", + "members": { + "LoadBalancerNames": { + "shape": "S2" + }, + "Marker": {}, + "PageSize": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancersResult", + "type": "structure", + "members": { + "LoadBalancerDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "DNSName": {}, + "CanonicalHostedZoneName": {}, + "CanonicalHostedZoneNameID": {}, + "ListenerDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Listener": { + "shape": "Sy" + }, + "PolicyNames": { + "shape": "S2j" + } + } + } + }, + "Policies": { + "type": "structure", + "members": { + "AppCookieStickinessPolicies": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyName": {}, + "CookieName": {} + } + } + }, + "LBCookieStickinessPolicies": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyName": {}, + "CookieExpirationPeriod": { + "type": "long" + } + } + } + }, + "OtherPolicies": { + "shape": "S2j" + } + } + }, + "BackendServerDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstancePort": { + "type": "integer" + }, + "PolicyNames": { + "shape": "S2j" + } + } + } + }, + "AvailabilityZones": { + "shape": "S13" + }, + "Subnets": { + "shape": "Se" + }, + "VPCId": {}, + "Instances": { + "shape": "S1p" + }, + "HealthCheck": { + "shape": "Si" + }, + "SourceSecurityGroup": { + "type": "structure", + "members": { + "OwnerAlias": {}, + "GroupName": {} + } + }, + "SecurityGroups": { + "shape": "Sa" + }, + "CreatedTime": { + "type": "timestamp" + }, + "Scheme": {} + } + } + }, + "NextMarker": {} + } + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerNames" + ], + "members": { + "LoadBalancerNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeTagsResult", + "type": "structure", + "members": { + "TagDescriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "Tags": { + "shape": "S4" + } + } + } + } + } + } + }, + "DetachLoadBalancerFromSubnets": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "Subnets" + ], + "members": { + "LoadBalancerName": {}, + "Subnets": { + "shape": "Se" + } + } + }, + "output": { + "resultWrapper": "DetachLoadBalancerFromSubnetsResult", + "type": "structure", + "members": { + "Subnets": { + "shape": "Se" + } + } + } + }, + "DisableAvailabilityZonesForLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "AvailabilityZones" + ], + "members": { + "LoadBalancerName": {}, + "AvailabilityZones": { + "shape": "S13" + } + } + }, + "output": { + "resultWrapper": "DisableAvailabilityZonesForLoadBalancerResult", + "type": "structure", + "members": { + "AvailabilityZones": { + "shape": "S13" + } + } + } + }, + "EnableAvailabilityZonesForLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "AvailabilityZones" + ], + "members": { + "LoadBalancerName": {}, + "AvailabilityZones": { + "shape": "S13" + } + } + }, + "output": { + "resultWrapper": "EnableAvailabilityZonesForLoadBalancerResult", + "type": "structure", + "members": { + "AvailabilityZones": { + "shape": "S13" + } + } + } + }, + "ModifyLoadBalancerAttributes": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "LoadBalancerAttributes" + ], + "members": { + "LoadBalancerName": {}, + "LoadBalancerAttributes": { + "shape": "S22" + } + } + }, + "output": { + "resultWrapper": "ModifyLoadBalancerAttributesResult", + "type": "structure", + "members": { + "LoadBalancerName": {}, + "LoadBalancerAttributes": { + "shape": "S22" + } + } + } + }, + "RegisterInstancesWithLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "Instances" + ], + "members": { + "LoadBalancerName": {}, + "Instances": { + "shape": "S1p" + } + } + }, + "output": { + "resultWrapper": "RegisterInstancesWithLoadBalancerResult", + "type": "structure", + "members": { + "Instances": { + "shape": "S1p" + } + } + } + }, + "RemoveTags": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerNames", + "Tags" + ], + "members": { + "LoadBalancerNames": { + "shape": "S2" + }, + "Tags": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {} + } + } + } + } + }, + "output": { + "resultWrapper": "RemoveTagsResult", + "type": "structure", + "members": {} + } + }, + "SetLoadBalancerListenerSSLCertificate": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "LoadBalancerPort", + "SSLCertificateId" + ], + "members": { + "LoadBalancerName": {}, + "LoadBalancerPort": { + "type": "integer" + }, + "SSLCertificateId": {} + } + }, + "output": { + "resultWrapper": "SetLoadBalancerListenerSSLCertificateResult", + "type": "structure", + "members": {} + } + }, + "SetLoadBalancerPoliciesForBackendServer": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "InstancePort", + "PolicyNames" + ], + "members": { + "LoadBalancerName": {}, + "InstancePort": { + "type": "integer" + }, + "PolicyNames": { + "shape": "S2j" + } + } + }, + "output": { + "resultWrapper": "SetLoadBalancerPoliciesForBackendServerResult", + "type": "structure", + "members": {} + } + }, + "SetLoadBalancerPoliciesOfListener": { + "input": { + "type": "structure", + "required": [ + "LoadBalancerName", + "LoadBalancerPort", + "PolicyNames" + ], + "members": { + "LoadBalancerName": {}, + "LoadBalancerPort": { + "type": "integer" + }, + "PolicyNames": { + "shape": "S2j" + } + } + }, + "output": { + "resultWrapper": "SetLoadBalancerPoliciesOfListenerResult", + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "S4": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sa": { + "type": "list", + "member": {} + }, + "Se": { + "type": "list", + "member": {} + }, + "Si": { + "type": "structure", + "required": [ + "Target", + "Interval", + "Timeout", + "UnhealthyThreshold", + "HealthyThreshold" + ], + "members": { + "Target": {}, + "Interval": { + "type": "integer" + }, + "Timeout": { + "type": "integer" + }, + "UnhealthyThreshold": { + "type": "integer" + }, + "HealthyThreshold": { + "type": "integer" + } + } + }, + "Sx": { + "type": "list", + "member": { + "shape": "Sy" + } + }, + "Sy": { + "type": "structure", + "required": [ + "Protocol", + "LoadBalancerPort", + "InstancePort" + ], + "members": { + "Protocol": {}, + "LoadBalancerPort": { + "type": "integer" + }, + "InstanceProtocol": {}, + "InstancePort": { + "type": "integer" + }, + "SSLCertificateId": {} + } + }, + "S13": { + "type": "list", + "member": {} + }, + "S1p": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + }, + "S22": { + "type": "structure", + "members": { + "CrossZoneLoadBalancing": { + "type": "structure", + "required": [ + "Enabled" + ], + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "AccessLog": { + "type": "structure", + "required": [ + "Enabled" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "S3BucketName": {}, + "EmitInterval": { + "type": "integer" + }, + "S3BucketPrefix": {} + } + }, + "ConnectionDraining": { + "type": "structure", + "required": [ + "Enabled" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "integer" + } + } + }, + "ConnectionSettings": { + "type": "structure", + "required": [ + "IdleTimeout" + ], + "members": { + "IdleTimeout": { + "type": "integer" + } + } + }, + "AdditionalAttributes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + }, + "S2j": { + "type": "list", + "member": {} + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.paginators.json new file mode 100755 index 0000000..82113a7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.paginators.json @@ -0,0 +1,18 @@ +{ + "pagination": { + "DescribeInstanceHealth": { + "result_key": "InstanceStates" + }, + "DescribeLoadBalancerPolicies": { + "result_key": "PolicyDescriptions" + }, + "DescribeLoadBalancerPolicyTypes": { + "result_key": "PolicyTypeDescriptions" + }, + "DescribeLoadBalancers": { + "input_token": "Marker", + "output_token": "NextMarker", + "result_key": "LoadBalancerDescriptions" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.waiters2.json new file mode 100755 index 0000000..b03901a --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.waiters2.json @@ -0,0 +1,49 @@ +{ + "version": 2, + "waiters": { + "InstanceInService": { + "delay": 15, + "operation": "DescribeInstanceHealth", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "InService", + "matcher": "pathAll", + "state": "success", + "argument": "InstanceStates[].State" + } + ] + }, + "InstanceDeregistered": { + "delay": 15, + "operation": "DescribeInstanceHealth", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "OutOfService", + "matcher": "pathAll", + "state": "success", + "argument": "InstanceStates[].State" + }, + { + "matcher": "error", + "expected": "InvalidInstance", + "state": "success" + } + ] + }, + "AnyInstanceInService": { + "delay": 15, + "operation": "DescribeInstanceHealth", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "InService", + "matcher": "pathAny", + "state": "success", + "argument": "InstanceStates[].State" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.min.json new file mode 100755 index 0000000..94e732f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.min.json @@ -0,0 +1,1143 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2009-03-31", + "endpointPrefix": "elasticmapreduce", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Amazon EMR", + "serviceFullName": "Amazon Elastic MapReduce", + "signatureVersion": "v4", + "targetPrefix": "ElasticMapReduce", + "timestampFormat": "unixTimestamp" + }, + "operations": { + "AddInstanceGroups": { + "input": { + "type": "structure", + "required": [ + "InstanceGroups", + "JobFlowId" + ], + "members": { + "InstanceGroups": { + "shape": "S2" + }, + "JobFlowId": {} + } + }, + "output": { + "type": "structure", + "members": { + "JobFlowId": {}, + "InstanceGroupIds": { + "type": "list", + "member": {} + } + } + } + }, + "AddJobFlowSteps": { + "input": { + "type": "structure", + "required": [ + "JobFlowId", + "Steps" + ], + "members": { + "JobFlowId": {}, + "Steps": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "StepIds": { + "type": "list", + "member": {} + } + } + } + }, + "AddTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId", + "Tags" + ], + "members": { + "ResourceId": {}, + "Tags": { + "shape": "Sx" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeCluster": { + "input": { + "type": "structure", + "required": [ + "ClusterId" + ], + "members": { + "ClusterId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Status": { + "shape": "S14" + }, + "Ec2InstanceAttributes": { + "type": "structure", + "members": { + "Ec2KeyName": {}, + "Ec2SubnetId": {}, + "Ec2AvailabilityZone": {}, + "IamInstanceProfile": {}, + "EmrManagedMasterSecurityGroup": {}, + "EmrManagedSlaveSecurityGroup": {}, + "ServiceAccessSecurityGroup": {}, + "AdditionalMasterSecurityGroups": { + "shape": "S1b" + }, + "AdditionalSlaveSecurityGroups": { + "shape": "S1b" + } + } + }, + "LogUri": {}, + "RequestedAmiVersion": {}, + "RunningAmiVersion": {}, + "ReleaseLabel": {}, + "AutoTerminate": { + "type": "boolean" + }, + "TerminationProtected": { + "type": "boolean" + }, + "VisibleToAllUsers": { + "type": "boolean" + }, + "Applications": { + "shape": "S1d" + }, + "Tags": { + "shape": "Sx" + }, + "ServiceRole": {}, + "NormalizedInstanceHours": { + "type": "integer" + }, + "MasterPublicDnsName": {}, + "Configurations": { + "shape": "S9" + } + } + } + } + } + }, + "DescribeJobFlows": { + "input": { + "type": "structure", + "members": { + "CreatedAfter": { + "type": "timestamp" + }, + "CreatedBefore": { + "type": "timestamp" + }, + "JobFlowIds": { + "shape": "Ss" + }, + "JobFlowStates": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "JobFlows": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "JobFlowId", + "Name", + "ExecutionStatusDetail", + "Instances" + ], + "members": { + "JobFlowId": {}, + "Name": {}, + "LogUri": {}, + "AmiVersion": {}, + "ExecutionStatusDetail": { + "type": "structure", + "required": [ + "State", + "CreationDateTime" + ], + "members": { + "State": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + }, + "LastStateChangeReason": {} + } + }, + "Instances": { + "type": "structure", + "required": [ + "MasterInstanceType", + "SlaveInstanceType", + "InstanceCount" + ], + "members": { + "MasterInstanceType": {}, + "MasterPublicDnsName": {}, + "MasterInstanceId": {}, + "SlaveInstanceType": {}, + "InstanceCount": { + "type": "integer" + }, + "InstanceGroups": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Market", + "InstanceRole", + "InstanceType", + "InstanceRequestCount", + "InstanceRunningCount", + "State", + "CreationDateTime" + ], + "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": { + "shape": "S1q" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "TerminationProtected": { + "type": "boolean" + }, + "HadoopVersion": {} + } + }, + "Steps": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "StepConfig", + "ExecutionStatusDetail" + ], + "members": { + "StepConfig": { + "shape": "Sm" + }, + "ExecutionStatusDetail": { + "type": "structure", + "required": [ + "State", + "CreationDateTime" + ], + "members": { + "State": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + }, + "LastStateChangeReason": {} + } + } + } + } + }, + "BootstrapActions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "BootstrapActionConfig": { + "shape": "S1x" + } + } + } + }, + "SupportedProducts": { + "shape": "S1z" + }, + "VisibleToAllUsers": { + "type": "boolean" + }, + "JobFlowRole": {}, + "ServiceRole": {} + } + } + } + } + }, + "deprecated": true + }, + "DescribeStep": { + "input": { + "type": "structure", + "required": [ + "ClusterId", + "StepId" + ], + "members": { + "ClusterId": {}, + "StepId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Step": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Config": { + "shape": "S24" + }, + "ActionOnFailure": {}, + "Status": { + "shape": "S25" + } + } + } + } + } + }, + "ListBootstrapActions": { + "input": { + "type": "structure", + "required": [ + "ClusterId" + ], + "members": { + "ClusterId": {}, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "BootstrapActions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "ScriptPath": {}, + "Args": { + "shape": "S1b" + } + } + } + }, + "Marker": {} + } + } + }, + "ListClusters": { + "input": { + "type": "structure", + "members": { + "CreatedAfter": { + "type": "timestamp" + }, + "CreatedBefore": { + "type": "timestamp" + }, + "ClusterStates": { + "type": "list", + "member": {} + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Clusters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Status": { + "shape": "S14" + }, + "NormalizedInstanceHours": { + "type": "integer" + } + } + } + }, + "Marker": {} + } + } + }, + "ListInstanceGroups": { + "input": { + "type": "structure", + "required": [ + "ClusterId" + ], + "members": { + "ClusterId": {}, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceGroups": { + "type": "list", + "member": { + "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" + } + } + } + } + }, + "Configurations": { + "shape": "S9" + }, + "EbsBlockDevices": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VolumeSpecification": { + "shape": "Sg" + }, + "Device": {} + } + } + }, + "EbsOptimized": { + "type": "boolean" + }, + "ShrinkPolicy": { + "shape": "S2w" + } + } + } + }, + "Marker": {} + } + } + }, + "ListInstances": { + "input": { + "type": "structure", + "required": [ + "ClusterId" + ], + "members": { + "ClusterId": {}, + "InstanceGroupId": {}, + "InstanceGroupTypes": { + "type": "list", + "member": {} + }, + "InstanceStates": { + "type": "list", + "member": {} + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "type": "list", + "member": { + "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" + } + } + } + } + }, + "InstanceGroupId": {}, + "EbsVolumes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Device": {}, + "VolumeId": {} + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "ListSteps": { + "input": { + "type": "structure", + "required": [ + "ClusterId" + ], + "members": { + "ClusterId": {}, + "StepStates": { + "type": "list", + "member": {} + }, + "StepIds": { + "shape": "Ss" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Steps": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Config": { + "shape": "S24" + }, + "ActionOnFailure": {}, + "Status": { + "shape": "S25" + } + } + } + }, + "Marker": {} + } + } + }, + "ModifyInstanceGroups": { + "input": { + "type": "structure", + "members": { + "InstanceGroups": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "InstanceGroupId" + ], + "members": { + "InstanceGroupId": {}, + "InstanceCount": { + "type": "integer" + }, + "EC2InstanceIdsToTerminate": { + "type": "list", + "member": {} + }, + "ShrinkPolicy": { + "shape": "S2w" + } + } + } + } + } + } + }, + "RemoveTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId", + "TagKeys" + ], + "members": { + "ResourceId": {}, + "TagKeys": { + "shape": "S1b" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "RunJobFlow": { + "input": { + "type": "structure", + "required": [ + "Name", + "Instances" + ], + "members": { + "Name": {}, + "LogUri": {}, + "AdditionalInfo": {}, + "AmiVersion": {}, + "ReleaseLabel": {}, + "Instances": { + "type": "structure", + "members": { + "MasterInstanceType": {}, + "SlaveInstanceType": {}, + "InstanceCount": { + "type": "integer" + }, + "InstanceGroups": { + "shape": "S2" + }, + "Ec2KeyName": {}, + "Placement": { + "shape": "S1q" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "TerminationProtected": { + "type": "boolean" + }, + "HadoopVersion": {}, + "Ec2SubnetId": {}, + "EmrManagedMasterSecurityGroup": {}, + "EmrManagedSlaveSecurityGroup": {}, + "ServiceAccessSecurityGroup": {}, + "AdditionalMasterSecurityGroups": { + "shape": "S3q" + }, + "AdditionalSlaveSecurityGroups": { + "shape": "S3q" + } + } + }, + "Steps": { + "shape": "Sl" + }, + "BootstrapActions": { + "type": "list", + "member": { + "shape": "S1x" + } + }, + "SupportedProducts": { + "shape": "S1z" + }, + "NewSupportedProducts": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Args": { + "shape": "Ss" + } + } + } + }, + "Applications": { + "shape": "S1d" + }, + "Configurations": { + "shape": "S9" + }, + "VisibleToAllUsers": { + "type": "boolean" + }, + "JobFlowRole": {}, + "ServiceRole": {}, + "Tags": { + "shape": "Sx" + } + } + }, + "output": { + "type": "structure", + "members": { + "JobFlowId": {} + } + } + }, + "SetTerminationProtection": { + "input": { + "type": "structure", + "required": [ + "JobFlowIds", + "TerminationProtected" + ], + "members": { + "JobFlowIds": { + "shape": "Ss" + }, + "TerminationProtected": { + "type": "boolean" + } + } + } + }, + "SetVisibleToAllUsers": { + "input": { + "type": "structure", + "required": [ + "JobFlowIds", + "VisibleToAllUsers" + ], + "members": { + "JobFlowIds": { + "shape": "Ss" + }, + "VisibleToAllUsers": { + "type": "boolean" + } + } + } + }, + "TerminateJobFlows": { + "input": { + "type": "structure", + "required": [ + "JobFlowIds" + ], + "members": { + "JobFlowIds": { + "shape": "Ss" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "InstanceRole", + "InstanceType", + "InstanceCount" + ], + "members": { + "Name": {}, + "Market": {}, + "InstanceRole": {}, + "BidPrice": {}, + "InstanceType": {}, + "InstanceCount": { + "type": "integer" + }, + "Configurations": { + "shape": "S9" + }, + "EbsConfiguration": { + "type": "structure", + "members": { + "EbsBlockDeviceConfigs": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "VolumeSpecification" + ], + "members": { + "VolumeSpecification": { + "shape": "Sg" + }, + "VolumesPerInstance": { + "type": "integer" + } + } + } + }, + "EbsOptimized": { + "type": "boolean" + } + } + } + } + } + }, + "S9": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Classification": {}, + "Configurations": { + "shape": "S9" + }, + "Properties": { + "shape": "Sc" + } + } + } + }, + "Sc": { + "type": "map", + "key": {}, + "value": {} + }, + "Sg": { + "type": "structure", + "required": [ + "VolumeType", + "SizeInGB" + ], + "members": { + "VolumeType": {}, + "Iops": { + "type": "integer" + }, + "SizeInGB": { + "type": "integer" + } + } + }, + "Sl": { + "type": "list", + "member": { + "shape": "Sm" + } + }, + "Sm": { + "type": "structure", + "required": [ + "Name", + "HadoopJarStep" + ], + "members": { + "Name": {}, + "ActionOnFailure": {}, + "HadoopJarStep": { + "type": "structure", + "required": [ + "Jar" + ], + "members": { + "Properties": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Jar": {}, + "MainClass": {}, + "Args": { + "shape": "Ss" + } + } + } + } + }, + "Ss": { + "type": "list", + "member": {} + }, + "Sx": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S14": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + }, + "S1b": { + "type": "list", + "member": {} + }, + "S1d": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Version": {}, + "Args": { + "shape": "S1b" + }, + "AdditionalInfo": { + "shape": "Sc" + } + } + } + }, + "S1q": { + "type": "structure", + "required": [ + "AvailabilityZone" + ], + "members": { + "AvailabilityZone": {} + } + }, + "S1x": { + "type": "structure", + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "members": { + "Name": {}, + "ScriptBootstrapAction": { + "type": "structure", + "required": [ + "Path" + ], + "members": { + "Path": {}, + "Args": { + "shape": "Ss" + } + } + } + } + }, + "S1z": { + "type": "list", + "member": {} + }, + "S24": { + "type": "structure", + "members": { + "Jar": {}, + "Properties": { + "shape": "Sc" + }, + "MainClass": {}, + "Args": { + "shape": "S1b" + } + } + }, + "S25": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + }, + "S2w": { + "type": "structure", + "members": { + "DecommissionTimeout": { + "type": "integer" + }, + "InstanceResizePolicy": { + "type": "structure", + "members": { + "InstancesToTerminate": { + "shape": "S2y" + }, + "InstancesToProtect": { + "shape": "S2y" + }, + "InstanceTerminationTimeout": { + "type": "integer" + } + } + } + } + }, + "S2y": { + "type": "list", + "member": {} + }, + "S3q": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.paginators.json new file mode 100755 index 0000000..87f282d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.paginators.json @@ -0,0 +1,32 @@ +{ + "pagination": { + "DescribeJobFlows": { + "result_key": "JobFlows" + }, + "ListBootstrapActions": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "BootstrapActions" + }, + "ListClusters": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "Clusters" + }, + "ListInstanceGroups": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "InstanceGroups" + }, + "ListInstances": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "Instances" + }, + "ListSteps": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "Steps" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.waiters2.json new file mode 100755 index 0000000..829f1b1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.waiters2.json @@ -0,0 +1,67 @@ +{ + "version": 2, + "waiters": { + "ClusterRunning": { + "delay": 30, + "operation": "DescribeCluster", + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "RUNNING" + }, + { + "state": "success", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "WAITING" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "TERMINATING" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "TERMINATED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "TERMINATED_WITH_ERRORS" + } + ] + }, + "StepComplete": { + "delay": 30, + "operation": "DescribeStep", + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "Step.Status.State", + "expected": "COMPLETED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Step.Status.State", + "expected": "FAILED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Step.Status.State", + "expected": "CANCELLED" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.min.json new file mode 100755 index 0000000..2a383fc --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.min.json @@ -0,0 +1,1019 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-09-25", + "endpointPrefix": "elastictranscoder", + "serviceFullName": "Amazon Elastic Transcoder", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "CancelJob": { + "http": { + "method": "DELETE", + "requestUri": "/2012-09-25/jobs/{Id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateJob": { + "http": { + "requestUri": "/2012-09-25/jobs", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "PipelineId", + "Input" + ], + "members": { + "PipelineId": {}, + "Input": { + "shape": "S5" + }, + "Output": { + "shape": "Sk" + }, + "Outputs": { + "type": "list", + "member": { + "shape": "Sk" + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "shape": "S1i" + }, + "HlsContentProtection": { + "shape": "S1j" + }, + "PlayReadyDrm": { + "shape": "S1n" + } + } + } + }, + "UserMetadata": { + "shape": "S1s" + } + } + }, + "output": { + "type": "structure", + "members": { + "Job": { + "shape": "S1v" + } + } + } + }, + "CreatePipeline": { + "http": { + "requestUri": "/2012-09-25/pipelines", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name", + "InputBucket", + "Role" + ], + "members": { + "Name": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "AwsKmsKeyArn": {}, + "Notifications": { + "shape": "S27" + }, + "ContentConfig": { + "shape": "S29" + }, + "ThumbnailConfig": { + "shape": "S29" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "shape": "S2i" + }, + "Warnings": { + "shape": "S2k" + } + } + } + }, + "CreatePreset": { + "http": { + "requestUri": "/2012-09-25/presets", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name", + "Container" + ], + "members": { + "Name": {}, + "Description": {}, + "Container": {}, + "Video": { + "shape": "S2o" + }, + "Audio": { + "shape": "S34" + }, + "Thumbnails": { + "shape": "S3f" + } + } + }, + "output": { + "type": "structure", + "members": { + "Preset": { + "shape": "S3j" + }, + "Warning": {} + } + } + }, + "DeletePipeline": { + "http": { + "method": "DELETE", + "requestUri": "/2012-09-25/pipelines/{Id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeletePreset": { + "http": { + "method": "DELETE", + "requestUri": "/2012-09-25/presets/{Id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ListJobsByPipeline": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/jobsByPipeline/{PipelineId}" + }, + "input": { + "type": "structure", + "required": [ + "PipelineId" + ], + "members": { + "PipelineId": { + "location": "uri", + "locationName": "PipelineId" + }, + "Ascending": { + "location": "querystring", + "locationName": "Ascending" + }, + "PageToken": { + "location": "querystring", + "locationName": "PageToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Jobs": { + "shape": "S3s" + }, + "NextPageToken": {} + } + } + }, + "ListJobsByStatus": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/jobsByStatus/{Status}" + }, + "input": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": { + "location": "uri", + "locationName": "Status" + }, + "Ascending": { + "location": "querystring", + "locationName": "Ascending" + }, + "PageToken": { + "location": "querystring", + "locationName": "PageToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Jobs": { + "shape": "S3s" + }, + "NextPageToken": {} + } + } + }, + "ListPipelines": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/pipelines" + }, + "input": { + "type": "structure", + "members": { + "Ascending": { + "location": "querystring", + "locationName": "Ascending" + }, + "PageToken": { + "location": "querystring", + "locationName": "PageToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipelines": { + "type": "list", + "member": { + "shape": "S2i" + } + }, + "NextPageToken": {} + } + } + }, + "ListPresets": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/presets" + }, + "input": { + "type": "structure", + "members": { + "Ascending": { + "location": "querystring", + "locationName": "Ascending" + }, + "PageToken": { + "location": "querystring", + "locationName": "PageToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Presets": { + "type": "list", + "member": { + "shape": "S3j" + } + }, + "NextPageToken": {} + } + } + }, + "ReadJob": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/jobs/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "Job": { + "shape": "S1v" + } + } + } + }, + "ReadPipeline": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/pipelines/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "shape": "S2i" + }, + "Warnings": { + "shape": "S2k" + } + } + } + }, + "ReadPreset": { + "http": { + "method": "GET", + "requestUri": "/2012-09-25/presets/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": { + "Preset": { + "shape": "S3j" + } + } + } + }, + "TestRole": { + "http": { + "requestUri": "/2012-09-25/roleTests", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "Role", + "InputBucket", + "OutputBucket", + "Topics" + ], + "members": { + "Role": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Topics": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Success": {}, + "Messages": { + "type": "list", + "member": {} + } + } + } + }, + "UpdatePipeline": { + "http": { + "method": "PUT", + "requestUri": "/2012-09-25/pipelines/{Id}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Name": {}, + "InputBucket": {}, + "Role": {}, + "AwsKmsKeyArn": {}, + "Notifications": { + "shape": "S27" + }, + "ContentConfig": { + "shape": "S29" + }, + "ThumbnailConfig": { + "shape": "S29" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "shape": "S2i" + }, + "Warnings": { + "shape": "S2k" + } + } + } + }, + "UpdatePipelineNotifications": { + "http": { + "requestUri": "/2012-09-25/pipelines/{Id}/notifications" + }, + "input": { + "type": "structure", + "required": [ + "Id", + "Notifications" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Notifications": { + "shape": "S27" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "shape": "S2i" + } + } + } + }, + "UpdatePipelineStatus": { + "http": { + "requestUri": "/2012-09-25/pipelines/{Id}/status" + }, + "input": { + "type": "structure", + "required": [ + "Id", + "Status" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Status": {} + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "shape": "S2i" + } + } + } + } + }, + "shapes": { + "S5": { + "type": "structure", + "members": { + "Key": {}, + "FrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "Interlaced": {}, + "Container": {}, + "Encryption": { + "shape": "Sc" + }, + "DetectedProperties": { + "type": "structure", + "members": { + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "FrameRate": {}, + "FileSize": { + "type": "long" + }, + "DurationMillis": { + "type": "long" + } + } + } + } + }, + "Sc": { + "type": "structure", + "members": { + "Mode": {}, + "Key": {}, + "KeyMd5": {}, + "InitializationVector": {} + } + }, + "Sk": { + "type": "structure", + "members": { + "Key": {}, + "ThumbnailPattern": {}, + "ThumbnailEncryption": { + "shape": "Sc" + }, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Watermarks": { + "shape": "Sn" + }, + "AlbumArt": { + "shape": "Sr" + }, + "Composition": { + "shape": "Sz" + }, + "Captions": { + "shape": "S13" + }, + "Encryption": { + "shape": "Sc" + } + } + }, + "Sn": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {}, + "Encryption": { + "shape": "Sc" + } + } + } + }, + "Sr": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {}, + "Encryption": { + "shape": "Sc" + } + } + } + } + } + }, + "Sz": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + }, + "S13": { + "type": "structure", + "members": { + "MergePolicy": {}, + "CaptionSources": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Language": {}, + "TimeOffset": {}, + "Label": {}, + "Encryption": { + "shape": "Sc" + } + } + } + }, + "CaptionFormats": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Format": {}, + "Pattern": {}, + "Encryption": { + "shape": "Sc" + } + } + } + } + } + }, + "S1i": { + "type": "list", + "member": {} + }, + "S1j": { + "type": "structure", + "members": { + "Method": {}, + "Key": {}, + "KeyMd5": {}, + "InitializationVector": {}, + "LicenseAcquisitionUrl": {}, + "KeyStoragePolicy": {} + } + }, + "S1n": { + "type": "structure", + "members": { + "Format": {}, + "Key": {}, + "KeyMd5": {}, + "KeyId": {}, + "InitializationVector": {}, + "LicenseAcquisitionUrl": {} + } + }, + "S1s": { + "type": "map", + "key": {}, + "value": {} + }, + "S1v": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "PipelineId": {}, + "Input": { + "shape": "S5" + }, + "Output": { + "shape": "S1w" + }, + "Outputs": { + "type": "list", + "member": { + "shape": "S1w" + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "shape": "S1i" + }, + "HlsContentProtection": { + "shape": "S1j" + }, + "PlayReadyDrm": { + "shape": "S1n" + }, + "Status": {}, + "StatusDetail": {} + } + } + }, + "Status": {}, + "UserMetadata": { + "shape": "S1s" + }, + "Timing": { + "type": "structure", + "members": { + "SubmitTimeMillis": { + "type": "long" + }, + "StartTimeMillis": { + "type": "long" + }, + "FinishTimeMillis": { + "type": "long" + } + } + } + } + }, + "S1w": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "ThumbnailEncryption": { + "shape": "Sc" + }, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "long" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "FrameRate": {}, + "FileSize": { + "type": "long" + }, + "DurationMillis": { + "type": "long" + }, + "Watermarks": { + "shape": "Sn" + }, + "AlbumArt": { + "shape": "Sr" + }, + "Composition": { + "shape": "Sz" + }, + "Captions": { + "shape": "S13" + }, + "Encryption": { + "shape": "Sc" + }, + "AppliedColorSpaceConversion": {} + } + }, + "S27": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "S29": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "member": {} + } + } + } + } + } + }, + "S2i": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "AwsKmsKeyArn": {}, + "Notifications": { + "shape": "S27" + }, + "ContentConfig": { + "shape": "S29" + }, + "ThumbnailConfig": { + "shape": "S29" + } + } + }, + "S2k": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + } + }, + "S2o": { + "type": "structure", + "members": { + "Codec": {}, + "CodecOptions": { + "type": "map", + "key": {}, + "value": {} + }, + "KeyframesMaxDist": {}, + "FixedGOP": {}, + "BitRate": {}, + "FrameRate": {}, + "MaxFrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "DisplayAspectRatio": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "Watermarks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Id": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "HorizontalAlign": {}, + "HorizontalOffset": {}, + "VerticalAlign": {}, + "VerticalOffset": {}, + "Opacity": {}, + "Target": {} + } + } + } + } + }, + "S34": { + "type": "structure", + "members": { + "Codec": {}, + "SampleRate": {}, + "BitRate": {}, + "Channels": {}, + "AudioPackingMode": {}, + "CodecOptions": { + "type": "structure", + "members": { + "Profile": {}, + "BitDepth": {}, + "BitOrder": {}, + "Signed": {} + } + } + } + }, + "S3f": { + "type": "structure", + "members": { + "Format": {}, + "Interval": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {} + } + }, + "S3j": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Description": {}, + "Container": {}, + "Audio": { + "shape": "S34" + }, + "Video": { + "shape": "S2o" + }, + "Thumbnails": { + "shape": "S3f" + }, + "Type": {} + } + }, + "S3s": { + "type": "list", + "member": { + "shape": "S1v" + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.paginators.json new file mode 100755 index 0000000..5a145d3 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.paginators.json @@ -0,0 +1,24 @@ +{ + "pagination": { + "ListJobsByPipeline": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Jobs" + }, + "ListJobsByStatus": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Jobs" + }, + "ListPipelines": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Pipelines" + }, + "ListPresets": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Presets" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.waiters2.json new file mode 100755 index 0000000..55c3628 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.waiters2.json @@ -0,0 +1,30 @@ +{ + "version": 2, + "waiters": { + "JobComplete": { + "delay": 30, + "operation": "ReadJob", + "maxAttempts": 120, + "acceptors": [ + { + "expected": "Complete", + "matcher": "path", + "state": "success", + "argument": "Job.Status" + }, + { + "expected": "Canceled", + "matcher": "path", + "state": "failure", + "argument": "Job.Status" + }, + { + "expected": "Error", + "matcher": "path", + "state": "failure", + "argument": "Job.Status" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.min.json new file mode 100755 index 0000000..8c8b7fb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.min.json @@ -0,0 +1,1183 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2010-12-01", + "endpointPrefix": "email", + "protocol": "query", + "serviceAbbreviation": "Amazon SES", + "serviceFullName": "Amazon Simple Email Service", + "signatureVersion": "v4", + "signingName": "ses", + "xmlNamespace": "http://ses.amazonaws.com/doc/2010-12-01/" + }, + "operations": { + "CloneReceiptRuleSet": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "OriginalRuleSetName" + ], + "members": { + "RuleSetName": {}, + "OriginalRuleSetName": {} + } + }, + "output": { + "resultWrapper": "CloneReceiptRuleSetResult", + "type": "structure", + "members": {} + } + }, + "CreateReceiptFilter": { + "input": { + "type": "structure", + "required": [ + "Filter" + ], + "members": { + "Filter": { + "shape": "S5" + } + } + }, + "output": { + "resultWrapper": "CreateReceiptFilterResult", + "type": "structure", + "members": {} + } + }, + "CreateReceiptRule": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "Rule" + ], + "members": { + "RuleSetName": {}, + "After": {}, + "Rule": { + "shape": "Sd" + } + } + }, + "output": { + "resultWrapper": "CreateReceiptRuleResult", + "type": "structure", + "members": {} + } + }, + "CreateReceiptRuleSet": { + "input": { + "type": "structure", + "required": [ + "RuleSetName" + ], + "members": { + "RuleSetName": {} + } + }, + "output": { + "resultWrapper": "CreateReceiptRuleSetResult", + "type": "structure", + "members": {} + } + }, + "DeleteIdentity": { + "input": { + "type": "structure", + "required": [ + "Identity" + ], + "members": { + "Identity": {} + } + }, + "output": { + "resultWrapper": "DeleteIdentityResult", + "type": "structure", + "members": {} + } + }, + "DeleteIdentityPolicy": { + "input": { + "type": "structure", + "required": [ + "Identity", + "PolicyName" + ], + "members": { + "Identity": {}, + "PolicyName": {} + } + }, + "output": { + "resultWrapper": "DeleteIdentityPolicyResult", + "type": "structure", + "members": {} + } + }, + "DeleteReceiptFilter": { + "input": { + "type": "structure", + "required": [ + "FilterName" + ], + "members": { + "FilterName": {} + } + }, + "output": { + "resultWrapper": "DeleteReceiptFilterResult", + "type": "structure", + "members": {} + } + }, + "DeleteReceiptRule": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "RuleName" + ], + "members": { + "RuleSetName": {}, + "RuleName": {} + } + }, + "output": { + "resultWrapper": "DeleteReceiptRuleResult", + "type": "structure", + "members": {} + } + }, + "DeleteReceiptRuleSet": { + "input": { + "type": "structure", + "required": [ + "RuleSetName" + ], + "members": { + "RuleSetName": {} + } + }, + "output": { + "resultWrapper": "DeleteReceiptRuleSetResult", + "type": "structure", + "members": {} + } + }, + "DeleteVerifiedEmailAddress": { + "input": { + "type": "structure", + "required": [ + "EmailAddress" + ], + "members": { + "EmailAddress": {} + } + } + }, + "DescribeActiveReceiptRuleSet": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "resultWrapper": "DescribeActiveReceiptRuleSetResult", + "type": "structure", + "members": { + "Metadata": { + "shape": "S1l" + }, + "Rules": { + "shape": "S1n" + } + } + } + }, + "DescribeReceiptRule": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "RuleName" + ], + "members": { + "RuleSetName": {}, + "RuleName": {} + } + }, + "output": { + "resultWrapper": "DescribeReceiptRuleResult", + "type": "structure", + "members": { + "Rule": { + "shape": "Sd" + } + } + } + }, + "DescribeReceiptRuleSet": { + "input": { + "type": "structure", + "required": [ + "RuleSetName" + ], + "members": { + "RuleSetName": {} + } + }, + "output": { + "resultWrapper": "DescribeReceiptRuleSetResult", + "type": "structure", + "members": { + "Metadata": { + "shape": "S1l" + }, + "Rules": { + "shape": "S1n" + } + } + } + }, + "GetIdentityDkimAttributes": { + "input": { + "type": "structure", + "required": [ + "Identities" + ], + "members": { + "Identities": { + "shape": "S1t" + } + } + }, + "output": { + "resultWrapper": "GetIdentityDkimAttributesResult", + "type": "structure", + "required": [ + "DkimAttributes" + ], + "members": { + "DkimAttributes": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "DkimEnabled", + "DkimVerificationStatus" + ], + "members": { + "DkimEnabled": { + "type": "boolean" + }, + "DkimVerificationStatus": {}, + "DkimTokens": { + "shape": "S1y" + } + } + } + } + } + } + }, + "GetIdentityMailFromDomainAttributes": { + "input": { + "type": "structure", + "required": [ + "Identities" + ], + "members": { + "Identities": { + "shape": "S1t" + } + } + }, + "output": { + "resultWrapper": "GetIdentityMailFromDomainAttributesResult", + "type": "structure", + "required": [ + "MailFromDomainAttributes" + ], + "members": { + "MailFromDomainAttributes": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "MailFromDomain", + "MailFromDomainStatus", + "BehaviorOnMXFailure" + ], + "members": { + "MailFromDomain": {}, + "MailFromDomainStatus": {}, + "BehaviorOnMXFailure": {} + } + } + } + } + } + }, + "GetIdentityNotificationAttributes": { + "input": { + "type": "structure", + "required": [ + "Identities" + ], + "members": { + "Identities": { + "shape": "S1t" + } + } + }, + "output": { + "resultWrapper": "GetIdentityNotificationAttributesResult", + "type": "structure", + "required": [ + "NotificationAttributes" + ], + "members": { + "NotificationAttributes": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "BounceTopic", + "ComplaintTopic", + "DeliveryTopic", + "ForwardingEnabled" + ], + "members": { + "BounceTopic": {}, + "ComplaintTopic": {}, + "DeliveryTopic": {}, + "ForwardingEnabled": { + "type": "boolean" + } + } + } + } + } + } + }, + "GetIdentityPolicies": { + "input": { + "type": "structure", + "required": [ + "Identity", + "PolicyNames" + ], + "members": { + "Identity": {}, + "PolicyNames": { + "shape": "S2d" + } + } + }, + "output": { + "resultWrapper": "GetIdentityPoliciesResult", + "type": "structure", + "required": [ + "Policies" + ], + "members": { + "Policies": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "GetIdentityVerificationAttributes": { + "input": { + "type": "structure", + "required": [ + "Identities" + ], + "members": { + "Identities": { + "shape": "S1t" + } + } + }, + "output": { + "resultWrapper": "GetIdentityVerificationAttributesResult", + "type": "structure", + "required": [ + "VerificationAttributes" + ], + "members": { + "VerificationAttributes": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "VerificationStatus" + ], + "members": { + "VerificationStatus": {}, + "VerificationToken": {} + } + } + } + } + } + }, + "GetSendQuota": { + "output": { + "resultWrapper": "GetSendQuotaResult", + "type": "structure", + "members": { + "Max24HourSend": { + "type": "double" + }, + "MaxSendRate": { + "type": "double" + }, + "SentLast24Hours": { + "type": "double" + } + } + } + }, + "GetSendStatistics": { + "output": { + "resultWrapper": "GetSendStatisticsResult", + "type": "structure", + "members": { + "SendDataPoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Timestamp": { + "type": "timestamp" + }, + "DeliveryAttempts": { + "type": "long" + }, + "Bounces": { + "type": "long" + }, + "Complaints": { + "type": "long" + }, + "Rejects": { + "type": "long" + } + } + } + } + } + } + }, + "ListIdentities": { + "input": { + "type": "structure", + "members": { + "IdentityType": {}, + "NextToken": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListIdentitiesResult", + "type": "structure", + "required": [ + "Identities" + ], + "members": { + "Identities": { + "shape": "S1t" + }, + "NextToken": {} + } + } + }, + "ListIdentityPolicies": { + "input": { + "type": "structure", + "required": [ + "Identity" + ], + "members": { + "Identity": {} + } + }, + "output": { + "resultWrapper": "ListIdentityPoliciesResult", + "type": "structure", + "required": [ + "PolicyNames" + ], + "members": { + "PolicyNames": { + "shape": "S2d" + } + } + } + }, + "ListReceiptFilters": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "resultWrapper": "ListReceiptFiltersResult", + "type": "structure", + "members": { + "Filters": { + "type": "list", + "member": { + "shape": "S5" + } + } + } + } + }, + "ListReceiptRuleSets": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListReceiptRuleSetsResult", + "type": "structure", + "members": { + "RuleSets": { + "type": "list", + "member": { + "shape": "S1l" + } + }, + "NextToken": {} + } + } + }, + "ListVerifiedEmailAddresses": { + "output": { + "resultWrapper": "ListVerifiedEmailAddressesResult", + "type": "structure", + "members": { + "VerifiedEmailAddresses": { + "shape": "S37" + } + } + } + }, + "PutIdentityPolicy": { + "input": { + "type": "structure", + "required": [ + "Identity", + "PolicyName", + "Policy" + ], + "members": { + "Identity": {}, + "PolicyName": {}, + "Policy": {} + } + }, + "output": { + "resultWrapper": "PutIdentityPolicyResult", + "type": "structure", + "members": {} + } + }, + "ReorderReceiptRuleSet": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "RuleNames" + ], + "members": { + "RuleSetName": {}, + "RuleNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "ReorderReceiptRuleSetResult", + "type": "structure", + "members": {} + } + }, + "SendBounce": { + "input": { + "type": "structure", + "required": [ + "OriginalMessageId", + "BounceSender", + "BouncedRecipientInfoList" + ], + "members": { + "OriginalMessageId": {}, + "BounceSender": {}, + "Explanation": {}, + "MessageDsn": { + "type": "structure", + "required": [ + "ReportingMta" + ], + "members": { + "ReportingMta": {}, + "ArrivalDate": { + "type": "timestamp" + }, + "ExtensionFields": { + "shape": "S3j" + } + } + }, + "BouncedRecipientInfoList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Recipient" + ], + "members": { + "Recipient": {}, + "RecipientArn": {}, + "BounceType": {}, + "RecipientDsnFields": { + "type": "structure", + "required": [ + "Action", + "Status" + ], + "members": { + "FinalRecipient": {}, + "Action": {}, + "RemoteMta": {}, + "Status": {}, + "DiagnosticCode": {}, + "LastAttemptDate": { + "type": "timestamp" + }, + "ExtensionFields": { + "shape": "S3j" + } + } + } + } + } + }, + "BounceSenderArn": {} + } + }, + "output": { + "resultWrapper": "SendBounceResult", + "type": "structure", + "members": { + "MessageId": {} + } + } + }, + "SendEmail": { + "input": { + "type": "structure", + "required": [ + "Source", + "Destination", + "Message" + ], + "members": { + "Source": {}, + "Destination": { + "type": "structure", + "members": { + "ToAddresses": { + "shape": "S37" + }, + "CcAddresses": { + "shape": "S37" + }, + "BccAddresses": { + "shape": "S37" + } + } + }, + "Message": { + "type": "structure", + "required": [ + "Subject", + "Body" + ], + "members": { + "Subject": { + "shape": "S40" + }, + "Body": { + "type": "structure", + "members": { + "Text": { + "shape": "S40" + }, + "Html": { + "shape": "S40" + } + } + } + } + }, + "ReplyToAddresses": { + "shape": "S37" + }, + "ReturnPath": {}, + "SourceArn": {}, + "ReturnPathArn": {} + } + }, + "output": { + "resultWrapper": "SendEmailResult", + "type": "structure", + "required": [ + "MessageId" + ], + "members": { + "MessageId": {} + } + } + }, + "SendRawEmail": { + "input": { + "type": "structure", + "required": [ + "RawMessage" + ], + "members": { + "Source": {}, + "Destinations": { + "shape": "S37" + }, + "RawMessage": { + "type": "structure", + "required": [ + "Data" + ], + "members": { + "Data": { + "type": "blob" + } + } + }, + "FromArn": {}, + "SourceArn": {}, + "ReturnPathArn": {} + } + }, + "output": { + "resultWrapper": "SendRawEmailResult", + "type": "structure", + "required": [ + "MessageId" + ], + "members": { + "MessageId": {} + } + } + }, + "SetActiveReceiptRuleSet": { + "input": { + "type": "structure", + "members": { + "RuleSetName": {} + } + }, + "output": { + "resultWrapper": "SetActiveReceiptRuleSetResult", + "type": "structure", + "members": {} + } + }, + "SetIdentityDkimEnabled": { + "input": { + "type": "structure", + "required": [ + "Identity", + "DkimEnabled" + ], + "members": { + "Identity": {}, + "DkimEnabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "SetIdentityDkimEnabledResult", + "type": "structure", + "members": {} + } + }, + "SetIdentityFeedbackForwardingEnabled": { + "input": { + "type": "structure", + "required": [ + "Identity", + "ForwardingEnabled" + ], + "members": { + "Identity": {}, + "ForwardingEnabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "SetIdentityFeedbackForwardingEnabledResult", + "type": "structure", + "members": {} + } + }, + "SetIdentityMailFromDomain": { + "input": { + "type": "structure", + "required": [ + "Identity" + ], + "members": { + "Identity": {}, + "MailFromDomain": {}, + "BehaviorOnMXFailure": {} + } + }, + "output": { + "resultWrapper": "SetIdentityMailFromDomainResult", + "type": "structure", + "members": {} + } + }, + "SetIdentityNotificationTopic": { + "input": { + "type": "structure", + "required": [ + "Identity", + "NotificationType" + ], + "members": { + "Identity": {}, + "NotificationType": {}, + "SnsTopic": {} + } + }, + "output": { + "resultWrapper": "SetIdentityNotificationTopicResult", + "type": "structure", + "members": {} + } + }, + "SetReceiptRulePosition": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "RuleName" + ], + "members": { + "RuleSetName": {}, + "RuleName": {}, + "After": {} + } + }, + "output": { + "resultWrapper": "SetReceiptRulePositionResult", + "type": "structure", + "members": {} + } + }, + "UpdateReceiptRule": { + "input": { + "type": "structure", + "required": [ + "RuleSetName", + "Rule" + ], + "members": { + "RuleSetName": {}, + "Rule": { + "shape": "Sd" + } + } + }, + "output": { + "resultWrapper": "UpdateReceiptRuleResult", + "type": "structure", + "members": {} + } + }, + "VerifyDomainDkim": { + "input": { + "type": "structure", + "required": [ + "Domain" + ], + "members": { + "Domain": {} + } + }, + "output": { + "resultWrapper": "VerifyDomainDkimResult", + "type": "structure", + "required": [ + "DkimTokens" + ], + "members": { + "DkimTokens": { + "shape": "S1y" + } + } + } + }, + "VerifyDomainIdentity": { + "input": { + "type": "structure", + "required": [ + "Domain" + ], + "members": { + "Domain": {} + } + }, + "output": { + "resultWrapper": "VerifyDomainIdentityResult", + "type": "structure", + "required": [ + "VerificationToken" + ], + "members": { + "VerificationToken": {} + } + } + }, + "VerifyEmailAddress": { + "input": { + "type": "structure", + "required": [ + "EmailAddress" + ], + "members": { + "EmailAddress": {} + } + } + }, + "VerifyEmailIdentity": { + "input": { + "type": "structure", + "required": [ + "EmailAddress" + ], + "members": { + "EmailAddress": {} + } + }, + "output": { + "resultWrapper": "VerifyEmailIdentityResult", + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S5": { + "type": "structure", + "required": [ + "Name", + "IpFilter" + ], + "members": { + "Name": {}, + "IpFilter": { + "type": "structure", + "required": [ + "Policy", + "Cidr" + ], + "members": { + "Policy": {}, + "Cidr": {} + } + } + } + }, + "Sd": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Enabled": { + "type": "boolean" + }, + "TlsPolicy": {}, + "Recipients": { + "type": "list", + "member": {} + }, + "Actions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "S3Action": { + "type": "structure", + "required": [ + "BucketName" + ], + "members": { + "TopicArn": {}, + "BucketName": {}, + "ObjectKeyPrefix": {}, + "KmsKeyArn": {} + } + }, + "BounceAction": { + "type": "structure", + "required": [ + "SmtpReplyCode", + "Message", + "Sender" + ], + "members": { + "TopicArn": {}, + "SmtpReplyCode": {}, + "StatusCode": {}, + "Message": {}, + "Sender": {} + } + }, + "WorkmailAction": { + "type": "structure", + "required": [ + "OrganizationArn" + ], + "members": { + "TopicArn": {}, + "OrganizationArn": {} + } + }, + "LambdaAction": { + "type": "structure", + "required": [ + "FunctionArn" + ], + "members": { + "TopicArn": {}, + "FunctionArn": {}, + "InvocationType": {} + } + }, + "StopAction": { + "type": "structure", + "required": [ + "Scope" + ], + "members": { + "Scope": {}, + "TopicArn": {} + } + }, + "AddHeaderAction": { + "type": "structure", + "required": [ + "HeaderName", + "HeaderValue" + ], + "members": { + "HeaderName": {}, + "HeaderValue": {} + } + }, + "SNSAction": { + "type": "structure", + "required": [ + "TopicArn" + ], + "members": { + "TopicArn": {}, + "Encoding": {} + } + } + } + } + }, + "ScanEnabled": { + "type": "boolean" + } + } + }, + "S1l": { + "type": "structure", + "members": { + "Name": {}, + "CreatedTimestamp": { + "type": "timestamp" + } + } + }, + "S1n": { + "type": "list", + "member": { + "shape": "Sd" + } + }, + "S1t": { + "type": "list", + "member": {} + }, + "S1y": { + "type": "list", + "member": {} + }, + "S2d": { + "type": "list", + "member": {} + }, + "S37": { + "type": "list", + "member": {} + }, + "S3j": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + }, + "S40": { + "type": "structure", + "required": [ + "Data" + ], + "members": { + "Data": {}, + "Charset": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.paginators.json new file mode 100755 index 0000000..e12811f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.paginators.json @@ -0,0 +1,13 @@ +{ + "pagination": { + "ListIdentities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxItems", + "result_key": "Identities" + }, + "ListVerifiedEmailAddresses": { + "result_key": "VerifiedEmailAddresses" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.waiters2.json new file mode 100755 index 0000000..b585d30 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/email-2010-12-01.waiters2.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "waiters": { + "IdentityExists": { + "delay": 3, + "operation": "GetIdentityVerificationAttributes", + "maxAttempts": 20, + "acceptors": [ + { + "expected": "Success", + "matcher": "pathAll", + "state": "success", + "argument": "VerificationAttributes.*.VerificationStatus" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/es-2015-01-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/es-2015-01-01.min.json new file mode 100755 index 0000000..dcdaba0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/es-2015-01-01.min.json @@ -0,0 +1,488 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-01-01", + "endpointPrefix": "es", + "serviceFullName": "Amazon Elasticsearch Service", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "AddTags": { + "http": { + "requestUri": "/2015-01-01/tags" + }, + "input": { + "type": "structure", + "required": [ + "ARN", + "TagList" + ], + "members": { + "ARN": {}, + "TagList": { + "shape": "S3" + } + } + } + }, + "CreateElasticsearchDomain": { + "http": { + "requestUri": "/2015-01-01/es/domain" + }, + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "ElasticsearchClusterConfig": { + "shape": "S9" + }, + "EBSOptions": { + "shape": "Sd" + }, + "AccessPolicies": {}, + "SnapshotOptions": { + "shape": "Sg" + }, + "AdvancedOptions": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatus": { + "shape": "Sk" + } + } + } + }, + "DeleteElasticsearchDomain": { + "http": { + "method": "DELETE", + "requestUri": "/2015-01-01/es/domain/{DomainName}" + }, + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": { + "location": "uri", + "locationName": "DomainName" + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatus": { + "shape": "Sk" + } + } + } + }, + "DescribeElasticsearchDomain": { + "http": { + "method": "GET", + "requestUri": "/2015-01-01/es/domain/{DomainName}" + }, + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": { + "location": "uri", + "locationName": "DomainName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "DomainStatus" + ], + "members": { + "DomainStatus": { + "shape": "Sk" + } + } + } + }, + "DescribeElasticsearchDomainConfig": { + "http": { + "method": "GET", + "requestUri": "/2015-01-01/es/domain/{DomainName}/config" + }, + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": { + "location": "uri", + "locationName": "DomainName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "DomainConfig" + ], + "members": { + "DomainConfig": { + "shape": "St" + } + } + } + }, + "DescribeElasticsearchDomains": { + "http": { + "requestUri": "/2015-01-01/es/domain-info" + }, + "input": { + "type": "structure", + "required": [ + "DomainNames" + ], + "members": { + "DomainNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "required": [ + "DomainStatusList" + ], + "members": { + "DomainStatusList": { + "type": "list", + "member": { + "shape": "Sk" + } + } + } + } + }, + "ListDomainNames": { + "http": { + "method": "GET", + "requestUri": "/2015-01-01/domain" + }, + "output": { + "type": "structure", + "members": { + "DomainNames": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DomainName": {} + } + } + } + } + } + }, + "ListTags": { + "http": { + "method": "GET", + "requestUri": "/2015-01-01/tags/" + }, + "input": { + "type": "structure", + "required": [ + "ARN" + ], + "members": { + "ARN": { + "location": "querystring", + "locationName": "arn" + } + } + }, + "output": { + "type": "structure", + "members": { + "TagList": { + "shape": "S3" + } + } + } + }, + "RemoveTags": { + "http": { + "requestUri": "/2015-01-01/tags-removal" + }, + "input": { + "type": "structure", + "required": [ + "ARN", + "TagKeys" + ], + "members": { + "ARN": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "UpdateElasticsearchDomainConfig": { + "http": { + "requestUri": "/2015-01-01/es/domain/{DomainName}/config" + }, + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": { + "location": "uri", + "locationName": "DomainName" + }, + "ElasticsearchClusterConfig": { + "shape": "S9" + }, + "EBSOptions": { + "shape": "Sd" + }, + "SnapshotOptions": { + "shape": "Sg" + }, + "AdvancedOptions": { + "shape": "Sh" + }, + "AccessPolicies": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DomainConfig" + ], + "members": { + "DomainConfig": { + "shape": "St" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S9": { + "type": "structure", + "members": { + "InstanceType": {}, + "InstanceCount": { + "type": "integer" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": {}, + "DedicatedMasterCount": { + "type": "integer" + } + } + }, + "Sd": { + "type": "structure", + "members": { + "EBSEnabled": { + "type": "boolean" + }, + "VolumeType": {}, + "VolumeSize": { + "type": "integer" + }, + "Iops": { + "type": "integer" + } + } + }, + "Sg": { + "type": "structure", + "members": { + "AutomatedSnapshotStartHour": { + "type": "integer" + } + } + }, + "Sh": { + "type": "map", + "key": {}, + "value": {} + }, + "Sk": { + "type": "structure", + "required": [ + "DomainId", + "DomainName", + "ARN", + "ElasticsearchClusterConfig" + ], + "members": { + "DomainId": {}, + "DomainName": {}, + "ARN": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "Endpoint": {}, + "Processing": { + "type": "boolean" + }, + "ElasticsearchClusterConfig": { + "shape": "S9" + }, + "EBSOptions": { + "shape": "Sd" + }, + "AccessPolicies": {}, + "SnapshotOptions": { + "shape": "Sg" + }, + "AdvancedOptions": { + "shape": "Sh" + } + } + }, + "St": { + "type": "structure", + "members": { + "ElasticsearchClusterConfig": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "S9" + }, + "Status": { + "shape": "Sv" + } + } + }, + "EBSOptions": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "Sd" + }, + "Status": { + "shape": "Sv" + } + } + }, + "AccessPolicies": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": {}, + "Status": { + "shape": "Sv" + } + } + }, + "SnapshotOptions": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "Sg" + }, + "Status": { + "shape": "Sv" + } + } + }, + "AdvancedOptions": { + "type": "structure", + "required": [ + "Options", + "Status" + ], + "members": { + "Options": { + "shape": "Sh" + }, + "Status": { + "shape": "Sv" + } + } + } + } + }, + "Sv": { + "type": "structure", + "required": [ + "CreationDate", + "UpdateDate", + "State" + ], + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/events-2015-10-07.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/events-2015-10-07.min.json new file mode 100755 index 0000000..bb4d59a --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/events-2015-10-07.min.json @@ -0,0 +1,330 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-10-07", + "endpointPrefix": "events", + "jsonVersion": "1.1", + "serviceFullName": "Amazon CloudWatch Events", + "signatureVersion": "v4", + "targetPrefix": "AWSEvents", + "protocol": "json" + }, + "operations": { + "DeleteRule": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + } + }, + "DescribeRule": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "Arn": {}, + "EventPattern": {}, + "ScheduleExpression": {}, + "State": {}, + "Description": {}, + "RoleArn": {} + } + } + }, + "DisableRule": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + } + }, + "EnableRule": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + } + }, + "ListRuleNamesByTarget": { + "input": { + "type": "structure", + "required": [ + "TargetArn" + ], + "members": { + "TargetArn": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "RuleNames": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + } + }, + "ListRules": { + "input": { + "type": "structure", + "members": { + "NamePrefix": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Rules": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Arn": {}, + "EventPattern": {}, + "State": {}, + "Description": {}, + "ScheduleExpression": {}, + "RoleArn": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListTargetsByRule": { + "input": { + "type": "structure", + "required": [ + "Rule" + ], + "members": { + "Rule": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Targets": { + "shape": "Sp" + }, + "NextToken": {} + } + } + }, + "PutEvents": { + "input": { + "type": "structure", + "required": [ + "Entries" + ], + "members": { + "Entries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Time": { + "type": "timestamp" + }, + "Source": {}, + "Resources": { + "type": "list", + "member": {} + }, + "DetailType": {}, + "Detail": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedEntryCount": { + "type": "integer" + }, + "Entries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "PutRule": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "ScheduleExpression": {}, + "EventPattern": {}, + "State": {}, + "Description": {}, + "RoleArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "RuleArn": {} + } + } + }, + "PutTargets": { + "input": { + "type": "structure", + "required": [ + "Rule", + "Targets" + ], + "members": { + "Rule": {}, + "Targets": { + "shape": "Sp" + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedEntryCount": { + "type": "integer" + }, + "FailedEntries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TargetId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "RemoveTargets": { + "input": { + "type": "structure", + "required": [ + "Rule", + "Ids" + ], + "members": { + "Rule": {}, + "Ids": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedEntryCount": { + "type": "integer" + }, + "FailedEntries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TargetId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "TestEventPattern": { + "input": { + "type": "structure", + "required": [ + "EventPattern", + "Event" + ], + "members": { + "EventPattern": {}, + "Event": {} + } + }, + "output": { + "type": "structure", + "members": { + "Result": { + "type": "boolean" + } + } + } + } + }, + "shapes": { + "Sp": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Id", + "Arn" + ], + "members": { + "Id": {}, + "Arn": {}, + "Input": {}, + "InputPath": {} + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/firehose-2015-08-04.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/firehose-2015-08-04.min.json new file mode 100755 index 0000000..d7d6bd5 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/firehose-2015-08-04.min.json @@ -0,0 +1,550 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-08-04", + "endpointPrefix": "firehose", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Firehose", + "serviceFullName": "Amazon Kinesis Firehose", + "signatureVersion": "v4", + "targetPrefix": "Firehose_20150804" + }, + "operations": { + "CreateDeliveryStream": { + "input": { + "type": "structure", + "required": [ + "DeliveryStreamName" + ], + "members": { + "DeliveryStreamName": {}, + "S3DestinationConfiguration": { + "shape": "S3" + }, + "RedshiftDestinationConfiguration": { + "type": "structure", + "required": [ + "RoleARN", + "ClusterJDBCURL", + "CopyCommand", + "Username", + "Password", + "S3Configuration" + ], + "members": { + "RoleARN": {}, + "ClusterJDBCURL": {}, + "CopyCommand": { + "shape": "Sl" + }, + "Username": { + "shape": "Sp" + }, + "Password": { + "shape": "Sq" + }, + "RetryOptions": { + "shape": "Sr" + }, + "S3Configuration": { + "shape": "S3" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + }, + "ElasticsearchDestinationConfiguration": { + "type": "structure", + "required": [ + "RoleARN", + "DomainARN", + "IndexName", + "TypeName", + "S3Configuration" + ], + "members": { + "RoleARN": {}, + "DomainARN": {}, + "IndexName": {}, + "TypeName": {}, + "IndexRotationPeriod": {}, + "BufferingHints": { + "shape": "Sy" + }, + "RetryOptions": { + "shape": "S11" + }, + "S3BackupMode": {}, + "S3Configuration": { + "shape": "S3" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DeliveryStreamARN": {} + } + } + }, + "DeleteDeliveryStream": { + "input": { + "type": "structure", + "required": [ + "DeliveryStreamName" + ], + "members": { + "DeliveryStreamName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeDeliveryStream": { + "input": { + "type": "structure", + "required": [ + "DeliveryStreamName" + ], + "members": { + "DeliveryStreamName": {}, + "Limit": { + "type": "integer" + }, + "ExclusiveStartDestinationId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DeliveryStreamDescription" + ], + "members": { + "DeliveryStreamDescription": { + "type": "structure", + "required": [ + "DeliveryStreamName", + "DeliveryStreamARN", + "DeliveryStreamStatus", + "VersionId", + "Destinations", + "HasMoreDestinations" + ], + "members": { + "DeliveryStreamName": {}, + "DeliveryStreamARN": {}, + "DeliveryStreamStatus": {}, + "VersionId": {}, + "CreateTimestamp": { + "type": "timestamp" + }, + "LastUpdateTimestamp": { + "type": "timestamp" + }, + "Destinations": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DestinationId" + ], + "members": { + "DestinationId": {}, + "S3DestinationDescription": { + "shape": "S1i" + }, + "RedshiftDestinationDescription": { + "type": "structure", + "required": [ + "RoleARN", + "ClusterJDBCURL", + "CopyCommand", + "Username", + "S3DestinationDescription" + ], + "members": { + "RoleARN": {}, + "ClusterJDBCURL": {}, + "CopyCommand": { + "shape": "Sl" + }, + "Username": { + "shape": "Sp" + }, + "RetryOptions": { + "shape": "Sr" + }, + "S3DestinationDescription": { + "shape": "S1i" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + }, + "ElasticsearchDestinationDescription": { + "type": "structure", + "members": { + "RoleARN": {}, + "DomainARN": {}, + "IndexName": {}, + "TypeName": {}, + "IndexRotationPeriod": {}, + "BufferingHints": { + "shape": "Sy" + }, + "RetryOptions": { + "shape": "S11" + }, + "S3BackupMode": {}, + "S3DestinationDescription": { + "shape": "S1i" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + } + } + } + }, + "HasMoreDestinations": { + "type": "boolean" + } + } + } + } + } + }, + "ListDeliveryStreams": { + "input": { + "type": "structure", + "members": { + "Limit": { + "type": "integer" + }, + "ExclusiveStartDeliveryStreamName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DeliveryStreamNames", + "HasMoreDeliveryStreams" + ], + "members": { + "DeliveryStreamNames": { + "type": "list", + "member": {} + }, + "HasMoreDeliveryStreams": { + "type": "boolean" + } + } + } + }, + "PutRecord": { + "input": { + "type": "structure", + "required": [ + "DeliveryStreamName", + "Record" + ], + "members": { + "DeliveryStreamName": {}, + "Record": { + "shape": "S1q" + } + } + }, + "output": { + "type": "structure", + "required": [ + "RecordId" + ], + "members": { + "RecordId": {} + } + } + }, + "PutRecordBatch": { + "input": { + "type": "structure", + "required": [ + "DeliveryStreamName", + "Records" + ], + "members": { + "DeliveryStreamName": {}, + "Records": { + "type": "list", + "member": { + "shape": "S1q" + } + } + } + }, + "output": { + "type": "structure", + "required": [ + "FailedPutCount", + "RequestResponses" + ], + "members": { + "FailedPutCount": { + "type": "integer" + }, + "RequestResponses": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RecordId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "UpdateDestination": { + "input": { + "type": "structure", + "required": [ + "DeliveryStreamName", + "CurrentDeliveryStreamVersionId", + "DestinationId" + ], + "members": { + "DeliveryStreamName": {}, + "CurrentDeliveryStreamVersionId": {}, + "DestinationId": {}, + "S3DestinationUpdate": { + "shape": "S23" + }, + "RedshiftDestinationUpdate": { + "type": "structure", + "members": { + "RoleARN": {}, + "ClusterJDBCURL": {}, + "CopyCommand": { + "shape": "Sl" + }, + "Username": { + "shape": "Sp" + }, + "Password": { + "shape": "Sq" + }, + "RetryOptions": { + "shape": "Sr" + }, + "S3Update": { + "shape": "S23" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + }, + "ElasticsearchDestinationUpdate": { + "type": "structure", + "members": { + "RoleARN": {}, + "DomainARN": {}, + "IndexName": {}, + "TypeName": {}, + "IndexRotationPeriod": {}, + "BufferingHints": { + "shape": "Sy" + }, + "RetryOptions": { + "shape": "S11" + }, + "S3Update": { + "shape": "S23" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "required": [ + "RoleARN", + "BucketARN" + ], + "members": { + "RoleARN": {}, + "BucketARN": {}, + "Prefix": {}, + "BufferingHints": { + "shape": "S7" + }, + "CompressionFormat": {}, + "EncryptionConfiguration": { + "shape": "Sb" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + }, + "S7": { + "type": "structure", + "members": { + "SizeInMBs": { + "type": "integer" + }, + "IntervalInSeconds": { + "type": "integer" + } + } + }, + "Sb": { + "type": "structure", + "members": { + "NoEncryptionConfig": {}, + "KMSEncryptionConfig": { + "type": "structure", + "required": [ + "AWSKMSKeyARN" + ], + "members": { + "AWSKMSKeyARN": {} + } + } + } + }, + "Sf": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": {}, + "LogStreamName": {} + } + }, + "Sl": { + "type": "structure", + "required": [ + "DataTableName" + ], + "members": { + "DataTableName": {}, + "DataTableColumns": {}, + "CopyOptions": {} + } + }, + "Sp": { + "type": "string", + "sensitive": true + }, + "Sq": { + "type": "string", + "sensitive": true + }, + "Sr": { + "type": "structure", + "members": { + "DurationInSeconds": { + "type": "integer" + } + } + }, + "Sy": { + "type": "structure", + "members": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + } + }, + "S11": { + "type": "structure", + "members": { + "DurationInSeconds": { + "type": "integer" + } + } + }, + "S1i": { + "type": "structure", + "required": [ + "RoleARN", + "BucketARN", + "BufferingHints", + "CompressionFormat", + "EncryptionConfiguration" + ], + "members": { + "RoleARN": {}, + "BucketARN": {}, + "Prefix": {}, + "BufferingHints": { + "shape": "S7" + }, + "CompressionFormat": {}, + "EncryptionConfiguration": { + "shape": "Sb" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + }, + "S1q": { + "type": "structure", + "required": [ + "Data" + ], + "members": { + "Data": { + "type": "blob" + } + } + }, + "S23": { + "type": "structure", + "members": { + "RoleARN": {}, + "BucketARN": {}, + "Prefix": {}, + "BufferingHints": { + "shape": "S7" + }, + "CompressionFormat": {}, + "EncryptionConfiguration": { + "shape": "Sb" + }, + "CloudWatchLoggingOptions": { + "shape": "Sf" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/gamelift-2015-10-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/gamelift-2015-10-01.min.json new file mode 100755 index 0000000..587681b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/gamelift-2015-10-01.min.json @@ -0,0 +1,1069 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-10-01", + "endpointPrefix": "gamelift", + "jsonVersion": "1.1", + "serviceFullName": "Amazon GameLift", + "signatureVersion": "v4", + "targetPrefix": "GameLift", + "protocol": "json" + }, + "operations": { + "CreateAlias": { + "input": { + "type": "structure", + "required": [ + "Name", + "RoutingStrategy" + ], + "members": { + "Name": {}, + "Description": {}, + "RoutingStrategy": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Alias": { + "shape": "S8" + } + } + } + }, + "CreateBuild": { + "input": { + "type": "structure", + "members": { + "Name": {}, + "Version": {}, + "StorageLocation": { + "shape": "Sc" + } + } + }, + "output": { + "type": "structure", + "members": { + "Build": { + "shape": "Sf" + }, + "UploadCredentials": { + "shape": "Sj" + }, + "StorageLocation": { + "shape": "Sc" + } + } + } + }, + "CreateFleet": { + "input": { + "type": "structure", + "required": [ + "Name", + "BuildId", + "ServerLaunchPath", + "EC2InstanceType" + ], + "members": { + "Name": {}, + "Description": {}, + "BuildId": {}, + "ServerLaunchPath": {}, + "ServerLaunchParameters": {}, + "LogPaths": { + "shape": "Sl" + }, + "EC2InstanceType": {}, + "EC2InboundPermissions": { + "shape": "Sn" + }, + "NewGameSessionProtectionPolicy": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetAttributes": { + "shape": "Su" + } + } + } + }, + "CreateGameSession": { + "input": { + "type": "structure", + "required": [ + "MaximumPlayerSessionCount" + ], + "members": { + "FleetId": {}, + "AliasId": {}, + "MaximumPlayerSessionCount": { + "type": "integer" + }, + "Name": {}, + "GameProperties": { + "shape": "Sy" + } + } + }, + "output": { + "type": "structure", + "members": { + "GameSession": { + "shape": "S13" + } + } + } + }, + "CreatePlayerSession": { + "input": { + "type": "structure", + "required": [ + "GameSessionId", + "PlayerId" + ], + "members": { + "GameSessionId": {}, + "PlayerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "PlayerSession": { + "shape": "S1a" + } + } + } + }, + "CreatePlayerSessions": { + "input": { + "type": "structure", + "required": [ + "GameSessionId", + "PlayerIds" + ], + "members": { + "GameSessionId": {}, + "PlayerIds": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "PlayerSessions": { + "shape": "S1g" + } + } + } + }, + "DeleteAlias": { + "input": { + "type": "structure", + "required": [ + "AliasId" + ], + "members": { + "AliasId": {} + } + } + }, + "DeleteBuild": { + "input": { + "type": "structure", + "required": [ + "BuildId" + ], + "members": { + "BuildId": {} + } + } + }, + "DeleteFleet": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {} + } + } + }, + "DeleteScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "Name", + "FleetId" + ], + "members": { + "Name": {}, + "FleetId": {} + } + } + }, + "DescribeAlias": { + "input": { + "type": "structure", + "required": [ + "AliasId" + ], + "members": { + "AliasId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Alias": { + "shape": "S8" + } + } + } + }, + "DescribeBuild": { + "input": { + "type": "structure", + "required": [ + "BuildId" + ], + "members": { + "BuildId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Build": { + "shape": "Sf" + } + } + } + }, + "DescribeEC2InstanceLimits": { + "input": { + "type": "structure", + "members": { + "EC2InstanceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "EC2InstanceLimits": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EC2InstanceType": {}, + "CurrentInstances": { + "type": "integer" + }, + "InstanceLimit": { + "type": "integer" + } + } + } + } + } + } + }, + "DescribeFleetAttributes": { + "input": { + "type": "structure", + "members": { + "FleetIds": { + "shape": "S1u" + }, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetAttributes": { + "type": "list", + "member": { + "shape": "Su" + } + }, + "NextToken": {} + } + } + }, + "DescribeFleetCapacity": { + "input": { + "type": "structure", + "members": { + "FleetIds": { + "shape": "S1u" + }, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetCapacity": { + "type": "list", + "member": { + "type": "structure", + "members": { + "FleetId": {}, + "InstanceType": {}, + "InstanceCounts": { + "type": "structure", + "members": { + "DESIRED": { + "type": "integer" + }, + "MINIMUM": { + "type": "integer" + }, + "MAXIMUM": { + "type": "integer" + }, + "PENDING": { + "type": "integer" + }, + "ACTIVE": { + "type": "integer" + }, + "IDLE": { + "type": "integer" + }, + "TERMINATING": { + "type": "integer" + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeFleetEvents": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Events": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventId": {}, + "ResourceId": {}, + "EventCode": {}, + "Message": {}, + "EventTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeFleetPortSettings": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "InboundPermissions": { + "shape": "Sn" + } + } + } + }, + "DescribeFleetUtilization": { + "input": { + "type": "structure", + "members": { + "FleetIds": { + "shape": "S1u" + }, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetUtilization": { + "type": "list", + "member": { + "type": "structure", + "members": { + "FleetId": {}, + "ActiveGameSessionCount": { + "type": "integer" + }, + "CurrentPlayerSessionCount": { + "type": "integer" + }, + "MaximumPlayerSessionCount": { + "type": "integer" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeGameSessionDetails": { + "input": { + "type": "structure", + "members": { + "FleetId": {}, + "GameSessionId": {}, + "AliasId": {}, + "StatusFilter": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "GameSessionDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "GameSession": { + "shape": "S13" + }, + "ProtectionPolicy": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeGameSessions": { + "input": { + "type": "structure", + "members": { + "FleetId": {}, + "GameSessionId": {}, + "AliasId": {}, + "StatusFilter": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "GameSessions": { + "type": "list", + "member": { + "shape": "S13" + } + }, + "NextToken": {} + } + } + }, + "DescribePlayerSessions": { + "input": { + "type": "structure", + "members": { + "GameSessionId": {}, + "PlayerId": {}, + "PlayerSessionId": {}, + "PlayerSessionStatusFilter": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "PlayerSessions": { + "shape": "S1g" + }, + "NextToken": {} + } + } + }, + "DescribeScalingPolicies": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {}, + "StatusFilter": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "members": { + "FleetId": {}, + "Name": {}, + "Status": {}, + "ScalingAdjustment": { + "type": "integer" + }, + "ScalingAdjustmentType": {}, + "ComparisonOperator": {}, + "Threshold": { + "type": "double" + }, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": {} + } + } + }, + "NextToken": {} + } + } + }, + "GetGameSessionLogUrl": { + "input": { + "type": "structure", + "required": [ + "GameSessionId" + ], + "members": { + "GameSessionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "PreSignedUrl": {} + } + } + }, + "ListAliases": { + "input": { + "type": "structure", + "members": { + "RoutingStrategyType": {}, + "Name": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Aliases": { + "type": "list", + "member": { + "shape": "S8" + } + }, + "NextToken": {} + } + } + }, + "ListBuilds": { + "input": { + "type": "structure", + "members": { + "Status": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Builds": { + "type": "list", + "member": { + "shape": "Sf" + } + }, + "NextToken": {} + } + } + }, + "ListFleets": { + "input": { + "type": "structure", + "members": { + "BuildId": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetIds": { + "shape": "S1u" + }, + "NextToken": {} + } + } + }, + "PutScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "Name", + "FleetId", + "ScalingAdjustment", + "ScalingAdjustmentType", + "Threshold", + "ComparisonOperator", + "EvaluationPeriods", + "MetricName" + ], + "members": { + "Name": {}, + "FleetId": {}, + "ScalingAdjustment": { + "type": "integer" + }, + "ScalingAdjustmentType": {}, + "Threshold": { + "type": "double" + }, + "ComparisonOperator": {}, + "EvaluationPeriods": { + "type": "integer" + }, + "MetricName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "RequestUploadCredentials": { + "input": { + "type": "structure", + "required": [ + "BuildId" + ], + "members": { + "BuildId": {} + } + }, + "output": { + "type": "structure", + "members": { + "UploadCredentials": { + "shape": "Sj" + }, + "StorageLocation": { + "shape": "Sc" + } + } + } + }, + "ResolveAlias": { + "input": { + "type": "structure", + "required": [ + "AliasId" + ], + "members": { + "AliasId": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetId": {} + } + } + }, + "UpdateAlias": { + "input": { + "type": "structure", + "required": [ + "AliasId" + ], + "members": { + "AliasId": {}, + "Name": {}, + "Description": {}, + "RoutingStrategy": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Alias": { + "shape": "S8" + } + } + } + }, + "UpdateBuild": { + "input": { + "type": "structure", + "required": [ + "BuildId" + ], + "members": { + "BuildId": {}, + "Name": {}, + "Version": {} + } + }, + "output": { + "type": "structure", + "members": { + "Build": { + "shape": "Sf" + } + } + } + }, + "UpdateFleetAttributes": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {}, + "Name": {}, + "Description": {}, + "NewGameSessionProtectionPolicy": {} + } + }, + "output": { + "type": "structure", + "members": { + "FleetId": {} + } + } + }, + "UpdateFleetCapacity": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {}, + "DesiredInstances": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "FleetId": {} + } + } + }, + "UpdateFleetPortSettings": { + "input": { + "type": "structure", + "required": [ + "FleetId" + ], + "members": { + "FleetId": {}, + "InboundPermissionAuthorizations": { + "shape": "Sn" + }, + "InboundPermissionRevocations": { + "shape": "Sn" + } + } + }, + "output": { + "type": "structure", + "members": { + "FleetId": {} + } + } + }, + "UpdateGameSession": { + "input": { + "type": "structure", + "required": [ + "GameSessionId" + ], + "members": { + "GameSessionId": {}, + "MaximumPlayerSessionCount": { + "type": "integer" + }, + "Name": {}, + "PlayerSessionCreationPolicy": {}, + "ProtectionPolicy": {} + } + }, + "output": { + "type": "structure", + "members": { + "GameSession": { + "shape": "S13" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "members": { + "Type": {}, + "FleetId": {}, + "Message": {} + } + }, + "S8": { + "type": "structure", + "members": { + "AliasId": {}, + "Name": {}, + "Description": {}, + "RoutingStrategy": { + "shape": "S3" + }, + "CreationTime": { + "type": "timestamp" + }, + "LastUpdatedTime": { + "type": "timestamp" + } + } + }, + "Sc": { + "type": "structure", + "members": { + "Bucket": {}, + "Key": {}, + "RoleArn": {} + } + }, + "Sf": { + "type": "structure", + "members": { + "BuildId": {}, + "Name": {}, + "Version": {}, + "Status": {}, + "SizeOnDisk": { + "type": "long" + }, + "CreationTime": { + "type": "timestamp" + } + } + }, + "Sj": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {} + }, + "sensitive": true + }, + "Sl": { + "type": "list", + "member": {} + }, + "Sn": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "FromPort", + "ToPort", + "IpRange", + "Protocol" + ], + "members": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "IpRange": {}, + "Protocol": {} + } + } + }, + "Su": { + "type": "structure", + "members": { + "FleetId": {}, + "Description": {}, + "Name": {}, + "CreationTime": { + "type": "timestamp" + }, + "TerminationTime": { + "type": "timestamp" + }, + "Status": {}, + "BuildId": {}, + "ServerLaunchPath": {}, + "ServerLaunchParameters": {}, + "LogPaths": { + "shape": "Sl" + }, + "NewGameSessionProtectionPolicy": {} + } + }, + "Sy": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S13": { + "type": "structure", + "members": { + "GameSessionId": {}, + "Name": {}, + "FleetId": {}, + "CreationTime": { + "type": "timestamp" + }, + "TerminationTime": { + "type": "timestamp" + }, + "CurrentPlayerSessionCount": { + "type": "integer" + }, + "MaximumPlayerSessionCount": { + "type": "integer" + }, + "Status": {}, + "GameProperties": { + "shape": "Sy" + }, + "IpAddress": {}, + "PlayerSessionCreationPolicy": {} + } + }, + "S1a": { + "type": "structure", + "members": { + "PlayerSessionId": {}, + "PlayerId": {}, + "GameSessionId": {}, + "FleetId": {}, + "CreationTime": { + "type": "timestamp" + }, + "TerminationTime": { + "type": "timestamp" + }, + "Status": {}, + "IpAddress": {} + } + }, + "S1g": { + "type": "list", + "member": { + "shape": "S1a" + } + }, + "S1u": { + "type": "list", + "member": {} + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.min.json new file mode 100755 index 0000000..6db1a30 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.min.json @@ -0,0 +1,1215 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-06-01", + "checksumFormat": "sha256", + "endpointPrefix": "glacier", + "serviceFullName": "Amazon Glacier", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "AbortMultipartUpload": { + "http": { + "method": "DELETE", + "requestUri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "uploadId": { + "location": "uri", + "locationName": "uploadId" + } + }, + "required": [ + "accountId", + "vaultName", + "uploadId" + ] + } + }, + "AbortVaultLock": { + "http": { + "method": "DELETE", + "requestUri": "/{accountId}/vaults/{vaultName}/lock-policy", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + } + }, + "AddTagsToVault": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/tags?operation=add", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "Tags": { + "shape": "S5" + } + }, + "required": [ + "accountId", + "vaultName" + ] + } + }, + "CompleteMultipartUpload": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "uploadId": { + "location": "uri", + "locationName": "uploadId" + }, + "archiveSize": { + "location": "header", + "locationName": "x-amz-archive-size" + }, + "checksum": { + "location": "header", + "locationName": "x-amz-sha256-tree-hash" + } + }, + "required": [ + "accountId", + "vaultName", + "uploadId" + ] + }, + "output": { + "shape": "S9" + } + }, + "CompleteVaultLock": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/lock-policy/{lockId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "lockId": { + "location": "uri", + "locationName": "lockId" + } + }, + "required": [ + "accountId", + "vaultName", + "lockId" + ] + } + }, + "CreateVault": { + "http": { + "method": "PUT", + "requestUri": "/{accountId}/vaults/{vaultName}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "DeleteArchive": { + "http": { + "method": "DELETE", + "requestUri": "/{accountId}/vaults/{vaultName}/archives/{archiveId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "archiveId": { + "location": "uri", + "locationName": "archiveId" + } + }, + "required": [ + "accountId", + "vaultName", + "archiveId" + ] + } + }, + "DeleteVault": { + "http": { + "method": "DELETE", + "requestUri": "/{accountId}/vaults/{vaultName}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + } + }, + "DeleteVaultAccessPolicy": { + "http": { + "method": "DELETE", + "requestUri": "/{accountId}/vaults/{vaultName}/access-policy", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + } + }, + "DeleteVaultNotifications": { + "http": { + "method": "DELETE", + "requestUri": "/{accountId}/vaults/{vaultName}/notification-configuration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + } + }, + "DescribeJob": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/jobs/{jobId}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + } + }, + "required": [ + "accountId", + "vaultName", + "jobId" + ] + }, + "output": { + "shape": "Si" + } + }, + "DescribeVault": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "shape": "Sq" + } + }, + "GetDataRetrievalPolicy": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/policies/data-retrieval" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + } + }, + "required": [ + "accountId" + ] + }, + "output": { + "type": "structure", + "members": { + "Policy": { + "shape": "Su" + } + } + } + }, + "GetJobOutput": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/jobs/{jobId}/output" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + }, + "range": { + "location": "header", + "locationName": "Range" + } + }, + "required": [ + "accountId", + "vaultName", + "jobId" + ] + }, + "output": { + "type": "structure", + "members": { + "body": { + "shape": "S10" + }, + "checksum": { + "location": "header", + "locationName": "x-amz-sha256-tree-hash" + }, + "status": { + "location": "statusCode", + "type": "integer" + }, + "contentRange": { + "location": "header", + "locationName": "Content-Range" + }, + "acceptRanges": { + "location": "header", + "locationName": "Accept-Ranges" + }, + "contentType": { + "location": "header", + "locationName": "Content-Type" + }, + "archiveDescription": { + "location": "header", + "locationName": "x-amz-archive-description" + } + }, + "payload": "body" + } + }, + "GetVaultAccessPolicy": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/access-policy" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "policy": { + "shape": "S14" + } + }, + "payload": "policy" + } + }, + "GetVaultLock": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/lock-policy" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "Policy": {}, + "State": {}, + "ExpirationDate": {}, + "CreationDate": {} + } + } + }, + "GetVaultNotifications": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/notification-configuration" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "vaultNotificationConfig": { + "shape": "S19" + } + }, + "payload": "vaultNotificationConfig" + } + }, + "InitiateJob": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/jobs", + "responseCode": 202 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "jobParameters": { + "type": "structure", + "members": { + "Format": {}, + "Type": {}, + "ArchiveId": {}, + "Description": {}, + "SNSTopic": {}, + "RetrievalByteRange": {}, + "InventoryRetrievalParameters": { + "type": "structure", + "members": { + "StartDate": {}, + "EndDate": {}, + "Limit": {}, + "Marker": {} + } + } + } + } + }, + "required": [ + "accountId", + "vaultName" + ], + "payload": "jobParameters" + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "locationName": "Location" + }, + "jobId": { + "location": "header", + "locationName": "x-amz-job-id" + } + } + } + }, + "InitiateMultipartUpload": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/multipart-uploads", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "archiveDescription": { + "location": "header", + "locationName": "x-amz-archive-description" + }, + "partSize": { + "location": "header", + "locationName": "x-amz-part-size" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "locationName": "Location" + }, + "uploadId": { + "location": "header", + "locationName": "x-amz-multipart-upload-id" + } + } + } + }, + "InitiateVaultLock": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/lock-policy", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "policy": { + "type": "structure", + "members": { + "Policy": {} + } + } + }, + "required": [ + "accountId", + "vaultName" + ], + "payload": "policy" + }, + "output": { + "type": "structure", + "members": { + "lockId": { + "location": "header", + "locationName": "x-amz-lock-id" + } + } + } + }, + "ListJobs": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/jobs" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "limit": { + "location": "querystring", + "locationName": "limit" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "statuscode": { + "location": "querystring", + "locationName": "statuscode" + }, + "completed": { + "location": "querystring", + "locationName": "completed" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "JobList": { + "type": "list", + "member": { + "shape": "Si" + } + }, + "Marker": {} + } + } + }, + "ListMultipartUploads": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/multipart-uploads" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "limit": { + "location": "querystring", + "locationName": "limit" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "UploadsList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MultipartUploadId": {}, + "VaultARN": {}, + "ArchiveDescription": {}, + "PartSizeInBytes": { + "type": "long" + }, + "CreationDate": {} + } + } + }, + "Marker": {} + } + } + }, + "ListParts": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "uploadId": { + "location": "uri", + "locationName": "uploadId" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "limit": { + "location": "querystring", + "locationName": "limit" + } + }, + "required": [ + "accountId", + "vaultName", + "uploadId" + ] + }, + "output": { + "type": "structure", + "members": { + "MultipartUploadId": {}, + "VaultARN": {}, + "ArchiveDescription": {}, + "PartSizeInBytes": { + "type": "long" + }, + "CreationDate": {}, + "Parts": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RangeInBytes": {}, + "SHA256TreeHash": {} + } + } + }, + "Marker": {} + } + } + }, + "ListTagsForVault": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults/{vaultName}/tags" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + } + }, + "required": [ + "accountId", + "vaultName" + ] + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S5" + } + } + } + }, + "ListVaults": { + "http": { + "method": "GET", + "requestUri": "/{accountId}/vaults" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "limit": { + "location": "querystring", + "locationName": "limit" + } + }, + "required": [ + "accountId" + ] + }, + "output": { + "type": "structure", + "members": { + "VaultList": { + "type": "list", + "member": { + "shape": "Sq" + } + }, + "Marker": {} + } + } + }, + "RemoveTagsFromVault": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/tags?operation=remove", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "TagKeys": { + "type": "list", + "member": {} + } + }, + "required": [ + "accountId", + "vaultName" + ] + } + }, + "SetDataRetrievalPolicy": { + "http": { + "method": "PUT", + "requestUri": "/{accountId}/policies/data-retrieval", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "Policy": { + "shape": "Su" + } + }, + "required": [ + "accountId" + ] + } + }, + "SetVaultAccessPolicy": { + "http": { + "method": "PUT", + "requestUri": "/{accountId}/vaults/{vaultName}/access-policy", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "policy": { + "shape": "S14" + } + }, + "required": [ + "accountId", + "vaultName" + ], + "payload": "policy" + } + }, + "SetVaultNotifications": { + "http": { + "method": "PUT", + "requestUri": "/{accountId}/vaults/{vaultName}/notification-configuration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "vaultNotificationConfig": { + "shape": "S19" + } + }, + "required": [ + "accountId", + "vaultName" + ], + "payload": "vaultNotificationConfig" + } + }, + "UploadArchive": { + "http": { + "requestUri": "/{accountId}/vaults/{vaultName}/archives", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "archiveDescription": { + "location": "header", + "locationName": "x-amz-archive-description" + }, + "checksum": { + "location": "header", + "locationName": "x-amz-sha256-tree-hash" + }, + "body": { + "shape": "S10" + } + }, + "required": [ + "vaultName", + "accountId" + ], + "payload": "body" + }, + "output": { + "shape": "S9" + } + }, + "UploadMultipartPart": { + "http": { + "method": "PUT", + "requestUri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri", + "locationName": "accountId" + }, + "vaultName": { + "location": "uri", + "locationName": "vaultName" + }, + "uploadId": { + "location": "uri", + "locationName": "uploadId" + }, + "checksum": { + "location": "header", + "locationName": "x-amz-sha256-tree-hash" + }, + "range": { + "location": "header", + "locationName": "Content-Range" + }, + "body": { + "shape": "S10" + } + }, + "required": [ + "accountId", + "vaultName", + "uploadId" + ], + "payload": "body" + }, + "output": { + "type": "structure", + "members": { + "checksum": { + "location": "header", + "locationName": "x-amz-sha256-tree-hash" + } + } + } + } + }, + "shapes": { + "S5": { + "type": "map", + "key": {}, + "value": {} + }, + "S9": { + "type": "structure", + "members": { + "location": { + "location": "header", + "locationName": "Location" + }, + "checksum": { + "location": "header", + "locationName": "x-amz-sha256-tree-hash" + }, + "archiveId": { + "location": "header", + "locationName": "x-amz-archive-id" + } + } + }, + "Si": { + "type": "structure", + "members": { + "JobId": {}, + "JobDescription": {}, + "Action": {}, + "ArchiveId": {}, + "VaultARN": {}, + "CreationDate": {}, + "Completed": { + "type": "boolean" + }, + "StatusCode": {}, + "StatusMessage": {}, + "ArchiveSizeInBytes": { + "type": "long" + }, + "InventorySizeInBytes": { + "type": "long" + }, + "SNSTopic": {}, + "CompletionDate": {}, + "SHA256TreeHash": {}, + "ArchiveSHA256TreeHash": {}, + "RetrievalByteRange": {}, + "InventoryRetrievalParameters": { + "type": "structure", + "members": { + "Format": {}, + "StartDate": {}, + "EndDate": {}, + "Limit": {}, + "Marker": {} + } + } + } + }, + "Sq": { + "type": "structure", + "members": { + "VaultARN": {}, + "VaultName": {}, + "CreationDate": {}, + "LastInventoryDate": {}, + "NumberOfArchives": { + "type": "long" + }, + "SizeInBytes": { + "type": "long" + } + } + }, + "Su": { + "type": "structure", + "members": { + "Rules": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Strategy": {}, + "BytesPerHour": { + "type": "long" + } + } + } + } + } + }, + "S10": { + "type": "blob", + "streaming": true + }, + "S14": { + "type": "structure", + "members": { + "Policy": {} + } + }, + "S19": { + "type": "structure", + "members": { + "SNSTopic": {}, + "Events": { + "type": "list", + "member": {} + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.paginators.json new file mode 100755 index 0000000..6969143 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.paginators.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "ListJobs": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "JobList" + }, + "ListMultipartUploads": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "UploadsList" + }, + "ListParts": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "Parts" + }, + "ListVaults": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "VaultList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.waiters2.json new file mode 100755 index 0000000..07a64a0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/glacier-2012-06-01.waiters2.json @@ -0,0 +1,39 @@ +{ + "version": 2, + "waiters": { + "VaultExists": { + "operation": "DescribeVault", + "delay": 3, + "maxAttempts": 15, + "acceptors": [ + { + "state": "success", + "matcher": "status", + "expected": 200 + }, + { + "state": "retry", + "matcher": "error", + "expected": "ResourceNotFoundException" + } + ] + }, + "VaultNotExists": { + "operation": "DescribeVault", + "delay": 3, + "maxAttempts": 15, + "acceptors": [ + { + "state": "retry", + "matcher": "status", + "expected": 200 + }, + { + "state": "success", + "matcher": "error", + "expected": "ResourceNotFoundException" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.min.json new file mode 100755 index 0000000..36e74c3 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.min.json @@ -0,0 +1,2936 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2010-05-08", + "endpointPrefix": "iam", + "globalEndpoint": "iam.amazonaws.com", + "protocol": "query", + "serviceAbbreviation": "IAM", + "serviceFullName": "AWS Identity and Access Management", + "signatureVersion": "v4", + "xmlNamespace": "https://iam.amazonaws.com/doc/2010-05-08/" + }, + "operations": { + "AddClientIDToOpenIDConnectProvider": { + "input": { + "type": "structure", + "required": [ + "OpenIDConnectProviderArn", + "ClientID" + ], + "members": { + "OpenIDConnectProviderArn": {}, + "ClientID": {} + } + } + }, + "AddRoleToInstanceProfile": { + "input": { + "type": "structure", + "required": [ + "InstanceProfileName", + "RoleName" + ], + "members": { + "InstanceProfileName": {}, + "RoleName": {} + } + } + }, + "AddUserToGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "UserName" + ], + "members": { + "GroupName": {}, + "UserName": {} + } + } + }, + "AttachGroupPolicy": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "PolicyArn" + ], + "members": { + "GroupName": {}, + "PolicyArn": {} + } + } + }, + "AttachRolePolicy": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "PolicyArn" + ], + "members": { + "RoleName": {}, + "PolicyArn": {} + } + } + }, + "AttachUserPolicy": { + "input": { + "type": "structure", + "required": [ + "UserName", + "PolicyArn" + ], + "members": { + "UserName": {}, + "PolicyArn": {} + } + } + }, + "ChangePassword": { + "input": { + "type": "structure", + "required": [ + "OldPassword", + "NewPassword" + ], + "members": { + "OldPassword": { + "shape": "Sf" + }, + "NewPassword": { + "shape": "Sf" + } + } + } + }, + "CreateAccessKey": { + "input": { + "type": "structure", + "members": { + "UserName": {} + } + }, + "output": { + "resultWrapper": "CreateAccessKeyResult", + "type": "structure", + "required": [ + "AccessKey" + ], + "members": { + "AccessKey": { + "type": "structure", + "required": [ + "UserName", + "AccessKeyId", + "Status", + "SecretAccessKey" + ], + "members": { + "UserName": {}, + "AccessKeyId": {}, + "Status": {}, + "SecretAccessKey": { + "type": "string", + "sensitive": true + }, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "CreateAccountAlias": { + "input": { + "type": "structure", + "required": [ + "AccountAlias" + ], + "members": { + "AccountAlias": {} + } + } + }, + "CreateGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "Path": {}, + "GroupName": {} + } + }, + "output": { + "resultWrapper": "CreateGroupResult", + "type": "structure", + "required": [ + "Group" + ], + "members": { + "Group": { + "shape": "Ss" + } + } + } + }, + "CreateInstanceProfile": { + "input": { + "type": "structure", + "required": [ + "InstanceProfileName" + ], + "members": { + "InstanceProfileName": {}, + "Path": {} + } + }, + "output": { + "resultWrapper": "CreateInstanceProfileResult", + "type": "structure", + "required": [ + "InstanceProfile" + ], + "members": { + "InstanceProfile": { + "shape": "Sw" + } + } + } + }, + "CreateLoginProfile": { + "input": { + "type": "structure", + "required": [ + "UserName", + "Password" + ], + "members": { + "UserName": {}, + "Password": { + "shape": "Sf" + }, + "PasswordResetRequired": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CreateLoginProfileResult", + "type": "structure", + "required": [ + "LoginProfile" + ], + "members": { + "LoginProfile": { + "shape": "S13" + } + } + } + }, + "CreateOpenIDConnectProvider": { + "input": { + "type": "structure", + "required": [ + "Url", + "ThumbprintList" + ], + "members": { + "Url": {}, + "ClientIDList": { + "shape": "S16" + }, + "ThumbprintList": { + "shape": "S17" + } + } + }, + "output": { + "resultWrapper": "CreateOpenIDConnectProviderResult", + "type": "structure", + "members": { + "OpenIDConnectProviderArn": {} + } + } + }, + "CreatePolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName", + "PolicyDocument" + ], + "members": { + "PolicyName": {}, + "Path": {}, + "PolicyDocument": {}, + "Description": {} + } + }, + "output": { + "resultWrapper": "CreatePolicyResult", + "type": "structure", + "members": { + "Policy": { + "shape": "S1f" + } + } + } + }, + "CreatePolicyVersion": { + "input": { + "type": "structure", + "required": [ + "PolicyArn", + "PolicyDocument" + ], + "members": { + "PolicyArn": {}, + "PolicyDocument": {}, + "SetAsDefault": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CreatePolicyVersionResult", + "type": "structure", + "members": { + "PolicyVersion": { + "shape": "S1k" + } + } + } + }, + "CreateRole": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "AssumeRolePolicyDocument" + ], + "members": { + "Path": {}, + "RoleName": {}, + "AssumeRolePolicyDocument": {} + } + }, + "output": { + "resultWrapper": "CreateRoleResult", + "type": "structure", + "required": [ + "Role" + ], + "members": { + "Role": { + "shape": "Sy" + } + } + } + }, + "CreateSAMLProvider": { + "input": { + "type": "structure", + "required": [ + "SAMLMetadataDocument", + "Name" + ], + "members": { + "SAMLMetadataDocument": {}, + "Name": {} + } + }, + "output": { + "resultWrapper": "CreateSAMLProviderResult", + "type": "structure", + "members": { + "SAMLProviderArn": {} + } + } + }, + "CreateUser": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "Path": {}, + "UserName": {} + } + }, + "output": { + "resultWrapper": "CreateUserResult", + "type": "structure", + "members": { + "User": { + "shape": "S1t" + } + } + } + }, + "CreateVirtualMFADevice": { + "input": { + "type": "structure", + "required": [ + "VirtualMFADeviceName" + ], + "members": { + "Path": {}, + "VirtualMFADeviceName": {} + } + }, + "output": { + "resultWrapper": "CreateVirtualMFADeviceResult", + "type": "structure", + "required": [ + "VirtualMFADevice" + ], + "members": { + "VirtualMFADevice": { + "shape": "S1x" + } + } + } + }, + "DeactivateMFADevice": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SerialNumber" + ], + "members": { + "UserName": {}, + "SerialNumber": {} + } + } + }, + "DeleteAccessKey": { + "input": { + "type": "structure", + "required": [ + "AccessKeyId" + ], + "members": { + "UserName": {}, + "AccessKeyId": {} + } + } + }, + "DeleteAccountAlias": { + "input": { + "type": "structure", + "required": [ + "AccountAlias" + ], + "members": { + "AccountAlias": {} + } + } + }, + "DeleteAccountPasswordPolicy": {}, + "DeleteGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "GroupName": {} + } + } + }, + "DeleteGroupPolicy": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "PolicyName" + ], + "members": { + "GroupName": {}, + "PolicyName": {} + } + } + }, + "DeleteInstanceProfile": { + "input": { + "type": "structure", + "required": [ + "InstanceProfileName" + ], + "members": { + "InstanceProfileName": {} + } + } + }, + "DeleteLoginProfile": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {} + } + } + }, + "DeleteOpenIDConnectProvider": { + "input": { + "type": "structure", + "required": [ + "OpenIDConnectProviderArn" + ], + "members": { + "OpenIDConnectProviderArn": {} + } + } + }, + "DeletePolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyArn" + ], + "members": { + "PolicyArn": {} + } + } + }, + "DeletePolicyVersion": { + "input": { + "type": "structure", + "required": [ + "PolicyArn", + "VersionId" + ], + "members": { + "PolicyArn": {}, + "VersionId": {} + } + } + }, + "DeleteRole": { + "input": { + "type": "structure", + "required": [ + "RoleName" + ], + "members": { + "RoleName": {} + } + } + }, + "DeleteRolePolicy": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "PolicyName" + ], + "members": { + "RoleName": {}, + "PolicyName": {} + } + } + }, + "DeleteSAMLProvider": { + "input": { + "type": "structure", + "required": [ + "SAMLProviderArn" + ], + "members": { + "SAMLProviderArn": {} + } + } + }, + "DeleteSSHPublicKey": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SSHPublicKeyId" + ], + "members": { + "UserName": {}, + "SSHPublicKeyId": {} + } + } + }, + "DeleteServerCertificate": { + "input": { + "type": "structure", + "required": [ + "ServerCertificateName" + ], + "members": { + "ServerCertificateName": {} + } + } + }, + "DeleteSigningCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateId" + ], + "members": { + "UserName": {}, + "CertificateId": {} + } + } + }, + "DeleteUser": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {} + } + } + }, + "DeleteUserPolicy": { + "input": { + "type": "structure", + "required": [ + "UserName", + "PolicyName" + ], + "members": { + "UserName": {}, + "PolicyName": {} + } + } + }, + "DeleteVirtualMFADevice": { + "input": { + "type": "structure", + "required": [ + "SerialNumber" + ], + "members": { + "SerialNumber": {} + } + } + }, + "DetachGroupPolicy": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "PolicyArn" + ], + "members": { + "GroupName": {}, + "PolicyArn": {} + } + } + }, + "DetachRolePolicy": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "PolicyArn" + ], + "members": { + "RoleName": {}, + "PolicyArn": {} + } + } + }, + "DetachUserPolicy": { + "input": { + "type": "structure", + "required": [ + "UserName", + "PolicyArn" + ], + "members": { + "UserName": {}, + "PolicyArn": {} + } + } + }, + "EnableMFADevice": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SerialNumber", + "AuthenticationCode1", + "AuthenticationCode2" + ], + "members": { + "UserName": {}, + "SerialNumber": {}, + "AuthenticationCode1": {}, + "AuthenticationCode2": {} + } + } + }, + "GenerateCredentialReport": { + "output": { + "resultWrapper": "GenerateCredentialReportResult", + "type": "structure", + "members": { + "State": {}, + "Description": {} + } + } + }, + "GetAccessKeyLastUsed": { + "input": { + "type": "structure", + "required": [ + "AccessKeyId" + ], + "members": { + "AccessKeyId": {} + } + }, + "output": { + "resultWrapper": "GetAccessKeyLastUsedResult", + "type": "structure", + "members": { + "UserName": {}, + "AccessKeyLastUsed": { + "type": "structure", + "required": [ + "LastUsedDate", + "ServiceName", + "Region" + ], + "members": { + "LastUsedDate": { + "type": "timestamp" + }, + "ServiceName": {}, + "Region": {} + } + } + } + } + }, + "GetAccountAuthorizationDetails": { + "input": { + "type": "structure", + "members": { + "Filter": { + "type": "list", + "member": {} + }, + "MaxItems": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "GetAccountAuthorizationDetailsResult", + "type": "structure", + "members": { + "UserDetailList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "UserPolicyList": { + "shape": "S36" + }, + "GroupList": { + "type": "list", + "member": {} + }, + "AttachedManagedPolicies": { + "shape": "S39" + } + } + } + }, + "GroupDetailList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Path": {}, + "GroupName": {}, + "GroupId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "GroupPolicyList": { + "shape": "S36" + }, + "AttachedManagedPolicies": { + "shape": "S39" + } + } + } + }, + "RoleDetailList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {}, + "InstanceProfileList": { + "shape": "S3f" + }, + "RolePolicyList": { + "shape": "S36" + }, + "AttachedManagedPolicies": { + "shape": "S39" + } + } + } + }, + "Policies": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyName": {}, + "PolicyId": {}, + "Arn": {}, + "Path": {}, + "DefaultVersionId": {}, + "AttachmentCount": { + "type": "integer" + }, + "IsAttachable": { + "type": "boolean" + }, + "Description": {}, + "CreateDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "PolicyVersionList": { + "shape": "S3i" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "GetAccountPasswordPolicy": { + "output": { + "resultWrapper": "GetAccountPasswordPolicyResult", + "type": "structure", + "required": [ + "PasswordPolicy" + ], + "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" + }, + "PasswordReusePrevention": { + "type": "integer" + }, + "HardExpiry": { + "type": "boolean" + } + } + } + } + } + }, + "GetAccountSummary": { + "output": { + "resultWrapper": "GetAccountSummaryResult", + "type": "structure", + "members": { + "SummaryMap": { + "type": "map", + "key": {}, + "value": { + "type": "integer" + } + } + } + } + }, + "GetContextKeysForCustomPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyInputList" + ], + "members": { + "PolicyInputList": { + "shape": "S3u" + } + } + }, + "output": { + "shape": "S3v", + "resultWrapper": "GetContextKeysForCustomPolicyResult" + } + }, + "GetContextKeysForPrincipalPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicySourceArn" + ], + "members": { + "PolicySourceArn": {}, + "PolicyInputList": { + "shape": "S3u" + } + } + }, + "output": { + "shape": "S3v", + "resultWrapper": "GetContextKeysForPrincipalPolicyResult" + } + }, + "GetCredentialReport": { + "output": { + "resultWrapper": "GetCredentialReportResult", + "type": "structure", + "members": { + "Content": { + "type": "blob" + }, + "ReportFormat": {}, + "GeneratedTime": { + "type": "timestamp" + } + } + } + }, + "GetGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "GroupName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "GetGroupResult", + "type": "structure", + "required": [ + "Group", + "Users" + ], + "members": { + "Group": { + "shape": "Ss" + }, + "Users": { + "shape": "S44" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "GetGroupPolicy": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "PolicyName" + ], + "members": { + "GroupName": {}, + "PolicyName": {} + } + }, + "output": { + "resultWrapper": "GetGroupPolicyResult", + "type": "structure", + "required": [ + "GroupName", + "PolicyName", + "PolicyDocument" + ], + "members": { + "GroupName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "GetInstanceProfile": { + "input": { + "type": "structure", + "required": [ + "InstanceProfileName" + ], + "members": { + "InstanceProfileName": {} + } + }, + "output": { + "resultWrapper": "GetInstanceProfileResult", + "type": "structure", + "required": [ + "InstanceProfile" + ], + "members": { + "InstanceProfile": { + "shape": "Sw" + } + } + } + }, + "GetLoginProfile": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {} + } + }, + "output": { + "resultWrapper": "GetLoginProfileResult", + "type": "structure", + "required": [ + "LoginProfile" + ], + "members": { + "LoginProfile": { + "shape": "S13" + } + } + } + }, + "GetOpenIDConnectProvider": { + "input": { + "type": "structure", + "required": [ + "OpenIDConnectProviderArn" + ], + "members": { + "OpenIDConnectProviderArn": {} + } + }, + "output": { + "resultWrapper": "GetOpenIDConnectProviderResult", + "type": "structure", + "members": { + "Url": {}, + "ClientIDList": { + "shape": "S16" + }, + "ThumbprintList": { + "shape": "S17" + }, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "GetPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyArn" + ], + "members": { + "PolicyArn": {} + } + }, + "output": { + "resultWrapper": "GetPolicyResult", + "type": "structure", + "members": { + "Policy": { + "shape": "S1f" + } + } + } + }, + "GetPolicyVersion": { + "input": { + "type": "structure", + "required": [ + "PolicyArn", + "VersionId" + ], + "members": { + "PolicyArn": {}, + "VersionId": {} + } + }, + "output": { + "resultWrapper": "GetPolicyVersionResult", + "type": "structure", + "members": { + "PolicyVersion": { + "shape": "S1k" + } + } + } + }, + "GetRole": { + "input": { + "type": "structure", + "required": [ + "RoleName" + ], + "members": { + "RoleName": {} + } + }, + "output": { + "resultWrapper": "GetRoleResult", + "type": "structure", + "required": [ + "Role" + ], + "members": { + "Role": { + "shape": "Sy" + } + } + } + }, + "GetRolePolicy": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "PolicyName" + ], + "members": { + "RoleName": {}, + "PolicyName": {} + } + }, + "output": { + "resultWrapper": "GetRolePolicyResult", + "type": "structure", + "required": [ + "RoleName", + "PolicyName", + "PolicyDocument" + ], + "members": { + "RoleName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "GetSAMLProvider": { + "input": { + "type": "structure", + "required": [ + "SAMLProviderArn" + ], + "members": { + "SAMLProviderArn": {} + } + }, + "output": { + "resultWrapper": "GetSAMLProviderResult", + "type": "structure", + "members": { + "SAMLMetadataDocument": {}, + "CreateDate": { + "type": "timestamp" + }, + "ValidUntil": { + "type": "timestamp" + } + } + } + }, + "GetSSHPublicKey": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SSHPublicKeyId", + "Encoding" + ], + "members": { + "UserName": {}, + "SSHPublicKeyId": {}, + "Encoding": {} + } + }, + "output": { + "resultWrapper": "GetSSHPublicKeyResult", + "type": "structure", + "members": { + "SSHPublicKey": { + "shape": "S4q" + } + } + } + }, + "GetServerCertificate": { + "input": { + "type": "structure", + "required": [ + "ServerCertificateName" + ], + "members": { + "ServerCertificateName": {} + } + }, + "output": { + "resultWrapper": "GetServerCertificateResult", + "type": "structure", + "required": [ + "ServerCertificate" + ], + "members": { + "ServerCertificate": { + "type": "structure", + "required": [ + "ServerCertificateMetadata", + "CertificateBody" + ], + "members": { + "ServerCertificateMetadata": { + "shape": "S4w" + }, + "CertificateBody": {}, + "CertificateChain": {} + } + } + } + } + }, + "GetUser": { + "input": { + "type": "structure", + "members": { + "UserName": {} + } + }, + "output": { + "resultWrapper": "GetUserResult", + "type": "structure", + "required": [ + "User" + ], + "members": { + "User": { + "shape": "S1t" + } + } + } + }, + "GetUserPolicy": { + "input": { + "type": "structure", + "required": [ + "UserName", + "PolicyName" + ], + "members": { + "UserName": {}, + "PolicyName": {} + } + }, + "output": { + "resultWrapper": "GetUserPolicyResult", + "type": "structure", + "required": [ + "UserName", + "PolicyName", + "PolicyDocument" + ], + "members": { + "UserName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "ListAccessKeys": { + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListAccessKeysResult", + "type": "structure", + "required": [ + "AccessKeyMetadata" + ], + "members": { + "AccessKeyMetadata": { + "type": "list", + "member": { + "type": "structure", + "members": { + "UserName": {}, + "AccessKeyId": {}, + "Status": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListAccountAliases": { + "input": { + "type": "structure", + "members": { + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListAccountAliasesResult", + "type": "structure", + "required": [ + "AccountAliases" + ], + "members": { + "AccountAliases": { + "type": "list", + "member": {} + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListAttachedGroupPolicies": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "GroupName": {}, + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListAttachedGroupPoliciesResult", + "type": "structure", + "members": { + "AttachedPolicies": { + "shape": "S39" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListAttachedRolePolicies": { + "input": { + "type": "structure", + "required": [ + "RoleName" + ], + "members": { + "RoleName": {}, + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListAttachedRolePoliciesResult", + "type": "structure", + "members": { + "AttachedPolicies": { + "shape": "S39" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListAttachedUserPolicies": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {}, + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListAttachedUserPoliciesResult", + "type": "structure", + "members": { + "AttachedPolicies": { + "shape": "S39" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListEntitiesForPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyArn" + ], + "members": { + "PolicyArn": {}, + "EntityFilter": {}, + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListEntitiesForPolicyResult", + "type": "structure", + "members": { + "PolicyGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "GroupName": {}, + "GroupId": {} + } + } + }, + "PolicyUsers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "UserName": {}, + "UserId": {} + } + } + }, + "PolicyRoles": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RoleName": {}, + "RoleId": {} + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListGroupPolicies": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "GroupName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListGroupPoliciesResult", + "type": "structure", + "required": [ + "PolicyNames" + ], + "members": { + "PolicyNames": { + "shape": "S5q" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListGroups": { + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListGroupsResult", + "type": "structure", + "required": [ + "Groups" + ], + "members": { + "Groups": { + "shape": "S5u" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListGroupsForUser": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListGroupsForUserResult", + "type": "structure", + "required": [ + "Groups" + ], + "members": { + "Groups": { + "shape": "S5u" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListInstanceProfiles": { + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListInstanceProfilesResult", + "type": "structure", + "required": [ + "InstanceProfiles" + ], + "members": { + "InstanceProfiles": { + "shape": "S3f" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListInstanceProfilesForRole": { + "input": { + "type": "structure", + "required": [ + "RoleName" + ], + "members": { + "RoleName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListInstanceProfilesForRoleResult", + "type": "structure", + "required": [ + "InstanceProfiles" + ], + "members": { + "InstanceProfiles": { + "shape": "S3f" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListMFADevices": { + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListMFADevicesResult", + "type": "structure", + "required": [ + "MFADevices" + ], + "members": { + "MFADevices": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "UserName", + "SerialNumber", + "EnableDate" + ], + "members": { + "UserName": {}, + "SerialNumber": {}, + "EnableDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListOpenIDConnectProviders": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "resultWrapper": "ListOpenIDConnectProvidersResult", + "type": "structure", + "members": { + "OpenIDConnectProviderList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Arn": {} + } + } + } + } + } + }, + "ListPolicies": { + "input": { + "type": "structure", + "members": { + "Scope": {}, + "OnlyAttached": { + "type": "boolean" + }, + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListPoliciesResult", + "type": "structure", + "members": { + "Policies": { + "type": "list", + "member": { + "shape": "S1f" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListPolicyVersions": { + "input": { + "type": "structure", + "required": [ + "PolicyArn" + ], + "members": { + "PolicyArn": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListPolicyVersionsResult", + "type": "structure", + "members": { + "Versions": { + "shape": "S3i" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListRolePolicies": { + "input": { + "type": "structure", + "required": [ + "RoleName" + ], + "members": { + "RoleName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListRolePoliciesResult", + "type": "structure", + "required": [ + "PolicyNames" + ], + "members": { + "PolicyNames": { + "shape": "S5q" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListRoles": { + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListRolesResult", + "type": "structure", + "required": [ + "Roles" + ], + "members": { + "Roles": { + "shape": "Sx" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListSAMLProviders": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "resultWrapper": "ListSAMLProvidersResult", + "type": "structure", + "members": { + "SAMLProviderList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Arn": {}, + "ValidUntil": { + "type": "timestamp" + }, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + } + }, + "ListSSHPublicKeys": { + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListSSHPublicKeysResult", + "type": "structure", + "members": { + "SSHPublicKeys": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "UserName", + "SSHPublicKeyId", + "Status", + "UploadDate" + ], + "members": { + "UserName": {}, + "SSHPublicKeyId": {}, + "Status": {}, + "UploadDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListServerCertificates": { + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListServerCertificatesResult", + "type": "structure", + "required": [ + "ServerCertificateMetadataList" + ], + "members": { + "ServerCertificateMetadataList": { + "type": "list", + "member": { + "shape": "S4w" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListSigningCertificates": { + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListSigningCertificatesResult", + "type": "structure", + "required": [ + "Certificates" + ], + "members": { + "Certificates": { + "type": "list", + "member": { + "shape": "S6x" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListUserPolicies": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListUserPoliciesResult", + "type": "structure", + "required": [ + "PolicyNames" + ], + "members": { + "PolicyNames": { + "shape": "S5q" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListUsers": { + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListUsersResult", + "type": "structure", + "required": [ + "Users" + ], + "members": { + "Users": { + "shape": "S44" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "ListVirtualMFADevices": { + "input": { + "type": "structure", + "members": { + "AssignmentStatus": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ListVirtualMFADevicesResult", + "type": "structure", + "required": [ + "VirtualMFADevices" + ], + "members": { + "VirtualMFADevices": { + "type": "list", + "member": { + "shape": "S1x" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "PutGroupPolicy": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "PolicyName", + "PolicyDocument" + ], + "members": { + "GroupName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "PutRolePolicy": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "PolicyName", + "PolicyDocument" + ], + "members": { + "RoleName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "PutUserPolicy": { + "input": { + "type": "structure", + "required": [ + "UserName", + "PolicyName", + "PolicyDocument" + ], + "members": { + "UserName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "RemoveClientIDFromOpenIDConnectProvider": { + "input": { + "type": "structure", + "required": [ + "OpenIDConnectProviderArn", + "ClientID" + ], + "members": { + "OpenIDConnectProviderArn": {}, + "ClientID": {} + } + } + }, + "RemoveRoleFromInstanceProfile": { + "input": { + "type": "structure", + "required": [ + "InstanceProfileName", + "RoleName" + ], + "members": { + "InstanceProfileName": {}, + "RoleName": {} + } + } + }, + "RemoveUserFromGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName", + "UserName" + ], + "members": { + "GroupName": {}, + "UserName": {} + } + } + }, + "ResyncMFADevice": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SerialNumber", + "AuthenticationCode1", + "AuthenticationCode2" + ], + "members": { + "UserName": {}, + "SerialNumber": {}, + "AuthenticationCode1": {}, + "AuthenticationCode2": {} + } + } + }, + "SetDefaultPolicyVersion": { + "input": { + "type": "structure", + "required": [ + "PolicyArn", + "VersionId" + ], + "members": { + "PolicyArn": {}, + "VersionId": {} + } + } + }, + "SimulateCustomPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyInputList", + "ActionNames" + ], + "members": { + "PolicyInputList": { + "shape": "S3u" + }, + "ActionNames": { + "shape": "S7f" + }, + "ResourceArns": { + "shape": "S7h" + }, + "ResourcePolicy": {}, + "ResourceOwner": {}, + "CallerArn": {}, + "ContextEntries": { + "shape": "S7j" + }, + "ResourceHandlingOption": {}, + "MaxItems": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "shape": "S7p", + "resultWrapper": "SimulateCustomPolicyResult" + } + }, + "SimulatePrincipalPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicySourceArn", + "ActionNames" + ], + "members": { + "PolicySourceArn": {}, + "PolicyInputList": { + "shape": "S3u" + }, + "ActionNames": { + "shape": "S7f" + }, + "ResourceArns": { + "shape": "S7h" + }, + "ResourcePolicy": {}, + "ResourceOwner": {}, + "CallerArn": {}, + "ContextEntries": { + "shape": "S7j" + }, + "ResourceHandlingOption": {}, + "MaxItems": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "shape": "S7p", + "resultWrapper": "SimulatePrincipalPolicyResult" + } + }, + "UpdateAccessKey": { + "input": { + "type": "structure", + "required": [ + "AccessKeyId", + "Status" + ], + "members": { + "UserName": {}, + "AccessKeyId": {}, + "Status": {} + } + } + }, + "UpdateAccountPasswordPolicy": { + "input": { + "type": "structure", + "members": { + "MinimumPasswordLength": { + "type": "integer" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireUppercaseCharacters": { + "type": "boolean" + }, + "RequireLowercaseCharacters": { + "type": "boolean" + }, + "AllowUsersToChangePassword": { + "type": "boolean" + }, + "MaxPasswordAge": { + "type": "integer" + }, + "PasswordReusePrevention": { + "type": "integer" + }, + "HardExpiry": { + "type": "boolean" + } + } + } + }, + "UpdateAssumeRolePolicy": { + "input": { + "type": "structure", + "required": [ + "RoleName", + "PolicyDocument" + ], + "members": { + "RoleName": {}, + "PolicyDocument": {} + } + } + }, + "UpdateGroup": { + "input": { + "type": "structure", + "required": [ + "GroupName" + ], + "members": { + "GroupName": {}, + "NewPath": {}, + "NewGroupName": {} + } + } + }, + "UpdateLoginProfile": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {}, + "Password": { + "shape": "Sf" + }, + "PasswordResetRequired": { + "type": "boolean" + } + } + } + }, + "UpdateOpenIDConnectProviderThumbprint": { + "input": { + "type": "structure", + "required": [ + "OpenIDConnectProviderArn", + "ThumbprintList" + ], + "members": { + "OpenIDConnectProviderArn": {}, + "ThumbprintList": { + "shape": "S17" + } + } + } + }, + "UpdateSAMLProvider": { + "input": { + "type": "structure", + "required": [ + "SAMLMetadataDocument", + "SAMLProviderArn" + ], + "members": { + "SAMLMetadataDocument": {}, + "SAMLProviderArn": {} + } + }, + "output": { + "resultWrapper": "UpdateSAMLProviderResult", + "type": "structure", + "members": { + "SAMLProviderArn": {} + } + } + }, + "UpdateSSHPublicKey": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SSHPublicKeyId", + "Status" + ], + "members": { + "UserName": {}, + "SSHPublicKeyId": {}, + "Status": {} + } + } + }, + "UpdateServerCertificate": { + "input": { + "type": "structure", + "required": [ + "ServerCertificateName" + ], + "members": { + "ServerCertificateName": {}, + "NewPath": {}, + "NewServerCertificateName": {} + } + } + }, + "UpdateSigningCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateId", + "Status" + ], + "members": { + "UserName": {}, + "CertificateId": {}, + "Status": {} + } + } + }, + "UpdateUser": { + "input": { + "type": "structure", + "required": [ + "UserName" + ], + "members": { + "UserName": {}, + "NewPath": {}, + "NewUserName": {} + } + } + }, + "UploadSSHPublicKey": { + "input": { + "type": "structure", + "required": [ + "UserName", + "SSHPublicKeyBody" + ], + "members": { + "UserName": {}, + "SSHPublicKeyBody": {} + } + }, + "output": { + "resultWrapper": "UploadSSHPublicKeyResult", + "type": "structure", + "members": { + "SSHPublicKey": { + "shape": "S4q" + } + } + } + }, + "UploadServerCertificate": { + "input": { + "type": "structure", + "required": [ + "ServerCertificateName", + "CertificateBody", + "PrivateKey" + ], + "members": { + "Path": {}, + "ServerCertificateName": {}, + "CertificateBody": {}, + "PrivateKey": { + "type": "string", + "sensitive": true + }, + "CertificateChain": {} + } + }, + "output": { + "resultWrapper": "UploadServerCertificateResult", + "type": "structure", + "members": { + "ServerCertificateMetadata": { + "shape": "S4w" + } + } + } + }, + "UploadSigningCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateBody" + ], + "members": { + "UserName": {}, + "CertificateBody": {} + } + }, + "output": { + "resultWrapper": "UploadSigningCertificateResult", + "type": "structure", + "required": [ + "Certificate" + ], + "members": { + "Certificate": { + "shape": "S6x" + } + } + } + } + }, + "shapes": { + "Sf": { + "type": "string", + "sensitive": true + }, + "Ss": { + "type": "structure", + "required": [ + "Path", + "GroupName", + "GroupId", + "Arn", + "CreateDate" + ], + "members": { + "Path": {}, + "GroupName": {}, + "GroupId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + }, + "Sw": { + "type": "structure", + "required": [ + "Path", + "InstanceProfileName", + "InstanceProfileId", + "Arn", + "CreateDate", + "Roles" + ], + "members": { + "Path": {}, + "InstanceProfileName": {}, + "InstanceProfileId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "Roles": { + "shape": "Sx" + } + } + }, + "Sx": { + "type": "list", + "member": { + "shape": "Sy" + } + }, + "Sy": { + "type": "structure", + "required": [ + "Path", + "RoleName", + "RoleId", + "Arn", + "CreateDate" + ], + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + }, + "S13": { + "type": "structure", + "required": [ + "UserName", + "CreateDate" + ], + "members": { + "UserName": {}, + "CreateDate": { + "type": "timestamp" + }, + "PasswordResetRequired": { + "type": "boolean" + } + } + }, + "S16": { + "type": "list", + "member": {} + }, + "S17": { + "type": "list", + "member": {} + }, + "S1f": { + "type": "structure", + "members": { + "PolicyName": {}, + "PolicyId": {}, + "Arn": {}, + "Path": {}, + "DefaultVersionId": {}, + "AttachmentCount": { + "type": "integer" + }, + "IsAttachable": { + "type": "boolean" + }, + "Description": {}, + "CreateDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + } + } + }, + "S1k": { + "type": "structure", + "members": { + "Document": {}, + "VersionId": {}, + "IsDefaultVersion": { + "type": "boolean" + }, + "CreateDate": { + "type": "timestamp" + } + } + }, + "S1t": { + "type": "structure", + "required": [ + "Path", + "UserName", + "UserId", + "Arn", + "CreateDate" + ], + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "PasswordLastUsed": { + "type": "timestamp" + } + } + }, + "S1x": { + "type": "structure", + "required": [ + "SerialNumber" + ], + "members": { + "SerialNumber": {}, + "Base32StringSeed": { + "shape": "S1z" + }, + "QRCodePNG": { + "shape": "S1z" + }, + "User": { + "shape": "S1t" + }, + "EnableDate": { + "type": "timestamp" + } + } + }, + "S1z": { + "type": "blob", + "sensitive": true + }, + "S36": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "S39": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PolicyName": {}, + "PolicyArn": {} + } + } + }, + "S3f": { + "type": "list", + "member": { + "shape": "Sw" + } + }, + "S3i": { + "type": "list", + "member": { + "shape": "S1k" + } + }, + "S3u": { + "type": "list", + "member": {} + }, + "S3v": { + "type": "structure", + "members": { + "ContextKeyNames": { + "shape": "S3w" + } + } + }, + "S3w": { + "type": "list", + "member": {} + }, + "S44": { + "type": "list", + "member": { + "shape": "S1t" + } + }, + "S4q": { + "type": "structure", + "required": [ + "UserName", + "SSHPublicKeyId", + "Fingerprint", + "SSHPublicKeyBody", + "Status" + ], + "members": { + "UserName": {}, + "SSHPublicKeyId": {}, + "Fingerprint": {}, + "SSHPublicKeyBody": {}, + "Status": {}, + "UploadDate": { + "type": "timestamp" + } + } + }, + "S4w": { + "type": "structure", + "required": [ + "Path", + "ServerCertificateName", + "ServerCertificateId", + "Arn" + ], + "members": { + "Path": {}, + "ServerCertificateName": {}, + "ServerCertificateId": {}, + "Arn": {}, + "UploadDate": { + "type": "timestamp" + }, + "Expiration": { + "type": "timestamp" + } + } + }, + "S5q": { + "type": "list", + "member": {} + }, + "S5u": { + "type": "list", + "member": { + "shape": "Ss" + } + }, + "S6x": { + "type": "structure", + "required": [ + "UserName", + "CertificateId", + "CertificateBody", + "Status" + ], + "members": { + "UserName": {}, + "CertificateId": {}, + "CertificateBody": {}, + "Status": {}, + "UploadDate": { + "type": "timestamp" + } + } + }, + "S7f": { + "type": "list", + "member": {} + }, + "S7h": { + "type": "list", + "member": {} + }, + "S7j": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ContextKeyName": {}, + "ContextKeyValues": { + "type": "list", + "member": {} + }, + "ContextKeyType": {} + } + } + }, + "S7p": { + "type": "structure", + "members": { + "EvaluationResults": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "EvalActionName", + "EvalDecision" + ], + "members": { + "EvalActionName": {}, + "EvalResourceName": {}, + "EvalDecision": {}, + "MatchedStatements": { + "shape": "S7t" + }, + "MissingContextValues": { + "shape": "S3w" + }, + "EvalDecisionDetails": { + "shape": "S80" + }, + "ResourceSpecificResults": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "EvalResourceName", + "EvalResourceDecision" + ], + "members": { + "EvalResourceName": {}, + "EvalResourceDecision": {}, + "MatchedStatements": { + "shape": "S7t" + }, + "MissingContextValues": { + "shape": "S3w" + }, + "EvalDecisionDetails": { + "shape": "S80" + } + } + } + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + }, + "S7t": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SourcePolicyId": {}, + "SourcePolicyType": {}, + "StartPosition": { + "shape": "S7x" + }, + "EndPosition": { + "shape": "S7x" + } + } + } + }, + "S7x": { + "type": "structure", + "members": { + "Line": { + "type": "integer" + }, + "Column": { + "type": "integer" + } + } + }, + "S80": { + "type": "map", + "key": {}, + "value": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.paginators.json new file mode 100755 index 0000000..dba6d1e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.paginators.json @@ -0,0 +1,171 @@ +{ + "pagination": { + "GetGroup": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Users" + }, + "ListAccessKeys": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AccessKeyMetadata" + }, + "ListAccountAliases": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AccountAliases" + }, + "ListAttachedGroupPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AttachedPolicies" + }, + "ListAttachedRolePolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AttachedPolicies" + }, + "ListAttachedUserPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AttachedPolicies" + }, + "ListEntitiesForPolicy": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": [ + "PolicyGroups", + "PolicyUsers", + "PolicyRoles" + ] + }, + "ListGroupPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "PolicyNames" + }, + "ListGroups": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Groups" + }, + "ListGroupsForUser": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Groups" + }, + "ListInstanceProfiles": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "InstanceProfiles" + }, + "ListInstanceProfilesForRole": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "InstanceProfiles" + }, + "ListMFADevices": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "MFADevices" + }, + "ListPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Policies" + }, + "ListPolicyVersions": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Versions" + }, + "ListRolePolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "PolicyNames" + }, + "ListRoles": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Roles" + }, + "ListSAMLProviders": { + "result_key": "SAMLProviderList" + }, + "ListServerCertificates": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "ServerCertificateMetadataList" + }, + "ListSigningCertificates": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Certificates" + }, + "ListUserPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "PolicyNames" + }, + "ListUsers": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Users" + }, + "ListVirtualMFADevices": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "VirtualMFADevices" + }, + "GetAccountAuthorizationDetails": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.waiters2.json new file mode 100755 index 0000000..ba45382 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iam-2010-05-08.waiters2.json @@ -0,0 +1,39 @@ +{ + "version": 2, + "waiters": { + "InstanceProfileExists": { + "delay": 1, + "operation": "GetInstanceProfile", + "maxAttempts": 40, + "acceptors": [ + { + "expected": 200, + "matcher": "status", + "state": "success" + }, + { + "state": "retry", + "matcher": "status", + "expected": 404 + } + ] + }, + "UserExists": { + "delay": 1, + "operation": "GetUser", + "maxAttempts": 20, + "acceptors": [ + { + "state": "success", + "matcher": "status", + "expected": 200 + }, + { + "state": "retry", + "matcher": "error", + "expected": "NoSuchEntity" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.min.json new file mode 100755 index 0000000..429d4e6 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.min.json @@ -0,0 +1,242 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2010-06-01", + "endpointPrefix": "importexport", + "globalEndpoint": "importexport.amazonaws.com", + "serviceFullName": "AWS Import/Export", + "signatureVersion": "v2", + "xmlNamespace": "http://importexport.amazonaws.com/doc/2010-06-01/", + "protocol": "query" + }, + "operations": { + "CancelJob": { + "http": { + "requestUri": "/?Operation=CancelJob" + }, + "input": { + "type": "structure", + "required": [ + "JobId" + ], + "members": { + "JobId": {}, + "APIVersion": {} + } + }, + "output": { + "resultWrapper": "CancelJobResult", + "type": "structure", + "members": { + "Success": { + "type": "boolean" + } + } + } + }, + "CreateJob": { + "http": { + "requestUri": "/?Operation=CreateJob" + }, + "input": { + "type": "structure", + "required": [ + "JobType", + "Manifest", + "ValidateOnly" + ], + "members": { + "JobType": {}, + "Manifest": {}, + "ManifestAddendum": {}, + "ValidateOnly": { + "type": "boolean" + }, + "APIVersion": {} + } + }, + "output": { + "resultWrapper": "CreateJobResult", + "type": "structure", + "members": { + "JobId": {}, + "JobType": {}, + "Signature": {}, + "SignatureFileContents": {}, + "WarningMessage": {}, + "ArtifactList": { + "shape": "Sf" + } + } + } + }, + "GetShippingLabel": { + "http": { + "requestUri": "/?Operation=GetShippingLabel" + }, + "input": { + "type": "structure", + "required": [ + "jobIds" + ], + "members": { + "jobIds": { + "type": "list", + "member": {} + }, + "name": {}, + "company": {}, + "phoneNumber": {}, + "country": {}, + "stateOrProvince": {}, + "city": {}, + "postalCode": {}, + "street1": {}, + "street2": {}, + "street3": {}, + "APIVersion": {} + } + }, + "output": { + "resultWrapper": "GetShippingLabelResult", + "type": "structure", + "members": { + "ShippingLabelURL": {}, + "Warning": {} + } + } + }, + "GetStatus": { + "http": { + "requestUri": "/?Operation=GetStatus" + }, + "input": { + "type": "structure", + "required": [ + "JobId" + ], + "members": { + "JobId": {}, + "APIVersion": {} + } + }, + "output": { + "resultWrapper": "GetStatusResult", + "type": "structure", + "members": { + "JobId": {}, + "JobType": {}, + "LocationCode": {}, + "LocationMessage": {}, + "ProgressCode": {}, + "ProgressMessage": {}, + "Carrier": {}, + "TrackingNumber": {}, + "LogBucket": {}, + "LogKey": {}, + "ErrorCount": { + "type": "integer" + }, + "Signature": {}, + "SignatureFileContents": {}, + "CurrentManifest": {}, + "CreationDate": { + "type": "timestamp" + }, + "ArtifactList": { + "shape": "Sf" + } + } + } + }, + "ListJobs": { + "http": { + "requestUri": "/?Operation=ListJobs" + }, + "input": { + "type": "structure", + "members": { + "MaxJobs": { + "type": "integer" + }, + "Marker": {}, + "APIVersion": {} + } + }, + "output": { + "resultWrapper": "ListJobsResult", + "type": "structure", + "members": { + "Jobs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "JobId": {}, + "CreationDate": { + "type": "timestamp" + }, + "IsCanceled": { + "type": "boolean" + }, + "JobType": {} + } + } + }, + "IsTruncated": { + "type": "boolean" + } + } + } + }, + "UpdateJob": { + "http": { + "requestUri": "/?Operation=UpdateJob" + }, + "input": { + "type": "structure", + "required": [ + "JobId", + "Manifest", + "JobType", + "ValidateOnly" + ], + "members": { + "JobId": {}, + "Manifest": {}, + "JobType": {}, + "ValidateOnly": { + "type": "boolean" + }, + "APIVersion": {} + } + }, + "output": { + "resultWrapper": "UpdateJobResult", + "type": "structure", + "members": { + "Success": { + "type": "boolean" + }, + "WarningMessage": {}, + "ArtifactList": { + "shape": "Sf" + } + } + } + } + }, + "shapes": { + "Sf": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Description": {}, + "URL": {} + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.paginators.json new file mode 100755 index 0000000..702385e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/importexport-2010-06-01.paginators.json @@ -0,0 +1,11 @@ +{ + "pagination": { + "ListJobs": { + "input_token": "Marker", + "output_token": "Jobs[-1].JobId", + "more_results": "IsTruncated", + "limit_key": "MaxJobs", + "result_key": "Jobs" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/inspector-2016-02-16.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/inspector-2016-02-16.min.json new file mode 100755 index 0000000..f7ca893 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/inspector-2016-02-16.min.json @@ -0,0 +1,1248 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-02-16", + "endpointPrefix": "inspector", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon Inspector", + "signatureVersion": "v4", + "targetPrefix": "InspectorService" + }, + "operations": { + "AddAttributesToFindings": { + "input": { + "type": "structure", + "required": [ + "findingArns", + "attributes" + ], + "members": { + "findingArns": { + "shape": "S2" + }, + "attributes": { + "shape": "S4" + } + } + }, + "output": { + "type": "structure", + "required": [ + "failedItems" + ], + "members": { + "failedItems": { + "shape": "S9" + } + } + } + }, + "CreateAssessmentTarget": { + "input": { + "type": "structure", + "required": [ + "assessmentTargetName", + "resourceGroupArn" + ], + "members": { + "assessmentTargetName": {}, + "resourceGroupArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentTargetArn" + ], + "members": { + "assessmentTargetArn": {} + } + } + }, + "CreateAssessmentTemplate": { + "input": { + "type": "structure", + "required": [ + "assessmentTargetArn", + "assessmentTemplateName", + "durationInSeconds", + "rulesPackageArns" + ], + "members": { + "assessmentTargetArn": {}, + "assessmentTemplateName": {}, + "durationInSeconds": { + "type": "integer" + }, + "rulesPackageArns": { + "shape": "Sj" + }, + "userAttributesForFindings": { + "shape": "S4" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentTemplateArn" + ], + "members": { + "assessmentTemplateArn": {} + } + } + }, + "CreateResourceGroup": { + "input": { + "type": "structure", + "required": [ + "resourceGroupTags" + ], + "members": { + "resourceGroupTags": { + "shape": "Sm" + } + } + }, + "output": { + "type": "structure", + "required": [ + "resourceGroupArn" + ], + "members": { + "resourceGroupArn": {} + } + } + }, + "DeleteAssessmentRun": { + "input": { + "type": "structure", + "required": [ + "assessmentRunArn" + ], + "members": { + "assessmentRunArn": {} + } + } + }, + "DeleteAssessmentTarget": { + "input": { + "type": "structure", + "required": [ + "assessmentTargetArn" + ], + "members": { + "assessmentTargetArn": {} + } + } + }, + "DeleteAssessmentTemplate": { + "input": { + "type": "structure", + "required": [ + "assessmentTemplateArn" + ], + "members": { + "assessmentTemplateArn": {} + } + } + }, + "DescribeAssessmentRuns": { + "input": { + "type": "structure", + "required": [ + "assessmentRunArns" + ], + "members": { + "assessmentRunArns": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentRuns", + "failedItems" + ], + "members": { + "assessmentRuns": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "name", + "assessmentTemplateArn", + "state", + "durationInSeconds", + "rulesPackageArns", + "userAttributesForFindings", + "createdAt", + "stateChangedAt", + "dataCollected", + "stateChanges", + "notifications" + ], + "members": { + "arn": {}, + "name": {}, + "assessmentTemplateArn": {}, + "state": {}, + "durationInSeconds": { + "type": "integer" + }, + "rulesPackageArns": { + "type": "list", + "member": {} + }, + "userAttributesForFindings": { + "shape": "S4" + }, + "createdAt": { + "type": "timestamp" + }, + "startedAt": { + "type": "timestamp" + }, + "completedAt": { + "type": "timestamp" + }, + "stateChangedAt": { + "type": "timestamp" + }, + "dataCollected": { + "type": "boolean" + }, + "stateChanges": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "stateChangedAt", + "state" + ], + "members": { + "stateChangedAt": { + "type": "timestamp" + }, + "state": {} + } + } + }, + "notifications": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "date", + "event", + "error" + ], + "members": { + "date": { + "type": "timestamp" + }, + "event": {}, + "message": {}, + "error": { + "type": "boolean" + }, + "snsTopicArn": {}, + "snsPublishStatusCode": {} + } + } + } + } + } + }, + "failedItems": { + "shape": "S9" + } + } + } + }, + "DescribeAssessmentTargets": { + "input": { + "type": "structure", + "required": [ + "assessmentTargetArns" + ], + "members": { + "assessmentTargetArns": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentTargets", + "failedItems" + ], + "members": { + "assessmentTargets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "name", + "resourceGroupArn", + "createdAt", + "updatedAt" + ], + "members": { + "arn": {}, + "name": {}, + "resourceGroupArn": {}, + "createdAt": { + "type": "timestamp" + }, + "updatedAt": { + "type": "timestamp" + } + } + } + }, + "failedItems": { + "shape": "S9" + } + } + } + }, + "DescribeAssessmentTemplates": { + "input": { + "type": "structure", + "required": [ + "assessmentTemplateArns" + ], + "members": { + "assessmentTemplateArns": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentTemplates", + "failedItems" + ], + "members": { + "assessmentTemplates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "name", + "assessmentTargetArn", + "durationInSeconds", + "rulesPackageArns", + "userAttributesForFindings", + "createdAt" + ], + "members": { + "arn": {}, + "name": {}, + "assessmentTargetArn": {}, + "durationInSeconds": { + "type": "integer" + }, + "rulesPackageArns": { + "shape": "Sj" + }, + "userAttributesForFindings": { + "shape": "S4" + }, + "createdAt": { + "type": "timestamp" + } + } + } + }, + "failedItems": { + "shape": "S9" + } + } + } + }, + "DescribeCrossAccountAccessRole": { + "output": { + "type": "structure", + "required": [ + "roleArn", + "valid", + "registeredAt" + ], + "members": { + "roleArn": {}, + "valid": { + "type": "boolean" + }, + "registeredAt": { + "type": "timestamp" + } + } + } + }, + "DescribeFindings": { + "input": { + "type": "structure", + "required": [ + "findingArns" + ], + "members": { + "findingArns": { + "shape": "Sv" + }, + "locale": {} + } + }, + "output": { + "type": "structure", + "required": [ + "findings", + "failedItems" + ], + "members": { + "findings": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "attributes", + "userAttributes", + "createdAt", + "updatedAt" + ], + "members": { + "arn": {}, + "schemaVersion": { + "type": "integer" + }, + "service": {}, + "serviceAttributes": { + "type": "structure", + "required": [ + "schemaVersion" + ], + "members": { + "schemaVersion": { + "type": "integer" + }, + "assessmentRunArn": {}, + "rulesPackageArn": {} + } + }, + "assetType": {}, + "assetAttributes": { + "type": "structure", + "required": [ + "schemaVersion" + ], + "members": { + "schemaVersion": { + "type": "integer" + }, + "agentId": {}, + "autoScalingGroup": {}, + "amiId": {}, + "hostname": {}, + "ipv4Addresses": { + "type": "list", + "member": {} + } + } + }, + "id": {}, + "title": {}, + "description": {}, + "recommendation": {}, + "severity": {}, + "numericSeverity": { + "type": "double" + }, + "confidence": { + "type": "integer" + }, + "indicatorOfCompromise": { + "type": "boolean" + }, + "attributes": { + "shape": "S24" + }, + "userAttributes": { + "shape": "S4" + }, + "createdAt": { + "type": "timestamp" + }, + "updatedAt": { + "type": "timestamp" + } + } + } + }, + "failedItems": { + "shape": "S9" + } + } + } + }, + "DescribeResourceGroups": { + "input": { + "type": "structure", + "required": [ + "resourceGroupArns" + ], + "members": { + "resourceGroupArns": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "required": [ + "resourceGroups", + "failedItems" + ], + "members": { + "resourceGroups": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "tags", + "createdAt" + ], + "members": { + "arn": {}, + "tags": { + "shape": "Sm" + }, + "createdAt": { + "type": "timestamp" + } + } + } + }, + "failedItems": { + "shape": "S9" + } + } + } + }, + "DescribeRulesPackages": { + "input": { + "type": "structure", + "required": [ + "rulesPackageArns" + ], + "members": { + "rulesPackageArns": { + "shape": "Sv" + }, + "locale": {} + } + }, + "output": { + "type": "structure", + "required": [ + "rulesPackages", + "failedItems" + ], + "members": { + "rulesPackages": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "name", + "version", + "provider" + ], + "members": { + "arn": {}, + "name": {}, + "version": {}, + "provider": {}, + "description": {} + } + } + }, + "failedItems": { + "shape": "S9" + } + } + } + }, + "GetTelemetryMetadata": { + "input": { + "type": "structure", + "required": [ + "assessmentRunArn" + ], + "members": { + "assessmentRunArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "telemetryMetadata" + ], + "members": { + "telemetryMetadata": { + "shape": "S2i" + } + } + } + }, + "ListAssessmentRunAgents": { + "input": { + "type": "structure", + "required": [ + "assessmentRunArn" + ], + "members": { + "assessmentRunArn": {}, + "filter": { + "type": "structure", + "required": [ + "agentHealths", + "agentHealthCodes" + ], + "members": { + "agentHealths": { + "type": "list", + "member": {} + }, + "agentHealthCodes": { + "type": "list", + "member": {} + } + } + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentRunAgents" + ], + "members": { + "assessmentRunAgents": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "agentId", + "assessmentRunArn", + "agentHealth", + "agentHealthCode", + "telemetryMetadata" + ], + "members": { + "agentId": {}, + "assessmentRunArn": {}, + "agentHealth": {}, + "agentHealthCode": {}, + "agentHealthDetails": {}, + "autoScalingGroup": {}, + "telemetryMetadata": { + "shape": "S2i" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListAssessmentRuns": { + "input": { + "type": "structure", + "members": { + "assessmentTemplateArns": { + "shape": "S2y" + }, + "filter": { + "type": "structure", + "members": { + "namePattern": {}, + "states": { + "type": "list", + "member": {} + }, + "durationRange": { + "shape": "S32" + }, + "rulesPackageArns": { + "shape": "S33" + }, + "startTimeRange": { + "shape": "S34" + }, + "completionTimeRange": { + "shape": "S34" + }, + "stateChangeTimeRange": { + "shape": "S34" + } + } + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentRunArns" + ], + "members": { + "assessmentRunArns": { + "shape": "S36" + }, + "nextToken": {} + } + } + }, + "ListAssessmentTargets": { + "input": { + "type": "structure", + "members": { + "filter": { + "type": "structure", + "members": { + "assessmentTargetNamePattern": {} + } + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentTargetArns" + ], + "members": { + "assessmentTargetArns": { + "shape": "S36" + }, + "nextToken": {} + } + } + }, + "ListAssessmentTemplates": { + "input": { + "type": "structure", + "members": { + "assessmentTargetArns": { + "shape": "S2y" + }, + "filter": { + "type": "structure", + "members": { + "namePattern": {}, + "durationRange": { + "shape": "S32" + }, + "rulesPackageArns": { + "shape": "S33" + } + } + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentTemplateArns" + ], + "members": { + "assessmentTemplateArns": { + "shape": "S36" + }, + "nextToken": {} + } + } + }, + "ListEventSubscriptions": { + "input": { + "type": "structure", + "members": { + "resourceArn": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "subscriptions" + ], + "members": { + "subscriptions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "resourceArn", + "topicArn", + "eventSubscriptions" + ], + "members": { + "resourceArn": {}, + "topicArn": {}, + "eventSubscriptions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "event", + "subscribedAt" + ], + "members": { + "event": {}, + "subscribedAt": { + "type": "timestamp" + } + } + } + } + } + } + }, + "nextToken": {} + } + } + }, + "ListFindings": { + "input": { + "type": "structure", + "members": { + "assessmentRunArns": { + "shape": "S2y" + }, + "filter": { + "type": "structure", + "members": { + "agentIds": { + "type": "list", + "member": {} + }, + "autoScalingGroups": { + "type": "list", + "member": {} + }, + "ruleNames": { + "type": "list", + "member": {} + }, + "severities": { + "type": "list", + "member": {} + }, + "rulesPackageArns": { + "shape": "S33" + }, + "attributes": { + "shape": "S24" + }, + "userAttributes": { + "shape": "S24" + }, + "creationTimeRange": { + "shape": "S34" + } + } + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "findingArns" + ], + "members": { + "findingArns": { + "shape": "S36" + }, + "nextToken": {} + } + } + }, + "ListRulesPackages": { + "input": { + "type": "structure", + "members": { + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "rulesPackageArns" + ], + "members": { + "rulesPackageArns": { + "shape": "S36" + }, + "nextToken": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "tags" + ], + "members": { + "tags": { + "shape": "S3w" + } + } + } + }, + "PreviewAgents": { + "input": { + "type": "structure", + "required": [ + "previewAgentsArn" + ], + "members": { + "previewAgentsArn": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "agentPreviews" + ], + "members": { + "agentPreviews": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "agentId" + ], + "members": { + "agentId": {}, + "autoScalingGroup": {} + } + } + }, + "nextToken": {} + } + } + }, + "RegisterCrossAccountAccessRole": { + "input": { + "type": "structure", + "required": [ + "roleArn" + ], + "members": { + "roleArn": {} + } + } + }, + "RemoveAttributesFromFindings": { + "input": { + "type": "structure", + "required": [ + "findingArns", + "attributeKeys" + ], + "members": { + "findingArns": { + "shape": "S2" + }, + "attributeKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "required": [ + "failedItems" + ], + "members": { + "failedItems": { + "shape": "S9" + } + } + } + }, + "SetTagsForResource": { + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": {}, + "tags": { + "shape": "S3w" + } + } + } + }, + "StartAssessmentRun": { + "input": { + "type": "structure", + "required": [ + "assessmentTemplateArn" + ], + "members": { + "assessmentTemplateArn": {}, + "assessmentRunName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "assessmentRunArn" + ], + "members": { + "assessmentRunArn": {} + } + } + }, + "StopAssessmentRun": { + "input": { + "type": "structure", + "required": [ + "assessmentRunArn" + ], + "members": { + "assessmentRunArn": {} + } + } + }, + "SubscribeToEvent": { + "input": { + "type": "structure", + "required": [ + "resourceArn", + "event", + "topicArn" + ], + "members": { + "resourceArn": {}, + "event": {}, + "topicArn": {} + } + } + }, + "UnsubscribeFromEvent": { + "input": { + "type": "structure", + "required": [ + "resourceArn", + "event", + "topicArn" + ], + "members": { + "resourceArn": {}, + "event": {}, + "topicArn": {} + } + } + }, + "UpdateAssessmentTarget": { + "input": { + "type": "structure", + "required": [ + "assessmentTargetArn", + "assessmentTargetName", + "resourceGroupArn" + ], + "members": { + "assessmentTargetArn": {}, + "assessmentTargetName": {}, + "resourceGroupArn": {} + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "S4": { + "type": "list", + "member": { + "shape": "S5" + } + }, + "S5": { + "type": "structure", + "required": [ + "key" + ], + "members": { + "key": {}, + "value": {} + } + }, + "S9": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "required": [ + "failureCode", + "retryable" + ], + "members": { + "failureCode": {}, + "retryable": { + "type": "boolean" + } + } + } + }, + "Sj": { + "type": "list", + "member": {} + }, + "Sm": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "Sv": { + "type": "list", + "member": {} + }, + "S24": { + "type": "list", + "member": { + "shape": "S5" + } + }, + "S2i": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "messageType", + "count" + ], + "members": { + "messageType": {}, + "count": { + "type": "long" + }, + "dataSize": { + "type": "long" + } + } + } + }, + "S2y": { + "type": "list", + "member": {} + }, + "S32": { + "type": "structure", + "members": { + "minSeconds": { + "type": "integer" + }, + "maxSeconds": { + "type": "integer" + } + } + }, + "S33": { + "type": "list", + "member": {} + }, + "S34": { + "type": "structure", + "members": { + "beginDate": { + "type": "timestamp" + }, + "endDate": { + "type": "timestamp" + } + } + }, + "S36": { + "type": "list", + "member": {} + }, + "S3w": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key" + ], + "members": { + "key": {}, + "value": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-2015-05-28.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-2015-05-28.min.json new file mode 100755 index 0000000..6700cfa --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-2015-05-28.min.json @@ -0,0 +1,1672 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-05-28", + "endpointPrefix": "iot", + "serviceFullName": "AWS IoT", + "signatureVersion": "v4", + "signingName": "execute-api", + "protocol": "rest-json" + }, + "operations": { + "AcceptCertificateTransfer": { + "http": { + "method": "PATCH", + "requestUri": "/accept-certificate-transfer/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + }, + "setAsActive": { + "location": "querystring", + "locationName": "setAsActive", + "type": "boolean" + } + } + } + }, + "AttachPrincipalPolicy": { + "http": { + "method": "PUT", + "requestUri": "/principal-policies/{policyName}" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "principal" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "principal": { + "location": "header", + "locationName": "x-amzn-iot-principal" + } + } + } + }, + "AttachThingPrincipal": { + "http": { + "method": "PUT", + "requestUri": "/things/{thingName}/principals" + }, + "input": { + "type": "structure", + "required": [ + "thingName", + "principal" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + }, + "principal": { + "location": "header", + "locationName": "x-amzn-principal" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CancelCertificateTransfer": { + "http": { + "method": "PATCH", + "requestUri": "/cancel-certificate-transfer/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + } + } + } + }, + "CreateCertificateFromCsr": { + "http": { + "requestUri": "/certificates" + }, + "input": { + "type": "structure", + "required": [ + "certificateSigningRequest" + ], + "members": { + "certificateSigningRequest": {}, + "setAsActive": { + "location": "querystring", + "locationName": "setAsActive", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {}, + "certificatePem": {} + } + } + }, + "CreateKeysAndCertificate": { + "http": { + "requestUri": "/keys-and-certificate" + }, + "input": { + "type": "structure", + "members": { + "setAsActive": { + "location": "querystring", + "locationName": "setAsActive", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {}, + "certificatePem": {}, + "keyPair": { + "type": "structure", + "members": { + "PublicKey": {}, + "PrivateKey": { + "type": "string", + "sensitive": true + } + } + } + } + } + }, + "CreatePolicy": { + "http": { + "requestUri": "/policies/{policyName}" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "policyDocument" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "policyDocument": {} + } + }, + "output": { + "type": "structure", + "members": { + "policyName": {}, + "policyArn": {}, + "policyDocument": {}, + "policyVersionId": {} + } + } + }, + "CreatePolicyVersion": { + "http": { + "requestUri": "/policies/{policyName}/version" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "policyDocument" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "policyDocument": {}, + "setAsDefault": { + "location": "querystring", + "locationName": "setAsDefault", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "policyArn": {}, + "policyDocument": {}, + "policyVersionId": {}, + "isDefaultVersion": { + "type": "boolean" + } + } + } + }, + "CreateThing": { + "http": { + "requestUri": "/things/{thingName}" + }, + "input": { + "type": "structure", + "required": [ + "thingName" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + }, + "attributePayload": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "thingName": {}, + "thingArn": {} + } + } + }, + "CreateTopicRule": { + "http": { + "requestUri": "/rules/{ruleName}" + }, + "input": { + "type": "structure", + "required": [ + "ruleName", + "topicRulePayload" + ], + "members": { + "ruleName": { + "location": "uri", + "locationName": "ruleName" + }, + "topicRulePayload": { + "shape": "S13" + } + }, + "payload": "topicRulePayload" + } + }, + "DeleteCACertificate": { + "http": { + "method": "DELETE", + "requestUri": "/cacertificate/{caCertificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "caCertificateId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteCertificate": { + "http": { + "method": "DELETE", + "requestUri": "/certificates/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + } + } + } + }, + "DeletePolicy": { + "http": { + "method": "DELETE", + "requestUri": "/policies/{policyName}" + }, + "input": { + "type": "structure", + "required": [ + "policyName" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + } + } + } + }, + "DeletePolicyVersion": { + "http": { + "method": "DELETE", + "requestUri": "/policies/{policyName}/version/{policyVersionId}" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "policyVersionId" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "policyVersionId": { + "location": "uri", + "locationName": "policyVersionId" + } + } + } + }, + "DeleteRegistrationCode": { + "http": { + "method": "DELETE", + "requestUri": "/registrationcode" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteThing": { + "http": { + "method": "DELETE", + "requestUri": "/things/{thingName}" + }, + "input": { + "type": "structure", + "required": [ + "thingName" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteTopicRule": { + "http": { + "method": "DELETE", + "requestUri": "/rules/{ruleName}" + }, + "input": { + "type": "structure", + "members": { + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + }, + "required": [ + "ruleName" + ] + } + }, + "DescribeCACertificate": { + "http": { + "method": "GET", + "requestUri": "/cacertificate/{caCertificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "caCertificateId" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificateDescription": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {}, + "status": {}, + "certificatePem": {}, + "ownedBy": {}, + "creationDate": { + "type": "timestamp" + } + } + } + } + } + }, + "DescribeCertificate": { + "http": { + "method": "GET", + "requestUri": "/certificates/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificateDescription": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {}, + "caCertificateId": {}, + "status": {}, + "certificatePem": {}, + "ownedBy": {}, + "previousOwnedBy": {}, + "creationDate": { + "type": "timestamp" + }, + "lastModifiedDate": { + "type": "timestamp" + }, + "transferData": { + "type": "structure", + "members": { + "transferMessage": {}, + "rejectReason": {}, + "transferDate": { + "type": "timestamp" + }, + "acceptDate": { + "type": "timestamp" + }, + "rejectDate": { + "type": "timestamp" + } + } + } + } + } + } + } + }, + "DescribeEndpoint": { + "http": { + "method": "GET", + "requestUri": "/endpoint" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "endpointAddress": {} + } + } + }, + "DescribeThing": { + "http": { + "method": "GET", + "requestUri": "/things/{thingName}" + }, + "input": { + "type": "structure", + "required": [ + "thingName" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + } + } + }, + "output": { + "type": "structure", + "members": { + "defaultClientId": {}, + "thingName": {}, + "attributes": { + "shape": "Sw" + } + } + } + }, + "DetachPrincipalPolicy": { + "http": { + "method": "DELETE", + "requestUri": "/principal-policies/{policyName}" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "principal" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "principal": { + "location": "header", + "locationName": "x-amzn-iot-principal" + } + } + } + }, + "DetachThingPrincipal": { + "http": { + "method": "DELETE", + "requestUri": "/things/{thingName}/principals" + }, + "input": { + "type": "structure", + "required": [ + "thingName", + "principal" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + }, + "principal": { + "location": "header", + "locationName": "x-amzn-principal" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisableTopicRule": { + "http": { + "requestUri": "/rules/{ruleName}/disable" + }, + "input": { + "type": "structure", + "required": [ + "ruleName" + ], + "members": { + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + } + } + }, + "EnableTopicRule": { + "http": { + "requestUri": "/rules/{ruleName}/enable" + }, + "input": { + "type": "structure", + "required": [ + "ruleName" + ], + "members": { + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + } + } + }, + "GetLoggingOptions": { + "http": { + "method": "GET", + "requestUri": "/loggingOptions" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "roleArn": {}, + "logLevel": {} + } + } + }, + "GetPolicy": { + "http": { + "method": "GET", + "requestUri": "/policies/{policyName}" + }, + "input": { + "type": "structure", + "required": [ + "policyName" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + } + } + }, + "output": { + "type": "structure", + "members": { + "policyName": {}, + "policyArn": {}, + "policyDocument": {}, + "defaultVersionId": {} + } + } + }, + "GetPolicyVersion": { + "http": { + "method": "GET", + "requestUri": "/policies/{policyName}/version/{policyVersionId}" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "policyVersionId" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "policyVersionId": { + "location": "uri", + "locationName": "policyVersionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "policyArn": {}, + "policyName": {}, + "policyDocument": {}, + "policyVersionId": {}, + "isDefaultVersion": { + "type": "boolean" + } + } + } + }, + "GetRegistrationCode": { + "http": { + "method": "GET", + "requestUri": "/registrationcode" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "registrationCode": {} + } + } + }, + "GetTopicRule": { + "http": { + "method": "GET", + "requestUri": "/rules/{ruleName}" + }, + "input": { + "type": "structure", + "required": [ + "ruleName" + ], + "members": { + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + } + }, + "output": { + "type": "structure", + "members": { + "ruleArn": {}, + "rule": { + "type": "structure", + "members": { + "ruleName": {}, + "sql": {}, + "description": {}, + "createdAt": { + "type": "timestamp" + }, + "actions": { + "shape": "S16" + }, + "ruleDisabled": { + "type": "boolean" + }, + "awsIotSqlVersion": {} + } + } + } + } + }, + "ListCACertificates": { + "http": { + "method": "GET", + "requestUri": "/cacertificates" + }, + "input": { + "type": "structure", + "members": { + "pageSize": { + "location": "querystring", + "locationName": "pageSize", + "type": "integer" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "ascendingOrder": { + "location": "querystring", + "locationName": "isAscendingOrder", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificates": { + "type": "list", + "member": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {}, + "status": {}, + "creationDate": { + "type": "timestamp" + } + } + } + }, + "nextMarker": {} + } + } + }, + "ListCertificates": { + "http": { + "method": "GET", + "requestUri": "/certificates" + }, + "input": { + "type": "structure", + "members": { + "pageSize": { + "location": "querystring", + "locationName": "pageSize", + "type": "integer" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "ascendingOrder": { + "location": "querystring", + "locationName": "isAscendingOrder", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificates": { + "shape": "S40" + }, + "nextMarker": {} + } + } + }, + "ListCertificatesByCA": { + "http": { + "method": "GET", + "requestUri": "/certificates-by-ca/{caCertificateId}" + }, + "input": { + "type": "structure", + "required": [ + "caCertificateId" + ], + "members": { + "caCertificateId": { + "location": "uri", + "locationName": "caCertificateId" + }, + "pageSize": { + "location": "querystring", + "locationName": "pageSize", + "type": "integer" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "ascendingOrder": { + "location": "querystring", + "locationName": "isAscendingOrder", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificates": { + "shape": "S40" + }, + "nextMarker": {} + } + } + }, + "ListPolicies": { + "http": { + "method": "GET", + "requestUri": "/policies" + }, + "input": { + "type": "structure", + "members": { + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "pageSize": { + "location": "querystring", + "locationName": "pageSize", + "type": "integer" + }, + "ascendingOrder": { + "location": "querystring", + "locationName": "isAscendingOrder", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "policies": { + "shape": "S46" + }, + "nextMarker": {} + } + } + }, + "ListPolicyPrincipals": { + "http": { + "method": "GET", + "requestUri": "/policy-principals" + }, + "input": { + "type": "structure", + "required": [ + "policyName" + ], + "members": { + "policyName": { + "location": "header", + "locationName": "x-amzn-iot-policy" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "pageSize": { + "location": "querystring", + "locationName": "pageSize", + "type": "integer" + }, + "ascendingOrder": { + "location": "querystring", + "locationName": "isAscendingOrder", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "principals": { + "shape": "S4a" + }, + "nextMarker": {} + } + } + }, + "ListPolicyVersions": { + "http": { + "method": "GET", + "requestUri": "/policies/{policyName}/version" + }, + "input": { + "type": "structure", + "required": [ + "policyName" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + } + } + }, + "output": { + "type": "structure", + "members": { + "policyVersions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "versionId": {}, + "isDefaultVersion": { + "type": "boolean" + }, + "createDate": { + "type": "timestamp" + } + } + } + } + } + } + }, + "ListPrincipalPolicies": { + "http": { + "method": "GET", + "requestUri": "/principal-policies" + }, + "input": { + "type": "structure", + "required": [ + "principal" + ], + "members": { + "principal": { + "location": "header", + "locationName": "x-amzn-iot-principal" + }, + "marker": { + "location": "querystring", + "locationName": "marker" + }, + "pageSize": { + "location": "querystring", + "locationName": "pageSize", + "type": "integer" + }, + "ascendingOrder": { + "location": "querystring", + "locationName": "isAscendingOrder", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "policies": { + "shape": "S46" + }, + "nextMarker": {} + } + } + }, + "ListPrincipalThings": { + "http": { + "method": "GET", + "requestUri": "/principals/things" + }, + "input": { + "type": "structure", + "required": [ + "principal" + ], + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "principal": { + "location": "header", + "locationName": "x-amzn-principal" + } + } + }, + "output": { + "type": "structure", + "members": { + "things": { + "type": "list", + "member": {} + }, + "nextToken": {} + } + } + }, + "ListThingPrincipals": { + "http": { + "method": "GET", + "requestUri": "/things/{thingName}/principals" + }, + "input": { + "type": "structure", + "required": [ + "thingName" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + } + } + }, + "output": { + "type": "structure", + "members": { + "principals": { + "shape": "S4a" + } + } + } + }, + "ListThings": { + "http": { + "method": "GET", + "requestUri": "/things" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "attributeName": { + "location": "querystring", + "locationName": "attributeName" + }, + "attributeValue": { + "location": "querystring", + "locationName": "attributeValue" + } + } + }, + "output": { + "type": "structure", + "members": { + "things": { + "type": "list", + "member": { + "type": "structure", + "members": { + "thingName": {}, + "attributes": { + "shape": "Sw" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListTopicRules": { + "http": { + "method": "GET", + "requestUri": "/rules" + }, + "input": { + "type": "structure", + "members": { + "topic": { + "location": "querystring", + "locationName": "topic" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "ruleDisabled": { + "location": "querystring", + "locationName": "ruleDisabled", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "rules": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ruleArn": {}, + "ruleName": {}, + "topicPattern": {}, + "createdAt": { + "type": "timestamp" + }, + "ruleDisabled": { + "type": "boolean" + } + } + } + }, + "nextToken": {} + } + } + }, + "RegisterCACertificate": { + "http": { + "requestUri": "/cacertificate" + }, + "input": { + "type": "structure", + "required": [ + "caCertificate", + "verificationCertificate" + ], + "members": { + "caCertificate": {}, + "verificationCertificate": {}, + "setAsActive": { + "location": "querystring", + "locationName": "setAsActive", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {} + } + } + }, + "RegisterCertificate": { + "http": { + "requestUri": "/certificate/register" + }, + "input": { + "type": "structure", + "required": [ + "certificatePem" + ], + "members": { + "certificatePem": {}, + "caCertificatePem": {}, + "setAsActive": { + "location": "querystring", + "locationName": "setAsActive", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {} + } + } + }, + "RejectCertificateTransfer": { + "http": { + "method": "PATCH", + "requestUri": "/reject-certificate-transfer/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + }, + "rejectReason": {} + } + } + }, + "ReplaceTopicRule": { + "http": { + "method": "PATCH", + "requestUri": "/rules/{ruleName}" + }, + "input": { + "type": "structure", + "required": [ + "ruleName", + "topicRulePayload" + ], + "members": { + "ruleName": { + "location": "uri", + "locationName": "ruleName" + }, + "topicRulePayload": { + "shape": "S13" + } + }, + "payload": "topicRulePayload" + } + }, + "SetDefaultPolicyVersion": { + "http": { + "method": "PATCH", + "requestUri": "/policies/{policyName}/version/{policyVersionId}" + }, + "input": { + "type": "structure", + "required": [ + "policyName", + "policyVersionId" + ], + "members": { + "policyName": { + "location": "uri", + "locationName": "policyName" + }, + "policyVersionId": { + "location": "uri", + "locationName": "policyVersionId" + } + } + } + }, + "SetLoggingOptions": { + "http": { + "requestUri": "/loggingOptions" + }, + "input": { + "type": "structure", + "required": [ + "loggingOptionsPayload" + ], + "members": { + "loggingOptionsPayload": { + "type": "structure", + "required": [ + "roleArn" + ], + "members": { + "roleArn": {}, + "logLevel": {} + } + } + }, + "payload": "loggingOptionsPayload" + } + }, + "TransferCertificate": { + "http": { + "method": "PATCH", + "requestUri": "/transfer-certificate/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId", + "targetAwsAccount" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + }, + "targetAwsAccount": { + "location": "querystring", + "locationName": "targetAwsAccount" + }, + "transferMessage": {} + } + }, + "output": { + "type": "structure", + "members": { + "transferredCertificateArn": {} + } + } + }, + "UpdateCACertificate": { + "http": { + "method": "PUT", + "requestUri": "/cacertificate/{caCertificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId", + "newStatus" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "caCertificateId" + }, + "newStatus": { + "location": "querystring", + "locationName": "newStatus" + } + } + } + }, + "UpdateCertificate": { + "http": { + "method": "PUT", + "requestUri": "/certificates/{certificateId}" + }, + "input": { + "type": "structure", + "required": [ + "certificateId", + "newStatus" + ], + "members": { + "certificateId": { + "location": "uri", + "locationName": "certificateId" + }, + "newStatus": { + "location": "querystring", + "locationName": "newStatus" + } + } + } + }, + "UpdateThing": { + "http": { + "method": "PATCH", + "requestUri": "/things/{thingName}" + }, + "input": { + "type": "structure", + "required": [ + "thingName", + "attributePayload" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + }, + "attributePayload": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "Sv": { + "type": "structure", + "members": { + "attributes": { + "shape": "Sw" + } + } + }, + "Sw": { + "type": "map", + "key": {}, + "value": {} + }, + "S13": { + "type": "structure", + "required": [ + "sql", + "actions" + ], + "members": { + "sql": {}, + "description": {}, + "actions": { + "shape": "S16" + }, + "ruleDisabled": { + "type": "boolean" + }, + "awsIotSqlVersion": {} + } + }, + "S16": { + "type": "list", + "member": { + "type": "structure", + "members": { + "dynamoDB": { + "type": "structure", + "required": [ + "tableName", + "roleArn", + "hashKeyField", + "hashKeyValue" + ], + "members": { + "tableName": {}, + "roleArn": {}, + "hashKeyField": {}, + "hashKeyValue": {}, + "hashKeyType": {}, + "rangeKeyField": {}, + "rangeKeyValue": {}, + "rangeKeyType": {}, + "payloadField": {} + } + }, + "lambda": { + "type": "structure", + "required": [ + "functionArn" + ], + "members": { + "functionArn": {} + } + }, + "sns": { + "type": "structure", + "required": [ + "targetArn", + "roleArn" + ], + "members": { + "targetArn": {}, + "roleArn": {}, + "messageFormat": {} + } + }, + "sqs": { + "type": "structure", + "required": [ + "roleArn", + "queueUrl" + ], + "members": { + "roleArn": {}, + "queueUrl": {}, + "useBase64": { + "type": "boolean" + } + } + }, + "kinesis": { + "type": "structure", + "required": [ + "roleArn", + "streamName" + ], + "members": { + "roleArn": {}, + "streamName": {}, + "partitionKey": {} + } + }, + "republish": { + "type": "structure", + "required": [ + "roleArn", + "topic" + ], + "members": { + "roleArn": {}, + "topic": {} + } + }, + "s3": { + "type": "structure", + "required": [ + "roleArn", + "bucketName", + "key" + ], + "members": { + "roleArn": {}, + "bucketName": {}, + "key": {} + } + }, + "firehose": { + "type": "structure", + "required": [ + "roleArn", + "deliveryStreamName" + ], + "members": { + "roleArn": {}, + "deliveryStreamName": {} + } + }, + "cloudwatchMetric": { + "type": "structure", + "required": [ + "roleArn", + "metricNamespace", + "metricName", + "metricValue", + "metricUnit" + ], + "members": { + "roleArn": {}, + "metricNamespace": {}, + "metricName": {}, + "metricValue": {}, + "metricUnit": {}, + "metricTimestamp": {} + } + }, + "cloudwatchAlarm": { + "type": "structure", + "required": [ + "roleArn", + "alarmName", + "stateReason", + "stateValue" + ], + "members": { + "roleArn": {}, + "alarmName": {}, + "stateReason": {}, + "stateValue": {} + } + }, + "elasticsearch": { + "type": "structure", + "required": [ + "roleArn", + "endpoint", + "index", + "type", + "id" + ], + "members": { + "roleArn": {}, + "endpoint": {}, + "index": {}, + "type": {}, + "id": {} + } + } + } + } + }, + "S40": { + "type": "list", + "member": { + "type": "structure", + "members": { + "certificateArn": {}, + "certificateId": {}, + "status": {}, + "creationDate": { + "type": "timestamp" + } + } + } + }, + "S46": { + "type": "list", + "member": { + "type": "structure", + "members": { + "policyName": {}, + "policyArn": {} + } + } + }, + "S4a": { + "type": "list", + "member": {} + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-data-2015-05-28.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-data-2015-05-28.min.json new file mode 100755 index 0000000..da22373 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/iot-data-2015-05-28.min.json @@ -0,0 +1,128 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-05-28", + "endpointPrefix": "data.iot", + "protocol": "rest-json", + "serviceFullName": "AWS IoT Data Plane", + "signatureVersion": "v4", + "signingName": "iotdata" + }, + "operations": { + "DeleteThingShadow": { + "http": { + "method": "DELETE", + "requestUri": "/things/{thingName}/shadow" + }, + "input": { + "type": "structure", + "required": [ + "thingName" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "payload" + ], + "members": { + "payload": { + "type": "blob" + } + }, + "payload": "payload" + } + }, + "GetThingShadow": { + "http": { + "method": "GET", + "requestUri": "/things/{thingName}/shadow" + }, + "input": { + "type": "structure", + "required": [ + "thingName" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + } + } + }, + "output": { + "type": "structure", + "members": { + "payload": { + "type": "blob" + } + }, + "payload": "payload" + } + }, + "Publish": { + "http": { + "requestUri": "/topics/{topic}" + }, + "input": { + "type": "structure", + "required": [ + "topic" + ], + "members": { + "topic": { + "location": "uri", + "locationName": "topic" + }, + "qos": { + "location": "querystring", + "locationName": "qos", + "type": "integer" + }, + "payload": { + "type": "blob" + } + }, + "payload": "payload" + } + }, + "UpdateThingShadow": { + "http": { + "requestUri": "/things/{thingName}/shadow" + }, + "input": { + "type": "structure", + "required": [ + "thingName", + "payload" + ], + "members": { + "thingName": { + "location": "uri", + "locationName": "thingName" + }, + "payload": { + "type": "blob" + } + }, + "payload": "payload" + }, + "output": { + "type": "structure", + "members": { + "payload": { + "type": "blob" + } + }, + "payload": "payload" + } + } + }, + "shapes": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json new file mode 100755 index 0000000..2b1f22e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json @@ -0,0 +1,503 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-12-02", + "endpointPrefix": "kinesis", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Kinesis", + "serviceFullName": "Amazon Kinesis", + "signatureVersion": "v4", + "targetPrefix": "Kinesis_20131202" + }, + "operations": { + "AddTagsToStream": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "Tags" + ], + "members": { + "StreamName": {}, + "Tags": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "CreateStream": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "ShardCount" + ], + "members": { + "StreamName": {}, + "ShardCount": { + "type": "integer" + } + } + } + }, + "DecreaseStreamRetentionPeriod": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "RetentionPeriodHours" + ], + "members": { + "StreamName": {}, + "RetentionPeriodHours": { + "type": "integer" + } + } + } + }, + "DeleteStream": { + "input": { + "type": "structure", + "required": [ + "StreamName" + ], + "members": { + "StreamName": {} + } + } + }, + "DescribeStream": { + "input": { + "type": "structure", + "required": [ + "StreamName" + ], + "members": { + "StreamName": {}, + "Limit": { + "type": "integer" + }, + "ExclusiveStartShardId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "StreamDescription" + ], + "members": { + "StreamDescription": { + "type": "structure", + "required": [ + "StreamName", + "StreamARN", + "StreamStatus", + "Shards", + "HasMoreShards", + "RetentionPeriodHours", + "EnhancedMonitoring" + ], + "members": { + "StreamName": {}, + "StreamARN": {}, + "StreamStatus": {}, + "Shards": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ShardId", + "HashKeyRange", + "SequenceNumberRange" + ], + "members": { + "ShardId": {}, + "ParentShardId": {}, + "AdjacentParentShardId": {}, + "HashKeyRange": { + "type": "structure", + "required": [ + "StartingHashKey", + "EndingHashKey" + ], + "members": { + "StartingHashKey": {}, + "EndingHashKey": {} + } + }, + "SequenceNumberRange": { + "type": "structure", + "required": [ + "StartingSequenceNumber" + ], + "members": { + "StartingSequenceNumber": {}, + "EndingSequenceNumber": {} + } + } + } + } + }, + "HasMoreShards": { + "type": "boolean" + }, + "RetentionPeriodHours": { + "type": "integer" + }, + "EnhancedMonitoring": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ShardLevelMetrics": { + "shape": "Sr" + } + } + } + } + } + } + } + } + }, + "DisableEnhancedMonitoring": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "ShardLevelMetrics" + ], + "members": { + "StreamName": {}, + "ShardLevelMetrics": { + "shape": "Sr" + } + } + }, + "output": { + "shape": "Su" + } + }, + "EnableEnhancedMonitoring": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "ShardLevelMetrics" + ], + "members": { + "StreamName": {}, + "ShardLevelMetrics": { + "shape": "Sr" + } + } + }, + "output": { + "shape": "Su" + } + }, + "GetRecords": { + "input": { + "type": "structure", + "required": [ + "ShardIterator" + ], + "members": { + "ShardIterator": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Records" + ], + "members": { + "Records": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "SequenceNumber", + "Data", + "PartitionKey" + ], + "members": { + "SequenceNumber": {}, + "ApproximateArrivalTimestamp": { + "type": "timestamp" + }, + "Data": { + "type": "blob" + }, + "PartitionKey": {} + } + } + }, + "NextShardIterator": {}, + "MillisBehindLatest": { + "type": "long" + } + } + } + }, + "GetShardIterator": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "ShardId", + "ShardIteratorType" + ], + "members": { + "StreamName": {}, + "ShardId": {}, + "ShardIteratorType": {}, + "StartingSequenceNumber": {}, + "Timestamp": { + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "members": { + "ShardIterator": {} + } + } + }, + "IncreaseStreamRetentionPeriod": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "RetentionPeriodHours" + ], + "members": { + "StreamName": {}, + "RetentionPeriodHours": { + "type": "integer" + } + } + } + }, + "ListStreams": { + "input": { + "type": "structure", + "members": { + "Limit": { + "type": "integer" + }, + "ExclusiveStartStreamName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "StreamNames", + "HasMoreStreams" + ], + "members": { + "StreamNames": { + "type": "list", + "member": {} + }, + "HasMoreStreams": { + "type": "boolean" + } + } + } + }, + "ListTagsForStream": { + "input": { + "type": "structure", + "required": [ + "StreamName" + ], + "members": { + "StreamName": {}, + "ExclusiveStartTagKey": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Tags", + "HasMoreTags" + ], + "members": { + "Tags": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "HasMoreTags": { + "type": "boolean" + } + } + } + }, + "MergeShards": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "ShardToMerge", + "AdjacentShardToMerge" + ], + "members": { + "StreamName": {}, + "ShardToMerge": {}, + "AdjacentShardToMerge": {} + } + } + }, + "PutRecord": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "Data", + "PartitionKey" + ], + "members": { + "StreamName": {}, + "Data": { + "type": "blob" + }, + "PartitionKey": {}, + "ExplicitHashKey": {}, + "SequenceNumberForOrdering": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ShardId", + "SequenceNumber" + ], + "members": { + "ShardId": {}, + "SequenceNumber": {} + } + } + }, + "PutRecords": { + "input": { + "type": "structure", + "required": [ + "Records", + "StreamName" + ], + "members": { + "Records": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Data", + "PartitionKey" + ], + "members": { + "Data": { + "type": "blob" + }, + "ExplicitHashKey": {}, + "PartitionKey": {} + } + } + }, + "StreamName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Records" + ], + "members": { + "FailedRecordCount": { + "type": "integer" + }, + "Records": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SequenceNumber": {}, + "ShardId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "RemoveTagsFromStream": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "TagKeys" + ], + "members": { + "StreamName": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "SplitShard": { + "input": { + "type": "structure", + "required": [ + "StreamName", + "ShardToSplit", + "NewStartingHashKey" + ], + "members": { + "StreamName": {}, + "ShardToSplit": {}, + "NewStartingHashKey": {} + } + } + } + }, + "shapes": { + "Sr": { + "type": "list", + "member": {} + }, + "Su": { + "type": "structure", + "members": { + "StreamName": {}, + "CurrentShardLevelMetrics": { + "shape": "Sr" + }, + "DesiredShardLevelMetrics": { + "shape": "Sr" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json new file mode 100755 index 0000000..007f563 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json @@ -0,0 +1,18 @@ +{ + "pagination": { + "DescribeStream": { + "input_token": "ExclusiveStartShardId", + "limit_key": "Limit", + "more_results": "StreamDescription.HasMoreShards", + "output_token": "StreamDescription.Shards[-1].ShardId", + "result_key": "StreamDescription.Shards" + }, + "ListStreams": { + "input_token": "ExclusiveStartStreamName", + "limit_key": "Limit", + "more_results": "HasMoreStreams", + "output_token": "StreamNames[-1]", + "result_key": "StreamNames" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json new file mode 100755 index 0000000..8e3162f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "waiters": { + "StreamExists": { + "delay": 10, + "operation": "DescribeStream", + "maxAttempts": 18, + "acceptors": [ + { + "expected": "ACTIVE", + "matcher": "path", + "state": "success", + "argument": "StreamDescription.StreamStatus" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.min.json new file mode 100755 index 0000000..0972c6e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.min.json @@ -0,0 +1,685 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-11-01", + "endpointPrefix": "kms", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "KMS", + "serviceFullName": "AWS Key Management Service", + "signatureVersion": "v4", + "targetPrefix": "TrentService" + }, + "operations": { + "CancelKeyDeletion": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {} + } + }, + "output": { + "type": "structure", + "members": { + "KeyId": {} + } + } + }, + "CreateAlias": { + "input": { + "type": "structure", + "required": [ + "AliasName", + "TargetKeyId" + ], + "members": { + "AliasName": {}, + "TargetKeyId": {} + } + } + }, + "CreateGrant": { + "input": { + "type": "structure", + "required": [ + "KeyId", + "GranteePrincipal" + ], + "members": { + "KeyId": {}, + "GranteePrincipal": {}, + "RetiringPrincipal": {}, + "Operations": { + "shape": "S8" + }, + "Constraints": { + "shape": "Sa" + }, + "GrantTokens": { + "shape": "Se" + }, + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "GrantToken": {}, + "GrantId": {} + } + } + }, + "CreateKey": { + "input": { + "type": "structure", + "members": { + "Policy": {}, + "Description": {}, + "KeyUsage": {}, + "BypassPolicyLockoutSafetyCheck": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "KeyMetadata": { + "shape": "Sp" + } + } + } + }, + "Decrypt": { + "input": { + "type": "structure", + "required": [ + "CiphertextBlob" + ], + "members": { + "CiphertextBlob": { + "type": "blob" + }, + "EncryptionContext": { + "shape": "Sb" + }, + "GrantTokens": { + "shape": "Se" + } + } + }, + "output": { + "type": "structure", + "members": { + "KeyId": {}, + "Plaintext": { + "shape": "Sx" + } + } + } + }, + "DeleteAlias": { + "input": { + "type": "structure", + "required": [ + "AliasName" + ], + "members": { + "AliasName": {} + } + } + }, + "DescribeKey": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {}, + "GrantTokens": { + "shape": "Se" + } + } + }, + "output": { + "type": "structure", + "members": { + "KeyMetadata": { + "shape": "Sp" + } + } + } + }, + "DisableKey": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {} + } + } + }, + "DisableKeyRotation": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {} + } + } + }, + "EnableKey": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {} + } + } + }, + "EnableKeyRotation": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {} + } + } + }, + "Encrypt": { + "input": { + "type": "structure", + "required": [ + "KeyId", + "Plaintext" + ], + "members": { + "KeyId": {}, + "Plaintext": { + "shape": "Sx" + }, + "EncryptionContext": { + "shape": "Sb" + }, + "GrantTokens": { + "shape": "Se" + } + } + }, + "output": { + "type": "structure", + "members": { + "CiphertextBlob": { + "type": "blob" + }, + "KeyId": {} + } + } + }, + "GenerateDataKey": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {}, + "EncryptionContext": { + "shape": "Sb" + }, + "NumberOfBytes": { + "type": "integer" + }, + "KeySpec": {}, + "GrantTokens": { + "shape": "Se" + } + } + }, + "output": { + "type": "structure", + "members": { + "CiphertextBlob": { + "type": "blob" + }, + "Plaintext": { + "shape": "Sx" + }, + "KeyId": {} + } + } + }, + "GenerateDataKeyWithoutPlaintext": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {}, + "EncryptionContext": { + "shape": "Sb" + }, + "KeySpec": {}, + "NumberOfBytes": { + "type": "integer" + }, + "GrantTokens": { + "shape": "Se" + } + } + }, + "output": { + "type": "structure", + "members": { + "CiphertextBlob": { + "type": "blob" + }, + "KeyId": {} + } + } + }, + "GenerateRandom": { + "input": { + "type": "structure", + "members": { + "NumberOfBytes": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Plaintext": { + "shape": "Sx" + } + } + } + }, + "GetKeyPolicy": { + "input": { + "type": "structure", + "required": [ + "KeyId", + "PolicyName" + ], + "members": { + "KeyId": {}, + "PolicyName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Policy": {} + } + } + }, + "GetKeyRotationStatus": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {} + } + }, + "output": { + "type": "structure", + "members": { + "KeyRotationEnabled": { + "type": "boolean" + } + } + } + }, + "ListAliases": { + "input": { + "type": "structure", + "members": { + "Limit": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Aliases": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AliasName": {}, + "AliasArn": {}, + "TargetKeyId": {} + } + } + }, + "NextMarker": {}, + "Truncated": { + "type": "boolean" + } + } + } + }, + "ListGrants": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "Limit": { + "type": "integer" + }, + "Marker": {}, + "KeyId": {} + } + }, + "output": { + "shape": "S1r" + } + }, + "ListKeyPolicies": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {}, + "Limit": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "PolicyNames": { + "type": "list", + "member": {} + }, + "NextMarker": {}, + "Truncated": { + "type": "boolean" + } + } + } + }, + "ListKeys": { + "input": { + "type": "structure", + "members": { + "Limit": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Keys": { + "type": "list", + "member": { + "type": "structure", + "members": { + "KeyId": {}, + "KeyArn": {} + } + } + }, + "NextMarker": {}, + "Truncated": { + "type": "boolean" + } + } + } + }, + "ListRetirableGrants": { + "input": { + "type": "structure", + "required": [ + "RetiringPrincipal" + ], + "members": { + "Limit": { + "type": "integer" + }, + "Marker": {}, + "RetiringPrincipal": {} + } + }, + "output": { + "shape": "S1r" + } + }, + "PutKeyPolicy": { + "input": { + "type": "structure", + "required": [ + "KeyId", + "PolicyName", + "Policy" + ], + "members": { + "KeyId": {}, + "PolicyName": {}, + "Policy": {}, + "BypassPolicyLockoutSafetyCheck": { + "type": "boolean" + } + } + } + }, + "ReEncrypt": { + "input": { + "type": "structure", + "required": [ + "CiphertextBlob", + "DestinationKeyId" + ], + "members": { + "CiphertextBlob": { + "type": "blob" + }, + "SourceEncryptionContext": { + "shape": "Sb" + }, + "DestinationKeyId": {}, + "DestinationEncryptionContext": { + "shape": "Sb" + }, + "GrantTokens": { + "shape": "Se" + } + } + }, + "output": { + "type": "structure", + "members": { + "CiphertextBlob": { + "type": "blob" + }, + "SourceKeyId": {}, + "KeyId": {} + } + } + }, + "RetireGrant": { + "input": { + "type": "structure", + "members": { + "GrantToken": {}, + "KeyId": {}, + "GrantId": {} + } + } + }, + "RevokeGrant": { + "input": { + "type": "structure", + "required": [ + "KeyId", + "GrantId" + ], + "members": { + "KeyId": {}, + "GrantId": {} + } + } + }, + "ScheduleKeyDeletion": { + "input": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "KeyId": {}, + "PendingWindowInDays": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "KeyId": {}, + "DeletionDate": { + "type": "timestamp" + } + } + } + }, + "UpdateAlias": { + "input": { + "type": "structure", + "required": [ + "AliasName", + "TargetKeyId" + ], + "members": { + "AliasName": {}, + "TargetKeyId": {} + } + } + }, + "UpdateKeyDescription": { + "input": { + "type": "structure", + "required": [ + "KeyId", + "Description" + ], + "members": { + "KeyId": {}, + "Description": {} + } + } + } + }, + "shapes": { + "S8": { + "type": "list", + "member": {} + }, + "Sa": { + "type": "structure", + "members": { + "EncryptionContextSubset": { + "shape": "Sb" + }, + "EncryptionContextEquals": { + "shape": "Sb" + } + } + }, + "Sb": { + "type": "map", + "key": {}, + "value": {} + }, + "Se": { + "type": "list", + "member": {} + }, + "Sp": { + "type": "structure", + "required": [ + "KeyId" + ], + "members": { + "AWSAccountId": {}, + "KeyId": {}, + "Arn": {}, + "CreationDate": { + "type": "timestamp" + }, + "Enabled": { + "type": "boolean" + }, + "Description": {}, + "KeyUsage": {}, + "KeyState": {}, + "DeletionDate": { + "type": "timestamp" + } + } + }, + "Sx": { + "type": "blob", + "sensitive": true + }, + "S1r": { + "type": "structure", + "members": { + "Grants": { + "type": "list", + "member": { + "type": "structure", + "members": { + "KeyId": {}, + "GrantId": {}, + "Name": {}, + "CreationDate": { + "type": "timestamp" + }, + "GranteePrincipal": {}, + "RetiringPrincipal": {}, + "IssuingAccount": {}, + "Operations": { + "shape": "S8" + }, + "Constraints": { + "shape": "Sa" + } + } + } + }, + "NextMarker": {}, + "Truncated": { + "type": "boolean" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.paginators.json new file mode 100755 index 0000000..522d171 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/kms-2014-11-01.paginators.json @@ -0,0 +1,32 @@ +{ + "pagination": { + "ListAliases": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "Aliases" + }, + "ListGrants": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "Grants" + }, + "ListKeyPolicies": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "PolicyNames" + }, + "ListKeys": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "Keys" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.min.json new file mode 100755 index 0000000..fc006a8 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.min.json @@ -0,0 +1,423 @@ +{ + "metadata": { + "apiVersion": "2014-11-11", + "endpointPrefix": "lambda", + "serviceFullName": "AWS Lambda", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "AddEventSource": { + "http": { + "requestUri": "/2014-11-13/event-source-mappings/" + }, + "input": { + "type": "structure", + "required": [ + "EventSource", + "FunctionName", + "Role" + ], + "members": { + "EventSource": {}, + "FunctionName": {}, + "Role": {}, + "BatchSize": { + "type": "integer" + }, + "Parameters": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S7" + } + }, + "DeleteFunction": { + "http": { + "method": "DELETE", + "requestUri": "/2014-11-13/functions/{FunctionName}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + } + } + } + }, + "GetEventSource": { + "http": { + "method": "GET", + "requestUri": "/2014-11-13/event-source-mappings/{UUID}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "UUID" + ], + "members": { + "UUID": { + "location": "uri", + "locationName": "UUID" + } + } + }, + "output": { + "shape": "S7" + } + }, + "GetFunction": { + "http": { + "method": "GET", + "requestUri": "/2014-11-13/functions/{FunctionName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + } + } + }, + "output": { + "type": "structure", + "members": { + "Configuration": { + "shape": "Se" + }, + "Code": { + "type": "structure", + "members": { + "RepositoryType": {}, + "Location": {} + } + } + } + } + }, + "GetFunctionConfiguration": { + "http": { + "method": "GET", + "requestUri": "/2014-11-13/functions/{FunctionName}/configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + } + } + }, + "output": { + "shape": "Se" + } + }, + "InvokeAsync": { + "http": { + "requestUri": "/2014-11-13/functions/{FunctionName}/invoke-async/", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "InvokeArgs" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "InvokeArgs": { + "shape": "Sq" + } + }, + "payload": "InvokeArgs" + }, + "output": { + "type": "structure", + "members": { + "Status": { + "location": "statusCode", + "type": "integer" + } + } + } + }, + "ListEventSources": { + "http": { + "method": "GET", + "requestUri": "/2014-11-13/event-source-mappings/", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "EventSourceArn": { + "location": "querystring", + "locationName": "EventSource" + }, + "FunctionName": { + "location": "querystring", + "locationName": "FunctionName" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "EventSources": { + "type": "list", + "member": { + "shape": "S7" + } + } + } + } + }, + "ListFunctions": { + "http": { + "method": "GET", + "requestUri": "/2014-11-13/functions/", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "Functions": { + "type": "list", + "member": { + "shape": "Se" + } + } + } + } + }, + "RemoveEventSource": { + "http": { + "method": "DELETE", + "requestUri": "/2014-11-13/event-source-mappings/{UUID}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "UUID" + ], + "members": { + "UUID": { + "location": "uri", + "locationName": "UUID" + } + } + } + }, + "UpdateFunctionConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/2014-11-13/functions/{FunctionName}/configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Role": { + "location": "querystring", + "locationName": "Role" + }, + "Handler": { + "location": "querystring", + "locationName": "Handler" + }, + "Description": { + "location": "querystring", + "locationName": "Description" + }, + "Timeout": { + "location": "querystring", + "locationName": "Timeout", + "type": "integer" + }, + "MemorySize": { + "location": "querystring", + "locationName": "MemorySize", + "type": "integer" + } + } + }, + "output": { + "shape": "Se" + } + }, + "UploadFunction": { + "http": { + "method": "PUT", + "requestUri": "/2014-11-13/functions/{FunctionName}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "FunctionZip", + "Runtime", + "Role", + "Handler", + "Mode" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "FunctionZip": { + "shape": "Sq" + }, + "Runtime": { + "location": "querystring", + "locationName": "Runtime" + }, + "Role": { + "location": "querystring", + "locationName": "Role" + }, + "Handler": { + "location": "querystring", + "locationName": "Handler" + }, + "Mode": { + "location": "querystring", + "locationName": "Mode" + }, + "Description": { + "location": "querystring", + "locationName": "Description" + }, + "Timeout": { + "location": "querystring", + "locationName": "Timeout", + "type": "integer" + }, + "MemorySize": { + "location": "querystring", + "locationName": "MemorySize", + "type": "integer" + } + }, + "payload": "FunctionZip" + }, + "output": { + "shape": "Se" + } + } + }, + "shapes": { + "S6": { + "type": "map", + "key": {}, + "value": {} + }, + "S7": { + "type": "structure", + "members": { + "UUID": {}, + "BatchSize": { + "type": "integer" + }, + "EventSource": {}, + "FunctionName": {}, + "Parameters": { + "shape": "S6" + }, + "Role": {}, + "LastModified": { + "type": "timestamp" + }, + "IsActive": { + "type": "boolean" + }, + "Status": {} + } + }, + "Se": { + "type": "structure", + "members": { + "FunctionName": {}, + "FunctionARN": {}, + "ConfigurationId": {}, + "Runtime": {}, + "Role": {}, + "Handler": {}, + "Mode": {}, + "CodeSize": { + "type": "long" + }, + "Description": {}, + "Timeout": { + "type": "integer" + }, + "MemorySize": { + "type": "integer" + }, + "LastModified": { + "type": "timestamp" + } + } + }, + "Sq": { + "type": "blob", + "streaming": true + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.paginators.json new file mode 100755 index 0000000..deaf07d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2014-11-11.paginators.json @@ -0,0 +1,16 @@ +{ + "pagination": { + "ListEventSources": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "EventSources" + }, + "ListFunctions": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "Functions" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.min.json new file mode 100755 index 0000000..acc8b76 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.min.json @@ -0,0 +1,872 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-03-31", + "endpointPrefix": "lambda", + "protocol": "rest-json", + "serviceFullName": "AWS Lambda", + "signatureVersion": "v4" + }, + "operations": { + "AddPermission": { + "http": { + "requestUri": "/2015-03-31/functions/{FunctionName}/policy", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "StatementId", + "Action", + "Principal" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "StatementId": {}, + "Action": {}, + "Principal": {}, + "SourceArn": {}, + "SourceAccount": {}, + "EventSourceToken": {}, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + } + }, + "output": { + "type": "structure", + "members": { + "Statement": {} + } + } + }, + "CreateAlias": { + "http": { + "requestUri": "/2015-03-31/functions/{FunctionName}/aliases", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "Name", + "FunctionVersion" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Name": {}, + "FunctionVersion": {}, + "Description": {} + } + }, + "output": { + "shape": "Sg" + } + }, + "CreateEventSourceMapping": { + "http": { + "requestUri": "/2015-03-31/event-source-mappings/", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "EventSourceArn", + "FunctionName", + "StartingPosition" + ], + "members": { + "EventSourceArn": {}, + "FunctionName": {}, + "Enabled": { + "type": "boolean" + }, + "BatchSize": { + "type": "integer" + }, + "StartingPosition": {} + } + }, + "output": { + "shape": "Sm" + } + }, + "CreateFunction": { + "http": { + "requestUri": "/2015-03-31/functions", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "Runtime", + "Role", + "Handler", + "Code" + ], + "members": { + "FunctionName": {}, + "Runtime": {}, + "Role": {}, + "Handler": {}, + "Code": { + "type": "structure", + "members": { + "ZipFile": { + "type": "blob" + }, + "S3Bucket": {}, + "S3Key": {}, + "S3ObjectVersion": {} + } + }, + "Description": {}, + "Timeout": { + "type": "integer" + }, + "MemorySize": { + "type": "integer" + }, + "Publish": { + "type": "boolean" + }, + "VpcConfig": { + "shape": "S10" + } + } + }, + "output": { + "shape": "S15" + } + }, + "DeleteAlias": { + "http": { + "method": "DELETE", + "requestUri": "/2015-03-31/functions/{FunctionName}/aliases/{Name}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "Name" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Name": { + "location": "uri", + "locationName": "Name" + } + } + } + }, + "DeleteEventSourceMapping": { + "http": { + "method": "DELETE", + "requestUri": "/2015-03-31/event-source-mappings/{UUID}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "UUID" + ], + "members": { + "UUID": { + "location": "uri", + "locationName": "UUID" + } + } + }, + "output": { + "shape": "Sm" + } + }, + "DeleteFunction": { + "http": { + "method": "DELETE", + "requestUri": "/2015-03-31/functions/{FunctionName}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + } + } + }, + "GetAlias": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/{FunctionName}/aliases/{Name}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "Name" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Name": { + "location": "uri", + "locationName": "Name" + } + } + }, + "output": { + "shape": "Sg" + } + }, + "GetEventSourceMapping": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/event-source-mappings/{UUID}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "UUID" + ], + "members": { + "UUID": { + "location": "uri", + "locationName": "UUID" + } + } + }, + "output": { + "shape": "Sm" + } + }, + "GetFunction": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/{FunctionName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + } + }, + "output": { + "type": "structure", + "members": { + "Configuration": { + "shape": "S15" + }, + "Code": { + "type": "structure", + "members": { + "RepositoryType": {}, + "Location": {} + } + } + } + } + }, + "GetFunctionConfiguration": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/{FunctionName}/configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + } + }, + "output": { + "shape": "S15" + } + }, + "GetPolicy": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/{FunctionName}/policy", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + } + }, + "output": { + "type": "structure", + "members": { + "Policy": {} + } + } + }, + "Invoke": { + "http": { + "requestUri": "/2015-03-31/functions/{FunctionName}/invocations" + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "InvocationType": { + "location": "header", + "locationName": "X-Amz-Invocation-Type" + }, + "LogType": { + "location": "header", + "locationName": "X-Amz-Log-Type" + }, + "ClientContext": { + "location": "header", + "locationName": "X-Amz-Client-Context" + }, + "Payload": { + "type": "blob" + }, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + }, + "payload": "Payload" + }, + "output": { + "type": "structure", + "members": { + "StatusCode": { + "location": "statusCode", + "type": "integer" + }, + "FunctionError": { + "location": "header", + "locationName": "X-Amz-Function-Error" + }, + "LogResult": { + "location": "header", + "locationName": "X-Amz-Log-Result" + }, + "Payload": { + "type": "blob" + } + }, + "payload": "Payload" + } + }, + "InvokeAsync": { + "http": { + "requestUri": "/2014-11-13/functions/{FunctionName}/invoke-async/", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "InvokeArgs" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "InvokeArgs": { + "type": "blob", + "streaming": true + } + }, + "deprecated": true, + "payload": "InvokeArgs" + }, + "output": { + "type": "structure", + "members": { + "Status": { + "location": "statusCode", + "type": "integer" + } + }, + "deprecated": true + }, + "deprecated": true + }, + "ListAliases": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/{FunctionName}/aliases", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "FunctionVersion": { + "location": "querystring", + "locationName": "FunctionVersion" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "Aliases": { + "type": "list", + "member": { + "shape": "Sg" + } + } + } + } + }, + "ListEventSourceMappings": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/event-source-mappings/", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "EventSourceArn": { + "location": "querystring", + "locationName": "EventSourceArn" + }, + "FunctionName": { + "location": "querystring", + "locationName": "FunctionName" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "EventSourceMappings": { + "type": "list", + "member": { + "shape": "Sm" + } + } + } + } + }, + "ListFunctions": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "Functions": { + "shape": "S23" + } + } + } + }, + "ListVersionsByFunction": { + "http": { + "method": "GET", + "requestUri": "/2015-03-31/functions/{FunctionName}/versions", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Marker": { + "location": "querystring", + "locationName": "Marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "MaxItems", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "Versions": { + "shape": "S23" + } + } + } + }, + "PublishVersion": { + "http": { + "requestUri": "/2015-03-31/functions/{FunctionName}/versions", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "CodeSha256": {}, + "Description": {} + } + }, + "output": { + "shape": "S15" + } + }, + "RemovePermission": { + "http": { + "method": "DELETE", + "requestUri": "/2015-03-31/functions/{FunctionName}/policy/{StatementId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "StatementId" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "StatementId": { + "location": "uri", + "locationName": "StatementId" + }, + "Qualifier": { + "location": "querystring", + "locationName": "Qualifier" + } + } + } + }, + "UpdateAlias": { + "http": { + "method": "PUT", + "requestUri": "/2015-03-31/functions/{FunctionName}/aliases/{Name}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName", + "Name" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Name": { + "location": "uri", + "locationName": "Name" + }, + "FunctionVersion": {}, + "Description": {} + } + }, + "output": { + "shape": "Sg" + } + }, + "UpdateEventSourceMapping": { + "http": { + "method": "PUT", + "requestUri": "/2015-03-31/event-source-mappings/{UUID}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "UUID" + ], + "members": { + "UUID": { + "location": "uri", + "locationName": "UUID" + }, + "FunctionName": {}, + "Enabled": { + "type": "boolean" + }, + "BatchSize": { + "type": "integer" + } + } + }, + "output": { + "shape": "Sm" + } + }, + "UpdateFunctionCode": { + "http": { + "method": "PUT", + "requestUri": "/2015-03-31/functions/{FunctionName}/code", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "ZipFile": { + "type": "blob" + }, + "S3Bucket": {}, + "S3Key": {}, + "S3ObjectVersion": {}, + "Publish": { + "type": "boolean" + } + } + }, + "output": { + "shape": "S15" + } + }, + "UpdateFunctionConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/2015-03-31/functions/{FunctionName}/configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "FunctionName" + ], + "members": { + "FunctionName": { + "location": "uri", + "locationName": "FunctionName" + }, + "Role": {}, + "Handler": {}, + "Description": {}, + "Timeout": { + "type": "integer" + }, + "MemorySize": { + "type": "integer" + }, + "VpcConfig": { + "shape": "S10" + }, + "Runtime": {} + } + }, + "output": { + "shape": "S15" + } + } + }, + "shapes": { + "Sg": { + "type": "structure", + "members": { + "AliasArn": {}, + "Name": {}, + "FunctionVersion": {}, + "Description": {} + } + }, + "Sm": { + "type": "structure", + "members": { + "UUID": {}, + "BatchSize": { + "type": "integer" + }, + "EventSourceArn": {}, + "FunctionArn": {}, + "LastModified": { + "type": "timestamp" + }, + "LastProcessingResult": {}, + "State": {}, + "StateTransitionReason": {} + } + }, + "S10": { + "type": "structure", + "members": { + "SubnetIds": { + "shape": "S11" + }, + "SecurityGroupIds": { + "shape": "S13" + } + } + }, + "S11": { + "type": "list", + "member": {} + }, + "S13": { + "type": "list", + "member": {} + }, + "S15": { + "type": "structure", + "members": { + "FunctionName": {}, + "FunctionArn": {}, + "Runtime": {}, + "Role": {}, + "Handler": {}, + "CodeSize": { + "type": "long" + }, + "Description": {}, + "Timeout": { + "type": "integer" + }, + "MemorySize": { + "type": "integer" + }, + "LastModified": {}, + "CodeSha256": {}, + "Version": {}, + "VpcConfig": { + "type": "structure", + "members": { + "SubnetIds": { + "shape": "S11" + }, + "SecurityGroupIds": { + "shape": "S13" + }, + "VpcId": {} + } + } + } + }, + "S23": { + "type": "list", + "member": { + "shape": "S15" + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.paginators.json new file mode 100755 index 0000000..da00fb7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/lambda-2015-03-31.paginators.json @@ -0,0 +1,16 @@ +{ + "pagination": { + "ListEventSourceMappings": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "EventSourceMappings" + }, + "ListFunctions": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "Functions" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.min.json new file mode 100755 index 0000000..74e8a7f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.min.json @@ -0,0 +1,719 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-03-28", + "endpointPrefix": "logs", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon CloudWatch Logs", + "signatureVersion": "v4", + "targetPrefix": "Logs_20140328" + }, + "operations": { + "CancelExportTask": { + "input": { + "type": "structure", + "required": [ + "taskId" + ], + "members": { + "taskId": {} + } + } + }, + "CreateExportTask": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "from", + "to", + "destination" + ], + "members": { + "taskName": {}, + "logGroupName": {}, + "logStreamNamePrefix": {}, + "from": { + "type": "long" + }, + "to": { + "type": "long" + }, + "destination": {}, + "destinationPrefix": {} + } + }, + "output": { + "type": "structure", + "members": { + "taskId": {} + } + } + }, + "CreateLogGroup": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {} + } + } + }, + "CreateLogStream": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "logStreamName" + ], + "members": { + "logGroupName": {}, + "logStreamName": {} + } + } + }, + "DeleteDestination": { + "input": { + "type": "structure", + "required": [ + "destinationName" + ], + "members": { + "destinationName": {} + } + } + }, + "DeleteLogGroup": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {} + } + } + }, + "DeleteLogStream": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "logStreamName" + ], + "members": { + "logGroupName": {}, + "logStreamName": {} + } + } + }, + "DeleteMetricFilter": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "filterName" + ], + "members": { + "logGroupName": {}, + "filterName": {} + } + } + }, + "DeleteRetentionPolicy": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {} + } + } + }, + "DeleteSubscriptionFilter": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "filterName" + ], + "members": { + "logGroupName": {}, + "filterName": {} + } + } + }, + "DescribeDestinations": { + "input": { + "type": "structure", + "members": { + "DestinationNamePrefix": {}, + "nextToken": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "destinations": { + "type": "list", + "member": { + "shape": "Sq" + } + }, + "nextToken": {} + } + } + }, + "DescribeExportTasks": { + "input": { + "type": "structure", + "members": { + "taskId": {}, + "statusCode": {}, + "nextToken": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "exportTasks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "taskId": {}, + "taskName": {}, + "logGroupName": {}, + "from": { + "type": "long" + }, + "to": { + "type": "long" + }, + "destination": {}, + "destinationPrefix": {}, + "status": { + "type": "structure", + "members": { + "code": {}, + "message": {} + } + }, + "executionInfo": { + "type": "structure", + "members": { + "creationTime": { + "type": "long" + }, + "completionTime": { + "type": "long" + } + } + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeLogGroups": { + "input": { + "type": "structure", + "members": { + "logGroupNamePrefix": {}, + "nextToken": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "logGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "logGroupName": {}, + "creationTime": { + "type": "long" + }, + "retentionInDays": { + "type": "integer" + }, + "metricFilterCount": { + "type": "integer" + }, + "arn": {}, + "storedBytes": { + "type": "long" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeLogStreams": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {}, + "logStreamNamePrefix": {}, + "orderBy": {}, + "descending": { + "type": "boolean" + }, + "nextToken": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "logStreams": { + "type": "list", + "member": { + "type": "structure", + "members": { + "logStreamName": {}, + "creationTime": { + "type": "long" + }, + "firstEventTimestamp": { + "type": "long" + }, + "lastEventTimestamp": { + "type": "long" + }, + "lastIngestionTime": { + "type": "long" + }, + "uploadSequenceToken": {}, + "arn": {}, + "storedBytes": { + "type": "long" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeMetricFilters": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {}, + "filterNamePrefix": {}, + "nextToken": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "metricFilters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "filterName": {}, + "filterPattern": {}, + "metricTransformations": { + "shape": "S1m" + }, + "creationTime": { + "type": "long" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeSubscriptionFilters": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {}, + "filterNamePrefix": {}, + "nextToken": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "subscriptionFilters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "filterName": {}, + "logGroupName": {}, + "filterPattern": {}, + "destinationArn": {}, + "roleArn": {}, + "creationTime": { + "type": "long" + } + } + } + }, + "nextToken": {} + } + } + }, + "FilterLogEvents": { + "input": { + "type": "structure", + "required": [ + "logGroupName" + ], + "members": { + "logGroupName": {}, + "logStreamNames": { + "type": "list", + "member": {} + }, + "startTime": { + "type": "long" + }, + "endTime": { + "type": "long" + }, + "filterPattern": {}, + "nextToken": {}, + "limit": { + "type": "integer" + }, + "interleaved": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "events": { + "type": "list", + "member": { + "type": "structure", + "members": { + "logStreamName": {}, + "timestamp": { + "type": "long" + }, + "message": {}, + "ingestionTime": { + "type": "long" + }, + "eventId": {} + } + } + }, + "searchedLogStreams": { + "type": "list", + "member": { + "type": "structure", + "members": { + "logStreamName": {}, + "searchedCompletely": { + "type": "boolean" + } + } + } + }, + "nextToken": {} + } + } + }, + "GetLogEvents": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "logStreamName" + ], + "members": { + "logGroupName": {}, + "logStreamName": {}, + "startTime": { + "type": "long" + }, + "endTime": { + "type": "long" + }, + "nextToken": {}, + "limit": { + "type": "integer" + }, + "startFromHead": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "events": { + "type": "list", + "member": { + "type": "structure", + "members": { + "timestamp": { + "type": "long" + }, + "message": {}, + "ingestionTime": { + "type": "long" + } + } + } + }, + "nextForwardToken": {}, + "nextBackwardToken": {} + } + } + }, + "PutDestination": { + "input": { + "type": "structure", + "required": [ + "destinationName", + "targetArn", + "roleArn" + ], + "members": { + "destinationName": {}, + "targetArn": {}, + "roleArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "destination": { + "shape": "Sq" + } + } + } + }, + "PutDestinationPolicy": { + "input": { + "type": "structure", + "required": [ + "destinationName", + "accessPolicy" + ], + "members": { + "destinationName": {}, + "accessPolicy": {} + } + } + }, + "PutLogEvents": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "logStreamName", + "logEvents" + ], + "members": { + "logGroupName": {}, + "logStreamName": {}, + "logEvents": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "timestamp", + "message" + ], + "members": { + "timestamp": { + "type": "long" + }, + "message": {} + } + } + }, + "sequenceToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "nextSequenceToken": {}, + "rejectedLogEventsInfo": { + "type": "structure", + "members": { + "tooNewLogEventStartIndex": { + "type": "integer" + }, + "tooOldLogEventEndIndex": { + "type": "integer" + }, + "expiredLogEventEndIndex": { + "type": "integer" + } + } + } + } + } + }, + "PutMetricFilter": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "filterName", + "filterPattern", + "metricTransformations" + ], + "members": { + "logGroupName": {}, + "filterName": {}, + "filterPattern": {}, + "metricTransformations": { + "shape": "S1m" + } + } + } + }, + "PutRetentionPolicy": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "retentionInDays" + ], + "members": { + "logGroupName": {}, + "retentionInDays": { + "type": "integer" + } + } + } + }, + "PutSubscriptionFilter": { + "input": { + "type": "structure", + "required": [ + "logGroupName", + "filterName", + "filterPattern", + "destinationArn" + ], + "members": { + "logGroupName": {}, + "filterName": {}, + "filterPattern": {}, + "destinationArn": {}, + "roleArn": {} + } + } + }, + "TestMetricFilter": { + "input": { + "type": "structure", + "required": [ + "filterPattern", + "logEventMessages" + ], + "members": { + "filterPattern": {}, + "logEventMessages": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "matches": { + "type": "list", + "member": { + "type": "structure", + "members": { + "eventNumber": { + "type": "long" + }, + "eventMessage": {}, + "extractedValues": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } + } + } + } + }, + "shapes": { + "Sq": { + "type": "structure", + "members": { + "destinationName": {}, + "targetArn": {}, + "roleArn": {}, + "accessPolicy": {}, + "arn": {}, + "creationTime": { + "type": "long" + } + } + }, + "S1m": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "metricName", + "metricNamespace", + "metricValue" + ], + "members": { + "metricName": {}, + "metricNamespace": {}, + "metricValue": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.paginators.json new file mode 100755 index 0000000..f689324 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/logs-2014-03-28.paginators.json @@ -0,0 +1,49 @@ +{ + "pagination": { + "DescribeDestinations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "destinations" + }, + "DescribeLogGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "logGroups" + }, + "DescribeLogStreams": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "logStreams" + }, + "DescribeMetricFilters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "metricFilters" + }, + "DescribeSubscriptionFilters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "subscriptionFilters" + }, + "FilterLogEvents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": [ + "events", + "searchedLogStreams" + ] + }, + "GetLogEvents": { + "input_token": "nextToken", + "output_token": "nextForwardToken", + "limit_key": "limit", + "result_key": "events" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.min.json new file mode 100755 index 0000000..3de3be2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.min.json @@ -0,0 +1,1023 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-12-12", + "endpointPrefix": "machinelearning", + "jsonVersion": "1.1", + "serviceFullName": "Amazon Machine Learning", + "signatureVersion": "v4", + "targetPrefix": "AmazonML_20141212", + "protocol": "json" + }, + "operations": { + "AddTags": { + "input": { + "type": "structure", + "required": [ + "Tags", + "ResourceId", + "ResourceType" + ], + "members": { + "Tags": { + "shape": "S2" + }, + "ResourceId": {}, + "ResourceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {} + } + } + }, + "CreateBatchPrediction": { + "input": { + "type": "structure", + "required": [ + "BatchPredictionId", + "MLModelId", + "BatchPredictionDataSourceId", + "OutputUri" + ], + "members": { + "BatchPredictionId": {}, + "BatchPredictionName": {}, + "MLModelId": {}, + "BatchPredictionDataSourceId": {}, + "OutputUri": {} + } + }, + "output": { + "type": "structure", + "members": { + "BatchPredictionId": {} + } + } + }, + "CreateDataSourceFromRDS": { + "input": { + "type": "structure", + "required": [ + "DataSourceId", + "RDSData", + "RoleARN" + ], + "members": { + "DataSourceId": {}, + "DataSourceName": {}, + "RDSData": { + "type": "structure", + "required": [ + "DatabaseInformation", + "SelectSqlQuery", + "DatabaseCredentials", + "S3StagingLocation", + "ResourceRole", + "ServiceRole", + "SubnetId", + "SecurityGroupIds" + ], + "members": { + "DatabaseInformation": { + "shape": "Sf" + }, + "SelectSqlQuery": {}, + "DatabaseCredentials": { + "type": "structure", + "required": [ + "Username", + "Password" + ], + "members": { + "Username": {}, + "Password": {} + } + }, + "S3StagingLocation": {}, + "DataRearrangement": {}, + "DataSchema": {}, + "DataSchemaUri": {}, + "ResourceRole": {}, + "ServiceRole": {}, + "SubnetId": {}, + "SecurityGroupIds": { + "type": "list", + "member": {} + } + } + }, + "RoleARN": {}, + "ComputeStatistics": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "DataSourceId": {} + } + } + }, + "CreateDataSourceFromRedshift": { + "input": { + "type": "structure", + "required": [ + "DataSourceId", + "DataSpec", + "RoleARN" + ], + "members": { + "DataSourceId": {}, + "DataSourceName": {}, + "DataSpec": { + "type": "structure", + "required": [ + "DatabaseInformation", + "SelectSqlQuery", + "DatabaseCredentials", + "S3StagingLocation" + ], + "members": { + "DatabaseInformation": { + "shape": "Sy" + }, + "SelectSqlQuery": {}, + "DatabaseCredentials": { + "type": "structure", + "required": [ + "Username", + "Password" + ], + "members": { + "Username": {}, + "Password": {} + } + }, + "S3StagingLocation": {}, + "DataRearrangement": {}, + "DataSchema": {}, + "DataSchemaUri": {} + } + }, + "RoleARN": {}, + "ComputeStatistics": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "DataSourceId": {} + } + } + }, + "CreateDataSourceFromS3": { + "input": { + "type": "structure", + "required": [ + "DataSourceId", + "DataSpec" + ], + "members": { + "DataSourceId": {}, + "DataSourceName": {}, + "DataSpec": { + "type": "structure", + "required": [ + "DataLocationS3" + ], + "members": { + "DataLocationS3": {}, + "DataRearrangement": {}, + "DataSchema": {}, + "DataSchemaLocationS3": {} + } + }, + "ComputeStatistics": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "DataSourceId": {} + } + } + }, + "CreateEvaluation": { + "input": { + "type": "structure", + "required": [ + "EvaluationId", + "MLModelId", + "EvaluationDataSourceId" + ], + "members": { + "EvaluationId": {}, + "EvaluationName": {}, + "MLModelId": {}, + "EvaluationDataSourceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "EvaluationId": {} + } + } + }, + "CreateMLModel": { + "input": { + "type": "structure", + "required": [ + "MLModelId", + "MLModelType", + "TrainingDataSourceId" + ], + "members": { + "MLModelId": {}, + "MLModelName": {}, + "MLModelType": {}, + "Parameters": { + "shape": "S1d" + }, + "TrainingDataSourceId": {}, + "Recipe": {}, + "RecipeUri": {} + } + }, + "output": { + "type": "structure", + "members": { + "MLModelId": {} + } + } + }, + "CreateRealtimeEndpoint": { + "input": { + "type": "structure", + "required": [ + "MLModelId" + ], + "members": { + "MLModelId": {} + } + }, + "output": { + "type": "structure", + "members": { + "MLModelId": {}, + "RealtimeEndpointInfo": { + "shape": "S1j" + } + } + } + }, + "DeleteBatchPrediction": { + "input": { + "type": "structure", + "required": [ + "BatchPredictionId" + ], + "members": { + "BatchPredictionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "BatchPredictionId": {} + } + } + }, + "DeleteDataSource": { + "input": { + "type": "structure", + "required": [ + "DataSourceId" + ], + "members": { + "DataSourceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "DataSourceId": {} + } + } + }, + "DeleteEvaluation": { + "input": { + "type": "structure", + "required": [ + "EvaluationId" + ], + "members": { + "EvaluationId": {} + } + }, + "output": { + "type": "structure", + "members": { + "EvaluationId": {} + } + } + }, + "DeleteMLModel": { + "input": { + "type": "structure", + "required": [ + "MLModelId" + ], + "members": { + "MLModelId": {} + } + }, + "output": { + "type": "structure", + "members": { + "MLModelId": {} + } + } + }, + "DeleteRealtimeEndpoint": { + "input": { + "type": "structure", + "required": [ + "MLModelId" + ], + "members": { + "MLModelId": {} + } + }, + "output": { + "type": "structure", + "members": { + "MLModelId": {}, + "RealtimeEndpointInfo": { + "shape": "S1j" + } + } + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "TagKeys", + "ResourceId", + "ResourceType" + ], + "members": { + "TagKeys": { + "type": "list", + "member": {} + }, + "ResourceId": {}, + "ResourceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {} + } + } + }, + "DescribeBatchPredictions": { + "input": { + "type": "structure", + "members": { + "FilterVariable": {}, + "EQ": {}, + "GT": {}, + "LT": {}, + "GE": {}, + "LE": {}, + "NE": {}, + "Prefix": {}, + "SortOrder": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Results": { + "type": "list", + "member": { + "type": "structure", + "members": { + "BatchPredictionId": {}, + "MLModelId": {}, + "BatchPredictionDataSourceId": {}, + "InputDataLocationS3": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "Name": {}, + "Status": {}, + "OutputUri": {}, + "Message": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeDataSources": { + "input": { + "type": "structure", + "members": { + "FilterVariable": {}, + "EQ": {}, + "GT": {}, + "LT": {}, + "GE": {}, + "LE": {}, + "NE": {}, + "Prefix": {}, + "SortOrder": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Results": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DataSourceId": {}, + "DataLocationS3": {}, + "DataRearrangement": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "DataSizeInBytes": { + "type": "long" + }, + "NumberOfFiles": { + "type": "long" + }, + "Name": {}, + "Status": {}, + "Message": {}, + "RedshiftMetadata": { + "shape": "S2i" + }, + "RDSMetadata": { + "shape": "S2j" + }, + "RoleARN": {}, + "ComputeStatistics": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeEvaluations": { + "input": { + "type": "structure", + "members": { + "FilterVariable": {}, + "EQ": {}, + "GT": {}, + "LT": {}, + "GE": {}, + "LE": {}, + "NE": {}, + "Prefix": {}, + "SortOrder": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Results": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EvaluationId": {}, + "MLModelId": {}, + "EvaluationDataSourceId": {}, + "InputDataLocationS3": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "Name": {}, + "Status": {}, + "PerformanceMetrics": { + "shape": "S2q" + }, + "Message": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeMLModels": { + "input": { + "type": "structure", + "members": { + "FilterVariable": {}, + "EQ": {}, + "GT": {}, + "LT": {}, + "GE": {}, + "LE": {}, + "NE": {}, + "Prefix": {}, + "SortOrder": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Results": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MLModelId": {}, + "TrainingDataSourceId": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "Name": {}, + "Status": {}, + "SizeInBytes": { + "type": "long" + }, + "EndpointInfo": { + "shape": "S1j" + }, + "TrainingParameters": { + "shape": "S1d" + }, + "InputDataLocationS3": {}, + "Algorithm": {}, + "MLModelType": {}, + "ScoreThreshold": { + "type": "float" + }, + "ScoreThresholdLastUpdatedAt": { + "type": "timestamp" + }, + "Message": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId", + "ResourceType" + ], + "members": { + "ResourceId": {}, + "ResourceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Tags": { + "shape": "S2" + } + } + } + }, + "GetBatchPrediction": { + "input": { + "type": "structure", + "required": [ + "BatchPredictionId" + ], + "members": { + "BatchPredictionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "BatchPredictionId": {}, + "MLModelId": {}, + "BatchPredictionDataSourceId": {}, + "InputDataLocationS3": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "Name": {}, + "Status": {}, + "OutputUri": {}, + "LogUri": {}, + "Message": {} + } + } + }, + "GetDataSource": { + "input": { + "type": "structure", + "required": [ + "DataSourceId" + ], + "members": { + "DataSourceId": {}, + "Verbose": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "DataSourceId": {}, + "DataLocationS3": {}, + "DataRearrangement": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "DataSizeInBytes": { + "type": "long" + }, + "NumberOfFiles": { + "type": "long" + }, + "Name": {}, + "Status": {}, + "LogUri": {}, + "Message": {}, + "RedshiftMetadata": { + "shape": "S2i" + }, + "RDSMetadata": { + "shape": "S2j" + }, + "RoleARN": {}, + "ComputeStatistics": { + "type": "boolean" + }, + "DataSourceSchema": {} + } + } + }, + "GetEvaluation": { + "input": { + "type": "structure", + "required": [ + "EvaluationId" + ], + "members": { + "EvaluationId": {} + } + }, + "output": { + "type": "structure", + "members": { + "EvaluationId": {}, + "MLModelId": {}, + "EvaluationDataSourceId": {}, + "InputDataLocationS3": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "Name": {}, + "Status": {}, + "PerformanceMetrics": { + "shape": "S2q" + }, + "LogUri": {}, + "Message": {} + } + } + }, + "GetMLModel": { + "input": { + "type": "structure", + "required": [ + "MLModelId" + ], + "members": { + "MLModelId": {}, + "Verbose": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "MLModelId": {}, + "TrainingDataSourceId": {}, + "CreatedByIamUser": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastUpdatedAt": { + "type": "timestamp" + }, + "Name": {}, + "Status": {}, + "SizeInBytes": { + "type": "long" + }, + "EndpointInfo": { + "shape": "S1j" + }, + "TrainingParameters": { + "shape": "S1d" + }, + "InputDataLocationS3": {}, + "MLModelType": {}, + "ScoreThreshold": { + "type": "float" + }, + "ScoreThresholdLastUpdatedAt": { + "type": "timestamp" + }, + "LogUri": {}, + "Message": {}, + "Recipe": {}, + "Schema": {} + } + } + }, + "Predict": { + "input": { + "type": "structure", + "required": [ + "MLModelId", + "Record", + "PredictEndpoint" + ], + "members": { + "MLModelId": {}, + "Record": { + "type": "map", + "key": {}, + "value": {} + }, + "PredictEndpoint": {} + } + }, + "output": { + "type": "structure", + "members": { + "Prediction": { + "type": "structure", + "members": { + "predictedLabel": {}, + "predictedValue": { + "type": "float" + }, + "predictedScores": { + "type": "map", + "key": {}, + "value": { + "type": "float" + } + }, + "details": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } + } + }, + "UpdateBatchPrediction": { + "input": { + "type": "structure", + "required": [ + "BatchPredictionId", + "BatchPredictionName" + ], + "members": { + "BatchPredictionId": {}, + "BatchPredictionName": {} + } + }, + "output": { + "type": "structure", + "members": { + "BatchPredictionId": {} + } + } + }, + "UpdateDataSource": { + "input": { + "type": "structure", + "required": [ + "DataSourceId", + "DataSourceName" + ], + "members": { + "DataSourceId": {}, + "DataSourceName": {} + } + }, + "output": { + "type": "structure", + "members": { + "DataSourceId": {} + } + } + }, + "UpdateEvaluation": { + "input": { + "type": "structure", + "required": [ + "EvaluationId", + "EvaluationName" + ], + "members": { + "EvaluationId": {}, + "EvaluationName": {} + } + }, + "output": { + "type": "structure", + "members": { + "EvaluationId": {} + } + } + }, + "UpdateMLModel": { + "input": { + "type": "structure", + "required": [ + "MLModelId" + ], + "members": { + "MLModelId": {}, + "MLModelName": {}, + "ScoreThreshold": { + "type": "float" + } + } + }, + "output": { + "type": "structure", + "members": { + "MLModelId": {} + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sf": { + "type": "structure", + "required": [ + "InstanceIdentifier", + "DatabaseName" + ], + "members": { + "InstanceIdentifier": {}, + "DatabaseName": {} + } + }, + "Sy": { + "type": "structure", + "required": [ + "DatabaseName", + "ClusterIdentifier" + ], + "members": { + "DatabaseName": {}, + "ClusterIdentifier": {} + } + }, + "S1d": { + "type": "map", + "key": {}, + "value": {} + }, + "S1j": { + "type": "structure", + "members": { + "PeakRequestsPerSecond": { + "type": "integer" + }, + "CreatedAt": { + "type": "timestamp" + }, + "EndpointUrl": {}, + "EndpointStatus": {} + } + }, + "S2i": { + "type": "structure", + "members": { + "RedshiftDatabase": { + "shape": "Sy" + }, + "DatabaseUserName": {}, + "SelectSqlQuery": {} + } + }, + "S2j": { + "type": "structure", + "members": { + "Database": { + "shape": "Sf" + }, + "DatabaseUserName": {}, + "SelectSqlQuery": {}, + "ResourceRole": {}, + "ServiceRole": {}, + "DataPipelineId": {} + } + }, + "S2q": { + "type": "structure", + "members": { + "Properties": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.paginators.json new file mode 100755 index 0000000..c13ce65 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.paginators.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "DescribeBatchPredictions": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + }, + "DescribeDataSources": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + }, + "DescribeEvaluations": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + }, + "DescribeMLModels": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.waiters2.json new file mode 100755 index 0000000..da6b1c9 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/machinelearning-2014-12-12.waiters2.json @@ -0,0 +1,81 @@ +{ + "version": 2, + "waiters": { + "DataSourceAvailable": { + "delay": 30, + "operation": "DescribeDataSources", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "COMPLETED", + "matcher": "pathAll", + "state": "success", + "argument": "Results[].Status" + }, + { + "expected": "FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Results[].Status" + } + ] + }, + "MLModelAvailable": { + "delay": 30, + "operation": "DescribeMLModels", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "COMPLETED", + "matcher": "pathAll", + "state": "success", + "argument": "Results[].Status" + }, + { + "expected": "FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Results[].Status" + } + ] + }, + "EvaluationAvailable": { + "delay": 30, + "operation": "DescribeEvaluations", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "COMPLETED", + "matcher": "pathAll", + "state": "success", + "argument": "Results[].Status" + }, + { + "expected": "FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Results[].Status" + } + ] + }, + "BatchPredictionAvailable": { + "delay": 30, + "operation": "DescribeBatchPredictions", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "COMPLETED", + "matcher": "pathAll", + "state": "success", + "argument": "Results[].Status" + }, + { + "expected": "FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Results[].Status" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/marketplacecommerceanalytics-2015-07-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/marketplacecommerceanalytics-2015-07-01.min.json new file mode 100755 index 0000000..f670c29 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/marketplacecommerceanalytics-2015-07-01.min.json @@ -0,0 +1,49 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-07-01", + "endpointPrefix": "marketplacecommerceanalytics", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Marketplace Commerce Analytics", + "signatureVersion": "v4", + "signingName": "marketplacecommerceanalytics", + "targetPrefix": "MarketplaceCommerceAnalytics20150701" + }, + "operations": { + "GenerateDataSet": { + "input": { + "type": "structure", + "required": [ + "dataSetType", + "dataSetPublicationDate", + "roleNameArn", + "destinationS3BucketName", + "snsTopicArn" + ], + "members": { + "dataSetType": {}, + "dataSetPublicationDate": { + "type": "timestamp" + }, + "roleNameArn": {}, + "destinationS3BucketName": {}, + "destinationS3Prefix": {}, + "snsTopicArn": {}, + "customerDefinedValues": { + "type": "map", + "key": {}, + "value": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "dataSetRequestId": {} + } + } + } + }, + "shapes": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/metadata.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/metadata.json new file mode 100755 index 0000000..7892b43 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/metadata.json @@ -0,0 +1,235 @@ +{ + "acm": { + "name": "ACM" + }, + "apigateway": { + "name": "APIGateway" + }, + "applicationautoscaling": { + "prefix": "application-autoscaling", + "name": "ApplicationAutoScaling" + }, + "autoscaling": { + "name": "AutoScaling" + }, + "cloudformation": { + "name": "CloudFormation" + }, + "cloudfront": { + "name": "CloudFront", + "versions": ["2013-05-12*", "2013-11-11*", "2014-05-31*", "2014-10-21*", "2014-11-06*", "2015-04-17*", "2015-07-27*", "2015-09-17*", "2016-01-13*"] + }, + "cloudhsm": { + "name": "CloudHSM" + }, + "cloudsearch": { + "name": "CloudSearch" + }, + "cloudsearchdomain": { + "name": "CloudSearchDomain" + }, + "cloudtrail": { + "name": "CloudTrail" + }, + "cloudwatch": { + "prefix": "monitoring", + "name": "CloudWatch" + }, + "cloudwatchevents": { + "prefix": "events", + "name": "CloudWatchEvents", + "versions": ["2014-02-03*"] + }, + "cloudwatchlogs": { + "prefix": "logs", + "name": "CloudWatchLogs" + }, + "codecommit": { + "name": "CodeCommit" + }, + "codedeploy": { + "name": "CodeDeploy" + }, + "codepipeline": { + "name": "CodePipeline" + }, + "cognitoidentity": { + "prefix": "cognito-identity", + "name": "CognitoIdentity" + }, + "cognitoidentityserviceprovider": { + "prefix": "cognito-idp", + "name": "CognitoIdentityServiceProvider" + }, + "cognitosync": { + "prefix": "cognito-sync", + "name": "CognitoSync" + }, + "configservice": { + "prefix": "config", + "name": "ConfigService" + }, + "datapipeline": { + "name": "DataPipeline" + }, + "devicefarm": { + "name": "DeviceFarm" + }, + "directconnect": { + "name": "DirectConnect" + }, + "directoryservice": { + "prefix": "ds", + "name": "DirectoryService" + }, + "discovery": { + "name": "Discovery" + }, + "dms": { + "name": "DMS" + }, + "dynamodb": { + "name": "DynamoDB" + }, + "dynamodbstreams": { + "prefix": "streams.dynamodb", + "name": "DynamoDBStreams" + }, + "ec2": { + "name": "EC2", + "versions": ["2013-06-15*", "2013-10-15*", "2014-02-01*", "2014-05-01*", "2014-06-15*", "2014-09-01*", "2014-10-01*", "2015-03-01*", "2015-04-15*"] + }, + "ecr": { + "name": "ECR" + }, + "ecs": { + "name": "ECS" + }, + "efs": { + "prefix": "elasticfilesystem", + "name": "EFS" + }, + "elasticache": { + "name": "ElastiCache", + "versions": ["2012-11-15*", "2014-03-24*", "2014-07-15*", "2014-09-30*"] + }, + "elasticbeanstalk": { + "name": "ElasticBeanstalk" + }, + "elb": { + "prefix": "elasticloadbalancing", + "name": "ELB" + }, + "emr": { + "prefix": "elasticmapreduce", + "name": "EMR" + }, + "es": { + "name": "ES" + }, + "elastictranscoder": { + "name": "ElasticTranscoder" + }, + "firehose": { + "name": "Firehose" + }, + "gamelift": { + "name": "GameLift" + }, + "glacier": { + "name": "Glacier" + }, + "iam": { + "name": "IAM" + }, + "importexport": { + "name": "ImportExport" + }, + "inspector": { + "name": "Inspector", + "versions": ["2015-08-18*"] + }, + "iot": { + "name": "Iot" + }, + "iotdata": { + "prefix": "iot-data", + "name": "IotData" + }, + "kinesis": { + "name": "Kinesis" + }, + "kms": { + "name": "KMS" + }, + "lambda": { + "name": "Lambda" + }, + "machinelearning": { + "name": "MachineLearning" + }, + "marketplacecommerceanalytics": { + "name": "MarketplaceCommerceAnalytics" + }, + "marketplacemetering": { + "prefix": "meteringmarketplace", + "name": "MarketplaceMetering" + }, + "mobileanalytics": { + "name": "MobileAnalytics" + }, + "opsworks": { + "name": "OpsWorks" + }, + "rds": { + "name": "RDS", + "versions": ["2014-09-01*"] + }, + "redshift": { + "name": "Redshift" + }, + "route53": { + "name": "Route53" + }, + "route53domains": { + "name": "Route53Domains" + }, + "s3": { + "name": "S3" + }, + "ses": { + "prefix": "email", + "name": "SES" + }, + "simpledb": { + "prefix": "sdb", + "name": "SimpleDB" + }, + "sns": { + "name": "SNS" + }, + "sqs": { + "name": "SQS" + }, + "ssm": { + "name": "SSM" + }, + "storagegateway": { + "name": "StorageGateway" + }, + "sts": { + "name": "STS" + }, + "support": { + "name": "Support" + }, + "swf": { + "name": "SWF" + }, + "waf": { + "name": "WAF" + }, + "workspaces": { + "name": "WorkSpaces" + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/meteringmarketplace-2016-01-14.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/meteringmarketplace-2016-01-14.min.json new file mode 100755 index 0000000..ed7d5bd --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/meteringmarketplace-2016-01-14.min.json @@ -0,0 +1,47 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-01-14", + "endpointPrefix": "metering.marketplace", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWSMarketplace Metering", + "signatureVersion": "v4", + "signingName": "aws-marketplace", + "targetPrefix": "AWSMPMeteringService" + }, + "operations": { + "MeterUsage": { + "input": { + "type": "structure", + "required": [ + "ProductCode", + "Timestamp", + "UsageDimension", + "UsageQuantity", + "DryRun" + ], + "members": { + "ProductCode": {}, + "Timestamp": { + "type": "timestamp" + }, + "UsageDimension": {}, + "UsageQuantity": { + "type": "integer" + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "MeteringRecordId": {} + } + } + } + }, + "shapes": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json new file mode 100755 index 0000000..a327cb1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json @@ -0,0 +1,74 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-06-05", + "endpointPrefix": "mobileanalytics", + "serviceFullName": "Amazon Mobile Analytics", + "signatureVersion": "v4", + "protocol": "rest-json" + }, + "operations": { + "PutEvents": { + "http": { + "requestUri": "/2014-06-05/events", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "events", + "clientContext" + ], + "members": { + "events": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "eventType", + "timestamp" + ], + "members": { + "eventType": {}, + "timestamp": {}, + "session": { + "type": "structure", + "members": { + "id": {}, + "duration": { + "type": "long" + }, + "startTimestamp": {}, + "stopTimestamp": {} + } + }, + "version": {}, + "attributes": { + "type": "map", + "key": {}, + "value": {} + }, + "metrics": { + "type": "map", + "key": {}, + "value": { + "type": "double" + } + } + } + } + }, + "clientContext": { + "location": "header", + "locationName": "x-amz-Client-Context" + }, + "clientContextEncoding": { + "location": "header", + "locationName": "x-amz-Client-Context-Encoding" + } + } + } + } + }, + "shapes": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.min.json new file mode 100755 index 0000000..d4696fa --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.min.json @@ -0,0 +1,501 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2010-08-01", + "endpointPrefix": "monitoring", + "protocol": "query", + "serviceAbbreviation": "CloudWatch", + "serviceFullName": "Amazon CloudWatch", + "signatureVersion": "v4", + "xmlNamespace": "http://monitoring.amazonaws.com/doc/2010-08-01/" + }, + "operations": { + "DeleteAlarms": { + "input": { + "type": "structure", + "required": [ + "AlarmNames" + ], + "members": { + "AlarmNames": { + "shape": "S2" + } + } + } + }, + "DescribeAlarmHistory": { + "input": { + "type": "structure", + "members": { + "AlarmName": {}, + "HistoryItemType": {}, + "StartDate": { + "type": "timestamp" + }, + "EndDate": { + "type": "timestamp" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeAlarmHistoryResult", + "type": "structure", + "members": { + "AlarmHistoryItems": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AlarmName": {}, + "Timestamp": { + "type": "timestamp" + }, + "HistoryItemType": {}, + "HistorySummary": {}, + "HistoryData": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeAlarms": { + "input": { + "type": "structure", + "members": { + "AlarmNames": { + "shape": "S2" + }, + "AlarmNamePrefix": {}, + "StateValue": {}, + "ActionPrefix": {}, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeAlarmsResult", + "type": "structure", + "members": { + "MetricAlarms": { + "shape": "Sj" + }, + "NextToken": {} + } + } + }, + "DescribeAlarmsForMetric": { + "input": { + "type": "structure", + "required": [ + "MetricName", + "Namespace" + ], + "members": { + "MetricName": {}, + "Namespace": {}, + "Statistic": {}, + "Dimensions": { + "shape": "Sv" + }, + "Period": { + "type": "integer" + }, + "Unit": {} + } + }, + "output": { + "resultWrapper": "DescribeAlarmsForMetricResult", + "type": "structure", + "members": { + "MetricAlarms": { + "shape": "Sj" + } + } + } + }, + "DisableAlarmActions": { + "input": { + "type": "structure", + "required": [ + "AlarmNames" + ], + "members": { + "AlarmNames": { + "shape": "S2" + } + } + } + }, + "EnableAlarmActions": { + "input": { + "type": "structure", + "required": [ + "AlarmNames" + ], + "members": { + "AlarmNames": { + "shape": "S2" + } + } + } + }, + "GetMetricStatistics": { + "input": { + "type": "structure", + "required": [ + "Namespace", + "MetricName", + "StartTime", + "EndTime", + "Period", + "Statistics" + ], + "members": { + "Namespace": {}, + "MetricName": {}, + "Dimensions": { + "shape": "Sv" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Period": { + "type": "integer" + }, + "Statistics": { + "type": "list", + "member": {} + }, + "Unit": {} + } + }, + "output": { + "resultWrapper": "GetMetricStatisticsResult", + "type": "structure", + "members": { + "Label": {}, + "Datapoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Timestamp": { + "type": "timestamp" + }, + "SampleCount": { + "type": "double" + }, + "Average": { + "type": "double" + }, + "Sum": { + "type": "double" + }, + "Minimum": { + "type": "double" + }, + "Maximum": { + "type": "double" + }, + "Unit": {} + }, + "xmlOrder": [ + "Timestamp", + "SampleCount", + "Average", + "Sum", + "Minimum", + "Maximum", + "Unit" + ] + } + } + } + } + }, + "ListMetrics": { + "input": { + "type": "structure", + "members": { + "Namespace": {}, + "MetricName": {}, + "Dimensions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Value": {} + } + } + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListMetricsResult", + "type": "structure", + "members": { + "Metrics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Namespace": {}, + "MetricName": {}, + "Dimensions": { + "shape": "Sv" + } + }, + "xmlOrder": [ + "Namespace", + "MetricName", + "Dimensions" + ] + } + }, + "NextToken": {} + }, + "xmlOrder": [ + "Metrics", + "NextToken" + ] + } + }, + "PutMetricAlarm": { + "input": { + "type": "structure", + "required": [ + "AlarmName", + "MetricName", + "Namespace", + "Statistic", + "Period", + "EvaluationPeriods", + "Threshold", + "ComparisonOperator" + ], + "members": { + "AlarmName": {}, + "AlarmDescription": {}, + "ActionsEnabled": { + "type": "boolean" + }, + "OKActions": { + "shape": "So" + }, + "AlarmActions": { + "shape": "So" + }, + "InsufficientDataActions": { + "shape": "So" + }, + "MetricName": {}, + "Namespace": {}, + "Statistic": {}, + "Dimensions": { + "shape": "Sv" + }, + "Period": { + "type": "integer" + }, + "Unit": {}, + "EvaluationPeriods": { + "type": "integer" + }, + "Threshold": { + "type": "double" + }, + "ComparisonOperator": {} + } + } + }, + "PutMetricData": { + "input": { + "type": "structure", + "required": [ + "Namespace", + "MetricData" + ], + "members": { + "Namespace": {}, + "MetricData": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "MetricName" + ], + "members": { + "MetricName": {}, + "Dimensions": { + "shape": "Sv" + }, + "Timestamp": { + "type": "timestamp" + }, + "Value": { + "type": "double" + }, + "StatisticValues": { + "type": "structure", + "required": [ + "SampleCount", + "Sum", + "Minimum", + "Maximum" + ], + "members": { + "SampleCount": { + "type": "double" + }, + "Sum": { + "type": "double" + }, + "Minimum": { + "type": "double" + }, + "Maximum": { + "type": "double" + } + } + }, + "Unit": {} + } + } + } + } + } + }, + "SetAlarmState": { + "input": { + "type": "structure", + "required": [ + "AlarmName", + "StateValue", + "StateReason" + ], + "members": { + "AlarmName": {}, + "StateValue": {}, + "StateReason": {}, + "StateReasonData": {} + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "Sj": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AlarmName": {}, + "AlarmArn": {}, + "AlarmDescription": {}, + "AlarmConfigurationUpdatedTimestamp": { + "type": "timestamp" + }, + "ActionsEnabled": { + "type": "boolean" + }, + "OKActions": { + "shape": "So" + }, + "AlarmActions": { + "shape": "So" + }, + "InsufficientDataActions": { + "shape": "So" + }, + "StateValue": {}, + "StateReason": {}, + "StateReasonData": {}, + "StateUpdatedTimestamp": { + "type": "timestamp" + }, + "MetricName": {}, + "Namespace": {}, + "Statistic": {}, + "Dimensions": { + "shape": "Sv" + }, + "Period": { + "type": "integer" + }, + "Unit": {}, + "EvaluationPeriods": { + "type": "integer" + }, + "Threshold": { + "type": "double" + }, + "ComparisonOperator": {} + }, + "xmlOrder": [ + "AlarmName", + "AlarmArn", + "AlarmDescription", + "AlarmConfigurationUpdatedTimestamp", + "ActionsEnabled", + "OKActions", + "AlarmActions", + "InsufficientDataActions", + "StateValue", + "StateReason", + "StateReasonData", + "StateUpdatedTimestamp", + "MetricName", + "Namespace", + "Statistic", + "Dimensions", + "Period", + "Unit", + "EvaluationPeriods", + "Threshold", + "ComparisonOperator" + ] + } + }, + "So": { + "type": "list", + "member": {} + }, + "Sv": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + }, + "xmlOrder": [ + "Name", + "Value" + ] + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.paginators.json new file mode 100755 index 0000000..7bee28c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.paginators.json @@ -0,0 +1,24 @@ +{ + "pagination": { + "DescribeAlarmHistory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "AlarmHistoryItems" + }, + "DescribeAlarms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "MetricAlarms" + }, + "DescribeAlarmsForMetric": { + "result_key": "MetricAlarms" + }, + "ListMetrics": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Metrics" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.waiters2.json new file mode 100755 index 0000000..cb0cf0b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/monitoring-2010-08-01.waiters2.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "waiters": { + "AlarmExists": { + "delay": 5, + "maxAttempts": 40, + "operation": "DescribeAlarms", + "acceptors": [ + { + "matcher": "path", + "expected": true, + "argument": "length(MetricAlarms[]) > `0`", + "state": "success" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.min.json new file mode 100755 index 0000000..fb2c0f8 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.min.json @@ -0,0 +1,2141 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-02-18", + "endpointPrefix": "opsworks", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS OpsWorks", + "signatureVersion": "v4", + "targetPrefix": "OpsWorks_20130218" + }, + "operations": { + "AssignInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "LayerIds" + ], + "members": { + "InstanceId": {}, + "LayerIds": { + "shape": "S3" + } + } + } + }, + "AssignVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "VolumeId": {}, + "InstanceId": {} + } + } + }, + "AssociateElasticIp": { + "input": { + "type": "structure", + "required": [ + "ElasticIp" + ], + "members": { + "ElasticIp": {}, + "InstanceId": {} + } + } + }, + "AttachElasticLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "ElasticLoadBalancerName", + "LayerId" + ], + "members": { + "ElasticLoadBalancerName": {}, + "LayerId": {} + } + } + }, + "CloneStack": { + "input": { + "type": "structure", + "required": [ + "SourceStackId", + "ServiceRoleArn" + ], + "members": { + "SourceStackId": {}, + "Name": {}, + "Region": {}, + "VpcId": {}, + "Attributes": { + "shape": "S8" + }, + "ServiceRoleArn": {}, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "shape": "Sa" + }, + "ChefConfiguration": { + "shape": "Sb" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "shape": "Sd" + }, + "DefaultSshKeyName": {}, + "ClonePermissions": { + "type": "boolean" + }, + "CloneAppIds": { + "shape": "S3" + }, + "DefaultRootDeviceType": {}, + "AgentVersion": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "CreateApp": { + "input": { + "type": "structure", + "required": [ + "StackId", + "Name", + "Type" + ], + "members": { + "StackId": {}, + "Shortname": {}, + "Name": {}, + "Description": {}, + "DataSources": { + "shape": "Si" + }, + "Type": {}, + "AppSource": { + "shape": "Sd" + }, + "Domains": { + "shape": "S3" + }, + "EnableSsl": { + "type": "boolean" + }, + "SslConfiguration": { + "shape": "Sl" + }, + "Attributes": { + "shape": "Sm" + }, + "Environment": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppId": {} + } + } + }, + "CreateDeployment": { + "input": { + "type": "structure", + "required": [ + "StackId", + "Command" + ], + "members": { + "StackId": {}, + "AppId": {}, + "InstanceIds": { + "shape": "S3" + }, + "LayerIds": { + "shape": "S3" + }, + "Command": { + "shape": "Ss" + }, + "Comment": {}, + "CustomJson": {} + } + }, + "output": { + "type": "structure", + "members": { + "DeploymentId": {} + } + } + }, + "CreateInstance": { + "input": { + "type": "structure", + "required": [ + "StackId", + "LayerIds", + "InstanceType" + ], + "members": { + "StackId": {}, + "LayerIds": { + "shape": "S3" + }, + "InstanceType": {}, + "AutoScalingType": {}, + "Hostname": {}, + "Os": {}, + "AmiId": {}, + "SshKeyName": {}, + "AvailabilityZone": {}, + "VirtualizationType": {}, + "SubnetId": {}, + "Architecture": {}, + "RootDeviceType": {}, + "BlockDeviceMappings": { + "shape": "Sz" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "AgentVersion": {}, + "Tenancy": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + }, + "CreateLayer": { + "input": { + "type": "structure", + "required": [ + "StackId", + "Type", + "Name", + "Shortname" + ], + "members": { + "StackId": {}, + "Type": {}, + "Name": {}, + "Shortname": {}, + "Attributes": { + "shape": "S17" + }, + "CustomInstanceProfileArn": {}, + "CustomJson": {}, + "CustomSecurityGroupIds": { + "shape": "S3" + }, + "Packages": { + "shape": "S3" + }, + "VolumeConfigurations": { + "shape": "S19" + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomRecipes": { + "shape": "S1b" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "shape": "S1c" + } + } + }, + "output": { + "type": "structure", + "members": { + "LayerId": {} + } + } + }, + "CreateStack": { + "input": { + "type": "structure", + "required": [ + "Name", + "Region", + "ServiceRoleArn", + "DefaultInstanceProfileArn" + ], + "members": { + "Name": {}, + "Region": {}, + "VpcId": {}, + "Attributes": { + "shape": "S8" + }, + "ServiceRoleArn": {}, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "shape": "Sa" + }, + "ChefConfiguration": { + "shape": "Sb" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "shape": "Sd" + }, + "DefaultSshKeyName": {}, + "DefaultRootDeviceType": {}, + "AgentVersion": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "CreateUserProfile": { + "input": { + "type": "structure", + "required": [ + "IamUserArn" + ], + "members": { + "IamUserArn": {}, + "SshUsername": {}, + "SshPublicKey": {}, + "AllowSelfManagement": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "IamUserArn": {} + } + } + }, + "DeleteApp": { + "input": { + "type": "structure", + "required": [ + "AppId" + ], + "members": { + "AppId": {} + } + } + }, + "DeleteInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {}, + "DeleteElasticIp": { + "type": "boolean" + }, + "DeleteVolumes": { + "type": "boolean" + } + } + } + }, + "DeleteLayer": { + "input": { + "type": "structure", + "required": [ + "LayerId" + ], + "members": { + "LayerId": {} + } + } + }, + "DeleteStack": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {} + } + } + }, + "DeleteUserProfile": { + "input": { + "type": "structure", + "required": [ + "IamUserArn" + ], + "members": { + "IamUserArn": {} + } + } + }, + "DeregisterEcsCluster": { + "input": { + "type": "structure", + "required": [ + "EcsClusterArn" + ], + "members": { + "EcsClusterArn": {} + } + } + }, + "DeregisterElasticIp": { + "input": { + "type": "structure", + "required": [ + "ElasticIp" + ], + "members": { + "ElasticIp": {} + } + } + }, + "DeregisterInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {} + } + } + }, + "DeregisterRdsDbInstance": { + "input": { + "type": "structure", + "required": [ + "RdsDbInstanceArn" + ], + "members": { + "RdsDbInstanceArn": {} + } + } + }, + "DeregisterVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "VolumeId": {} + } + } + }, + "DescribeAgentVersions": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "ConfigurationManager": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": { + "AgentVersions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Version": {}, + "ConfigurationManager": { + "shape": "Sa" + } + } + } + } + } + } + }, + "DescribeApps": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "AppIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Apps": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AppId": {}, + "StackId": {}, + "Shortname": {}, + "Name": {}, + "Description": {}, + "DataSources": { + "shape": "Si" + }, + "Type": {}, + "AppSource": { + "shape": "Sd" + }, + "Domains": { + "shape": "S3" + }, + "EnableSsl": { + "type": "boolean" + }, + "SslConfiguration": { + "shape": "Sl" + }, + "Attributes": { + "shape": "Sm" + }, + "CreatedAt": {}, + "Environment": { + "shape": "So" + } + } + } + } + } + } + }, + "DescribeCommands": { + "input": { + "type": "structure", + "members": { + "DeploymentId": {}, + "InstanceId": {}, + "CommandIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Commands": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CommandId": {}, + "InstanceId": {}, + "DeploymentId": {}, + "CreatedAt": {}, + "AcknowledgedAt": {}, + "CompletedAt": {}, + "Status": {}, + "ExitCode": { + "type": "integer" + }, + "LogUrl": {}, + "Type": {} + } + } + } + } + } + }, + "DescribeDeployments": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "AppId": {}, + "DeploymentIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Deployments": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DeploymentId": {}, + "StackId": {}, + "AppId": {}, + "CreatedAt": {}, + "CompletedAt": {}, + "Duration": { + "type": "integer" + }, + "IamUserArn": {}, + "Comment": {}, + "Command": { + "shape": "Ss" + }, + "Status": {}, + "CustomJson": {}, + "InstanceIds": { + "shape": "S3" + } + } + } + } + } + } + }, + "DescribeEcsClusters": { + "input": { + "type": "structure", + "members": { + "EcsClusterArns": { + "shape": "S3" + }, + "StackId": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "EcsClusters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EcsClusterArn": {}, + "EcsClusterName": {}, + "StackId": {}, + "RegisteredAt": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeElasticIps": { + "input": { + "type": "structure", + "members": { + "InstanceId": {}, + "StackId": {}, + "Ips": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "ElasticIps": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Ip": {}, + "Name": {}, + "Domain": {}, + "Region": {}, + "InstanceId": {} + } + } + } + } + } + }, + "DescribeElasticLoadBalancers": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "LayerIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "ElasticLoadBalancers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ElasticLoadBalancerName": {}, + "Region": {}, + "DnsName": {}, + "StackId": {}, + "LayerId": {}, + "VpcId": {}, + "AvailabilityZones": { + "shape": "S3" + }, + "SubnetIds": { + "shape": "S3" + }, + "Ec2InstanceIds": { + "shape": "S3" + } + } + } + } + } + } + }, + "DescribeInstances": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "LayerId": {}, + "InstanceIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AgentVersion": {}, + "AmiId": {}, + "Architecture": {}, + "AutoScalingType": {}, + "AvailabilityZone": {}, + "BlockDeviceMappings": { + "shape": "Sz" + }, + "CreatedAt": {}, + "EbsOptimized": { + "type": "boolean" + }, + "Ec2InstanceId": {}, + "EcsClusterArn": {}, + "EcsContainerInstanceArn": {}, + "ElasticIp": {}, + "Hostname": {}, + "InfrastructureClass": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceId": {}, + "InstanceProfileArn": {}, + "InstanceType": {}, + "LastServiceErrorId": {}, + "LayerIds": { + "shape": "S3" + }, + "Os": {}, + "Platform": {}, + "PrivateDns": {}, + "PrivateIp": {}, + "PublicDns": {}, + "PublicIp": {}, + "RegisteredBy": {}, + "ReportedAgentVersion": {}, + "ReportedOs": { + "type": "structure", + "members": { + "Family": {}, + "Name": {}, + "Version": {} + } + }, + "RootDeviceType": {}, + "RootDeviceVolumeId": {}, + "SecurityGroupIds": { + "shape": "S3" + }, + "SshHostDsaKeyFingerprint": {}, + "SshHostRsaKeyFingerprint": {}, + "SshKeyName": {}, + "StackId": {}, + "Status": {}, + "SubnetId": {}, + "Tenancy": {}, + "VirtualizationType": {} + } + } + } + } + } + }, + "DescribeLayers": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "LayerIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Layers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "StackId": {}, + "LayerId": {}, + "Type": {}, + "Name": {}, + "Shortname": {}, + "Attributes": { + "shape": "S17" + }, + "CustomInstanceProfileArn": {}, + "CustomJson": {}, + "CustomSecurityGroupIds": { + "shape": "S3" + }, + "DefaultSecurityGroupNames": { + "shape": "S3" + }, + "Packages": { + "shape": "S3" + }, + "VolumeConfigurations": { + "shape": "S19" + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "DefaultRecipes": { + "shape": "S1b" + }, + "CustomRecipes": { + "shape": "S1b" + }, + "CreatedAt": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "shape": "S1c" + } + } + } + } + } + } + }, + "DescribeLoadBasedAutoScaling": { + "input": { + "type": "structure", + "required": [ + "LayerIds" + ], + "members": { + "LayerIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "LoadBasedAutoScalingConfigurations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LayerId": {}, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "shape": "S30" + }, + "DownScaling": { + "shape": "S30" + } + } + } + } + } + } + }, + "DescribeMyUserProfile": { + "output": { + "type": "structure", + "members": { + "UserProfile": { + "type": "structure", + "members": { + "IamUserArn": {}, + "Name": {}, + "SshUsername": {}, + "SshPublicKey": {} + } + } + } + } + }, + "DescribePermissions": { + "input": { + "type": "structure", + "members": { + "IamUserArn": {}, + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Permissions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "StackId": {}, + "IamUserArn": {}, + "AllowSsh": { + "type": "boolean" + }, + "AllowSudo": { + "type": "boolean" + }, + "Level": {} + } + } + } + } + } + }, + "DescribeRaidArrays": { + "input": { + "type": "structure", + "members": { + "InstanceId": {}, + "StackId": {}, + "RaidArrayIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "RaidArrays": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RaidArrayId": {}, + "InstanceId": {}, + "Name": {}, + "RaidLevel": { + "type": "integer" + }, + "NumberOfDisks": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "Device": {}, + "MountPoint": {}, + "AvailabilityZone": {}, + "CreatedAt": {}, + "StackId": {}, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + } + } + } + }, + "DescribeRdsDbInstances": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {}, + "RdsDbInstanceArns": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "RdsDbInstances": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RdsDbInstanceArn": {}, + "DbInstanceIdentifier": {}, + "DbUser": {}, + "DbPassword": {}, + "Region": {}, + "Address": {}, + "Engine": {}, + "StackId": {}, + "MissingOnRds": { + "type": "boolean" + } + } + } + } + } + } + }, + "DescribeServiceErrors": { + "input": { + "type": "structure", + "members": { + "StackId": {}, + "InstanceId": {}, + "ServiceErrorIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "ServiceErrors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ServiceErrorId": {}, + "StackId": {}, + "InstanceId": {}, + "Type": {}, + "Message": {}, + "CreatedAt": {} + } + } + } + } + } + }, + "DescribeStackProvisioningParameters": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "AgentInstallerUrl": {}, + "Parameters": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "DescribeStackSummary": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackSummary": { + "type": "structure", + "members": { + "StackId": {}, + "Name": {}, + "Arn": {}, + "LayersCount": { + "type": "integer" + }, + "AppsCount": { + "type": "integer" + }, + "InstancesCount": { + "type": "structure", + "members": { + "Assigning": { + "type": "integer" + }, + "Booting": { + "type": "integer" + }, + "ConnectionLost": { + "type": "integer" + }, + "Deregistering": { + "type": "integer" + }, + "Online": { + "type": "integer" + }, + "Pending": { + "type": "integer" + }, + "Rebooting": { + "type": "integer" + }, + "Registered": { + "type": "integer" + }, + "Registering": { + "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" + }, + "Unassigning": { + "type": "integer" + } + } + } + } + } + } + } + }, + "DescribeStacks": { + "input": { + "type": "structure", + "members": { + "StackIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Stacks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "StackId": {}, + "Name": {}, + "Arn": {}, + "Region": {}, + "VpcId": {}, + "Attributes": { + "shape": "S8" + }, + "ServiceRoleArn": {}, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "shape": "Sa" + }, + "ChefConfiguration": { + "shape": "Sb" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "shape": "Sd" + }, + "DefaultSshKeyName": {}, + "CreatedAt": {}, + "DefaultRootDeviceType": {}, + "AgentVersion": {} + } + } + } + } + } + }, + "DescribeTimeBasedAutoScaling": { + "input": { + "type": "structure", + "required": [ + "InstanceIds" + ], + "members": { + "InstanceIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "TimeBasedAutoScalingConfigurations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstanceId": {}, + "AutoScalingSchedule": { + "shape": "S40" + } + } + } + } + } + } + }, + "DescribeUserProfiles": { + "input": { + "type": "structure", + "members": { + "IamUserArns": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserProfiles": { + "type": "list", + "member": { + "type": "structure", + "members": { + "IamUserArn": {}, + "Name": {}, + "SshUsername": {}, + "SshPublicKey": {}, + "AllowSelfManagement": { + "type": "boolean" + } + } + } + } + } + } + }, + "DescribeVolumes": { + "input": { + "type": "structure", + "members": { + "InstanceId": {}, + "StackId": {}, + "RaidArrayId": {}, + "VolumeIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "Volumes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VolumeId": {}, + "Ec2VolumeId": {}, + "Name": {}, + "RaidArrayId": {}, + "InstanceId": {}, + "Status": {}, + "Size": { + "type": "integer" + }, + "Device": {}, + "MountPoint": {}, + "Region": {}, + "AvailabilityZone": {}, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + } + } + } + }, + "DetachElasticLoadBalancer": { + "input": { + "type": "structure", + "required": [ + "ElasticLoadBalancerName", + "LayerId" + ], + "members": { + "ElasticLoadBalancerName": {}, + "LayerId": {} + } + } + }, + "DisassociateElasticIp": { + "input": { + "type": "structure", + "required": [ + "ElasticIp" + ], + "members": { + "ElasticIp": {} + } + } + }, + "GetHostnameSuggestion": { + "input": { + "type": "structure", + "required": [ + "LayerId" + ], + "members": { + "LayerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "LayerId": {}, + "Hostname": {} + } + } + }, + "GrantAccess": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {}, + "ValidForInMinutes": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TemporaryCredential": { + "type": "structure", + "members": { + "Username": {}, + "Password": {}, + "ValidForInMinutes": { + "type": "integer" + }, + "InstanceId": {} + } + } + } + } + }, + "RebootInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {} + } + } + }, + "RegisterEcsCluster": { + "input": { + "type": "structure", + "required": [ + "EcsClusterArn", + "StackId" + ], + "members": { + "EcsClusterArn": {}, + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "EcsClusterArn": {} + } + } + }, + "RegisterElasticIp": { + "input": { + "type": "structure", + "required": [ + "ElasticIp", + "StackId" + ], + "members": { + "ElasticIp": {}, + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "ElasticIp": {} + } + } + }, + "RegisterInstance": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {}, + "Hostname": {}, + "PublicIp": {}, + "PrivateIp": {}, + "RsaPublicKey": {}, + "RsaPublicKeyFingerprint": {}, + "InstanceIdentity": { + "type": "structure", + "members": { + "Document": {}, + "Signature": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + }, + "RegisterRdsDbInstance": { + "input": { + "type": "structure", + "required": [ + "StackId", + "RdsDbInstanceArn", + "DbUser", + "DbPassword" + ], + "members": { + "StackId": {}, + "RdsDbInstanceArn": {}, + "DbUser": {}, + "DbPassword": {} + } + } + }, + "RegisterVolume": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "Ec2VolumeId": {}, + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeId": {} + } + } + }, + "SetLoadBasedAutoScaling": { + "input": { + "type": "structure", + "required": [ + "LayerId" + ], + "members": { + "LayerId": {}, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "shape": "S30" + }, + "DownScaling": { + "shape": "S30" + } + } + } + }, + "SetPermission": { + "input": { + "type": "structure", + "required": [ + "StackId", + "IamUserArn" + ], + "members": { + "StackId": {}, + "IamUserArn": {}, + "AllowSsh": { + "type": "boolean" + }, + "AllowSudo": { + "type": "boolean" + }, + "Level": {} + } + } + }, + "SetTimeBasedAutoScaling": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {}, + "AutoScalingSchedule": { + "shape": "S40" + } + } + } + }, + "StartInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {} + } + } + }, + "StartStack": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {} + } + } + }, + "StopInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {} + } + } + }, + "StopStack": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {} + } + } + }, + "UnassignInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {} + } + } + }, + "UnassignVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "VolumeId": {} + } + } + }, + "UpdateApp": { + "input": { + "type": "structure", + "required": [ + "AppId" + ], + "members": { + "AppId": {}, + "Name": {}, + "Description": {}, + "DataSources": { + "shape": "Si" + }, + "Type": {}, + "AppSource": { + "shape": "Sd" + }, + "Domains": { + "shape": "S3" + }, + "EnableSsl": { + "type": "boolean" + }, + "SslConfiguration": { + "shape": "Sl" + }, + "Attributes": { + "shape": "Sm" + }, + "Environment": { + "shape": "So" + } + } + } + }, + "UpdateElasticIp": { + "input": { + "type": "structure", + "required": [ + "ElasticIp" + ], + "members": { + "ElasticIp": {}, + "Name": {} + } + } + }, + "UpdateInstance": { + "input": { + "type": "structure", + "required": [ + "InstanceId" + ], + "members": { + "InstanceId": {}, + "LayerIds": { + "shape": "S3" + }, + "InstanceType": {}, + "AutoScalingType": {}, + "Hostname": {}, + "Os": {}, + "AmiId": {}, + "SshKeyName": {}, + "Architecture": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "AgentVersion": {} + } + } + }, + "UpdateLayer": { + "input": { + "type": "structure", + "required": [ + "LayerId" + ], + "members": { + "LayerId": {}, + "Name": {}, + "Shortname": {}, + "Attributes": { + "shape": "S17" + }, + "CustomInstanceProfileArn": {}, + "CustomJson": {}, + "CustomSecurityGroupIds": { + "shape": "S3" + }, + "Packages": { + "shape": "S3" + }, + "VolumeConfigurations": { + "shape": "S19" + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomRecipes": { + "shape": "S1b" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "shape": "S1c" + } + } + } + }, + "UpdateMyUserProfile": { + "input": { + "type": "structure", + "members": { + "SshPublicKey": {} + } + } + }, + "UpdateRdsDbInstance": { + "input": { + "type": "structure", + "required": [ + "RdsDbInstanceArn" + ], + "members": { + "RdsDbInstanceArn": {}, + "DbUser": {}, + "DbPassword": {} + } + } + }, + "UpdateStack": { + "input": { + "type": "structure", + "required": [ + "StackId" + ], + "members": { + "StackId": {}, + "Name": {}, + "Attributes": { + "shape": "S8" + }, + "ServiceRoleArn": {}, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "shape": "Sa" + }, + "ChefConfiguration": { + "shape": "Sb" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "shape": "Sd" + }, + "DefaultSshKeyName": {}, + "DefaultRootDeviceType": {}, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "AgentVersion": {} + } + } + }, + "UpdateUserProfile": { + "input": { + "type": "structure", + "required": [ + "IamUserArn" + ], + "members": { + "IamUserArn": {}, + "SshUsername": {}, + "SshPublicKey": {}, + "AllowSelfManagement": { + "type": "boolean" + } + } + } + }, + "UpdateVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeId" + ], + "members": { + "VolumeId": {}, + "Name": {}, + "MountPoint": {} + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": {} + }, + "S8": { + "type": "map", + "key": {}, + "value": {} + }, + "Sa": { + "type": "structure", + "members": { + "Name": {}, + "Version": {} + } + }, + "Sb": { + "type": "structure", + "members": { + "ManageBerkshelf": { + "type": "boolean" + }, + "BerkshelfVersion": {} + } + }, + "Sd": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "Si": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Type": {}, + "Arn": {}, + "DatabaseName": {} + } + } + }, + "Sl": { + "type": "structure", + "required": [ + "Certificate", + "PrivateKey" + ], + "members": { + "Certificate": {}, + "PrivateKey": {}, + "Chain": {} + } + }, + "Sm": { + "type": "map", + "key": {}, + "value": {} + }, + "So": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {}, + "Secure": { + "type": "boolean" + } + } + } + }, + "Ss": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Args": { + "type": "map", + "key": {}, + "value": { + "shape": "S3" + } + } + } + }, + "Sz": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DeviceName": {}, + "NoDevice": {}, + "VirtualName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "Iops": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": {}, + "DeleteOnTermination": { + "type": "boolean" + } + } + } + } + } + }, + "S17": { + "type": "map", + "key": {}, + "value": {} + }, + "S19": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "MountPoint", + "NumberOfDisks", + "Size" + ], + "members": { + "MountPoint": {}, + "RaidLevel": { + "type": "integer" + }, + "NumberOfDisks": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + }, + "S1b": { + "type": "structure", + "members": { + "Setup": { + "shape": "S3" + }, + "Configure": { + "shape": "S3" + }, + "Deploy": { + "shape": "S3" + }, + "Undeploy": { + "shape": "S3" + }, + "Shutdown": { + "shape": "S3" + } + } + }, + "S1c": { + "type": "structure", + "members": { + "Shutdown": { + "type": "structure", + "members": { + "ExecutionTimeout": { + "type": "integer" + }, + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + } + } + } + } + }, + "S30": { + "type": "structure", + "members": { + "InstanceCount": { + "type": "integer" + }, + "ThresholdsWaitTime": { + "type": "integer" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "CpuThreshold": { + "type": "double" + }, + "MemoryThreshold": { + "type": "double" + }, + "LoadThreshold": { + "type": "double" + }, + "Alarms": { + "shape": "S3" + } + } + }, + "S40": { + "type": "structure", + "members": { + "Monday": { + "shape": "S41" + }, + "Tuesday": { + "shape": "S41" + }, + "Wednesday": { + "shape": "S41" + }, + "Thursday": { + "shape": "S41" + }, + "Friday": { + "shape": "S41" + }, + "Saturday": { + "shape": "S41" + }, + "Sunday": { + "shape": "S41" + } + } + }, + "S41": { + "type": "map", + "key": {}, + "value": {} + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.paginators.json new file mode 100755 index 0000000..3825e7d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.paginators.json @@ -0,0 +1,55 @@ +{ + "pagination": { + "DescribeApps": { + "result_key": "Apps" + }, + "DescribeCommands": { + "result_key": "Commands" + }, + "DescribeDeployments": { + "result_key": "Deployments" + }, + "DescribeEcsClusters": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "EcsClusters" + }, + "DescribeElasticIps": { + "result_key": "ElasticIps" + }, + "DescribeElasticLoadBalancers": { + "result_key": "ElasticLoadBalancers" + }, + "DescribeInstances": { + "result_key": "Instances" + }, + "DescribeLayers": { + "result_key": "Layers" + }, + "DescribeLoadBasedAutoScaling": { + "result_key": "LoadBasedAutoScalingConfigurations" + }, + "DescribePermissions": { + "result_key": "Permissions" + }, + "DescribeRaidArrays": { + "result_key": "RaidArrays" + }, + "DescribeServiceErrors": { + "result_key": "ServiceErrors" + }, + "DescribeStacks": { + "result_key": "Stacks" + }, + "DescribeTimeBasedAutoScaling": { + "result_key": "TimeBasedAutoScalingConfigurations" + }, + "DescribeUserProfiles": { + "result_key": "UserProfiles" + }, + "DescribeVolumes": { + "result_key": "Volumes" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.waiters2.json new file mode 100755 index 0000000..e43a1e7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/opsworks-2013-02-18.waiters2.json @@ -0,0 +1,239 @@ +{ + "version": 2, + "waiters": { + "AppExists": { + "delay": 1, + "operation": "DescribeApps", + "maxAttempts": 40, + "acceptors": [ + { + "expected": 200, + "matcher": "status", + "state": "success" + }, + { + "matcher": "status", + "expected": 400, + "state": "failure" + } + ] + }, + "DeploymentSuccessful": { + "delay": 15, + "operation": "DescribeDeployments", + "maxAttempts": 40, + "description": "Wait until a deployment has completed successfully", + "acceptors": [ + { + "expected": "successful", + "matcher": "pathAll", + "state": "success", + "argument": "Deployments[].Status" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Deployments[].Status" + } + ] + }, + "InstanceOnline": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "description": "Wait until OpsWorks instance is online.", + "acceptors": [ + { + "expected": "online", + "matcher": "pathAll", + "state": "success", + "argument": "Instances[].Status" + }, + { + "expected": "setup_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "shutting_down", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "start_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "stopped", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "terminating", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "stop_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + } + ] + }, + "InstanceStopped": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "description": "Wait until OpsWorks instance is stopped.", + "acceptors": [ + { + "expected": "stopped", + "matcher": "pathAll", + "state": "success", + "argument": "Instances[].Status" + }, + { + "expected": "booting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "online", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "requested", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "running_setup", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "setup_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "start_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "stop_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + } + ] + }, + "InstanceTerminated": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "description": "Wait until OpsWorks instance is terminated.", + "acceptors": [ + { + "expected": "terminated", + "matcher": "pathAll", + "state": "success", + "argument": "Instances[].Status" + }, + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "success" + }, + { + "expected": "booting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "online", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "requested", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "running_setup", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "setup_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "start_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.min.json new file mode 100755 index 0000000..7de129f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.min.json @@ -0,0 +1,1895 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-01-10", + "endpointPrefix": "rds", + "protocol": "query", + "serviceAbbreviation": "Amazon RDS", + "serviceFullName": "Amazon Relational Database Service", + "signatureVersion": "v4", + "xmlNamespace": "http://rds.amazonaws.com/doc/2013-01-10/" + }, + "operations": { + "AddSourceIdentifierToSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "AddSourceIdentifierToSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "Tags" + ], + "members": { + "ResourceName": {}, + "Tags": { + "shape": "S9" + } + } + } + }, + "AuthorizeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "AuthorizeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + }, + "CopyDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceDBSnapshotIdentifier", + "TargetDBSnapshotIdentifier" + ], + "members": { + "SourceDBSnapshotIdentifier": {}, + "TargetDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "CopyDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "CreateDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "AllocatedStorage", + "DBInstanceClass", + "Engine", + "MasterUsername", + "MasterUserPassword" + ], + "members": { + "DBName": {}, + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "Engine": {}, + "MasterUsername": {}, + "MasterUserPassword": {}, + "DBSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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" + } + } + }, + "output": { + "resultWrapper": "CreateDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "CreateDBInstanceReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "SourceDBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SourceDBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "AvailabilityZone": {}, + "Port": { + "type": "integer" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CreateDBInstanceReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "CreateDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "DBParameterGroupFamily", + "Description" + ], + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + } + }, + "output": { + "resultWrapper": "CreateDBParameterGroupResult", + "type": "structure", + "members": { + "DBParameterGroup": { + "shape": "S1c" + } + } + } + }, + "CreateDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName", + "DBSecurityGroupDescription" + ], + "members": { + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {} + } + }, + "output": { + "resultWrapper": "CreateDBSecurityGroupResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + }, + "CreateDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier", + "DBInstanceIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {} + } + }, + "output": { + "resultWrapper": "CreateDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "CreateDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "DBSubnetGroupDescription", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1i" + } + } + }, + "output": { + "resultWrapper": "CreateDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S11" + } + } + } + }, + "CreateEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SnsTopicArn" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "SourceIds": { + "shape": "S5" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CreateEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "CreateOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName", + "EngineName", + "MajorEngineVersion", + "OptionGroupDescription" + ], + "members": { + "OptionGroupName": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "OptionGroupDescription": {} + } + }, + "output": { + "resultWrapper": "CreateOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S1o" + } + } + } + }, + "DeleteDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SkipFinalSnapshot": { + "type": "boolean" + }, + "FinalDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "DeleteDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {} + } + } + }, + "DeleteDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {} + } + } + }, + "DeleteDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "DeleteDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName" + ], + "members": { + "DBSubnetGroupName": {} + } + } + }, + "DeleteEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {} + } + }, + "output": { + "resultWrapper": "DeleteEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "DeleteOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {} + } + } + }, + "DescribeDBEngineVersions": { + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + }, + "ListSupportedCharacterSets": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeDBEngineVersionsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBEngineVersions": { + "type": "list", + "member": { + "locationName": "DBEngineVersion", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "DBEngineDescription": {}, + "DBEngineVersionDescription": {}, + "DefaultCharacterSet": { + "shape": "S25" + }, + "SupportedCharacterSets": { + "type": "list", + "member": { + "shape": "S25", + "locationName": "CharacterSet" + } + } + } + } + } + } + } + }, + "DescribeDBInstances": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "DBInstances": { + "type": "list", + "member": { + "shape": "St", + "locationName": "DBInstance" + } + } + } + } + }, + "DescribeDBParameterGroups": { + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBParameterGroups": { + "type": "list", + "member": { + "shape": "S1c", + "locationName": "DBParameterGroup" + } + } + } + } + }, + "DescribeDBParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParametersResult", + "type": "structure", + "members": { + "Parameters": { + "shape": "S2f" + }, + "Marker": {} + } + } + }, + "DescribeDBSecurityGroups": { + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSecurityGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSecurityGroups": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "DBSecurityGroup" + } + } + } + } + }, + "DescribeDBSnapshots": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "SnapshotType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSnapshots": { + "type": "list", + "member": { + "shape": "Sk", + "locationName": "DBSnapshot" + } + } + } + } + }, + "DescribeDBSubnetGroups": { + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSubnetGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSubnetGroups": { + "type": "list", + "member": { + "shape": "S11", + "locationName": "DBSubnetGroup" + } + } + } + } + }, + "DescribeEngineDefaultParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupFamily" + ], + "members": { + "DBParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEngineDefaultParametersResult", + "type": "structure", + "members": { + "EngineDefaults": { + "type": "structure", + "members": { + "DBParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "shape": "S2f" + } + }, + "wrapper": true + } + } + } + }, + "DescribeEventCategories": { + "input": { + "type": "structure", + "members": { + "SourceType": {} + } + }, + "output": { + "resultWrapper": "DescribeEventCategoriesResult", + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "member": { + "locationName": "EventCategoriesMap", + "type": "structure", + "members": { + "SourceType": {}, + "EventCategories": { + "shape": "S6" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeEventSubscriptions": { + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventSubscriptionsResult", + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "member": { + "shape": "S4", + "locationName": "EventSubscription" + } + } + } + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "EventCategories": { + "shape": "S6" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "member": { + "locationName": "Event", + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "shape": "S6" + }, + "Date": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeOptionGroupOptions": { + "input": { + "type": "structure", + "required": [ + "EngineName" + ], + "members": { + "EngineName": {}, + "MajorEngineVersion": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupOptionsResult", + "type": "structure", + "members": { + "OptionGroupOptions": { + "type": "list", + "member": { + "locationName": "OptionGroupOption", + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "MinimumRequiredMinorEngineVersion": {}, + "PortRequired": { + "type": "boolean" + }, + "DefaultPort": { + "type": "integer" + }, + "OptionsDependedOn": { + "type": "list", + "member": { + "locationName": "OptionName" + } + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeOptionGroups": { + "input": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Marker": {}, + "MaxRecords": { + "type": "integer" + }, + "EngineName": {}, + "MajorEngineVersion": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupsResult", + "type": "structure", + "members": { + "OptionGroupsList": { + "type": "list", + "member": { + "shape": "S1o", + "locationName": "OptionGroup" + } + }, + "Marker": {} + } + } + }, + "DescribeOrderableDBInstanceOptions": { + "input": { + "type": "structure", + "required": [ + "Engine" + ], + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "Vpc": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOrderableDBInstanceOptionsResult", + "type": "structure", + "members": { + "OrderableDBInstanceOptions": { + "type": "list", + "member": { + "locationName": "OrderableDBInstanceOption", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "AvailabilityZones": { + "type": "list", + "member": { + "shape": "S14", + "locationName": "AvailabilityZone" + } + }, + "MultiAZCapable": { + "type": "boolean" + }, + "ReadReplicaCapable": { + "type": "boolean" + }, + "Vpc": { + "type": "boolean" + } + }, + "wrapper": true + } + }, + "Marker": {} + } + } + }, + "DescribeReservedDBInstances": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstances": { + "type": "list", + "member": { + "shape": "S3m", + "locationName": "ReservedDBInstance" + } + } + } + } + }, + "DescribeReservedDBInstancesOfferings": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesOfferingsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstancesOfferings": { + "type": "list", + "member": { + "locationName": "ReservedDBInstancesOffering", + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "RecurringCharges": { + "shape": "S3o" + } + }, + "wrapper": true + } + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName" + ], + "members": { + "ResourceName": {} + } + }, + "output": { + "resultWrapper": "ListTagsForResourceResult", + "type": "structure", + "members": { + "TagList": { + "shape": "S9" + } + } + } + }, + "ModifyDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "DBSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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": { + "resultWrapper": "ModifyDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "ModifyDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "Parameters" + ], + "members": { + "DBParameterGroupName": {}, + "Parameters": { + "shape": "S2f" + } + } + }, + "output": { + "shape": "S3z", + "resultWrapper": "ModifyDBParameterGroupResult" + } + }, + "ModifyDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1i" + } + } + }, + "output": { + "resultWrapper": "ModifyDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S11" + } + } + } + }, + "ModifyEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "ModifyOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {}, + "OptionsToInclude": { + "type": "list", + "member": { + "locationName": "OptionConfiguration", + "type": "structure", + "required": [ + "OptionName" + ], + "members": { + "OptionName": {}, + "Port": { + "type": "integer" + }, + "DBSecurityGroupMemberships": { + "shape": "Sp" + }, + "VpcSecurityGroupMemberships": { + "shape": "Sq" + } + } + } + }, + "OptionsToRemove": { + "type": "list", + "member": {} + }, + "ApplyImmediately": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S1o" + } + } + } + }, + "PromoteReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {} + } + }, + "output": { + "resultWrapper": "PromoteReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "PurchaseReservedDBInstancesOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedDBInstancesOfferingId" + ], + "members": { + "ReservedDBInstancesOfferingId": {}, + "ReservedDBInstanceId": {}, + "DBInstanceCount": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "PurchaseReservedDBInstancesOfferingResult", + "type": "structure", + "members": { + "ReservedDBInstance": { + "shape": "S3m" + } + } + } + }, + "RebootDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "ForceFailover": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "RebootDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RemoveSourceIdentifierFromSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "RemoveSourceIdentifierFromSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "TagKeys" + ], + "members": { + "ResourceName": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "ResetDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "shape": "S2f" + } + } + }, + "output": { + "shape": "S3z", + "resultWrapper": "ResetDBParameterGroupResult" + } + }, + "RestoreDBInstanceFromDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "DBSnapshotIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "DBInstanceClass": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "MultiAZ": { + "type": "boolean" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "DBName": {}, + "Engine": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {} + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceFromDBSnapshotResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RestoreDBInstanceToPointInTime": { + "input": { + "type": "structure", + "required": [ + "SourceDBInstanceIdentifier", + "TargetDBInstanceIdentifier" + ], + "members": { + "SourceDBInstanceIdentifier": {}, + "TargetDBInstanceIdentifier": {}, + "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": {} + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceToPointInTimeResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RevokeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "RevokeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "Id": {}, + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "shape": "S5" + }, + "EventCategoriesList": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S5": { + "type": "list", + "member": { + "locationName": "SourceId" + } + }, + "S6": { + "type": "list", + "member": { + "locationName": "EventCategory" + } + }, + "S9": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sd": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "member": { + "locationName": "EC2SecurityGroup", + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + } + }, + "IPRanges": { + "type": "list", + "member": { + "locationName": "IPRange", + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + } + } + } + }, + "wrapper": true + }, + "Sk": { + "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" + } + }, + "wrapper": true + }, + "Sp": { + "type": "list", + "member": { + "locationName": "DBSecurityGroupName" + } + }, + "Sq": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupId" + } + }, + "St": { + "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": { + "shape": "Sv" + }, + "VpcSecurityGroups": { + "shape": "Sx" + }, + "DBParameterGroups": { + "type": "list", + "member": { + "locationName": "DBParameterGroup", + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + } + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "shape": "S11" + }, + "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", + "member": { + "locationName": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMembership": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + } + }, + "wrapper": true + }, + "Sv": { + "type": "list", + "member": { + "locationName": "DBSecurityGroup", + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + } + } + }, + "Sx": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupMembership", + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + } + } + }, + "S11": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "shape": "S14" + }, + "SubnetStatus": {} + } + } + } + }, + "wrapper": true + }, + "S14": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S1c": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + }, + "wrapper": true + }, + "S1i": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "S1o": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "member": { + "locationName": "Option", + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Port": { + "type": "integer" + }, + "DBSecurityGroupMemberships": { + "shape": "Sv" + }, + "VpcSecurityGroupMemberships": { + "shape": "Sx" + } + } + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + }, + "wrapper": true + }, + "S25": { + "type": "structure", + "members": { + "CharacterSetName": {}, + "CharacterSetDescription": {} + } + }, + "S2f": { + "type": "list", + "member": { + "locationName": "Parameter", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + } + } + }, + "S3m": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "DBInstanceCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "State": {}, + "RecurringCharges": { + "shape": "S3o" + } + }, + "wrapper": true + }, + "S3o": { + "type": "list", + "member": { + "locationName": "RecurringCharge", + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "double" + }, + "RecurringChargeFrequency": {} + }, + "wrapper": true + } + }, + "S3z": { + "type": "structure", + "members": { + "DBParameterGroupName": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.paginators.json new file mode 100755 index 0000000..e70d762 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-01-10.paginators.json @@ -0,0 +1,97 @@ +{ + "pagination": { + "DescribeDBEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBEngineVersions" + }, + "DescribeDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBInstances" + }, + "DescribeDBParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBParameterGroups" + }, + "DescribeDBParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeDBSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSecurityGroups" + }, + "DescribeDBSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSnapshots" + }, + "DescribeDBSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeOptionGroupOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupOptions" + }, + "DescribeOptionGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupsList" + }, + "DescribeOrderableDBInstanceOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableDBInstanceOptions" + }, + "DescribeReservedDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstances" + }, + "DescribeReservedDBInstancesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstancesOfferings" + }, + "ListTagsForResource": { + "result_key": "TagList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.min.json new file mode 100755 index 0000000..c4d5920 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.min.json @@ -0,0 +1,2027 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-02-12", + "endpointPrefix": "rds", + "protocol": "query", + "serviceAbbreviation": "Amazon RDS", + "serviceFullName": "Amazon Relational Database Service", + "signatureVersion": "v4", + "xmlNamespace": "http://rds.amazonaws.com/doc/2013-02-12/" + }, + "operations": { + "AddSourceIdentifierToSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "AddSourceIdentifierToSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "Tags" + ], + "members": { + "ResourceName": {}, + "Tags": { + "shape": "S9" + } + } + } + }, + "AuthorizeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "AuthorizeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + }, + "CopyDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceDBSnapshotIdentifier", + "TargetDBSnapshotIdentifier" + ], + "members": { + "SourceDBSnapshotIdentifier": {}, + "TargetDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "CopyDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "CreateDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "AllocatedStorage", + "DBInstanceClass", + "Engine", + "MasterUsername", + "MasterUserPassword" + ], + "members": { + "DBName": {}, + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "Engine": {}, + "MasterUsername": {}, + "MasterUserPassword": {}, + "DBSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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" + } + } + }, + "output": { + "resultWrapper": "CreateDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "CreateDBInstanceReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "SourceDBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SourceDBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "AvailabilityZone": {}, + "Port": { + "type": "integer" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CreateDBInstanceReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "CreateDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "DBParameterGroupFamily", + "Description" + ], + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + } + }, + "output": { + "resultWrapper": "CreateDBParameterGroupResult", + "type": "structure", + "members": { + "DBParameterGroup": { + "shape": "S1d" + } + } + } + }, + "CreateDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName", + "DBSecurityGroupDescription" + ], + "members": { + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {} + } + }, + "output": { + "resultWrapper": "CreateDBSecurityGroupResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + }, + "CreateDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier", + "DBInstanceIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {} + } + }, + "output": { + "resultWrapper": "CreateDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "CreateDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "DBSubnetGroupDescription", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1j" + } + } + }, + "output": { + "resultWrapper": "CreateDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S11" + } + } + } + }, + "CreateEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SnsTopicArn" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "SourceIds": { + "shape": "S5" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CreateEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "CreateOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName", + "EngineName", + "MajorEngineVersion", + "OptionGroupDescription" + ], + "members": { + "OptionGroupName": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "OptionGroupDescription": {} + } + }, + "output": { + "resultWrapper": "CreateOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S1p" + } + } + } + }, + "DeleteDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SkipFinalSnapshot": { + "type": "boolean" + }, + "FinalDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "DeleteDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {} + } + } + }, + "DeleteDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {} + } + } + }, + "DeleteDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "DeleteDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName" + ], + "members": { + "DBSubnetGroupName": {} + } + } + }, + "DeleteEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {} + } + }, + "output": { + "resultWrapper": "DeleteEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "DeleteOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {} + } + } + }, + "DescribeDBEngineVersions": { + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + }, + "ListSupportedCharacterSets": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeDBEngineVersionsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBEngineVersions": { + "type": "list", + "member": { + "locationName": "DBEngineVersion", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "DBEngineDescription": {}, + "DBEngineVersionDescription": {}, + "DefaultCharacterSet": { + "shape": "S28" + }, + "SupportedCharacterSets": { + "type": "list", + "member": { + "shape": "S28", + "locationName": "CharacterSet" + } + } + } + } + } + } + } + }, + "DescribeDBInstances": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "DBInstances": { + "type": "list", + "member": { + "shape": "St", + "locationName": "DBInstance" + } + } + } + } + }, + "DescribeDBLogFiles": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "FilenameContains": {}, + "FileLastWritten": { + "type": "long" + }, + "FileSize": { + "type": "long" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBLogFilesResult", + "type": "structure", + "members": { + "DescribeDBLogFiles": { + "type": "list", + "member": { + "locationName": "DescribeDBLogFilesDetails", + "type": "structure", + "members": { + "LogFileName": {}, + "LastWritten": { + "type": "long" + }, + "Size": { + "type": "long" + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeDBParameterGroups": { + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBParameterGroups": { + "type": "list", + "member": { + "shape": "S1d", + "locationName": "DBParameterGroup" + } + } + } + } + }, + "DescribeDBParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParametersResult", + "type": "structure", + "members": { + "Parameters": { + "shape": "S2n" + }, + "Marker": {} + } + } + }, + "DescribeDBSecurityGroups": { + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSecurityGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSecurityGroups": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "DBSecurityGroup" + } + } + } + } + }, + "DescribeDBSnapshots": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "SnapshotType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSnapshots": { + "type": "list", + "member": { + "shape": "Sk", + "locationName": "DBSnapshot" + } + } + } + } + }, + "DescribeDBSubnetGroups": { + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSubnetGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSubnetGroups": { + "type": "list", + "member": { + "shape": "S11", + "locationName": "DBSubnetGroup" + } + } + } + } + }, + "DescribeEngineDefaultParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupFamily" + ], + "members": { + "DBParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEngineDefaultParametersResult", + "type": "structure", + "members": { + "EngineDefaults": { + "type": "structure", + "members": { + "DBParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "shape": "S2n" + } + }, + "wrapper": true + } + } + } + }, + "DescribeEventCategories": { + "input": { + "type": "structure", + "members": { + "SourceType": {} + } + }, + "output": { + "resultWrapper": "DescribeEventCategoriesResult", + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "member": { + "locationName": "EventCategoriesMap", + "type": "structure", + "members": { + "SourceType": {}, + "EventCategories": { + "shape": "S6" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeEventSubscriptions": { + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventSubscriptionsResult", + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "member": { + "shape": "S4", + "locationName": "EventSubscription" + } + } + } + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "EventCategories": { + "shape": "S6" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "member": { + "locationName": "Event", + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "shape": "S6" + }, + "Date": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeOptionGroupOptions": { + "input": { + "type": "structure", + "required": [ + "EngineName" + ], + "members": { + "EngineName": {}, + "MajorEngineVersion": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupOptionsResult", + "type": "structure", + "members": { + "OptionGroupOptions": { + "type": "list", + "member": { + "locationName": "OptionGroupOption", + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "MinimumRequiredMinorEngineVersion": {}, + "PortRequired": { + "type": "boolean" + }, + "DefaultPort": { + "type": "integer" + }, + "OptionsDependedOn": { + "type": "list", + "member": { + "locationName": "OptionName" + } + }, + "Persistent": { + "type": "boolean" + }, + "OptionGroupOptionSettings": { + "type": "list", + "member": { + "locationName": "OptionGroupOptionSetting", + "type": "structure", + "members": { + "SettingName": {}, + "SettingDescription": {}, + "DefaultValue": {}, + "ApplyType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeOptionGroups": { + "input": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Marker": {}, + "MaxRecords": { + "type": "integer" + }, + "EngineName": {}, + "MajorEngineVersion": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupsResult", + "type": "structure", + "members": { + "OptionGroupsList": { + "type": "list", + "member": { + "shape": "S1p", + "locationName": "OptionGroup" + } + }, + "Marker": {} + } + } + }, + "DescribeOrderableDBInstanceOptions": { + "input": { + "type": "structure", + "required": [ + "Engine" + ], + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "Vpc": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOrderableDBInstanceOptionsResult", + "type": "structure", + "members": { + "OrderableDBInstanceOptions": { + "type": "list", + "member": { + "locationName": "OrderableDBInstanceOption", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "AvailabilityZones": { + "type": "list", + "member": { + "shape": "S14", + "locationName": "AvailabilityZone" + } + }, + "MultiAZCapable": { + "type": "boolean" + }, + "ReadReplicaCapable": { + "type": "boolean" + }, + "Vpc": { + "type": "boolean" + } + }, + "wrapper": true + } + }, + "Marker": {} + } + } + }, + "DescribeReservedDBInstances": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstances": { + "type": "list", + "member": { + "shape": "S3w", + "locationName": "ReservedDBInstance" + } + } + } + } + }, + "DescribeReservedDBInstancesOfferings": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesOfferingsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstancesOfferings": { + "type": "list", + "member": { + "locationName": "ReservedDBInstancesOffering", + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "RecurringCharges": { + "shape": "S3y" + } + }, + "wrapper": true + } + } + } + } + }, + "DownloadDBLogFilePortion": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "LogFileName" + ], + "members": { + "DBInstanceIdentifier": {}, + "LogFileName": {}, + "Marker": {}, + "NumberOfLines": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DownloadDBLogFilePortionResult", + "type": "structure", + "members": { + "LogFileData": {}, + "Marker": {}, + "AdditionalDataPending": { + "type": "boolean" + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName" + ], + "members": { + "ResourceName": {} + } + }, + "output": { + "resultWrapper": "ListTagsForResourceResult", + "type": "structure", + "members": { + "TagList": { + "shape": "S9" + } + } + } + }, + "ModifyDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "DBSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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": { + "resultWrapper": "ModifyDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "ModifyDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "Parameters" + ], + "members": { + "DBParameterGroupName": {}, + "Parameters": { + "shape": "S2n" + } + } + }, + "output": { + "shape": "S4b", + "resultWrapper": "ModifyDBParameterGroupResult" + } + }, + "ModifyDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1j" + } + } + }, + "output": { + "resultWrapper": "ModifyDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S11" + } + } + } + }, + "ModifyEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "ModifyOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {}, + "OptionsToInclude": { + "type": "list", + "member": { + "locationName": "OptionConfiguration", + "type": "structure", + "required": [ + "OptionName" + ], + "members": { + "OptionName": {}, + "Port": { + "type": "integer" + }, + "DBSecurityGroupMemberships": { + "shape": "Sp" + }, + "VpcSecurityGroupMemberships": { + "shape": "Sq" + }, + "OptionSettings": { + "type": "list", + "member": { + "shape": "S1t", + "locationName": "OptionSetting" + } + } + } + } + }, + "OptionsToRemove": { + "type": "list", + "member": {} + }, + "ApplyImmediately": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S1p" + } + } + } + }, + "PromoteReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {} + } + }, + "output": { + "resultWrapper": "PromoteReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "PurchaseReservedDBInstancesOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedDBInstancesOfferingId" + ], + "members": { + "ReservedDBInstancesOfferingId": {}, + "ReservedDBInstanceId": {}, + "DBInstanceCount": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "PurchaseReservedDBInstancesOfferingResult", + "type": "structure", + "members": { + "ReservedDBInstance": { + "shape": "S3w" + } + } + } + }, + "RebootDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "ForceFailover": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "RebootDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RemoveSourceIdentifierFromSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "RemoveSourceIdentifierFromSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "TagKeys" + ], + "members": { + "ResourceName": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "ResetDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "shape": "S2n" + } + } + }, + "output": { + "shape": "S4b", + "resultWrapper": "ResetDBParameterGroupResult" + } + }, + "RestoreDBInstanceFromDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "DBSnapshotIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "DBInstanceClass": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "MultiAZ": { + "type": "boolean" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "DBName": {}, + "Engine": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {} + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceFromDBSnapshotResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RestoreDBInstanceToPointInTime": { + "input": { + "type": "structure", + "required": [ + "SourceDBInstanceIdentifier", + "TargetDBInstanceIdentifier" + ], + "members": { + "SourceDBInstanceIdentifier": {}, + "TargetDBInstanceIdentifier": {}, + "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": {} + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceToPointInTimeResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RevokeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "RevokeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "shape": "S5" + }, + "EventCategoriesList": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S5": { + "type": "list", + "member": { + "locationName": "SourceId" + } + }, + "S6": { + "type": "list", + "member": { + "locationName": "EventCategory" + } + }, + "S9": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sd": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "member": { + "locationName": "EC2SecurityGroup", + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + } + }, + "IPRanges": { + "type": "list", + "member": { + "locationName": "IPRange", + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + } + } + } + }, + "wrapper": true + }, + "Sk": { + "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": {} + }, + "wrapper": true + }, + "Sp": { + "type": "list", + "member": { + "locationName": "DBSecurityGroupName" + } + }, + "Sq": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupId" + } + }, + "St": { + "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": { + "shape": "Sv" + }, + "VpcSecurityGroups": { + "shape": "Sx" + }, + "DBParameterGroups": { + "type": "list", + "member": { + "locationName": "DBParameterGroup", + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + } + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "shape": "S11" + }, + "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", + "member": { + "locationName": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "member": { + "locationName": "OptionGroupMembership", + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + } + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + } + }, + "wrapper": true + }, + "Sv": { + "type": "list", + "member": { + "locationName": "DBSecurityGroup", + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + } + } + }, + "Sx": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupMembership", + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + } + } + }, + "S11": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "shape": "S14" + }, + "SubnetStatus": {} + } + } + } + }, + "wrapper": true + }, + "S14": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S1d": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + }, + "wrapper": true + }, + "S1j": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "S1p": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "member": { + "locationName": "Option", + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Persistent": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "OptionSettings": { + "type": "list", + "member": { + "shape": "S1t", + "locationName": "OptionSetting" + } + }, + "DBSecurityGroupMemberships": { + "shape": "Sv" + }, + "VpcSecurityGroupMemberships": { + "shape": "Sx" + } + } + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + }, + "wrapper": true + }, + "S1t": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + } + }, + "S28": { + "type": "structure", + "members": { + "CharacterSetName": {}, + "CharacterSetDescription": {} + } + }, + "S2n": { + "type": "list", + "member": { + "locationName": "Parameter", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + } + } + }, + "S3w": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "DBInstanceCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "State": {}, + "RecurringCharges": { + "shape": "S3y" + } + }, + "wrapper": true + }, + "S3y": { + "type": "list", + "member": { + "locationName": "RecurringCharge", + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "double" + }, + "RecurringChargeFrequency": {} + }, + "wrapper": true + } + }, + "S4b": { + "type": "structure", + "members": { + "DBParameterGroupName": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.paginators.json new file mode 100755 index 0000000..662845c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-02-12.paginators.json @@ -0,0 +1,110 @@ +{ + "pagination": { + "DescribeDBEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBEngineVersions" + }, + "DescribeDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBInstances" + }, + "DescribeDBLogFiles": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DescribeDBLogFiles" + }, + "DescribeDBParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBParameterGroups" + }, + "DescribeDBParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeDBSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSecurityGroups" + }, + "DescribeDBSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSnapshots" + }, + "DescribeDBSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeOptionGroupOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupOptions" + }, + "DescribeOptionGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupsList" + }, + "DescribeOrderableDBInstanceOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableDBInstanceOptions" + }, + "DescribeReservedDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstances" + }, + "DescribeReservedDBInstancesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstancesOfferings" + }, + "DownloadDBLogFilePortion": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "NumberOfLines", + "more_results": "AdditionalDataPending", + "result_key": "LogFileData" + }, + "ListTagsForResource": { + "result_key": "TagList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.min.json new file mode 100755 index 0000000..69fec9a --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.min.json @@ -0,0 +1,2163 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-09-09", + "endpointPrefix": "rds", + "protocol": "query", + "serviceAbbreviation": "Amazon RDS", + "serviceFullName": "Amazon Relational Database Service", + "signatureVersion": "v4", + "xmlNamespace": "http://rds.amazonaws.com/doc/2013-09-09/" + }, + "operations": { + "AddSourceIdentifierToSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "AddSourceIdentifierToSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "Tags" + ], + "members": { + "ResourceName": {}, + "Tags": { + "shape": "S9" + } + } + } + }, + "AuthorizeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "AuthorizeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + }, + "CopyDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceDBSnapshotIdentifier", + "TargetDBSnapshotIdentifier" + ], + "members": { + "SourceDBSnapshotIdentifier": {}, + "TargetDBSnapshotIdentifier": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CopyDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "CreateDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "AllocatedStorage", + "DBInstanceClass", + "Engine", + "MasterUsername", + "MasterUserPassword" + ], + "members": { + "DBName": {}, + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "Engine": {}, + "MasterUsername": {}, + "MasterUserPassword": {}, + "DBSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "CreateDBInstanceReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "SourceDBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SourceDBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "AvailabilityZone": {}, + "Port": { + "type": "integer" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "Tags": { + "shape": "S9" + }, + "DBSubnetGroupName": {} + } + }, + "output": { + "resultWrapper": "CreateDBInstanceReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "CreateDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "DBParameterGroupFamily", + "Description" + ], + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBParameterGroupResult", + "type": "structure", + "members": { + "DBParameterGroup": { + "shape": "S1f" + } + } + } + }, + "CreateDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName", + "DBSecurityGroupDescription" + ], + "members": { + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBSecurityGroupResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + }, + "CreateDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier", + "DBInstanceIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "CreateDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "DBSubnetGroupDescription", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1l" + }, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S11" + } + } + } + }, + "CreateEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SnsTopicArn" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "SourceIds": { + "shape": "S5" + }, + "Enabled": { + "type": "boolean" + }, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "CreateOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName", + "EngineName", + "MajorEngineVersion", + "OptionGroupDescription" + ], + "members": { + "OptionGroupName": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "OptionGroupDescription": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S1r" + } + } + } + }, + "DeleteDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SkipFinalSnapshot": { + "type": "boolean" + }, + "FinalDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "DeleteDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {} + } + } + }, + "DeleteDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {} + } + } + }, + "DeleteDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sk" + } + } + } + }, + "DeleteDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName" + ], + "members": { + "DBSubnetGroupName": {} + } + } + }, + "DeleteEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {} + } + }, + "output": { + "resultWrapper": "DeleteEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "DeleteOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {} + } + } + }, + "DescribeDBEngineVersions": { + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + }, + "ListSupportedCharacterSets": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeDBEngineVersionsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBEngineVersions": { + "type": "list", + "member": { + "locationName": "DBEngineVersion", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "DBEngineDescription": {}, + "DBEngineVersionDescription": {}, + "DefaultCharacterSet": { + "shape": "S2d" + }, + "SupportedCharacterSets": { + "type": "list", + "member": { + "shape": "S2d", + "locationName": "CharacterSet" + } + } + } + } + } + } + } + }, + "DescribeDBInstances": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "DBInstances": { + "type": "list", + "member": { + "shape": "St", + "locationName": "DBInstance" + } + } + } + } + }, + "DescribeDBLogFiles": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "FilenameContains": {}, + "FileLastWritten": { + "type": "long" + }, + "FileSize": { + "type": "long" + }, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBLogFilesResult", + "type": "structure", + "members": { + "DescribeDBLogFiles": { + "type": "list", + "member": { + "locationName": "DescribeDBLogFilesDetails", + "type": "structure", + "members": { + "LogFileName": {}, + "LastWritten": { + "type": "long" + }, + "Size": { + "type": "long" + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeDBParameterGroups": { + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBParameterGroups": { + "type": "list", + "member": { + "shape": "S1f", + "locationName": "DBParameterGroup" + } + } + } + } + }, + "DescribeDBParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "Source": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParametersResult", + "type": "structure", + "members": { + "Parameters": { + "shape": "S2s" + }, + "Marker": {} + } + } + }, + "DescribeDBSecurityGroups": { + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSecurityGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSecurityGroups": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "DBSecurityGroup" + } + } + } + } + }, + "DescribeDBSnapshots": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "SnapshotType": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSnapshots": { + "type": "list", + "member": { + "shape": "Sk", + "locationName": "DBSnapshot" + } + } + } + } + }, + "DescribeDBSubnetGroups": { + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSubnetGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSubnetGroups": { + "type": "list", + "member": { + "shape": "S11", + "locationName": "DBSubnetGroup" + } + } + } + } + }, + "DescribeEngineDefaultParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupFamily" + ], + "members": { + "DBParameterGroupFamily": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEngineDefaultParametersResult", + "type": "structure", + "members": { + "EngineDefaults": { + "type": "structure", + "members": { + "DBParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "shape": "S2s" + } + }, + "wrapper": true + } + } + } + }, + "DescribeEventCategories": { + "input": { + "type": "structure", + "members": { + "SourceType": {}, + "Filters": { + "shape": "S27" + } + } + }, + "output": { + "resultWrapper": "DescribeEventCategoriesResult", + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "member": { + "locationName": "EventCategoriesMap", + "type": "structure", + "members": { + "SourceType": {}, + "EventCategories": { + "shape": "S6" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeEventSubscriptions": { + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventSubscriptionsResult", + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "member": { + "shape": "S4", + "locationName": "EventSubscription" + } + } + } + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "EventCategories": { + "shape": "S6" + }, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "member": { + "locationName": "Event", + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "shape": "S6" + }, + "Date": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeOptionGroupOptions": { + "input": { + "type": "structure", + "required": [ + "EngineName" + ], + "members": { + "EngineName": {}, + "MajorEngineVersion": {}, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupOptionsResult", + "type": "structure", + "members": { + "OptionGroupOptions": { + "type": "list", + "member": { + "locationName": "OptionGroupOption", + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "MinimumRequiredMinorEngineVersion": {}, + "PortRequired": { + "type": "boolean" + }, + "DefaultPort": { + "type": "integer" + }, + "OptionsDependedOn": { + "type": "list", + "member": { + "locationName": "OptionName" + } + }, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "OptionGroupOptionSettings": { + "type": "list", + "member": { + "locationName": "OptionGroupOptionSetting", + "type": "structure", + "members": { + "SettingName": {}, + "SettingDescription": {}, + "DefaultValue": {}, + "ApplyType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeOptionGroups": { + "input": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Filters": { + "shape": "S27" + }, + "Marker": {}, + "MaxRecords": { + "type": "integer" + }, + "EngineName": {}, + "MajorEngineVersion": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupsResult", + "type": "structure", + "members": { + "OptionGroupsList": { + "type": "list", + "member": { + "shape": "S1r", + "locationName": "OptionGroup" + } + }, + "Marker": {} + } + } + }, + "DescribeOrderableDBInstanceOptions": { + "input": { + "type": "structure", + "required": [ + "Engine" + ], + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "Vpc": { + "type": "boolean" + }, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOrderableDBInstanceOptionsResult", + "type": "structure", + "members": { + "OrderableDBInstanceOptions": { + "type": "list", + "member": { + "locationName": "OrderableDBInstanceOption", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "AvailabilityZones": { + "type": "list", + "member": { + "shape": "S14", + "locationName": "AvailabilityZone" + } + }, + "MultiAZCapable": { + "type": "boolean" + }, + "ReadReplicaCapable": { + "type": "boolean" + }, + "Vpc": { + "type": "boolean" + } + }, + "wrapper": true + } + }, + "Marker": {} + } + } + }, + "DescribeReservedDBInstances": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstances": { + "type": "list", + "member": { + "shape": "S41", + "locationName": "ReservedDBInstance" + } + } + } + } + }, + "DescribeReservedDBInstancesOfferings": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "Filters": { + "shape": "S27" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesOfferingsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstancesOfferings": { + "type": "list", + "member": { + "locationName": "ReservedDBInstancesOffering", + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "RecurringCharges": { + "shape": "S43" + } + }, + "wrapper": true + } + } + } + } + }, + "DownloadDBLogFilePortion": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "LogFileName" + ], + "members": { + "DBInstanceIdentifier": {}, + "LogFileName": {}, + "Marker": {}, + "NumberOfLines": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DownloadDBLogFilePortionResult", + "type": "structure", + "members": { + "LogFileData": {}, + "Marker": {}, + "AdditionalDataPending": { + "type": "boolean" + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName" + ], + "members": { + "ResourceName": {}, + "Filters": { + "shape": "S27" + } + } + }, + "output": { + "resultWrapper": "ListTagsForResourceResult", + "type": "structure", + "members": { + "TagList": { + "shape": "S9" + } + } + } + }, + "ModifyDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "DBSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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": { + "resultWrapper": "ModifyDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "ModifyDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "Parameters" + ], + "members": { + "DBParameterGroupName": {}, + "Parameters": { + "shape": "S2s" + } + } + }, + "output": { + "shape": "S4g", + "resultWrapper": "ModifyDBParameterGroupResult" + } + }, + "ModifyDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S1l" + } + } + }, + "output": { + "resultWrapper": "ModifyDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S11" + } + } + } + }, + "ModifyEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "ModifyOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {}, + "OptionsToInclude": { + "type": "list", + "member": { + "locationName": "OptionConfiguration", + "type": "structure", + "required": [ + "OptionName" + ], + "members": { + "OptionName": {}, + "Port": { + "type": "integer" + }, + "DBSecurityGroupMemberships": { + "shape": "Sp" + }, + "VpcSecurityGroupMemberships": { + "shape": "Sq" + }, + "OptionSettings": { + "type": "list", + "member": { + "shape": "S1v", + "locationName": "OptionSetting" + } + } + } + } + }, + "OptionsToRemove": { + "type": "list", + "member": {} + }, + "ApplyImmediately": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S1r" + } + } + } + }, + "PromoteReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {} + } + }, + "output": { + "resultWrapper": "PromoteReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "PurchaseReservedDBInstancesOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedDBInstancesOfferingId" + ], + "members": { + "ReservedDBInstancesOfferingId": {}, + "ReservedDBInstanceId": {}, + "DBInstanceCount": { + "type": "integer" + }, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "PurchaseReservedDBInstancesOfferingResult", + "type": "structure", + "members": { + "ReservedDBInstance": { + "shape": "S41" + } + } + } + }, + "RebootDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "ForceFailover": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "RebootDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RemoveSourceIdentifierFromSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "RemoveSourceIdentifierFromSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "TagKeys" + ], + "members": { + "ResourceName": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "ResetDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "shape": "S2s" + } + } + }, + "output": { + "shape": "S4g", + "resultWrapper": "ResetDBParameterGroupResult" + } + }, + "RestoreDBInstanceFromDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "DBSnapshotIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "DBInstanceClass": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "MultiAZ": { + "type": "boolean" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "DBName": {}, + "Engine": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceFromDBSnapshotResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RestoreDBInstanceToPointInTime": { + "input": { + "type": "structure", + "required": [ + "SourceDBInstanceIdentifier", + "TargetDBInstanceIdentifier" + ], + "members": { + "SourceDBInstanceIdentifier": {}, + "TargetDBInstanceIdentifier": {}, + "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": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceToPointInTimeResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "St" + } + } + } + }, + "RevokeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "RevokeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sd" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "shape": "S5" + }, + "EventCategoriesList": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S5": { + "type": "list", + "member": { + "locationName": "SourceId" + } + }, + "S6": { + "type": "list", + "member": { + "locationName": "EventCategory" + } + }, + "S9": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sd": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "member": { + "locationName": "EC2SecurityGroup", + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + } + }, + "IPRanges": { + "type": "list", + "member": { + "locationName": "IPRange", + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + } + } + } + }, + "wrapper": true + }, + "Sk": { + "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": {} + }, + "wrapper": true + }, + "Sp": { + "type": "list", + "member": { + "locationName": "DBSecurityGroupName" + } + }, + "Sq": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupId" + } + }, + "St": { + "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": { + "shape": "Sv" + }, + "VpcSecurityGroups": { + "shape": "Sx" + }, + "DBParameterGroups": { + "type": "list", + "member": { + "locationName": "DBParameterGroup", + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + } + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "shape": "S11" + }, + "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", + "member": { + "locationName": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "member": { + "locationName": "OptionGroupMembership", + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + } + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "member": { + "locationName": "DBInstanceStatusInfo", + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + } + } + } + }, + "wrapper": true + }, + "Sv": { + "type": "list", + "member": { + "locationName": "DBSecurityGroup", + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + } + } + }, + "Sx": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupMembership", + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + } + } + }, + "S11": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "shape": "S14" + }, + "SubnetStatus": {} + } + } + } + }, + "wrapper": true + }, + "S14": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S1f": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + }, + "wrapper": true + }, + "S1l": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "S1r": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "member": { + "locationName": "Option", + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "OptionSettings": { + "type": "list", + "member": { + "shape": "S1v", + "locationName": "OptionSetting" + } + }, + "DBSecurityGroupMemberships": { + "shape": "Sv" + }, + "VpcSecurityGroupMemberships": { + "shape": "Sx" + } + } + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + }, + "wrapper": true + }, + "S1v": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + } + }, + "S27": { + "type": "list", + "member": { + "locationName": "Filter", + "type": "structure", + "required": [ + "Name", + "Values" + ], + "members": { + "Name": {}, + "Values": { + "type": "list", + "member": { + "locationName": "Value" + } + } + } + } + }, + "S2d": { + "type": "structure", + "members": { + "CharacterSetName": {}, + "CharacterSetDescription": {} + } + }, + "S2s": { + "type": "list", + "member": { + "locationName": "Parameter", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + } + } + }, + "S41": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "DBInstanceCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "State": {}, + "RecurringCharges": { + "shape": "S43" + } + }, + "wrapper": true + }, + "S43": { + "type": "list", + "member": { + "locationName": "RecurringCharge", + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "double" + }, + "RecurringChargeFrequency": {} + }, + "wrapper": true + } + }, + "S4g": { + "type": "structure", + "members": { + "DBParameterGroupName": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.paginators.json new file mode 100755 index 0000000..662845c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.paginators.json @@ -0,0 +1,110 @@ +{ + "pagination": { + "DescribeDBEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBEngineVersions" + }, + "DescribeDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBInstances" + }, + "DescribeDBLogFiles": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DescribeDBLogFiles" + }, + "DescribeDBParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBParameterGroups" + }, + "DescribeDBParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeDBSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSecurityGroups" + }, + "DescribeDBSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSnapshots" + }, + "DescribeDBSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeOptionGroupOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupOptions" + }, + "DescribeOptionGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupsList" + }, + "DescribeOrderableDBInstanceOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableDBInstanceOptions" + }, + "DescribeReservedDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstances" + }, + "DescribeReservedDBInstancesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstancesOfferings" + }, + "DownloadDBLogFilePortion": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "NumberOfLines", + "more_results": "AdditionalDataPending", + "result_key": "LogFileData" + }, + "ListTagsForResource": { + "result_key": "TagList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.waiters2.json new file mode 100755 index 0000000..b015007 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2013-09-09.waiters2.json @@ -0,0 +1,97 @@ +{ + "version": 2, + "waiters": { + "DBInstanceAvailable": { + "delay": 30, + "operation": "DescribeDBInstances", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-parameters", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-parameters", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + } + ] + }, + "DBInstanceDeleted": { + "delay": 30, + "operation": "DescribeDBInstances", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "creating", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "modifying", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "resetting-master-credentials", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.min.json new file mode 100755 index 0000000..cbc0ca1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.min.json @@ -0,0 +1,3304 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-10-31", + "endpointPrefix": "rds", + "protocol": "query", + "serviceAbbreviation": "Amazon RDS", + "serviceFullName": "Amazon Relational Database Service", + "signatureVersion": "v4", + "xmlNamespace": "http://rds.amazonaws.com/doc/2014-10-31/" + }, + "operations": { + "AddSourceIdentifierToSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "AddSourceIdentifierToSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "Tags" + ], + "members": { + "ResourceName": {}, + "Tags": { + "shape": "S9" + } + } + } + }, + "ApplyPendingMaintenanceAction": { + "input": { + "type": "structure", + "required": [ + "ResourceIdentifier", + "ApplyAction", + "OptInType" + ], + "members": { + "ResourceIdentifier": {}, + "ApplyAction": {}, + "OptInType": {} + } + }, + "output": { + "resultWrapper": "ApplyPendingMaintenanceActionResult", + "type": "structure", + "members": { + "ResourcePendingMaintenanceActions": { + "shape": "Sd" + } + } + } + }, + "AuthorizeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "AuthorizeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sj" + } + } + } + }, + "CopyDBClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceDBClusterSnapshotIdentifier", + "TargetDBClusterSnapshotIdentifier" + ], + "members": { + "SourceDBClusterSnapshotIdentifier": {}, + "TargetDBClusterSnapshotIdentifier": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CopyDBClusterSnapshotResult", + "type": "structure", + "members": { + "DBClusterSnapshot": { + "shape": "Sq" + } + } + } + }, + "CopyDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "SourceDBParameterGroupIdentifier", + "TargetDBParameterGroupIdentifier", + "TargetDBParameterGroupDescription" + ], + "members": { + "SourceDBParameterGroupIdentifier": {}, + "TargetDBParameterGroupIdentifier": {}, + "TargetDBParameterGroupDescription": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CopyDBParameterGroupResult", + "type": "structure", + "members": { + "DBParameterGroup": { + "shape": "Sv" + } + } + } + }, + "CopyDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceDBSnapshotIdentifier", + "TargetDBSnapshotIdentifier" + ], + "members": { + "SourceDBSnapshotIdentifier": {}, + "TargetDBSnapshotIdentifier": {}, + "KmsKeyId": {}, + "Tags": { + "shape": "S9" + }, + "CopyTags": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "CopyDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sz" + } + } + } + }, + "CopyOptionGroup": { + "input": { + "type": "structure", + "required": [ + "SourceOptionGroupIdentifier", + "TargetOptionGroupIdentifier", + "TargetOptionGroupDescription" + ], + "members": { + "SourceOptionGroupIdentifier": {}, + "TargetOptionGroupIdentifier": {}, + "TargetOptionGroupDescription": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CopyOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S13" + } + } + } + }, + "CreateDBCluster": { + "input": { + "type": "structure", + "required": [ + "DBClusterIdentifier", + "Engine", + "MasterUsername", + "MasterUserPassword" + ], + "members": { + "AvailabilityZones": { + "shape": "Sr" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "CharacterSetName": {}, + "DatabaseName": {}, + "DBClusterIdentifier": {}, + "DBClusterParameterGroupName": {}, + "VpcSecurityGroupIds": { + "shape": "S1d" + }, + "DBSubnetGroupName": {}, + "Engine": {}, + "EngineVersion": {}, + "Port": { + "type": "integer" + }, + "MasterUsername": {}, + "MasterUserPassword": {}, + "OptionGroupName": {}, + "PreferredBackupWindow": {}, + "PreferredMaintenanceWindow": {}, + "ReplicationSourceIdentifier": {}, + "Tags": { + "shape": "S9" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "KmsKeyId": {} + } + }, + "output": { + "resultWrapper": "CreateDBClusterResult", + "type": "structure", + "members": { + "DBCluster": { + "shape": "S1f" + } + } + } + }, + "CreateDBClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBClusterParameterGroupName", + "DBParameterGroupFamily", + "Description" + ], + "members": { + "DBClusterParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBClusterParameterGroupResult", + "type": "structure", + "members": { + "DBClusterParameterGroup": { + "shape": "S1m" + } + } + } + }, + "CreateDBClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBClusterSnapshotIdentifier", + "DBClusterIdentifier" + ], + "members": { + "DBClusterSnapshotIdentifier": {}, + "DBClusterIdentifier": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBClusterSnapshotResult", + "type": "structure", + "members": { + "DBClusterSnapshot": { + "shape": "Sq" + } + } + } + }, + "CreateDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "DBInstanceClass", + "Engine" + ], + "members": { + "DBName": {}, + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "Engine": {}, + "MasterUsername": {}, + "MasterUserPassword": {}, + "DBSecurityGroups": { + "shape": "S1q" + }, + "VpcSecurityGroupIds": { + "shape": "S1d" + }, + "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": { + "shape": "S9" + }, + "DBClusterIdentifier": {}, + "StorageType": {}, + "TdeCredentialArn": {}, + "TdeCredentialPassword": {}, + "StorageEncrypted": { + "type": "boolean" + }, + "KmsKeyId": {}, + "Domain": {}, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": {}, + "DomainIAMRoleName": {}, + "PromotionTier": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "CreateDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "CreateDBInstanceReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "SourceDBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SourceDBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "AvailabilityZone": {}, + "Port": { + "type": "integer" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "Tags": { + "shape": "S9" + }, + "DBSubnetGroupName": {}, + "StorageType": {}, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": {} + } + }, + "output": { + "resultWrapper": "CreateDBInstanceReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "CreateDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "DBParameterGroupFamily", + "Description" + ], + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBParameterGroupResult", + "type": "structure", + "members": { + "DBParameterGroup": { + "shape": "Sv" + } + } + } + }, + "CreateDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName", + "DBSecurityGroupDescription" + ], + "members": { + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBSecurityGroupResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sj" + } + } + } + }, + "CreateDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier", + "DBInstanceIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sz" + } + } + } + }, + "CreateDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "DBSubnetGroupDescription", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S2h" + }, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S1w" + } + } + } + }, + "CreateEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SnsTopicArn" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "SourceIds": { + "shape": "S5" + }, + "Enabled": { + "type": "boolean" + }, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "CreateOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName", + "EngineName", + "MajorEngineVersion", + "OptionGroupDescription" + ], + "members": { + "OptionGroupName": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "OptionGroupDescription": {}, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "CreateOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S13" + } + } + } + }, + "DeleteDBCluster": { + "input": { + "type": "structure", + "required": [ + "DBClusterIdentifier" + ], + "members": { + "DBClusterIdentifier": {}, + "SkipFinalSnapshot": { + "type": "boolean" + }, + "FinalDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBClusterResult", + "type": "structure", + "members": { + "DBCluster": { + "shape": "S1f" + } + } + } + }, + "DeleteDBClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBClusterParameterGroupName" + ], + "members": { + "DBClusterParameterGroupName": {} + } + } + }, + "DeleteDBClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBClusterSnapshotIdentifier" + ], + "members": { + "DBClusterSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBClusterSnapshotResult", + "type": "structure", + "members": { + "DBClusterSnapshot": { + "shape": "Sq" + } + } + } + }, + "DeleteDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "SkipFinalSnapshot": { + "type": "boolean" + }, + "FinalDBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "DeleteDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {} + } + } + }, + "DeleteDBSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {} + } + } + }, + "DeleteDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteDBSnapshotResult", + "type": "structure", + "members": { + "DBSnapshot": { + "shape": "Sz" + } + } + } + }, + "DeleteDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName" + ], + "members": { + "DBSubnetGroupName": {} + } + } + }, + "DeleteEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {} + } + }, + "output": { + "resultWrapper": "DeleteEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "DeleteOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {} + } + } + }, + "DescribeAccountAttributes": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "resultWrapper": "DescribeAccountAttributesResult", + "type": "structure", + "members": { + "AccountQuotas": { + "type": "list", + "member": { + "locationName": "AccountQuota", + "type": "structure", + "members": { + "AccountQuotaName": {}, + "Used": { + "type": "long" + }, + "Max": { + "type": "long" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeCertificates": { + "input": { + "type": "structure", + "members": { + "CertificateIdentifier": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeCertificatesResult", + "type": "structure", + "members": { + "Certificates": { + "type": "list", + "member": { + "locationName": "Certificate", + "type": "structure", + "members": { + "CertificateIdentifier": {}, + "CertificateType": {}, + "Thumbprint": {}, + "ValidFrom": { + "type": "timestamp" + }, + "ValidTill": { + "type": "timestamp" + } + }, + "wrapper": true + } + }, + "Marker": {} + } + } + }, + "DescribeDBClusterParameterGroups": { + "input": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBClusterParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBClusterParameterGroups": { + "type": "list", + "member": { + "shape": "S1m", + "locationName": "DBClusterParameterGroup" + } + } + } + } + }, + "DescribeDBClusterParameters": { + "input": { + "type": "structure", + "required": [ + "DBClusterParameterGroupName" + ], + "members": { + "DBClusterParameterGroupName": {}, + "Source": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBClusterParametersResult", + "type": "structure", + "members": { + "Parameters": { + "shape": "S3j" + }, + "Marker": {} + } + } + }, + "DescribeDBClusterSnapshotAttributes": { + "input": { + "type": "structure", + "required": [ + "DBClusterSnapshotIdentifier" + ], + "members": { + "DBClusterSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DescribeDBClusterSnapshotAttributesResult", + "type": "structure", + "members": { + "DBClusterSnapshotAttributesResult": { + "shape": "S3o" + } + } + } + }, + "DescribeDBClusterSnapshots": { + "input": { + "type": "structure", + "members": { + "DBClusterIdentifier": {}, + "DBClusterSnapshotIdentifier": {}, + "SnapshotType": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "IncludeShared": { + "type": "boolean" + }, + "IncludePublic": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeDBClusterSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBClusterSnapshots": { + "type": "list", + "member": { + "shape": "Sq", + "locationName": "DBClusterSnapshot" + } + } + } + } + }, + "DescribeDBClusters": { + "input": { + "type": "structure", + "members": { + "DBClusterIdentifier": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBClustersResult", + "type": "structure", + "members": { + "Marker": {}, + "DBClusters": { + "type": "list", + "member": { + "shape": "S1f", + "locationName": "DBCluster" + } + } + } + } + }, + "DescribeDBEngineVersions": { + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + }, + "ListSupportedCharacterSets": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeDBEngineVersionsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBEngineVersions": { + "type": "list", + "member": { + "locationName": "DBEngineVersion", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "DBEngineDescription": {}, + "DBEngineVersionDescription": {}, + "DefaultCharacterSet": { + "shape": "S42" + }, + "SupportedCharacterSets": { + "type": "list", + "member": { + "shape": "S42", + "locationName": "CharacterSet" + } + }, + "ValidUpgradeTarget": { + "type": "list", + "member": { + "locationName": "UpgradeTarget", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "Description": {}, + "AutoUpgrade": { + "type": "boolean" + }, + "IsMajorVersionUpgrade": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + }, + "DescribeDBInstances": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "DBInstances": { + "type": "list", + "member": { + "shape": "S1s", + "locationName": "DBInstance" + } + } + } + } + }, + "DescribeDBLogFiles": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "FilenameContains": {}, + "FileLastWritten": { + "type": "long" + }, + "FileSize": { + "type": "long" + }, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBLogFilesResult", + "type": "structure", + "members": { + "DescribeDBLogFiles": { + "type": "list", + "member": { + "locationName": "DescribeDBLogFilesDetails", + "type": "structure", + "members": { + "LogFileName": {}, + "LastWritten": { + "type": "long" + }, + "Size": { + "type": "long" + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeDBParameterGroups": { + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBParameterGroups": { + "type": "list", + "member": { + "shape": "Sv", + "locationName": "DBParameterGroup" + } + } + } + } + }, + "DescribeDBParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "Source": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBParametersResult", + "type": "structure", + "members": { + "Parameters": { + "shape": "S3j" + }, + "Marker": {} + } + } + }, + "DescribeDBSecurityGroups": { + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSecurityGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSecurityGroups": { + "type": "list", + "member": { + "shape": "Sj", + "locationName": "DBSecurityGroup" + } + } + } + } + }, + "DescribeDBSnapshotAttributes": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier" + ], + "members": { + "DBSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSnapshotAttributesResult", + "type": "structure", + "members": { + "DBSnapshotAttributesResult": { + "shape": "S4n" + } + } + } + }, + "DescribeDBSnapshots": { + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "SnapshotType": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "IncludeShared": { + "type": "boolean" + }, + "IncludePublic": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DescribeDBSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSnapshots": { + "type": "list", + "member": { + "shape": "Sz", + "locationName": "DBSnapshot" + } + } + } + } + }, + "DescribeDBSubnetGroups": { + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDBSubnetGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "DBSubnetGroups": { + "type": "list", + "member": { + "shape": "S1w", + "locationName": "DBSubnetGroup" + } + } + } + } + }, + "DescribeEngineDefaultClusterParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupFamily" + ], + "members": { + "DBParameterGroupFamily": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEngineDefaultClusterParametersResult", + "type": "structure", + "members": { + "EngineDefaults": { + "shape": "S4y" + } + } + } + }, + "DescribeEngineDefaultParameters": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupFamily" + ], + "members": { + "DBParameterGroupFamily": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEngineDefaultParametersResult", + "type": "structure", + "members": { + "EngineDefaults": { + "shape": "S4y" + } + } + } + }, + "DescribeEventCategories": { + "input": { + "type": "structure", + "members": { + "SourceType": {}, + "Filters": { + "shape": "S38" + } + } + }, + "output": { + "resultWrapper": "DescribeEventCategoriesResult", + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "member": { + "locationName": "EventCategoriesMap", + "type": "structure", + "members": { + "SourceType": {}, + "EventCategories": { + "shape": "S6" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeEventSubscriptions": { + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventSubscriptionsResult", + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "member": { + "shape": "S4", + "locationName": "EventSubscription" + } + } + } + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "EventCategories": { + "shape": "S6" + }, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "member": { + "locationName": "Event", + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "shape": "S6" + }, + "Date": { + "type": "timestamp" + } + } + } + } + } + } + }, + "DescribeOptionGroupOptions": { + "input": { + "type": "structure", + "required": [ + "EngineName" + ], + "members": { + "EngineName": {}, + "MajorEngineVersion": {}, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupOptionsResult", + "type": "structure", + "members": { + "OptionGroupOptions": { + "type": "list", + "member": { + "locationName": "OptionGroupOption", + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "MinimumRequiredMinorEngineVersion": {}, + "PortRequired": { + "type": "boolean" + }, + "DefaultPort": { + "type": "integer" + }, + "OptionsDependedOn": { + "type": "list", + "member": { + "locationName": "OptionName" + } + }, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "OptionGroupOptionSettings": { + "type": "list", + "member": { + "locationName": "OptionGroupOptionSetting", + "type": "structure", + "members": { + "SettingName": {}, + "SettingDescription": {}, + "DefaultValue": {}, + "ApplyType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeOptionGroups": { + "input": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Filters": { + "shape": "S38" + }, + "Marker": {}, + "MaxRecords": { + "type": "integer" + }, + "EngineName": {}, + "MajorEngineVersion": {} + } + }, + "output": { + "resultWrapper": "DescribeOptionGroupsResult", + "type": "structure", + "members": { + "OptionGroupsList": { + "type": "list", + "member": { + "shape": "S13", + "locationName": "OptionGroup" + } + }, + "Marker": {} + } + } + }, + "DescribeOrderableDBInstanceOptions": { + "input": { + "type": "structure", + "required": [ + "Engine" + ], + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "Vpc": { + "type": "boolean" + }, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOrderableDBInstanceOptionsResult", + "type": "structure", + "members": { + "OrderableDBInstanceOptions": { + "type": "list", + "member": { + "locationName": "OrderableDBInstanceOption", + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "AvailabilityZones": { + "type": "list", + "member": { + "shape": "S1z", + "locationName": "AvailabilityZone" + } + }, + "MultiAZCapable": { + "type": "boolean" + }, + "ReadReplicaCapable": { + "type": "boolean" + }, + "Vpc": { + "type": "boolean" + }, + "SupportsStorageEncryption": { + "type": "boolean" + }, + "StorageType": {}, + "SupportsIops": { + "type": "boolean" + }, + "SupportsEnhancedMonitoring": { + "type": "boolean" + } + }, + "wrapper": true + } + }, + "Marker": {} + } + } + }, + "DescribePendingMaintenanceActions": { + "input": { + "type": "structure", + "members": { + "ResourceIdentifier": {}, + "Filters": { + "shape": "S38" + }, + "Marker": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribePendingMaintenanceActionsResult", + "type": "structure", + "members": { + "PendingMaintenanceActions": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "ResourcePendingMaintenanceActions" + } + }, + "Marker": {} + } + } + }, + "DescribeReservedDBInstances": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstances": { + "type": "list", + "member": { + "shape": "S5y", + "locationName": "ReservedDBInstance" + } + } + } + } + }, + "DescribeReservedDBInstancesOfferings": { + "input": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "Filters": { + "shape": "S38" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedDBInstancesOfferingsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstancesOfferings": { + "type": "list", + "member": { + "locationName": "ReservedDBInstancesOffering", + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "RecurringCharges": { + "shape": "S60" + } + }, + "wrapper": true + } + } + } + } + }, + "DownloadDBLogFilePortion": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "LogFileName" + ], + "members": { + "DBInstanceIdentifier": {}, + "LogFileName": {}, + "Marker": {}, + "NumberOfLines": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DownloadDBLogFilePortionResult", + "type": "structure", + "members": { + "LogFileData": {}, + "Marker": {}, + "AdditionalDataPending": { + "type": "boolean" + } + } + } + }, + "FailoverDBCluster": { + "input": { + "type": "structure", + "members": { + "DBClusterIdentifier": {} + } + }, + "output": { + "resultWrapper": "FailoverDBClusterResult", + "type": "structure", + "members": { + "DBCluster": { + "shape": "S1f" + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName" + ], + "members": { + "ResourceName": {}, + "Filters": { + "shape": "S38" + } + } + }, + "output": { + "resultWrapper": "ListTagsForResourceResult", + "type": "structure", + "members": { + "TagList": { + "shape": "S9" + } + } + } + }, + "ModifyDBCluster": { + "input": { + "type": "structure", + "required": [ + "DBClusterIdentifier" + ], + "members": { + "DBClusterIdentifier": {}, + "NewDBClusterIdentifier": {}, + "ApplyImmediately": { + "type": "boolean" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBClusterParameterGroupName": {}, + "VpcSecurityGroupIds": { + "shape": "S1d" + }, + "Port": { + "type": "integer" + }, + "MasterUserPassword": {}, + "OptionGroupName": {}, + "PreferredBackupWindow": {}, + "PreferredMaintenanceWindow": {} + } + }, + "output": { + "resultWrapper": "ModifyDBClusterResult", + "type": "structure", + "members": { + "DBCluster": { + "shape": "S1f" + } + } + } + }, + "ModifyDBClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBClusterParameterGroupName", + "Parameters" + ], + "members": { + "DBClusterParameterGroupName": {}, + "Parameters": { + "shape": "S3j" + } + } + }, + "output": { + "shape": "S6f", + "resultWrapper": "ModifyDBClusterParameterGroupResult" + } + }, + "ModifyDBClusterSnapshotAttribute": { + "input": { + "type": "structure", + "required": [ + "DBClusterSnapshotIdentifier", + "AttributeName" + ], + "members": { + "DBClusterSnapshotIdentifier": {}, + "AttributeName": {}, + "ValuesToAdd": { + "shape": "S3r" + }, + "ValuesToRemove": { + "shape": "S3r" + } + } + }, + "output": { + "resultWrapper": "ModifyDBClusterSnapshotAttributeResult", + "type": "structure", + "members": { + "DBClusterSnapshotAttributesResult": { + "shape": "S3o" + } + } + } + }, + "ModifyDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "DBSecurityGroups": { + "shape": "S1q" + }, + "VpcSecurityGroupIds": { + "shape": "S1d" + }, + "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": {}, + "StorageType": {}, + "TdeCredentialArn": {}, + "TdeCredentialPassword": {}, + "CACertificateIdentifier": {}, + "Domain": {}, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "MonitoringInterval": { + "type": "integer" + }, + "DBPortNumber": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "MonitoringRoleArn": {}, + "DomainIAMRoleName": {}, + "PromotionTier": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ModifyDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "ModifyDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName", + "Parameters" + ], + "members": { + "DBParameterGroupName": {}, + "Parameters": { + "shape": "S3j" + } + } + }, + "output": { + "shape": "S6l", + "resultWrapper": "ModifyDBParameterGroupResult" + } + }, + "ModifyDBSnapshotAttribute": { + "input": { + "type": "structure", + "required": [ + "DBSnapshotIdentifier", + "AttributeName" + ], + "members": { + "DBSnapshotIdentifier": {}, + "AttributeName": {}, + "ValuesToAdd": { + "shape": "S3r" + }, + "ValuesToRemove": { + "shape": "S3r" + } + } + }, + "output": { + "resultWrapper": "ModifyDBSnapshotAttributeResult", + "type": "structure", + "members": { + "DBSnapshotAttributesResult": { + "shape": "S4n" + } + } + } + }, + "ModifyDBSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "DBSubnetGroupName", + "SubnetIds" + ], + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "shape": "S2h" + } + } + }, + "output": { + "resultWrapper": "ModifyDBSubnetGroupResult", + "type": "structure", + "members": { + "DBSubnetGroup": { + "shape": "S1w" + } + } + } + }, + "ModifyEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "ModifyOptionGroup": { + "input": { + "type": "structure", + "required": [ + "OptionGroupName" + ], + "members": { + "OptionGroupName": {}, + "OptionsToInclude": { + "type": "list", + "member": { + "locationName": "OptionConfiguration", + "type": "structure", + "required": [ + "OptionName" + ], + "members": { + "OptionName": {}, + "Port": { + "type": "integer" + }, + "DBSecurityGroupMemberships": { + "shape": "S1q" + }, + "VpcSecurityGroupMemberships": { + "shape": "S1d" + }, + "OptionSettings": { + "type": "list", + "member": { + "shape": "S17", + "locationName": "OptionSetting" + } + } + } + } + }, + "OptionsToRemove": { + "type": "list", + "member": {} + }, + "ApplyImmediately": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyOptionGroupResult", + "type": "structure", + "members": { + "OptionGroup": { + "shape": "S13" + } + } + } + }, + "PromoteReadReplica": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {} + } + }, + "output": { + "resultWrapper": "PromoteReadReplicaResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "PurchaseReservedDBInstancesOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedDBInstancesOfferingId" + ], + "members": { + "ReservedDBInstancesOfferingId": {}, + "ReservedDBInstanceId": {}, + "DBInstanceCount": { + "type": "integer" + }, + "Tags": { + "shape": "S9" + } + } + }, + "output": { + "resultWrapper": "PurchaseReservedDBInstancesOfferingResult", + "type": "structure", + "members": { + "ReservedDBInstance": { + "shape": "S5y" + } + } + } + }, + "RebootDBInstance": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "ForceFailover": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "RebootDBInstanceResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "RemoveSourceIdentifierFromSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SourceIdentifier" + ], + "members": { + "SubscriptionName": {}, + "SourceIdentifier": {} + } + }, + "output": { + "resultWrapper": "RemoveSourceIdentifierFromSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S4" + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "TagKeys" + ], + "members": { + "ResourceName": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + } + }, + "ResetDBClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBClusterParameterGroupName" + ], + "members": { + "DBClusterParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "shape": "S3j" + } + } + }, + "output": { + "shape": "S6f", + "resultWrapper": "ResetDBClusterParameterGroupResult" + } + }, + "ResetDBParameterGroup": { + "input": { + "type": "structure", + "required": [ + "DBParameterGroupName" + ], + "members": { + "DBParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "shape": "S3j" + } + } + }, + "output": { + "shape": "S6l", + "resultWrapper": "ResetDBParameterGroupResult" + } + }, + "RestoreDBClusterFromSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBClusterIdentifier", + "SnapshotIdentifier", + "Engine" + ], + "members": { + "AvailabilityZones": { + "shape": "Sr" + }, + "DBClusterIdentifier": {}, + "SnapshotIdentifier": {}, + "Engine": {}, + "EngineVersion": {}, + "Port": { + "type": "integer" + }, + "DBSubnetGroupName": {}, + "DatabaseName": {}, + "OptionGroupName": {}, + "VpcSecurityGroupIds": { + "shape": "S1d" + }, + "Tags": { + "shape": "S9" + }, + "KmsKeyId": {} + } + }, + "output": { + "resultWrapper": "RestoreDBClusterFromSnapshotResult", + "type": "structure", + "members": { + "DBCluster": { + "shape": "S1f" + } + } + } + }, + "RestoreDBClusterToPointInTime": { + "input": { + "type": "structure", + "required": [ + "DBClusterIdentifier", + "SourceDBClusterIdentifier" + ], + "members": { + "DBClusterIdentifier": {}, + "SourceDBClusterIdentifier": {}, + "RestoreToTime": { + "type": "timestamp" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "DBSubnetGroupName": {}, + "OptionGroupName": {}, + "VpcSecurityGroupIds": { + "shape": "S1d" + }, + "Tags": { + "shape": "S9" + }, + "KmsKeyId": {} + } + }, + "output": { + "resultWrapper": "RestoreDBClusterToPointInTimeResult", + "type": "structure", + "members": { + "DBCluster": { + "shape": "S1f" + } + } + } + }, + "RestoreDBInstanceFromDBSnapshot": { + "input": { + "type": "structure", + "required": [ + "DBInstanceIdentifier", + "DBSnapshotIdentifier" + ], + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "DBInstanceClass": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "MultiAZ": { + "type": "boolean" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "DBName": {}, + "Engine": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "Tags": { + "shape": "S9" + }, + "StorageType": {}, + "TdeCredentialArn": {}, + "TdeCredentialPassword": {}, + "Domain": {}, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DomainIAMRoleName": {} + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceFromDBSnapshotResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "RestoreDBInstanceToPointInTime": { + "input": { + "type": "structure", + "required": [ + "SourceDBInstanceIdentifier", + "TargetDBInstanceIdentifier" + ], + "members": { + "SourceDBInstanceIdentifier": {}, + "TargetDBInstanceIdentifier": {}, + "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": {}, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "Tags": { + "shape": "S9" + }, + "StorageType": {}, + "TdeCredentialArn": {}, + "TdeCredentialPassword": {}, + "Domain": {}, + "DomainIAMRoleName": {} + } + }, + "output": { + "resultWrapper": "RestoreDBInstanceToPointInTimeResult", + "type": "structure", + "members": { + "DBInstance": { + "shape": "S1s" + } + } + } + }, + "RevokeDBSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "DBSecurityGroupName" + ], + "members": { + "DBSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "RevokeDBSecurityGroupIngressResult", + "type": "structure", + "members": { + "DBSecurityGroup": { + "shape": "Sj" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "shape": "S5" + }, + "EventCategoriesList": { + "shape": "S6" + }, + "Enabled": { + "type": "boolean" + } + }, + "wrapper": true + }, + "S5": { + "type": "list", + "member": { + "locationName": "SourceId" + } + }, + "S6": { + "type": "list", + "member": { + "locationName": "EventCategory" + } + }, + "S9": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sd": { + "type": "structure", + "members": { + "ResourceIdentifier": {}, + "PendingMaintenanceActionDetails": { + "type": "list", + "member": { + "locationName": "PendingMaintenanceAction", + "type": "structure", + "members": { + "Action": {}, + "AutoAppliedAfterDate": { + "type": "timestamp" + }, + "ForcedApplyDate": { + "type": "timestamp" + }, + "OptInStatus": {}, + "CurrentApplyDate": { + "type": "timestamp" + }, + "Description": {} + } + } + } + }, + "wrapper": true + }, + "Sj": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "member": { + "locationName": "EC2SecurityGroup", + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + } + }, + "IPRanges": { + "type": "list", + "member": { + "locationName": "IPRange", + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + } + } + } + }, + "wrapper": true + }, + "Sq": { + "type": "structure", + "members": { + "AvailabilityZones": { + "shape": "Sr" + }, + "DBClusterSnapshotIdentifier": {}, + "DBClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Engine": {}, + "AllocatedStorage": { + "type": "integer" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "VpcId": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "EngineVersion": {}, + "LicenseModel": {}, + "SnapshotType": {}, + "PercentProgress": { + "type": "integer" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "KmsKeyId": {} + }, + "wrapper": true + }, + "Sr": { + "type": "list", + "member": { + "locationName": "AvailabilityZone" + } + }, + "Sv": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + }, + "wrapper": true + }, + "Sz": { + "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": {}, + "SourceDBSnapshotIdentifier": {}, + "StorageType": {}, + "TdeCredentialArn": {}, + "Encrypted": { + "type": "boolean" + }, + "KmsKeyId": {} + }, + "wrapper": true + }, + "S13": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "member": { + "locationName": "Option", + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "OptionSettings": { + "type": "list", + "member": { + "shape": "S17", + "locationName": "OptionSetting" + } + }, + "DBSecurityGroupMemberships": { + "shape": "S18" + }, + "VpcSecurityGroupMemberships": { + "shape": "S1a" + } + } + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + }, + "wrapper": true + }, + "S17": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + } + }, + "S18": { + "type": "list", + "member": { + "locationName": "DBSecurityGroup", + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + } + } + }, + "S1a": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupMembership", + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + } + } + }, + "S1d": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupId" + } + }, + "S1f": { + "type": "structure", + "members": { + "AllocatedStorage": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "Sr" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "CharacterSetName": {}, + "DatabaseName": {}, + "DBClusterIdentifier": {}, + "DBClusterParameterGroup": {}, + "DBSubnetGroup": {}, + "Status": {}, + "PercentProgress": {}, + "EarliestRestorableTime": { + "type": "timestamp" + }, + "Endpoint": {}, + "Engine": {}, + "EngineVersion": {}, + "LatestRestorableTime": { + "type": "timestamp" + }, + "Port": { + "type": "integer" + }, + "MasterUsername": {}, + "DBClusterOptionGroupMemberships": { + "type": "list", + "member": { + "locationName": "DBClusterOptionGroup", + "type": "structure", + "members": { + "DBClusterOptionGroupName": {}, + "Status": {} + } + } + }, + "PreferredBackupWindow": {}, + "PreferredMaintenanceWindow": {}, + "DBClusterMembers": { + "type": "list", + "member": { + "locationName": "DBClusterMember", + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "IsClusterWriter": { + "type": "boolean" + }, + "DBClusterParameterGroupStatus": {}, + "PromotionTier": { + "type": "integer" + } + }, + "wrapper": true + } + }, + "VpcSecurityGroups": { + "shape": "S1a" + }, + "HostedZoneId": {}, + "StorageEncrypted": { + "type": "boolean" + }, + "KmsKeyId": {}, + "DbClusterResourceId": {} + }, + "wrapper": true + }, + "S1m": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + }, + "wrapper": true + }, + "S1q": { + "type": "list", + "member": { + "locationName": "DBSecurityGroupName" + } + }, + "S1s": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + }, + "HostedZoneId": {} + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "shape": "S18" + }, + "VpcSecurityGroups": { + "shape": "S1a" + }, + "DBParameterGroups": { + "type": "list", + "member": { + "locationName": "DBParameterGroup", + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + } + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "shape": "S1w" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {}, + "StorageType": {}, + "CACertificateIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "member": { + "locationName": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "member": { + "locationName": "OptionGroupMembership", + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + } + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "member": { + "locationName": "DBInstanceStatusInfo", + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + } + } + }, + "StorageType": {}, + "TdeCredentialArn": {}, + "DbInstancePort": { + "type": "integer" + }, + "DBClusterIdentifier": {}, + "StorageEncrypted": { + "type": "boolean" + }, + "KmsKeyId": {}, + "DbiResourceId": {}, + "CACertificateIdentifier": {}, + "DomainMemberships": { + "type": "list", + "member": { + "locationName": "DomainMembership", + "type": "structure", + "members": { + "Domain": {}, + "Status": {}, + "FQDN": {}, + "IAMRoleName": {} + } + } + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "MonitoringInterval": { + "type": "integer" + }, + "EnhancedMonitoringResourceArn": {}, + "MonitoringRoleArn": {}, + "PromotionTier": { + "type": "integer" + } + }, + "wrapper": true + }, + "S1w": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "shape": "S1z" + }, + "SubnetStatus": {} + } + } + } + }, + "wrapper": true + }, + "S1z": { + "type": "structure", + "members": { + "Name": {} + }, + "wrapper": true + }, + "S2h": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "S38": { + "type": "list", + "member": { + "locationName": "Filter", + "type": "structure", + "required": [ + "Name", + "Values" + ], + "members": { + "Name": {}, + "Values": { + "type": "list", + "member": { + "locationName": "Value" + } + } + } + } + }, + "S3j": { + "type": "list", + "member": { + "locationName": "Parameter", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + } + } + }, + "S3o": { + "type": "structure", + "members": { + "DBClusterSnapshotIdentifier": {}, + "DBClusterSnapshotAttributes": { + "type": "list", + "member": { + "locationName": "DBClusterSnapshotAttribute", + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeValues": { + "shape": "S3r" + } + } + } + } + }, + "wrapper": true + }, + "S3r": { + "type": "list", + "member": { + "locationName": "AttributeValue" + } + }, + "S42": { + "type": "structure", + "members": { + "CharacterSetName": {}, + "CharacterSetDescription": {} + } + }, + "S4n": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": {}, + "DBSnapshotAttributes": { + "type": "list", + "member": { + "locationName": "DBSnapshotAttribute", + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeValues": { + "shape": "S3r" + } + }, + "wrapper": true + } + } + }, + "wrapper": true + }, + "S4y": { + "type": "structure", + "members": { + "DBParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "shape": "S3j" + } + }, + "wrapper": true + }, + "S5y": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "DBInstanceCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "State": {}, + "RecurringCharges": { + "shape": "S60" + } + }, + "wrapper": true + }, + "S60": { + "type": "list", + "member": { + "locationName": "RecurringCharge", + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "double" + }, + "RecurringChargeFrequency": {} + }, + "wrapper": true + } + }, + "S6f": { + "type": "structure", + "members": { + "DBClusterParameterGroupName": {} + } + }, + "S6l": { + "type": "structure", + "members": { + "DBParameterGroupName": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.paginators.json new file mode 100755 index 0000000..662845c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.paginators.json @@ -0,0 +1,110 @@ +{ + "pagination": { + "DescribeDBEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBEngineVersions" + }, + "DescribeDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBInstances" + }, + "DescribeDBLogFiles": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DescribeDBLogFiles" + }, + "DescribeDBParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBParameterGroups" + }, + "DescribeDBParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeDBSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSecurityGroups" + }, + "DescribeDBSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSnapshots" + }, + "DescribeDBSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeOptionGroupOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupOptions" + }, + "DescribeOptionGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupsList" + }, + "DescribeOrderableDBInstanceOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableDBInstanceOptions" + }, + "DescribeReservedDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstances" + }, + "DescribeReservedDBInstancesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstancesOfferings" + }, + "DownloadDBLogFilePortion": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "NumberOfLines", + "more_results": "AdditionalDataPending", + "result_key": "LogFileData" + }, + "ListTagsForResource": { + "result_key": "TagList" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.waiters2.json new file mode 100755 index 0000000..4f403ac --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/rds-2014-10-31.waiters2.json @@ -0,0 +1,102 @@ +{ + "version": 2, + "waiters": { + "DBInstanceAvailable": { + "delay": 30, + "operation": "DescribeDBInstances", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-parameters", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-parameters", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + } + ] + }, + "DBInstanceDeleted": { + "delay": 30, + "operation": "DescribeDBInstances", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "DBInstanceNotFound", + "matcher": "error", + "state": "success" + }, + { + "expected": "creating", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "modifying", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "resetting-master-credentials", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.min.json new file mode 100755 index 0000000..7aba9ec --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.min.json @@ -0,0 +1,2288 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-12-01", + "endpointPrefix": "redshift", + "protocol": "query", + "serviceFullName": "Amazon Redshift", + "signatureVersion": "v4", + "xmlNamespace": "http://redshift.amazonaws.com/doc/2012-12-01/" + }, + "operations": { + "AuthorizeClusterSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "ClusterSecurityGroupName" + ], + "members": { + "ClusterSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "AuthorizeClusterSecurityGroupIngressResult", + "type": "structure", + "members": { + "ClusterSecurityGroup": { + "shape": "S4" + } + } + } + }, + "AuthorizeSnapshotAccess": { + "input": { + "type": "structure", + "required": [ + "SnapshotIdentifier", + "AccountWithRestoreAccess" + ], + "members": { + "SnapshotIdentifier": {}, + "SnapshotClusterIdentifier": {}, + "AccountWithRestoreAccess": {} + } + }, + "output": { + "resultWrapper": "AuthorizeSnapshotAccessResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "CopyClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "SourceSnapshotIdentifier", + "TargetSnapshotIdentifier" + ], + "members": { + "SourceSnapshotIdentifier": {}, + "SourceSnapshotClusterIdentifier": {}, + "TargetSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "CopyClusterSnapshotResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "CreateCluster": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier", + "NodeType", + "MasterUsername", + "MasterUserPassword" + ], + "members": { + "DBName": {}, + "ClusterIdentifier": {}, + "ClusterType": {}, + "NodeType": {}, + "MasterUsername": {}, + "MasterUserPassword": {}, + "ClusterSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "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": {}, + "Tags": { + "shape": "S7" + }, + "KmsKeyId": {}, + "AdditionalInfo": {}, + "IamRoles": { + "shape": "St" + } + } + }, + "output": { + "resultWrapper": "CreateClusterResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "CreateClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "ParameterGroupName", + "ParameterGroupFamily", + "Description" + ], + "members": { + "ParameterGroupName": {}, + "ParameterGroupFamily": {}, + "Description": {}, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateClusterParameterGroupResult", + "type": "structure", + "members": { + "ClusterParameterGroup": { + "shape": "S1g" + } + } + } + }, + "CreateClusterSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "ClusterSecurityGroupName", + "Description" + ], + "members": { + "ClusterSecurityGroupName": {}, + "Description": {}, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateClusterSecurityGroupResult", + "type": "structure", + "members": { + "ClusterSecurityGroup": { + "shape": "S4" + } + } + } + }, + "CreateClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "SnapshotIdentifier", + "ClusterIdentifier" + ], + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateClusterSnapshotResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "CreateClusterSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "ClusterSubnetGroupName", + "Description", + "SubnetIds" + ], + "members": { + "ClusterSubnetGroupName": {}, + "Description": {}, + "SubnetIds": { + "shape": "S1m" + }, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateClusterSubnetGroupResult", + "type": "structure", + "members": { + "ClusterSubnetGroup": { + "shape": "S1o" + } + } + } + }, + "CreateEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName", + "SnsTopicArn" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "SourceIds": { + "shape": "S1t" + }, + "EventCategories": { + "shape": "S1u" + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + }, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S1w" + } + } + } + }, + "CreateHsmClientCertificate": { + "input": { + "type": "structure", + "required": [ + "HsmClientCertificateIdentifier" + ], + "members": { + "HsmClientCertificateIdentifier": {}, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateHsmClientCertificateResult", + "type": "structure", + "members": { + "HsmClientCertificate": { + "shape": "S1z" + } + } + } + }, + "CreateHsmConfiguration": { + "input": { + "type": "structure", + "required": [ + "HsmConfigurationIdentifier", + "Description", + "HsmIpAddress", + "HsmPartitionName", + "HsmPartitionPassword", + "HsmServerPublicCertificate" + ], + "members": { + "HsmConfigurationIdentifier": {}, + "Description": {}, + "HsmIpAddress": {}, + "HsmPartitionName": {}, + "HsmPartitionPassword": {}, + "HsmServerPublicCertificate": {}, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateHsmConfigurationResult", + "type": "structure", + "members": { + "HsmConfiguration": { + "shape": "S22" + } + } + } + }, + "CreateSnapshotCopyGrant": { + "input": { + "type": "structure", + "required": [ + "SnapshotCopyGrantName" + ], + "members": { + "SnapshotCopyGrantName": {}, + "KmsKeyId": {}, + "Tags": { + "shape": "S7" + } + } + }, + "output": { + "resultWrapper": "CreateSnapshotCopyGrantResult", + "type": "structure", + "members": { + "SnapshotCopyGrant": { + "shape": "S25" + } + } + } + }, + "CreateTags": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "Tags" + ], + "members": { + "ResourceName": {}, + "Tags": { + "shape": "S7" + } + } + } + }, + "DeleteCluster": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {}, + "SkipFinalClusterSnapshot": { + "type": "boolean" + }, + "FinalClusterSnapshotIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteClusterResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "DeleteClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "ParameterGroupName" + ], + "members": { + "ParameterGroupName": {} + } + } + }, + "DeleteClusterSecurityGroup": { + "input": { + "type": "structure", + "required": [ + "ClusterSecurityGroupName" + ], + "members": { + "ClusterSecurityGroupName": {} + } + } + }, + "DeleteClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "SnapshotIdentifier" + ], + "members": { + "SnapshotIdentifier": {}, + "SnapshotClusterIdentifier": {} + } + }, + "output": { + "resultWrapper": "DeleteClusterSnapshotResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "DeleteClusterSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "ClusterSubnetGroupName" + ], + "members": { + "ClusterSubnetGroupName": {} + } + } + }, + "DeleteEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {} + } + } + }, + "DeleteHsmClientCertificate": { + "input": { + "type": "structure", + "required": [ + "HsmClientCertificateIdentifier" + ], + "members": { + "HsmClientCertificateIdentifier": {} + } + } + }, + "DeleteHsmConfiguration": { + "input": { + "type": "structure", + "required": [ + "HsmConfigurationIdentifier" + ], + "members": { + "HsmConfigurationIdentifier": {} + } + } + }, + "DeleteSnapshotCopyGrant": { + "input": { + "type": "structure", + "required": [ + "SnapshotCopyGrantName" + ], + "members": { + "SnapshotCopyGrantName": {} + } + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "ResourceName", + "TagKeys" + ], + "members": { + "ResourceName": {}, + "TagKeys": { + "shape": "S2j" + } + } + } + }, + "DescribeClusterParameterGroups": { + "input": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeClusterParameterGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "ParameterGroups": { + "type": "list", + "member": { + "shape": "S1g", + "locationName": "ClusterParameterGroup" + } + } + } + } + }, + "DescribeClusterParameters": { + "input": { + "type": "structure", + "required": [ + "ParameterGroupName" + ], + "members": { + "ParameterGroupName": {}, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeClusterParametersResult", + "type": "structure", + "members": { + "Parameters": { + "shape": "S2q" + }, + "Marker": {} + } + } + }, + "DescribeClusterSecurityGroups": { + "input": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeClusterSecurityGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "ClusterSecurityGroups": { + "type": "list", + "member": { + "shape": "S4", + "locationName": "ClusterSecurityGroup" + } + } + } + } + }, + "DescribeClusterSnapshots": { + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "SnapshotIdentifier": {}, + "SnapshotType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "OwnerAccount": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeClusterSnapshotsResult", + "type": "structure", + "members": { + "Marker": {}, + "Snapshots": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "Snapshot" + } + } + } + } + }, + "DescribeClusterSubnetGroups": { + "input": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeClusterSubnetGroupsResult", + "type": "structure", + "members": { + "Marker": {}, + "ClusterSubnetGroups": { + "type": "list", + "member": { + "shape": "S1o", + "locationName": "ClusterSubnetGroup" + } + } + } + } + }, + "DescribeClusterVersions": { + "input": { + "type": "structure", + "members": { + "ClusterVersion": {}, + "ClusterParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeClusterVersionsResult", + "type": "structure", + "members": { + "Marker": {}, + "ClusterVersions": { + "type": "list", + "member": { + "locationName": "ClusterVersion", + "type": "structure", + "members": { + "ClusterVersion": {}, + "ClusterParameterGroupFamily": {}, + "Description": {} + } + } + } + } + } + }, + "DescribeClusters": { + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeClustersResult", + "type": "structure", + "members": { + "Marker": {}, + "Clusters": { + "type": "list", + "member": { + "shape": "Sv", + "locationName": "Cluster" + } + } + } + } + }, + "DescribeDefaultClusterParameters": { + "input": { + "type": "structure", + "required": [ + "ParameterGroupFamily" + ], + "members": { + "ParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeDefaultClusterParametersResult", + "type": "structure", + "members": { + "DefaultClusterParameters": { + "type": "structure", + "members": { + "ParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "shape": "S2q" + } + }, + "wrapper": true + } + } + } + }, + "DescribeEventCategories": { + "input": { + "type": "structure", + "members": { + "SourceType": {} + } + }, + "output": { + "resultWrapper": "DescribeEventCategoriesResult", + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "member": { + "locationName": "EventCategoriesMap", + "type": "structure", + "members": { + "SourceType": {}, + "Events": { + "type": "list", + "member": { + "locationName": "EventInfoMap", + "type": "structure", + "members": { + "EventId": {}, + "EventCategories": { + "shape": "S1u" + }, + "EventDescription": {}, + "Severity": {} + }, + "wrapper": true + } + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeEventSubscriptions": { + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventSubscriptionsResult", + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "member": { + "shape": "S1w", + "locationName": "EventSubscription" + } + } + } + } + }, + "DescribeEvents": { + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeEventsResult", + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "member": { + "locationName": "Event", + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "shape": "S1u" + }, + "Severity": {}, + "Date": { + "type": "timestamp" + }, + "EventId": {} + } + } + } + } + } + }, + "DescribeHsmClientCertificates": { + "input": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeHsmClientCertificatesResult", + "type": "structure", + "members": { + "Marker": {}, + "HsmClientCertificates": { + "type": "list", + "member": { + "shape": "S1z", + "locationName": "HsmClientCertificate" + } + } + } + } + }, + "DescribeHsmConfigurations": { + "input": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeHsmConfigurationsResult", + "type": "structure", + "members": { + "Marker": {}, + "HsmConfigurations": { + "type": "list", + "member": { + "shape": "S22", + "locationName": "HsmConfiguration" + } + } + } + } + }, + "DescribeLoggingStatus": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {} + } + }, + "output": { + "shape": "S3x", + "resultWrapper": "DescribeLoggingStatusResult" + } + }, + "DescribeOrderableClusterOptions": { + "input": { + "type": "structure", + "members": { + "ClusterVersion": {}, + "NodeType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeOrderableClusterOptionsResult", + "type": "structure", + "members": { + "OrderableClusterOptions": { + "type": "list", + "member": { + "locationName": "OrderableClusterOption", + "type": "structure", + "members": { + "ClusterVersion": {}, + "ClusterType": {}, + "NodeType": {}, + "AvailabilityZones": { + "type": "list", + "member": { + "shape": "S1r", + "locationName": "AvailabilityZone" + } + } + }, + "wrapper": true + } + }, + "Marker": {} + } + } + }, + "DescribeReservedNodeOfferings": { + "input": { + "type": "structure", + "members": { + "ReservedNodeOfferingId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedNodeOfferingsResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedNodeOfferings": { + "type": "list", + "member": { + "locationName": "ReservedNodeOffering", + "type": "structure", + "members": { + "ReservedNodeOfferingId": {}, + "NodeType": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "OfferingType": {}, + "RecurringCharges": { + "shape": "S47" + } + }, + "wrapper": true + } + } + } + } + }, + "DescribeReservedNodes": { + "input": { + "type": "structure", + "members": { + "ReservedNodeId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeReservedNodesResult", + "type": "structure", + "members": { + "Marker": {}, + "ReservedNodes": { + "type": "list", + "member": { + "shape": "S4c", + "locationName": "ReservedNode" + } + } + } + } + }, + "DescribeResize": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {} + } + }, + "output": { + "resultWrapper": "DescribeResizeResult", + "type": "structure", + "members": { + "TargetNodeType": {}, + "TargetNumberOfNodes": { + "type": "integer" + }, + "TargetClusterType": {}, + "Status": {}, + "ImportTablesCompleted": { + "type": "list", + "member": {} + }, + "ImportTablesInProgress": { + "type": "list", + "member": {} + }, + "ImportTablesNotStarted": { + "type": "list", + "member": {} + }, + "AvgResizeRateInMegaBytesPerSecond": { + "type": "double" + }, + "TotalResizeDataInMegaBytes": { + "type": "long" + }, + "ProgressInMegaBytes": { + "type": "long" + }, + "ElapsedTimeInSeconds": { + "type": "long" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "long" + } + } + } + }, + "DescribeSnapshotCopyGrants": { + "input": { + "type": "structure", + "members": { + "SnapshotCopyGrantName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeSnapshotCopyGrantsResult", + "type": "structure", + "members": { + "Marker": {}, + "SnapshotCopyGrants": { + "type": "list", + "member": { + "shape": "S25", + "locationName": "SnapshotCopyGrant" + } + } + } + } + }, + "DescribeTableRestoreStatus": { + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "TableRestoreRequestId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "resultWrapper": "DescribeTableRestoreStatusResult", + "type": "structure", + "members": { + "TableRestoreStatusDetails": { + "type": "list", + "member": { + "shape": "S4q", + "locationName": "TableRestoreStatus" + } + }, + "Marker": {} + } + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "members": { + "ResourceName": {}, + "ResourceType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "TagKeys": { + "shape": "S2j" + }, + "TagValues": { + "shape": "S2l" + } + } + }, + "output": { + "resultWrapper": "DescribeTagsResult", + "type": "structure", + "members": { + "TaggedResources": { + "type": "list", + "member": { + "locationName": "TaggedResource", + "type": "structure", + "members": { + "Tag": { + "shape": "S8" + }, + "ResourceName": {}, + "ResourceType": {} + } + } + }, + "Marker": {} + } + } + }, + "DisableLogging": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {} + } + }, + "output": { + "shape": "S3x", + "resultWrapper": "DisableLoggingResult" + } + }, + "DisableSnapshotCopy": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {} + } + }, + "output": { + "resultWrapper": "DisableSnapshotCopyResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "EnableLogging": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier", + "BucketName" + ], + "members": { + "ClusterIdentifier": {}, + "BucketName": {}, + "S3KeyPrefix": {} + } + }, + "output": { + "shape": "S3x", + "resultWrapper": "EnableLoggingResult" + } + }, + "EnableSnapshotCopy": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier", + "DestinationRegion" + ], + "members": { + "ClusterIdentifier": {}, + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + }, + "SnapshotCopyGrantName": {} + } + }, + "output": { + "resultWrapper": "EnableSnapshotCopyResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "ModifyCluster": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {}, + "ClusterType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "MasterUserPassword": {}, + "ClusterParameterGroupName": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "PreferredMaintenanceWindow": {}, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "NewClusterIdentifier": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "ElasticIp": {} + } + }, + "output": { + "resultWrapper": "ModifyClusterResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "ModifyClusterIamRoles": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {}, + "AddIamRoles": { + "shape": "St" + }, + "RemoveIamRoles": { + "shape": "St" + } + } + }, + "output": { + "resultWrapper": "ModifyClusterIamRolesResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "ModifyClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "ParameterGroupName", + "Parameters" + ], + "members": { + "ParameterGroupName": {}, + "Parameters": { + "shape": "S2q" + } + } + }, + "output": { + "shape": "S57", + "resultWrapper": "ModifyClusterParameterGroupResult" + } + }, + "ModifyClusterSubnetGroup": { + "input": { + "type": "structure", + "required": [ + "ClusterSubnetGroupName", + "SubnetIds" + ], + "members": { + "ClusterSubnetGroupName": {}, + "Description": {}, + "SubnetIds": { + "shape": "S1m" + } + } + }, + "output": { + "resultWrapper": "ModifyClusterSubnetGroupResult", + "type": "structure", + "members": { + "ClusterSubnetGroup": { + "shape": "S1o" + } + } + } + }, + "ModifyEventSubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionName" + ], + "members": { + "SubscriptionName": {}, + "SnsTopicArn": {}, + "SourceType": {}, + "SourceIds": { + "shape": "S1t" + }, + "EventCategories": { + "shape": "S1u" + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "ModifyEventSubscriptionResult", + "type": "structure", + "members": { + "EventSubscription": { + "shape": "S1w" + } + } + } + }, + "ModifySnapshotCopyRetentionPeriod": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier", + "RetentionPeriod" + ], + "members": { + "ClusterIdentifier": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ModifySnapshotCopyRetentionPeriodResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "PurchaseReservedNodeOffering": { + "input": { + "type": "structure", + "required": [ + "ReservedNodeOfferingId" + ], + "members": { + "ReservedNodeOfferingId": {}, + "NodeCount": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "PurchaseReservedNodeOfferingResult", + "type": "structure", + "members": { + "ReservedNode": { + "shape": "S4c" + } + } + } + }, + "RebootCluster": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {} + } + }, + "output": { + "resultWrapper": "RebootClusterResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "ResetClusterParameterGroup": { + "input": { + "type": "structure", + "required": [ + "ParameterGroupName" + ], + "members": { + "ParameterGroupName": {}, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "shape": "S2q" + } + } + }, + "output": { + "shape": "S57", + "resultWrapper": "ResetClusterParameterGroupResult" + } + }, + "RestoreFromClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier", + "SnapshotIdentifier" + ], + "members": { + "ClusterIdentifier": {}, + "SnapshotIdentifier": {}, + "SnapshotClusterIdentifier": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "ClusterSubnetGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "OwnerAccount": {}, + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "ElasticIp": {}, + "ClusterParameterGroupName": {}, + "ClusterSecurityGroups": { + "shape": "Sp" + }, + "VpcSecurityGroupIds": { + "shape": "Sq" + }, + "PreferredMaintenanceWindow": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "KmsKeyId": {}, + "NodeType": {}, + "AdditionalInfo": {}, + "IamRoles": { + "shape": "St" + } + } + }, + "output": { + "resultWrapper": "RestoreFromClusterSnapshotResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + }, + "RestoreTableFromClusterSnapshot": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier", + "SnapshotIdentifier", + "SourceDatabaseName", + "SourceTableName", + "NewTableName" + ], + "members": { + "ClusterIdentifier": {}, + "SnapshotIdentifier": {}, + "SourceDatabaseName": {}, + "SourceSchemaName": {}, + "SourceTableName": {}, + "TargetDatabaseName": {}, + "TargetSchemaName": {}, + "NewTableName": {} + } + }, + "output": { + "resultWrapper": "RestoreTableFromClusterSnapshotResult", + "type": "structure", + "members": { + "TableRestoreStatus": { + "shape": "S4q" + } + } + } + }, + "RevokeClusterSecurityGroupIngress": { + "input": { + "type": "structure", + "required": [ + "ClusterSecurityGroupName" + ], + "members": { + "ClusterSecurityGroupName": {}, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "resultWrapper": "RevokeClusterSecurityGroupIngressResult", + "type": "structure", + "members": { + "ClusterSecurityGroup": { + "shape": "S4" + } + } + } + }, + "RevokeSnapshotAccess": { + "input": { + "type": "structure", + "required": [ + "SnapshotIdentifier", + "AccountWithRestoreAccess" + ], + "members": { + "SnapshotIdentifier": {}, + "SnapshotClusterIdentifier": {}, + "AccountWithRestoreAccess": {} + } + }, + "output": { + "resultWrapper": "RevokeSnapshotAccessResult", + "type": "structure", + "members": { + "Snapshot": { + "shape": "Sd" + } + } + } + }, + "RotateEncryptionKey": { + "input": { + "type": "structure", + "required": [ + "ClusterIdentifier" + ], + "members": { + "ClusterIdentifier": {} + } + }, + "output": { + "resultWrapper": "RotateEncryptionKeyResult", + "type": "structure", + "members": { + "Cluster": { + "shape": "Sv" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "member": { + "locationName": "EC2SecurityGroup", + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {}, + "Tags": { + "shape": "S7" + } + } + } + }, + "IPRanges": { + "type": "list", + "member": { + "locationName": "IPRange", + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {}, + "Tags": { + "shape": "S7" + } + } + } + }, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S7": { + "type": "list", + "member": { + "shape": "S8", + "locationName": "Tag" + } + }, + "S8": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + }, + "Sd": { + "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" + }, + "KmsKeyId": {}, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "member": { + "locationName": "AccountWithRestoreAccess", + "type": "structure", + "members": { + "AccountId": {} + } + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "double" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "double" + }, + "BackupProgressInMegaBytes": { + "type": "double" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "double" + }, + "EstimatedSecondsToCompletion": { + "type": "long" + }, + "ElapsedTimeInSeconds": { + "type": "long" + }, + "SourceRegion": {}, + "Tags": { + "shape": "S7" + }, + "RestorableNodeTypes": { + "type": "list", + "member": { + "locationName": "NodeType" + } + } + }, + "wrapper": true + }, + "Sp": { + "type": "list", + "member": { + "locationName": "ClusterSecurityGroupName" + } + }, + "Sq": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroupId" + } + }, + "St": { + "type": "list", + "member": { + "locationName": "IamRoleArn" + } + }, + "Sv": { + "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", + "member": { + "locationName": "ClusterSecurityGroup", + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + } + } + }, + "VpcSecurityGroups": { + "type": "list", + "member": { + "locationName": "VpcSecurityGroup", + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + } + } + }, + "ClusterParameterGroups": { + "type": "list", + "member": { + "locationName": "ClusterParameterGroup", + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {}, + "ClusterParameterStatusList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterApplyStatus": {}, + "ParameterApplyErrorDescription": {} + } + } + } + } + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterIdentifier": {}, + "PubliclyAccessible": { + "type": "boolean" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "double" + }, + "SnapshotSizeInMegaBytes": { + "type": "long" + }, + "ProgressInMegaBytes": { + "type": "long" + }, + "ElapsedTimeInSeconds": { + "type": "long" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "long" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "long" + }, + "SnapshotCopyGrantName": {} + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {}, + "Tags": { + "shape": "S7" + }, + "KmsKeyId": {}, + "IamRoles": { + "type": "list", + "member": { + "locationName": "ClusterIamRole", + "type": "structure", + "members": { + "IamRoleArn": {}, + "ApplyStatus": {} + } + } + } + }, + "wrapper": true + }, + "S1g": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterGroupFamily": {}, + "Description": {}, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S1m": { + "type": "list", + "member": { + "locationName": "SubnetIdentifier" + } + }, + "S1o": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": {}, + "Description": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "member": { + "locationName": "Subnet", + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "shape": "S1r" + }, + "SubnetStatus": {} + } + } + }, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S1r": { + "type": "structure", + "members": { + "Name": {} + }, + "wrapper": true + }, + "S1t": { + "type": "list", + "member": { + "locationName": "SourceId" + } + }, + "S1u": { + "type": "list", + "member": { + "locationName": "EventCategory" + } + }, + "S1w": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": { + "type": "timestamp" + }, + "SourceType": {}, + "SourceIdsList": { + "shape": "S1t" + }, + "EventCategoriesList": { + "shape": "S1u" + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + }, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S1z": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmClientCertificatePublicKey": {}, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S22": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": {}, + "Description": {}, + "HsmIpAddress": {}, + "HsmPartitionName": {}, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S25": { + "type": "structure", + "members": { + "SnapshotCopyGrantName": {}, + "KmsKeyId": {}, + "Tags": { + "shape": "S7" + } + }, + "wrapper": true + }, + "S2j": { + "type": "list", + "member": { + "locationName": "TagKey" + } + }, + "S2l": { + "type": "list", + "member": { + "locationName": "TagValue" + } + }, + "S2q": { + "type": "list", + "member": { + "locationName": "Parameter", + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "ApplyType": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + } + } + }, + "S3x": { + "type": "structure", + "members": { + "LoggingEnabled": { + "type": "boolean" + }, + "BucketName": {}, + "S3KeyPrefix": {}, + "LastSuccessfulDeliveryTime": { + "type": "timestamp" + }, + "LastFailureTime": { + "type": "timestamp" + }, + "LastFailureMessage": {} + } + }, + "S47": { + "type": "list", + "member": { + "locationName": "RecurringCharge", + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "double" + }, + "RecurringChargeFrequency": {} + }, + "wrapper": true + } + }, + "S4c": { + "type": "structure", + "members": { + "ReservedNodeId": {}, + "ReservedNodeOfferingId": {}, + "NodeType": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "double" + }, + "UsagePrice": { + "type": "double" + }, + "CurrencyCode": {}, + "NodeCount": { + "type": "integer" + }, + "State": {}, + "OfferingType": {}, + "RecurringCharges": { + "shape": "S47" + } + }, + "wrapper": true + }, + "S4q": { + "type": "structure", + "members": { + "TableRestoreRequestId": {}, + "Status": {}, + "Message": {}, + "RequestTime": { + "type": "timestamp" + }, + "ProgressInMegaBytes": { + "type": "long" + }, + "TotalDataInMegaBytes": { + "type": "long" + }, + "ClusterIdentifier": {}, + "SnapshotIdentifier": {}, + "SourceDatabaseName": {}, + "SourceSchemaName": {}, + "SourceTableName": {}, + "TargetDatabaseName": {}, + "TargetSchemaName": {}, + "NewTableName": {} + }, + "wrapper": true + }, + "S57": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterGroupStatus": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.paginators.json new file mode 100755 index 0000000..03027de --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.paginators.json @@ -0,0 +1,94 @@ +{ + "pagination": { + "DescribeClusterParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ParameterGroups" + }, + "DescribeClusterParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeClusterSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ClusterSecurityGroups" + }, + "DescribeClusterSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Snapshots" + }, + "DescribeClusterSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ClusterSubnetGroups" + }, + "DescribeClusterVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ClusterVersions" + }, + "DescribeClusters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Clusters" + }, + "DescribeDefaultClusterParameters": { + "input_token": "Marker", + "output_token": "DefaultClusterParameters.Marker", + "limit_key": "MaxRecords", + "result_key": "DefaultClusterParameters.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeHsmClientCertificates": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "HsmClientCertificates" + }, + "DescribeHsmConfigurations": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "HsmConfigurations" + }, + "DescribeOrderableClusterOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableClusterOptions" + }, + "DescribeReservedNodeOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedNodeOfferings" + }, + "DescribeReservedNodes": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedNodes" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.waiters2.json new file mode 100755 index 0000000..3efd9e5 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/redshift-2012-12-01.waiters2.json @@ -0,0 +1,97 @@ +{ + "version": 2, + "waiters": { + "ClusterAvailable": { + "delay": 60, + "operation": "DescribeClusters", + "maxAttempts": 30, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Clusters[].ClusterStatus" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "Clusters[].ClusterStatus" + }, + { + "expected": "ClusterNotFound", + "matcher": "error", + "state": "retry" + } + ] + }, + "ClusterDeleted": { + "delay": 60, + "operation": "DescribeClusters", + "maxAttempts": 30, + "acceptors": [ + { + "expected": "ClusterNotFound", + "matcher": "error", + "state": "success" + }, + { + "expected": "creating", + "matcher": "pathAny", + "state": "failure", + "argument": "Clusters[].ClusterStatus" + }, + { + "expected": "pathAny", + "matcher": "pathList", + "state": "failure", + "argument": "Clusters[].ClusterStatus" + } + ] + }, + "ClusterRestored": { + "operation": "DescribeClusters", + "maxAttempts": 30, + "delay": 60, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Clusters[].RestoreStatus.Status", + "expected": "completed" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Clusters[].ClusterStatus", + "expected": "deleting" + } + ] + }, + "SnapshotAvailable": { + "delay": 15, + "operation": "DescribeClusterSnapshots", + "maxAttempts": 20, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Snapshots[].Status" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Snapshots[].Status" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Snapshots[].Status" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.min.json new file mode 100755 index 0000000..41bd5f0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.min.json @@ -0,0 +1,2306 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-04-01", + "endpointPrefix": "route53", + "globalEndpoint": "route53.amazonaws.com", + "protocol": "rest-xml", + "serviceAbbreviation": "Route 53", + "serviceFullName": "Amazon Route 53", + "signatureVersion": "v4" + }, + "operations": { + "AssociateVPCWithHostedZone": { + "http": { + "requestUri": "/2013-04-01/hostedzone/{Id}/associatevpc" + }, + "input": { + "locationName": "AssociateVPCWithHostedZoneRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "HostedZoneId", + "VPC" + ], + "members": { + "HostedZoneId": { + "location": "uri", + "locationName": "Id" + }, + "VPC": { + "shape": "S3" + }, + "Comment": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ChangeInfo" + ], + "members": { + "ChangeInfo": { + "shape": "S8" + } + } + } + }, + "ChangeResourceRecordSets": { + "http": { + "requestUri": "/2013-04-01/hostedzone/{Id}/rrset/" + }, + "input": { + "locationName": "ChangeResourceRecordSetsRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "HostedZoneId", + "ChangeBatch" + ], + "members": { + "HostedZoneId": { + "location": "uri", + "locationName": "Id" + }, + "ChangeBatch": { + "type": "structure", + "required": [ + "Changes" + ], + "members": { + "Comment": {}, + "Changes": { + "shape": "Se" + } + } + } + } + }, + "output": { + "type": "structure", + "required": [ + "ChangeInfo" + ], + "members": { + "ChangeInfo": { + "shape": "S8" + } + } + } + }, + "ChangeTagsForResource": { + "http": { + "requestUri": "/2013-04-01/tags/{ResourceType}/{ResourceId}" + }, + "input": { + "locationName": "ChangeTagsForResourceRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "ResourceType", + "ResourceId" + ], + "members": { + "ResourceType": { + "location": "uri", + "locationName": "ResourceType" + }, + "ResourceId": { + "location": "uri", + "locationName": "ResourceId" + }, + "AddTags": { + "shape": "S14" + }, + "RemoveTagKeys": { + "type": "list", + "member": { + "locationName": "Key" + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateHealthCheck": { + "http": { + "requestUri": "/2013-04-01/healthcheck", + "responseCode": 201 + }, + "input": { + "locationName": "CreateHealthCheckRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "CallerReference", + "HealthCheckConfig" + ], + "members": { + "CallerReference": {}, + "HealthCheckConfig": { + "shape": "S1c" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HealthCheck", + "Location" + ], + "members": { + "HealthCheck": { + "shape": "S1x" + }, + "Location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "CreateHostedZone": { + "http": { + "requestUri": "/2013-04-01/hostedzone", + "responseCode": 201 + }, + "input": { + "locationName": "CreateHostedZoneRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "Name", + "CallerReference" + ], + "members": { + "Name": {}, + "VPC": { + "shape": "S3" + }, + "CallerReference": {}, + "HostedZoneConfig": { + "shape": "S2d" + }, + "DelegationSetId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "HostedZone", + "ChangeInfo", + "DelegationSet", + "Location" + ], + "members": { + "HostedZone": { + "shape": "S2g" + }, + "ChangeInfo": { + "shape": "S8" + }, + "DelegationSet": { + "shape": "S2i" + }, + "VPC": { + "shape": "S3" + }, + "Location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "CreateReusableDelegationSet": { + "http": { + "requestUri": "/2013-04-01/delegationset", + "responseCode": 201 + }, + "input": { + "locationName": "CreateReusableDelegationSetRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "CallerReference" + ], + "members": { + "CallerReference": {}, + "HostedZoneId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DelegationSet", + "Location" + ], + "members": { + "DelegationSet": { + "shape": "S2i" + }, + "Location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "CreateTrafficPolicy": { + "http": { + "requestUri": "/2013-04-01/trafficpolicy", + "responseCode": 201 + }, + "input": { + "locationName": "CreateTrafficPolicyRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "Name", + "Document" + ], + "members": { + "Name": {}, + "Document": {}, + "Comment": {} + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicy", + "Location" + ], + "members": { + "TrafficPolicy": { + "shape": "S2r" + }, + "Location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "CreateTrafficPolicyInstance": { + "http": { + "requestUri": "/2013-04-01/trafficpolicyinstance", + "responseCode": 201 + }, + "input": { + "locationName": "CreateTrafficPolicyInstanceRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "HostedZoneId", + "Name", + "TTL", + "TrafficPolicyId", + "TrafficPolicyVersion" + ], + "members": { + "HostedZoneId": {}, + "Name": {}, + "TTL": { + "type": "long" + }, + "TrafficPolicyId": {}, + "TrafficPolicyVersion": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstance", + "Location" + ], + "members": { + "TrafficPolicyInstance": { + "shape": "S2w" + }, + "Location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "CreateTrafficPolicyVersion": { + "http": { + "requestUri": "/2013-04-01/trafficpolicy/{Id}", + "responseCode": 201 + }, + "input": { + "locationName": "CreateTrafficPolicyVersionRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "Id", + "Document" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Document": {}, + "Comment": {} + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicy", + "Location" + ], + "members": { + "TrafficPolicy": { + "shape": "S2r" + }, + "Location": { + "location": "header", + "locationName": "Location" + } + } + } + }, + "DeleteHealthCheck": { + "http": { + "method": "DELETE", + "requestUri": "/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input": { + "type": "structure", + "required": [ + "HealthCheckId" + ], + "members": { + "HealthCheckId": { + "location": "uri", + "locationName": "HealthCheckId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteHostedZone": { + "http": { + "method": "DELETE", + "requestUri": "/2013-04-01/hostedzone/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ChangeInfo" + ], + "members": { + "ChangeInfo": { + "shape": "S8" + } + } + } + }, + "DeleteReusableDelegationSet": { + "http": { + "method": "DELETE", + "requestUri": "/2013-04-01/delegationset/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteTrafficPolicy": { + "http": { + "method": "DELETE", + "requestUri": "/2013-04-01/trafficpolicy/{Id}/{Version}" + }, + "input": { + "type": "structure", + "required": [ + "Id", + "Version" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Version": { + "location": "uri", + "locationName": "Version", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteTrafficPolicyInstance": { + "http": { + "method": "DELETE", + "requestUri": "/2013-04-01/trafficpolicyinstance/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateVPCFromHostedZone": { + "http": { + "requestUri": "/2013-04-01/hostedzone/{Id}/disassociatevpc" + }, + "input": { + "locationName": "DisassociateVPCFromHostedZoneRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "HostedZoneId", + "VPC" + ], + "members": { + "HostedZoneId": { + "location": "uri", + "locationName": "Id" + }, + "VPC": { + "shape": "S3" + }, + "Comment": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ChangeInfo" + ], + "members": { + "ChangeInfo": { + "shape": "S8" + } + } + } + }, + "GetChange": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/change/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ChangeInfo" + ], + "members": { + "ChangeInfo": { + "shape": "S8" + } + } + } + }, + "GetChangeDetails": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/changedetails/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + }, + "deprecated": true + }, + "output": { + "type": "structure", + "required": [ + "ChangeBatchRecord" + ], + "members": { + "ChangeBatchRecord": { + "shape": "S3i" + } + }, + "deprecated": true + }, + "deprecated": true + }, + "GetCheckerIpRanges": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/checkeripranges" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "required": [ + "CheckerIpRanges" + ], + "members": { + "CheckerIpRanges": { + "type": "list", + "member": {} + } + } + } + }, + "GetGeoLocation": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/geolocation" + }, + "input": { + "type": "structure", + "members": { + "ContinentCode": { + "location": "querystring", + "locationName": "continentcode" + }, + "CountryCode": { + "location": "querystring", + "locationName": "countrycode" + }, + "SubdivisionCode": { + "location": "querystring", + "locationName": "subdivisioncode" + } + } + }, + "output": { + "type": "structure", + "required": [ + "GeoLocationDetails" + ], + "members": { + "GeoLocationDetails": { + "shape": "S3q" + } + } + } + }, + "GetHealthCheck": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input": { + "type": "structure", + "required": [ + "HealthCheckId" + ], + "members": { + "HealthCheckId": { + "location": "uri", + "locationName": "HealthCheckId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HealthCheck" + ], + "members": { + "HealthCheck": { + "shape": "S1x" + } + } + } + }, + "GetHealthCheckCount": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/healthcheckcount" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "required": [ + "HealthCheckCount" + ], + "members": { + "HealthCheckCount": { + "type": "long" + } + } + } + }, + "GetHealthCheckLastFailureReason": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason" + }, + "input": { + "type": "structure", + "required": [ + "HealthCheckId" + ], + "members": { + "HealthCheckId": { + "location": "uri", + "locationName": "HealthCheckId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HealthCheckObservations" + ], + "members": { + "HealthCheckObservations": { + "shape": "S41" + } + } + } + }, + "GetHealthCheckStatus": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/healthcheck/{HealthCheckId}/status" + }, + "input": { + "type": "structure", + "required": [ + "HealthCheckId" + ], + "members": { + "HealthCheckId": { + "location": "uri", + "locationName": "HealthCheckId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HealthCheckObservations" + ], + "members": { + "HealthCheckObservations": { + "shape": "S41" + } + } + } + }, + "GetHostedZone": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzone/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HostedZone" + ], + "members": { + "HostedZone": { + "shape": "S2g" + }, + "DelegationSet": { + "shape": "S2i" + }, + "VPCs": { + "type": "list", + "member": { + "shape": "S3", + "locationName": "VPC" + } + } + } + } + }, + "GetHostedZoneCount": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzonecount" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "required": [ + "HostedZoneCount" + ], + "members": { + "HostedZoneCount": { + "type": "long" + } + } + } + }, + "GetReusableDelegationSet": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/delegationset/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "required": [ + "DelegationSet" + ], + "members": { + "DelegationSet": { + "shape": "S2i" + } + } + } + }, + "GetTrafficPolicy": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicy/{Id}/{Version}" + }, + "input": { + "type": "structure", + "required": [ + "Id", + "Version" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Version": { + "location": "uri", + "locationName": "Version", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicy" + ], + "members": { + "TrafficPolicy": { + "shape": "S2r" + } + } + } + }, + "GetTrafficPolicyInstance": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicyinstance/{Id}" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstance" + ], + "members": { + "TrafficPolicyInstance": { + "shape": "S2w" + } + } + } + }, + "GetTrafficPolicyInstanceCount": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicyinstancecount" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstanceCount" + ], + "members": { + "TrafficPolicyInstanceCount": { + "type": "integer" + } + } + } + }, + "ListChangeBatchesByHostedZone": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzone/{Id}/changes" + }, + "input": { + "type": "structure", + "required": [ + "HostedZoneId", + "StartDate", + "EndDate" + ], + "members": { + "HostedZoneId": { + "location": "uri", + "locationName": "Id" + }, + "StartDate": { + "shape": "S4n", + "location": "querystring", + "locationName": "startDate" + }, + "EndDate": { + "shape": "S4n", + "location": "querystring", + "locationName": "endDate" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxItems" + }, + "Marker": { + "location": "querystring", + "locationName": "marker" + } + }, + "deprecated": true + }, + "output": { + "type": "structure", + "required": [ + "MaxItems", + "Marker", + "ChangeBatchRecords" + ], + "members": { + "MaxItems": {}, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "ChangeBatchRecords": { + "shape": "S4s" + }, + "NextMarker": {} + }, + "deprecated": true + }, + "deprecated": true + }, + "ListChangeBatchesByRRSet": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzone/{Id}/rrsChanges" + }, + "input": { + "type": "structure", + "required": [ + "HostedZoneId", + "Name", + "Type", + "StartDate", + "EndDate" + ], + "members": { + "HostedZoneId": { + "location": "uri", + "locationName": "Id" + }, + "Name": { + "location": "querystring", + "locationName": "rrSet_name" + }, + "Type": { + "location": "querystring", + "locationName": "type" + }, + "SetIdentifier": { + "location": "querystring", + "locationName": "identifier" + }, + "StartDate": { + "shape": "S4n", + "location": "querystring", + "locationName": "startDate" + }, + "EndDate": { + "shape": "S4n", + "location": "querystring", + "locationName": "endDate" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxItems" + }, + "Marker": { + "location": "querystring", + "locationName": "marker" + } + }, + "deprecated": true + }, + "output": { + "type": "structure", + "required": [ + "MaxItems", + "Marker", + "ChangeBatchRecords" + ], + "members": { + "MaxItems": {}, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "ChangeBatchRecords": { + "shape": "S4s" + }, + "NextMarker": {} + }, + "deprecated": true + }, + "deprecated": true + }, + "ListGeoLocations": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/geolocations" + }, + "input": { + "type": "structure", + "members": { + "StartContinentCode": { + "location": "querystring", + "locationName": "startcontinentcode" + }, + "StartCountryCode": { + "location": "querystring", + "locationName": "startcountrycode" + }, + "StartSubdivisionCode": { + "location": "querystring", + "locationName": "startsubdivisioncode" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "GeoLocationDetailsList", + "IsTruncated", + "MaxItems" + ], + "members": { + "GeoLocationDetailsList": { + "type": "list", + "member": { + "shape": "S3q", + "locationName": "GeoLocationDetails" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "NextContinentCode": {}, + "NextCountryCode": {}, + "NextSubdivisionCode": {}, + "MaxItems": {} + } + } + }, + "ListHealthChecks": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/healthcheck" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HealthChecks", + "Marker", + "IsTruncated", + "MaxItems" + ], + "members": { + "HealthChecks": { + "type": "list", + "member": { + "shape": "S1x", + "locationName": "HealthCheck" + } + }, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "NextMarker": {}, + "MaxItems": {} + } + } + }, + "ListHostedZones": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzone" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + }, + "DelegationSetId": { + "location": "querystring", + "locationName": "delegationsetid" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HostedZones", + "Marker", + "IsTruncated", + "MaxItems" + ], + "members": { + "HostedZones": { + "shape": "S53" + }, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "NextMarker": {}, + "MaxItems": {} + } + } + }, + "ListHostedZonesByName": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzonesbyname" + }, + "input": { + "type": "structure", + "members": { + "DNSName": { + "location": "querystring", + "locationName": "dnsname" + }, + "HostedZoneId": { + "location": "querystring", + "locationName": "hostedzoneid" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "HostedZones", + "IsTruncated", + "MaxItems" + ], + "members": { + "HostedZones": { + "shape": "S53" + }, + "DNSName": {}, + "HostedZoneId": {}, + "IsTruncated": { + "type": "boolean" + }, + "NextDNSName": {}, + "NextHostedZoneId": {}, + "MaxItems": {} + } + } + }, + "ListResourceRecordSets": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/hostedzone/{Id}/rrset" + }, + "input": { + "type": "structure", + "required": [ + "HostedZoneId" + ], + "members": { + "HostedZoneId": { + "location": "uri", + "locationName": "Id" + }, + "StartRecordName": { + "location": "querystring", + "locationName": "name" + }, + "StartRecordType": { + "location": "querystring", + "locationName": "type" + }, + "StartRecordIdentifier": { + "location": "querystring", + "locationName": "identifier" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ResourceRecordSets", + "IsTruncated", + "MaxItems" + ], + "members": { + "ResourceRecordSets": { + "type": "list", + "member": { + "shape": "Sh", + "locationName": "ResourceRecordSet" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "NextRecordName": {}, + "NextRecordType": {}, + "NextRecordIdentifier": {}, + "MaxItems": {} + } + } + }, + "ListReusableDelegationSets": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/delegationset" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "querystring", + "locationName": "marker" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "DelegationSets", + "Marker", + "IsTruncated", + "MaxItems" + ], + "members": { + "DelegationSets": { + "type": "list", + "member": { + "shape": "S2i", + "locationName": "DelegationSet" + } + }, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "NextMarker": {}, + "MaxItems": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/tags/{ResourceType}/{ResourceId}" + }, + "input": { + "type": "structure", + "required": [ + "ResourceType", + "ResourceId" + ], + "members": { + "ResourceType": { + "location": "uri", + "locationName": "ResourceType" + }, + "ResourceId": { + "location": "uri", + "locationName": "ResourceId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ResourceTagSet" + ], + "members": { + "ResourceTagSet": { + "shape": "S5e" + } + } + } + }, + "ListTagsForResources": { + "http": { + "requestUri": "/2013-04-01/tags/{ResourceType}" + }, + "input": { + "locationName": "ListTagsForResourcesRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "ResourceType", + "ResourceIds" + ], + "members": { + "ResourceType": { + "location": "uri", + "locationName": "ResourceType" + }, + "ResourceIds": { + "type": "list", + "member": { + "locationName": "ResourceId" + } + } + } + }, + "output": { + "type": "structure", + "required": [ + "ResourceTagSets" + ], + "members": { + "ResourceTagSets": { + "type": "list", + "member": { + "shape": "S5e", + "locationName": "ResourceTagSet" + } + } + } + } + }, + "ListTrafficPolicies": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicies" + }, + "input": { + "type": "structure", + "members": { + "TrafficPolicyIdMarker": { + "location": "querystring", + "locationName": "trafficpolicyid" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicySummaries", + "IsTruncated", + "TrafficPolicyIdMarker", + "MaxItems" + ], + "members": { + "TrafficPolicySummaries": { + "type": "list", + "member": { + "locationName": "TrafficPolicySummary", + "type": "structure", + "required": [ + "Id", + "Name", + "Type", + "LatestVersion", + "TrafficPolicyCount" + ], + "members": { + "Id": {}, + "Name": {}, + "Type": {}, + "LatestVersion": { + "type": "integer" + }, + "TrafficPolicyCount": { + "type": "integer" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "TrafficPolicyIdMarker": {}, + "MaxItems": {} + } + } + }, + "ListTrafficPolicyInstances": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicyinstances" + }, + "input": { + "type": "structure", + "members": { + "HostedZoneIdMarker": { + "location": "querystring", + "locationName": "hostedzoneid" + }, + "TrafficPolicyInstanceNameMarker": { + "location": "querystring", + "locationName": "trafficpolicyinstancename" + }, + "TrafficPolicyInstanceTypeMarker": { + "location": "querystring", + "locationName": "trafficpolicyinstancetype" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstances", + "IsTruncated", + "MaxItems" + ], + "members": { + "TrafficPolicyInstances": { + "shape": "S5p" + }, + "HostedZoneIdMarker": {}, + "TrafficPolicyInstanceNameMarker": {}, + "TrafficPolicyInstanceTypeMarker": {}, + "IsTruncated": { + "type": "boolean" + }, + "MaxItems": {} + } + } + }, + "ListTrafficPolicyInstancesByHostedZone": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicyinstances/hostedzone" + }, + "input": { + "type": "structure", + "required": [ + "HostedZoneId" + ], + "members": { + "HostedZoneId": { + "location": "querystring", + "locationName": "id" + }, + "TrafficPolicyInstanceNameMarker": { + "location": "querystring", + "locationName": "trafficpolicyinstancename" + }, + "TrafficPolicyInstanceTypeMarker": { + "location": "querystring", + "locationName": "trafficpolicyinstancetype" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstances", + "IsTruncated", + "MaxItems" + ], + "members": { + "TrafficPolicyInstances": { + "shape": "S5p" + }, + "TrafficPolicyInstanceNameMarker": {}, + "TrafficPolicyInstanceTypeMarker": {}, + "IsTruncated": { + "type": "boolean" + }, + "MaxItems": {} + } + } + }, + "ListTrafficPolicyInstancesByPolicy": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicyinstances/trafficpolicy" + }, + "input": { + "type": "structure", + "required": [ + "TrafficPolicyId", + "TrafficPolicyVersion" + ], + "members": { + "TrafficPolicyId": { + "location": "querystring", + "locationName": "id" + }, + "TrafficPolicyVersion": { + "location": "querystring", + "locationName": "version", + "type": "integer" + }, + "HostedZoneIdMarker": { + "location": "querystring", + "locationName": "hostedzoneid" + }, + "TrafficPolicyInstanceNameMarker": { + "location": "querystring", + "locationName": "trafficpolicyinstancename" + }, + "TrafficPolicyInstanceTypeMarker": { + "location": "querystring", + "locationName": "trafficpolicyinstancetype" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstances", + "IsTruncated", + "MaxItems" + ], + "members": { + "TrafficPolicyInstances": { + "shape": "S5p" + }, + "HostedZoneIdMarker": {}, + "TrafficPolicyInstanceNameMarker": {}, + "TrafficPolicyInstanceTypeMarker": {}, + "IsTruncated": { + "type": "boolean" + }, + "MaxItems": {} + } + } + }, + "ListTrafficPolicyVersions": { + "http": { + "method": "GET", + "requestUri": "/2013-04-01/trafficpolicies/{Id}/versions" + }, + "input": { + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "TrafficPolicyVersionMarker": { + "location": "querystring", + "locationName": "trafficpolicyversion" + }, + "MaxItems": { + "location": "querystring", + "locationName": "maxitems" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicies", + "IsTruncated", + "TrafficPolicyVersionMarker", + "MaxItems" + ], + "members": { + "TrafficPolicies": { + "type": "list", + "member": { + "shape": "S2r", + "locationName": "TrafficPolicy" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "TrafficPolicyVersionMarker": {}, + "MaxItems": {} + } + } + }, + "UpdateHealthCheck": { + "http": { + "requestUri": "/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input": { + "locationName": "UpdateHealthCheckRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "HealthCheckId" + ], + "members": { + "HealthCheckId": { + "location": "uri", + "locationName": "HealthCheckId" + }, + "HealthCheckVersion": { + "type": "long" + }, + "IPAddress": {}, + "Port": { + "type": "integer" + }, + "ResourcePath": {}, + "FullyQualifiedDomainName": {}, + "SearchString": {}, + "FailureThreshold": { + "type": "integer" + }, + "Inverted": { + "type": "boolean" + }, + "HealthThreshold": { + "type": "integer" + }, + "ChildHealthChecks": { + "shape": "S1o" + }, + "EnableSNI": { + "type": "boolean" + }, + "Regions": { + "shape": "S1q" + }, + "AlarmIdentifier": { + "shape": "S1s" + }, + "InsufficientDataHealthStatus": {} + } + }, + "output": { + "type": "structure", + "required": [ + "HealthCheck" + ], + "members": { + "HealthCheck": { + "shape": "S1x" + } + } + } + }, + "UpdateHostedZoneComment": { + "http": { + "requestUri": "/2013-04-01/hostedzone/{Id}" + }, + "input": { + "locationName": "UpdateHostedZoneCommentRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Comment": {} + } + }, + "output": { + "type": "structure", + "required": [ + "HostedZone" + ], + "members": { + "HostedZone": { + "shape": "S2g" + } + } + } + }, + "UpdateTrafficPolicyComment": { + "http": { + "requestUri": "/2013-04-01/trafficpolicy/{Id}/{Version}" + }, + "input": { + "locationName": "UpdateTrafficPolicyCommentRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "Id", + "Version", + "Comment" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "Version": { + "location": "uri", + "locationName": "Version", + "type": "integer" + }, + "Comment": {} + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicy" + ], + "members": { + "TrafficPolicy": { + "shape": "S2r" + } + } + } + }, + "UpdateTrafficPolicyInstance": { + "http": { + "requestUri": "/2013-04-01/trafficpolicyinstance/{Id}" + }, + "input": { + "locationName": "UpdateTrafficPolicyInstanceRequest", + "xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + }, + "type": "structure", + "required": [ + "Id", + "TTL", + "TrafficPolicyId", + "TrafficPolicyVersion" + ], + "members": { + "Id": { + "location": "uri", + "locationName": "Id" + }, + "TTL": { + "type": "long" + }, + "TrafficPolicyId": {}, + "TrafficPolicyVersion": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TrafficPolicyInstance" + ], + "members": { + "TrafficPolicyInstance": { + "shape": "S2w" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "members": { + "VPCRegion": {}, + "VPCId": {} + } + }, + "S8": { + "type": "structure", + "required": [ + "Id", + "Status", + "SubmittedAt" + ], + "members": { + "Id": {}, + "Status": {}, + "SubmittedAt": { + "type": "timestamp" + }, + "Comment": {} + } + }, + "Se": { + "type": "list", + "member": { + "locationName": "Change", + "type": "structure", + "required": [ + "Action", + "ResourceRecordSet" + ], + "members": { + "Action": {}, + "ResourceRecordSet": { + "shape": "Sh" + } + } + } + }, + "Sh": { + "type": "structure", + "required": [ + "Name", + "Type" + ], + "members": { + "Name": {}, + "Type": {}, + "SetIdentifier": {}, + "Weight": { + "type": "long" + }, + "Region": {}, + "GeoLocation": { + "type": "structure", + "members": { + "ContinentCode": {}, + "CountryCode": {}, + "SubdivisionCode": {} + } + }, + "Failover": {}, + "TTL": { + "type": "long" + }, + "ResourceRecords": { + "type": "list", + "member": { + "locationName": "ResourceRecord", + "type": "structure", + "required": [ + "Value" + ], + "members": { + "Value": {} + } + } + }, + "AliasTarget": { + "type": "structure", + "required": [ + "HostedZoneId", + "DNSName", + "EvaluateTargetHealth" + ], + "members": { + "HostedZoneId": {}, + "DNSName": {}, + "EvaluateTargetHealth": { + "type": "boolean" + } + } + }, + "HealthCheckId": {}, + "TrafficPolicyInstanceId": {} + } + }, + "S14": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S1c": { + "type": "structure", + "required": [ + "Type" + ], + "members": { + "IPAddress": {}, + "Port": { + "type": "integer" + }, + "Type": {}, + "ResourcePath": {}, + "FullyQualifiedDomainName": {}, + "SearchString": {}, + "RequestInterval": { + "type": "integer" + }, + "FailureThreshold": { + "type": "integer" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Inverted": { + "type": "boolean" + }, + "HealthThreshold": { + "type": "integer" + }, + "ChildHealthChecks": { + "shape": "S1o" + }, + "EnableSNI": { + "type": "boolean" + }, + "Regions": { + "shape": "S1q" + }, + "AlarmIdentifier": { + "shape": "S1s" + }, + "InsufficientDataHealthStatus": {} + } + }, + "S1o": { + "type": "list", + "member": { + "locationName": "ChildHealthCheck" + } + }, + "S1q": { + "type": "list", + "member": { + "locationName": "Region" + } + }, + "S1s": { + "type": "structure", + "required": [ + "Region", + "Name" + ], + "members": { + "Region": {}, + "Name": {} + } + }, + "S1x": { + "type": "structure", + "required": [ + "Id", + "CallerReference", + "HealthCheckConfig", + "HealthCheckVersion" + ], + "members": { + "Id": {}, + "CallerReference": {}, + "HealthCheckConfig": { + "shape": "S1c" + }, + "HealthCheckVersion": { + "type": "long" + }, + "CloudWatchAlarmConfiguration": { + "type": "structure", + "required": [ + "EvaluationPeriods", + "Threshold", + "ComparisonOperator", + "Period", + "MetricName", + "Namespace", + "Statistic" + ], + "members": { + "EvaluationPeriods": { + "type": "integer" + }, + "Threshold": { + "type": "double" + }, + "ComparisonOperator": {}, + "Period": { + "type": "integer" + }, + "MetricName": {}, + "Namespace": {}, + "Statistic": {}, + "Dimensions": { + "type": "list", + "member": { + "locationName": "Dimension", + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + } + } + } + } + }, + "S2d": { + "type": "structure", + "members": { + "Comment": {}, + "PrivateZone": { + "type": "boolean" + } + } + }, + "S2g": { + "type": "structure", + "required": [ + "Id", + "Name", + "CallerReference" + ], + "members": { + "Id": {}, + "Name": {}, + "CallerReference": {}, + "Config": { + "shape": "S2d" + }, + "ResourceRecordSetCount": { + "type": "long" + } + } + }, + "S2i": { + "type": "structure", + "required": [ + "NameServers" + ], + "members": { + "Id": {}, + "CallerReference": {}, + "NameServers": { + "type": "list", + "member": { + "locationName": "NameServer" + } + } + } + }, + "S2r": { + "type": "structure", + "required": [ + "Id", + "Version", + "Name", + "Type", + "Document" + ], + "members": { + "Id": {}, + "Version": { + "type": "integer" + }, + "Name": {}, + "Type": {}, + "Document": {}, + "Comment": {} + } + }, + "S2w": { + "type": "structure", + "required": [ + "Id", + "HostedZoneId", + "Name", + "TTL", + "State", + "Message", + "TrafficPolicyId", + "TrafficPolicyVersion", + "TrafficPolicyType" + ], + "members": { + "Id": {}, + "HostedZoneId": {}, + "Name": {}, + "TTL": { + "type": "long" + }, + "State": {}, + "Message": {}, + "TrafficPolicyId": {}, + "TrafficPolicyVersion": { + "type": "integer" + }, + "TrafficPolicyType": {} + } + }, + "S3i": { + "type": "structure", + "required": [ + "Id", + "Status" + ], + "members": { + "Id": {}, + "SubmittedAt": { + "type": "timestamp" + }, + "Status": {}, + "Comment": {}, + "Submitter": {}, + "Changes": { + "shape": "Se" + } + }, + "deprecated": true + }, + "S3q": { + "type": "structure", + "members": { + "ContinentCode": {}, + "ContinentName": {}, + "CountryCode": {}, + "CountryName": {}, + "SubdivisionCode": {}, + "SubdivisionName": {} + } + }, + "S41": { + "type": "list", + "member": { + "locationName": "HealthCheckObservation", + "type": "structure", + "members": { + "Region": {}, + "IPAddress": {}, + "StatusReport": { + "type": "structure", + "members": { + "Status": {}, + "CheckedTime": { + "type": "timestamp" + } + } + } + } + } + }, + "S4n": { + "type": "string", + "deprecated": true + }, + "S4s": { + "type": "list", + "member": { + "shape": "S3i", + "locationName": "ChangeBatchRecord" + }, + "deprecated": true + }, + "S53": { + "type": "list", + "member": { + "shape": "S2g", + "locationName": "HostedZone" + } + }, + "S5e": { + "type": "structure", + "members": { + "ResourceType": {}, + "ResourceId": {}, + "Tags": { + "shape": "S14" + } + } + }, + "S5p": { + "type": "list", + "member": { + "shape": "S2w", + "locationName": "TrafficPolicyInstance" + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.paginators.json new file mode 100755 index 0000000..d472f47 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.paginators.json @@ -0,0 +1,33 @@ +{ + "pagination": { + "ListHealthChecks": { + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "HealthChecks" + }, + "ListHostedZones": { + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "HostedZones" + }, + "ListResourceRecordSets": { + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "ResourceRecordSets", + "input_token": [ + "StartRecordName", + "StartRecordType", + "StartRecordIdentifier" + ], + "output_token": [ + "NextRecordName", + "NextRecordType", + "NextRecordIdentifier" + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.waiters2.json new file mode 100755 index 0000000..94aad39 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53-2013-04-01.waiters2.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "waiters": { + "ResourceRecordSetsChanged": { + "delay": 30, + "maxAttempts": 60, + "operation": "GetChange", + "acceptors": [ + { + "matcher": "path", + "expected": "INSYNC", + "argument": "ChangeInfo.Status", + "state": "success" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.min.json new file mode 100755 index 0000000..73bad92 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.min.json @@ -0,0 +1,646 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-05-15", + "endpointPrefix": "route53domains", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon Route 53 Domains", + "signatureVersion": "v4", + "targetPrefix": "Route53Domains_v20140515" + }, + "operations": { + "CheckDomainAvailability": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "IdnLangCode": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Availability" + ], + "members": { + "Availability": {} + } + } + }, + "DeleteTagsForDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "TagsToDelete" + ], + "members": { + "DomainName": {}, + "TagsToDelete": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisableDomainAutoRenew": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisableDomainTransferLock": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "EnableDomainAutoRenew": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "EnableDomainTransferLock": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "GetContactReachabilityStatus": { + "input": { + "type": "structure", + "members": { + "domainName": {} + } + }, + "output": { + "type": "structure", + "members": { + "domainName": {}, + "status": {} + } + } + }, + "GetDomainDetail": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DomainName", + "Nameservers", + "AdminContact", + "RegistrantContact", + "TechContact" + ], + "members": { + "DomainName": {}, + "Nameservers": { + "shape": "So" + }, + "AutoRenew": { + "type": "boolean" + }, + "AdminContact": { + "shape": "Su" + }, + "RegistrantContact": { + "shape": "Su" + }, + "TechContact": { + "shape": "Su" + }, + "AdminPrivacy": { + "type": "boolean" + }, + "RegistrantPrivacy": { + "type": "boolean" + }, + "TechPrivacy": { + "type": "boolean" + }, + "RegistrarName": {}, + "WhoIsServer": {}, + "RegistrarUrl": {}, + "AbuseContactEmail": {}, + "AbuseContactPhone": {}, + "RegistryDomainId": {}, + "CreationDate": { + "type": "timestamp" + }, + "UpdatedDate": { + "type": "timestamp" + }, + "ExpirationDate": { + "type": "timestamp" + }, + "Reseller": {}, + "DnsSec": {}, + "StatusList": { + "type": "list", + "member": {} + } + } + } + }, + "GetOperationDetail": { + "input": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + }, + "output": { + "type": "structure", + "members": { + "OperationId": {}, + "Status": {}, + "Message": {}, + "DomainName": {}, + "Type": {}, + "SubmittedDate": { + "type": "timestamp" + } + } + } + }, + "ListDomains": { + "input": { + "type": "structure", + "members": { + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Domains" + ], + "members": { + "Domains": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "AutoRenew": { + "type": "boolean" + }, + "TransferLock": { + "type": "boolean" + }, + "Expiry": { + "type": "timestamp" + } + } + } + }, + "NextPageMarker": {} + } + } + }, + "ListOperations": { + "input": { + "type": "structure", + "members": { + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Operations" + ], + "members": { + "Operations": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "OperationId", + "Status", + "Type", + "SubmittedDate" + ], + "members": { + "OperationId": {}, + "Status": {}, + "Type": {}, + "SubmittedDate": { + "type": "timestamp" + } + } + } + }, + "NextPageMarker": {} + } + } + }, + "ListTagsForDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "TagList" + ], + "members": { + "TagList": { + "shape": "S1y" + } + } + } + }, + "RegisterDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "DurationInYears", + "AdminContact", + "RegistrantContact", + "TechContact" + ], + "members": { + "DomainName": {}, + "IdnLangCode": {}, + "DurationInYears": { + "type": "integer" + }, + "AutoRenew": { + "type": "boolean" + }, + "AdminContact": { + "shape": "Su" + }, + "RegistrantContact": { + "shape": "Su" + }, + "TechContact": { + "shape": "Su" + }, + "PrivacyProtectAdminContact": { + "type": "boolean" + }, + "PrivacyProtectRegistrantContact": { + "type": "boolean" + }, + "PrivacyProtectTechContact": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "ResendContactReachabilityEmail": { + "input": { + "type": "structure", + "members": { + "domainName": {} + } + }, + "output": { + "type": "structure", + "members": { + "domainName": {}, + "emailAddress": {}, + "isAlreadyVerified": { + "type": "boolean" + } + } + } + }, + "RetrieveDomainAuthCode": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AuthCode" + ], + "members": { + "AuthCode": { + "shape": "S28" + } + } + } + }, + "TransferDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "DurationInYears", + "AdminContact", + "RegistrantContact", + "TechContact" + ], + "members": { + "DomainName": {}, + "IdnLangCode": {}, + "DurationInYears": { + "type": "integer" + }, + "Nameservers": { + "shape": "So" + }, + "AuthCode": { + "shape": "S28" + }, + "AutoRenew": { + "type": "boolean" + }, + "AdminContact": { + "shape": "Su" + }, + "RegistrantContact": { + "shape": "Su" + }, + "TechContact": { + "shape": "Su" + }, + "PrivacyProtectAdminContact": { + "type": "boolean" + }, + "PrivacyProtectRegistrantContact": { + "type": "boolean" + }, + "PrivacyProtectTechContact": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "UpdateDomainContact": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "AdminContact": { + "shape": "Su" + }, + "RegistrantContact": { + "shape": "Su" + }, + "TechContact": { + "shape": "Su" + } + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "UpdateDomainContactPrivacy": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "AdminPrivacy": { + "type": "boolean" + }, + "RegistrantPrivacy": { + "type": "boolean" + }, + "TechPrivacy": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "UpdateDomainNameservers": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Nameservers" + ], + "members": { + "DomainName": {}, + "FIAuthKey": {}, + "Nameservers": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "UpdateTagsForDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "TagsToUpdate": { + "shape": "S1y" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "So": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "GlueIps": { + "type": "list", + "member": {} + } + } + } + }, + "Su": { + "type": "structure", + "members": { + "FirstName": {}, + "LastName": {}, + "ContactType": {}, + "OrganizationName": {}, + "AddressLine1": {}, + "AddressLine2": {}, + "City": {}, + "State": {}, + "CountryCode": {}, + "ZipCode": {}, + "PhoneNumber": {}, + "Email": {}, + "Fax": {}, + "ExtraParams": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + } + }, + "sensitive": true + }, + "S1y": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S28": { + "type": "string", + "sensitive": true + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.paginators.json new file mode 100755 index 0000000..8d1a73a --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/route53domains-2014-05-15.paginators.json @@ -0,0 +1,17 @@ +{ + "version": "1.0", + "pagination": { + "ListDomains": { + "limit_key": "MaxItems", + "input_token": "Marker", + "output_token": "NextPageMarker", + "result_key": "Domains" + }, + "ListOperations": { + "limit_key": "MaxItems", + "input_token": "Marker", + "output_token": "NextPageMarker", + "result_key": "Operations" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.min.json new file mode 100755 index 0000000..ad60243 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.min.json @@ -0,0 +1,3759 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2006-03-01", + "checksumFormat": "md5", + "endpointPrefix": "s3", + "globalEndpoint": "s3.amazonaws.com", + "protocol": "rest-xml", + "serviceAbbreviation": "Amazon S3", + "serviceFullName": "Amazon Simple Storage Service", + "signatureVersion": "s3", + "timestampFormat": "rfc822" + }, + "operations": { + "AbortMultipartUpload": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key", + "UploadId" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "UploadId": { + "location": "querystring", + "locationName": "uploadId" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "CompleteMultipartUpload": { + "http": { + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key", + "UploadId" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "MultipartUpload": { + "locationName": "CompleteMultipartUpload", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "members": { + "Parts": { + "locationName": "Part", + "type": "list", + "member": { + "type": "structure", + "members": { + "ETag": {}, + "PartNumber": { + "type": "integer" + } + } + }, + "flattened": true + } + } + }, + "UploadId": { + "location": "querystring", + "locationName": "uploadId" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + }, + "payload": "MultipartUpload" + }, + "output": { + "type": "structure", + "members": { + "Location": {}, + "Bucket": {}, + "Key": {}, + "Expiration": { + "location": "header", + "locationName": "x-amz-expiration" + }, + "ETag": {}, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "VersionId": { + "location": "header", + "locationName": "x-amz-version-id" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "CopyObject": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "CopySource", + "Key" + ], + "members": { + "ACL": { + "location": "header", + "locationName": "x-amz-acl" + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "CacheControl": { + "location": "header", + "locationName": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "locationName": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "locationName": "Content-Language" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + }, + "CopySource": { + "location": "header", + "locationName": "x-amz-copy-source" + }, + "CopySourceIfMatch": { + "location": "header", + "locationName": "x-amz-copy-source-if-match" + }, + "CopySourceIfModifiedSince": { + "location": "header", + "locationName": "x-amz-copy-source-if-modified-since", + "type": "timestamp" + }, + "CopySourceIfNoneMatch": { + "location": "header", + "locationName": "x-amz-copy-source-if-none-match" + }, + "CopySourceIfUnmodifiedSince": { + "location": "header", + "locationName": "x-amz-copy-source-if-unmodified-since", + "type": "timestamp" + }, + "Expires": { + "location": "header", + "locationName": "Expires", + "type": "timestamp" + }, + "GrantFullControl": { + "location": "header", + "locationName": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "locationName": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "locationName": "x-amz-grant-read-acp" + }, + "GrantWriteACP": { + "location": "header", + "locationName": "x-amz-grant-write-acp" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "Metadata": { + "shape": "S11", + "location": "headers", + "locationName": "x-amz-meta-" + }, + "MetadataDirective": { + "location": "header", + "locationName": "x-amz-metadata-directive" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "StorageClass": { + "location": "header", + "locationName": "x-amz-storage-class" + }, + "WebsiteRedirectLocation": { + "location": "header", + "locationName": "x-amz-website-redirect-location" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "CopySourceSSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-copy-source-server-side-encryption-customer-algorithm" + }, + "CopySourceSSECustomerKey": { + "shape": "S1b", + "location": "header", + "locationName": "x-amz-copy-source-server-side-encryption-customer-key" + }, + "CopySourceSSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-copy-source-server-side-encryption-customer-key-MD5" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopyObjectResult": { + "type": "structure", + "members": { + "ETag": {}, + "LastModified": { + "type": "timestamp" + } + } + }, + "Expiration": { + "location": "header", + "locationName": "x-amz-expiration" + }, + "CopySourceVersionId": { + "location": "header", + "locationName": "x-amz-copy-source-version-id" + }, + "VersionId": { + "location": "header", + "locationName": "x-amz-version-id" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + }, + "payload": "CopyObjectResult" + }, + "alias": "PutObjectCopy" + }, + "CreateBucket": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "ACL": { + "location": "header", + "locationName": "x-amz-acl" + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "CreateBucketConfiguration": { + "locationName": "CreateBucketConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "members": { + "LocationConstraint": {} + } + }, + "GrantFullControl": { + "location": "header", + "locationName": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "locationName": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "locationName": "x-amz-grant-read-acp" + }, + "GrantWrite": { + "location": "header", + "locationName": "x-amz-grant-write" + }, + "GrantWriteACP": { + "location": "header", + "locationName": "x-amz-grant-write-acp" + } + }, + "payload": "CreateBucketConfiguration" + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "locationName": "Location" + } + } + }, + "alias": "PutBucket" + }, + "CreateMultipartUpload": { + "http": { + "requestUri": "/{Bucket}/{Key+}?uploads" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "ACL": { + "location": "header", + "locationName": "x-amz-acl" + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "CacheControl": { + "location": "header", + "locationName": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "locationName": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "locationName": "Content-Language" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + }, + "Expires": { + "location": "header", + "locationName": "Expires", + "type": "timestamp" + }, + "GrantFullControl": { + "location": "header", + "locationName": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "locationName": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "locationName": "x-amz-grant-read-acp" + }, + "GrantWriteACP": { + "location": "header", + "locationName": "x-amz-grant-write-acp" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "Metadata": { + "shape": "S11", + "location": "headers", + "locationName": "x-amz-meta-" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "StorageClass": { + "location": "header", + "locationName": "x-amz-storage-class" + }, + "WebsiteRedirectLocation": { + "location": "header", + "locationName": "x-amz-website-redirect-location" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AbortDate": { + "location": "header", + "locationName": "x-amz-abort-date", + "type": "timestamp" + }, + "AbortRuleId": { + "location": "header", + "locationName": "x-amz-abort-rule-id" + }, + "Bucket": { + "locationName": "Bucket" + }, + "Key": {}, + "UploadId": {}, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + }, + "alias": "InitiateMultipartUpload" + }, + "DeleteBucket": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteBucketCors": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}?cors" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteBucketLifecycle": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteBucketPolicy": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}?policy" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteBucketReplication": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}?replication" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteBucketTagging": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}?tagging" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteBucketWebsite": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}?website" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "DeleteObject": { + "http": { + "method": "DELETE", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "MFA": { + "location": "header", + "locationName": "x-amz-mfa" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeleteMarker": { + "location": "header", + "locationName": "x-amz-delete-marker", + "type": "boolean" + }, + "VersionId": { + "location": "header", + "locationName": "x-amz-version-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "DeleteObjects": { + "http": { + "requestUri": "/{Bucket}?delete" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Delete" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Delete": { + "locationName": "Delete", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "Objects" + ], + "members": { + "Objects": { + "locationName": "Object", + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "VersionId": {} + } + }, + "flattened": true + }, + "Quiet": { + "type": "boolean" + } + } + }, + "MFA": { + "location": "header", + "locationName": "x-amz-mfa" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + }, + "payload": "Delete" + }, + "output": { + "type": "structure", + "members": { + "Deleted": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "VersionId": {}, + "DeleteMarker": { + "type": "boolean" + }, + "DeleteMarkerVersionId": {} + } + }, + "flattened": true + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + }, + "Errors": { + "locationName": "Error", + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "VersionId": {}, + "Code": {}, + "Message": {} + } + }, + "flattened": true + } + } + }, + "alias": "DeleteMultipleObjects" + }, + "GetBucketAccelerateConfiguration": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?accelerate" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Status": {} + } + } + }, + "GetBucketAcl": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?acl" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Owner": { + "shape": "S2k" + }, + "Grants": { + "shape": "S2n", + "locationName": "AccessControlList" + } + } + } + }, + "GetBucketCors": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?cors" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "CORSRules": { + "shape": "S2w", + "locationName": "CORSRule" + } + } + } + }, + "GetBucketLifecycle": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Rules": { + "shape": "S39", + "locationName": "Rule" + } + } + }, + "deprecated": true + }, + "GetBucketLifecycleConfiguration": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Rules": { + "shape": "S3p", + "locationName": "Rule" + } + } + } + }, + "GetBucketLocation": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?location" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "LocationConstraint": {} + } + } + }, + "GetBucketLogging": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?logging" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "LoggingEnabled": { + "shape": "S3x" + } + } + } + }, + "GetBucketNotification": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?notification" + }, + "input": { + "shape": "S43" + }, + "output": { + "shape": "S44" + }, + "deprecated": true + }, + "GetBucketNotificationConfiguration": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?notification" + }, + "input": { + "shape": "S43" + }, + "output": { + "shape": "S4f" + } + }, + "GetBucketPolicy": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?policy" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Policy": {} + }, + "payload": "Policy" + } + }, + "GetBucketReplication": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?replication" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationConfiguration": { + "shape": "S4y" + } + }, + "payload": "ReplicationConfiguration" + } + }, + "GetBucketRequestPayment": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?requestPayment" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Payer": {} + } + } + }, + "GetBucketTagging": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?tagging" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "required": [ + "TagSet" + ], + "members": { + "TagSet": { + "shape": "S59" + } + } + } + }, + "GetBucketVersioning": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?versioning" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "Status": {}, + "MFADelete": { + "locationName": "MfaDelete" + } + } + } + }, + "GetBucketWebsite": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?website" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "output": { + "type": "structure", + "members": { + "RedirectAllRequestsTo": { + "shape": "S5i" + }, + "IndexDocument": { + "shape": "S5l" + }, + "ErrorDocument": { + "shape": "S5n" + }, + "RoutingRules": { + "shape": "S5o" + } + } + } + }, + "GetObject": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + }, + "IfModifiedSince": { + "location": "header", + "locationName": "If-Modified-Since", + "type": "timestamp" + }, + "IfNoneMatch": { + "location": "header", + "locationName": "If-None-Match" + }, + "IfUnmodifiedSince": { + "location": "header", + "locationName": "If-Unmodified-Since", + "type": "timestamp" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "Range": { + "location": "header", + "locationName": "Range" + }, + "ResponseCacheControl": { + "location": "querystring", + "locationName": "response-cache-control" + }, + "ResponseContentDisposition": { + "location": "querystring", + "locationName": "response-content-disposition" + }, + "ResponseContentEncoding": { + "location": "querystring", + "locationName": "response-content-encoding" + }, + "ResponseContentLanguage": { + "location": "querystring", + "locationName": "response-content-language" + }, + "ResponseContentType": { + "location": "querystring", + "locationName": "response-content-type" + }, + "ResponseExpires": { + "location": "querystring", + "locationName": "response-expires", + "type": "timestamp" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Body": { + "streaming": true, + "type": "blob" + }, + "DeleteMarker": { + "location": "header", + "locationName": "x-amz-delete-marker", + "type": "boolean" + }, + "AcceptRanges": { + "location": "header", + "locationName": "accept-ranges" + }, + "Expiration": { + "location": "header", + "locationName": "x-amz-expiration" + }, + "Restore": { + "location": "header", + "locationName": "x-amz-restore" + }, + "LastModified": { + "location": "header", + "locationName": "Last-Modified", + "type": "timestamp" + }, + "ContentLength": { + "location": "header", + "locationName": "Content-Length", + "type": "long" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + }, + "MissingMeta": { + "location": "header", + "locationName": "x-amz-missing-meta", + "type": "integer" + }, + "VersionId": { + "location": "header", + "locationName": "x-amz-version-id" + }, + "CacheControl": { + "location": "header", + "locationName": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "locationName": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "locationName": "Content-Language" + }, + "ContentRange": { + "location": "header", + "locationName": "Content-Range" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + }, + "Expires": { + "location": "header", + "locationName": "Expires", + "type": "timestamp" + }, + "WebsiteRedirectLocation": { + "location": "header", + "locationName": "x-amz-website-redirect-location" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "Metadata": { + "shape": "S11", + "location": "headers", + "locationName": "x-amz-meta-" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "StorageClass": { + "location": "header", + "locationName": "x-amz-storage-class" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + }, + "ReplicationStatus": { + "location": "header", + "locationName": "x-amz-replication-status" + } + }, + "payload": "Body" + } + }, + "GetObjectAcl": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}/{Key+}?acl" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Owner": { + "shape": "S2k" + }, + "Grants": { + "shape": "S2n", + "locationName": "AccessControlList" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "GetObjectTorrent": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}/{Key+}?torrent" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Body": { + "streaming": true, + "type": "blob" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + }, + "payload": "Body" + } + }, + "HeadBucket": { + "http": { + "method": "HEAD", + "requestUri": "/{Bucket}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + } + }, + "HeadObject": { + "http": { + "method": "HEAD", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "IfMatch": { + "location": "header", + "locationName": "If-Match" + }, + "IfModifiedSince": { + "location": "header", + "locationName": "If-Modified-Since", + "type": "timestamp" + }, + "IfNoneMatch": { + "location": "header", + "locationName": "If-None-Match" + }, + "IfUnmodifiedSince": { + "location": "header", + "locationName": "If-Unmodified-Since", + "type": "timestamp" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "Range": { + "location": "header", + "locationName": "Range" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeleteMarker": { + "location": "header", + "locationName": "x-amz-delete-marker", + "type": "boolean" + }, + "AcceptRanges": { + "location": "header", + "locationName": "accept-ranges" + }, + "Expiration": { + "location": "header", + "locationName": "x-amz-expiration" + }, + "Restore": { + "location": "header", + "locationName": "x-amz-restore" + }, + "LastModified": { + "location": "header", + "locationName": "Last-Modified", + "type": "timestamp" + }, + "ContentLength": { + "location": "header", + "locationName": "Content-Length", + "type": "long" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + }, + "MissingMeta": { + "location": "header", + "locationName": "x-amz-missing-meta", + "type": "integer" + }, + "VersionId": { + "location": "header", + "locationName": "x-amz-version-id" + }, + "CacheControl": { + "location": "header", + "locationName": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "locationName": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "locationName": "Content-Language" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + }, + "Expires": { + "location": "header", + "locationName": "Expires", + "type": "timestamp" + }, + "WebsiteRedirectLocation": { + "location": "header", + "locationName": "x-amz-website-redirect-location" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "Metadata": { + "shape": "S11", + "location": "headers", + "locationName": "x-amz-meta-" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "StorageClass": { + "location": "header", + "locationName": "x-amz-storage-class" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + }, + "ReplicationStatus": { + "location": "header", + "locationName": "x-amz-replication-status" + } + } + } + }, + "ListBuckets": { + "http": { + "method": "GET" + }, + "output": { + "type": "structure", + "members": { + "Buckets": { + "type": "list", + "member": { + "locationName": "Bucket", + "type": "structure", + "members": { + "Name": {}, + "CreationDate": { + "type": "timestamp" + } + } + } + }, + "Owner": { + "shape": "S2k" + } + } + }, + "alias": "GetService" + }, + "ListMultipartUploads": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?uploads" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Delimiter": { + "location": "querystring", + "locationName": "delimiter" + }, + "EncodingType": { + "location": "querystring", + "locationName": "encoding-type" + }, + "KeyMarker": { + "location": "querystring", + "locationName": "key-marker" + }, + "MaxUploads": { + "location": "querystring", + "locationName": "max-uploads", + "type": "integer" + }, + "Prefix": { + "location": "querystring", + "locationName": "prefix" + }, + "UploadIdMarker": { + "location": "querystring", + "locationName": "upload-id-marker" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bucket": {}, + "KeyMarker": {}, + "UploadIdMarker": {}, + "NextKeyMarker": {}, + "Prefix": {}, + "Delimiter": {}, + "NextUploadIdMarker": {}, + "MaxUploads": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Uploads": { + "locationName": "Upload", + "type": "list", + "member": { + "type": "structure", + "members": { + "UploadId": {}, + "Key": {}, + "Initiated": { + "type": "timestamp" + }, + "StorageClass": {}, + "Owner": { + "shape": "S2k" + }, + "Initiator": { + "shape": "S75" + } + } + }, + "flattened": true + }, + "CommonPrefixes": { + "shape": "S76" + }, + "EncodingType": {} + } + } + }, + "ListObjectVersions": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?versions" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Delimiter": { + "location": "querystring", + "locationName": "delimiter" + }, + "EncodingType": { + "location": "querystring", + "locationName": "encoding-type" + }, + "KeyMarker": { + "location": "querystring", + "locationName": "key-marker" + }, + "MaxKeys": { + "location": "querystring", + "locationName": "max-keys", + "type": "integer" + }, + "Prefix": { + "location": "querystring", + "locationName": "prefix" + }, + "VersionIdMarker": { + "location": "querystring", + "locationName": "version-id-marker" + } + } + }, + "output": { + "type": "structure", + "members": { + "IsTruncated": { + "type": "boolean" + }, + "KeyMarker": {}, + "VersionIdMarker": {}, + "NextKeyMarker": {}, + "NextVersionIdMarker": {}, + "Versions": { + "locationName": "Version", + "type": "list", + "member": { + "type": "structure", + "members": { + "ETag": {}, + "Size": { + "type": "integer" + }, + "StorageClass": {}, + "Key": {}, + "VersionId": {}, + "IsLatest": { + "type": "boolean" + }, + "LastModified": { + "type": "timestamp" + }, + "Owner": { + "shape": "S2k" + } + } + }, + "flattened": true + }, + "DeleteMarkers": { + "locationName": "DeleteMarker", + "type": "list", + "member": { + "type": "structure", + "members": { + "Owner": { + "shape": "S2k" + }, + "Key": {}, + "VersionId": {}, + "IsLatest": { + "type": "boolean" + }, + "LastModified": { + "type": "timestamp" + } + } + }, + "flattened": true + }, + "Name": {}, + "Prefix": {}, + "Delimiter": {}, + "MaxKeys": { + "type": "integer" + }, + "CommonPrefixes": { + "shape": "S76" + }, + "EncodingType": {} + } + }, + "alias": "GetBucketObjectVersions" + }, + "ListObjects": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Delimiter": { + "location": "querystring", + "locationName": "delimiter" + }, + "EncodingType": { + "location": "querystring", + "locationName": "encoding-type" + }, + "Marker": { + "location": "querystring", + "locationName": "marker" + }, + "MaxKeys": { + "location": "querystring", + "locationName": "max-keys", + "type": "integer" + }, + "Prefix": { + "location": "querystring", + "locationName": "prefix" + } + } + }, + "output": { + "type": "structure", + "members": { + "IsTruncated": { + "type": "boolean" + }, + "Marker": {}, + "NextMarker": {}, + "Contents": { + "shape": "S7o" + }, + "Name": {}, + "Prefix": {}, + "Delimiter": {}, + "MaxKeys": { + "type": "integer" + }, + "CommonPrefixes": { + "shape": "S76" + }, + "EncodingType": {} + } + }, + "alias": "GetBucket" + }, + "ListObjectsV2": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}?list-type=2" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Delimiter": { + "location": "querystring", + "locationName": "delimiter" + }, + "EncodingType": { + "location": "querystring", + "locationName": "encoding-type" + }, + "MaxKeys": { + "location": "querystring", + "locationName": "max-keys", + "type": "integer" + }, + "Prefix": { + "location": "querystring", + "locationName": "prefix" + }, + "ContinuationToken": { + "location": "querystring", + "locationName": "continuation-token" + }, + "FetchOwner": { + "location": "querystring", + "locationName": "fetch-owner", + "type": "boolean" + }, + "StartAfter": { + "location": "querystring", + "locationName": "start-after" + } + } + }, + "output": { + "type": "structure", + "members": { + "IsTruncated": { + "type": "boolean" + }, + "Contents": { + "shape": "S7o" + }, + "Name": {}, + "Prefix": {}, + "Delimiter": {}, + "MaxKeys": { + "type": "integer" + }, + "CommonPrefixes": { + "shape": "S76" + }, + "EncodingType": {}, + "KeyCount": { + "type": "integer" + }, + "ContinuationToken": {}, + "NextContinuationToken": {}, + "StartAfter": {} + } + } + }, + "ListParts": { + "http": { + "method": "GET", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key", + "UploadId" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "MaxParts": { + "location": "querystring", + "locationName": "max-parts", + "type": "integer" + }, + "PartNumberMarker": { + "location": "querystring", + "locationName": "part-number-marker", + "type": "integer" + }, + "UploadId": { + "location": "querystring", + "locationName": "uploadId" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AbortDate": { + "location": "header", + "locationName": "x-amz-abort-date", + "type": "timestamp" + }, + "AbortRuleId": { + "location": "header", + "locationName": "x-amz-abort-rule-id" + }, + "Bucket": {}, + "Key": {}, + "UploadId": {}, + "PartNumberMarker": { + "type": "integer" + }, + "NextPartNumberMarker": { + "type": "integer" + }, + "MaxParts": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Parts": { + "locationName": "Part", + "type": "list", + "member": { + "type": "structure", + "members": { + "PartNumber": { + "type": "integer" + }, + "LastModified": { + "type": "timestamp" + }, + "ETag": {}, + "Size": { + "type": "integer" + } + } + }, + "flattened": true + }, + "Initiator": { + "shape": "S75" + }, + "Owner": { + "shape": "S2k" + }, + "StorageClass": {}, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "PutBucketAccelerateConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?accelerate" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "AccelerateConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "AccelerateConfiguration": { + "locationName": "AccelerateConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "members": { + "Status": {} + } + } + }, + "payload": "AccelerateConfiguration" + } + }, + "PutBucketAcl": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?acl" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "ACL": { + "location": "header", + "locationName": "x-amz-acl" + }, + "AccessControlPolicy": { + "shape": "S88", + "locationName": "AccessControlPolicy", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + } + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "GrantFullControl": { + "location": "header", + "locationName": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "locationName": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "locationName": "x-amz-grant-read-acp" + }, + "GrantWrite": { + "location": "header", + "locationName": "x-amz-grant-write" + }, + "GrantWriteACP": { + "location": "header", + "locationName": "x-amz-grant-write-acp" + } + }, + "payload": "AccessControlPolicy" + } + }, + "PutBucketCors": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?cors" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "CORSConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "CORSConfiguration": { + "locationName": "CORSConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "CORSRules" + ], + "members": { + "CORSRules": { + "shape": "S2w", + "locationName": "CORSRule" + } + } + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + } + }, + "payload": "CORSConfiguration" + } + }, + "PutBucketLifecycle": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "LifecycleConfiguration": { + "locationName": "LifecycleConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "Rules" + ], + "members": { + "Rules": { + "shape": "S39", + "locationName": "Rule" + } + } + } + }, + "payload": "LifecycleConfiguration" + }, + "deprecated": true + }, + "PutBucketLifecycleConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "LifecycleConfiguration": { + "locationName": "LifecycleConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "Rules" + ], + "members": { + "Rules": { + "shape": "S3p", + "locationName": "Rule" + } + } + } + }, + "payload": "LifecycleConfiguration" + } + }, + "PutBucketLogging": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?logging" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "BucketLoggingStatus" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "BucketLoggingStatus": { + "locationName": "BucketLoggingStatus", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "members": { + "LoggingEnabled": { + "shape": "S3x" + } + } + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + } + }, + "payload": "BucketLoggingStatus" + } + }, + "PutBucketNotification": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?notification" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "NotificationConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "NotificationConfiguration": { + "shape": "S44", + "locationName": "NotificationConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + } + } + }, + "payload": "NotificationConfiguration" + }, + "deprecated": true + }, + "PutBucketNotificationConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?notification" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "NotificationConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "NotificationConfiguration": { + "shape": "S4f", + "locationName": "NotificationConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + } + } + }, + "payload": "NotificationConfiguration" + } + }, + "PutBucketPolicy": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?policy" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Policy" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "Policy": {} + }, + "payload": "Policy" + } + }, + "PutBucketReplication": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?replication" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "ReplicationConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "ReplicationConfiguration": { + "shape": "S4y", + "locationName": "ReplicationConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + } + } + }, + "payload": "ReplicationConfiguration" + } + }, + "PutBucketRequestPayment": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?requestPayment" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "RequestPaymentConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "RequestPaymentConfiguration": { + "locationName": "RequestPaymentConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "Payer" + ], + "members": { + "Payer": {} + } + } + }, + "payload": "RequestPaymentConfiguration" + } + }, + "PutBucketTagging": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?tagging" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Tagging" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "Tagging": { + "locationName": "Tagging", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "TagSet" + ], + "members": { + "TagSet": { + "shape": "S59" + } + } + } + }, + "payload": "Tagging" + } + }, + "PutBucketVersioning": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?versioning" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "VersioningConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "MFA": { + "location": "header", + "locationName": "x-amz-mfa" + }, + "VersioningConfiguration": { + "locationName": "VersioningConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "members": { + "MFADelete": { + "locationName": "MfaDelete" + }, + "Status": {} + } + } + }, + "payload": "VersioningConfiguration" + } + }, + "PutBucketWebsite": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}?website" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "WebsiteConfiguration" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "WebsiteConfiguration": { + "locationName": "WebsiteConfiguration", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "members": { + "ErrorDocument": { + "shape": "S5n" + }, + "IndexDocument": { + "shape": "S5l" + }, + "RedirectAllRequestsTo": { + "shape": "S5i" + }, + "RoutingRules": { + "shape": "S5o" + } + } + } + }, + "payload": "WebsiteConfiguration" + } + }, + "PutObject": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "ACL": { + "location": "header", + "locationName": "x-amz-acl" + }, + "Body": { + "streaming": true, + "type": "blob" + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "CacheControl": { + "location": "header", + "locationName": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "locationName": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "locationName": "Content-Language" + }, + "ContentLength": { + "location": "header", + "locationName": "Content-Length", + "type": "long" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + }, + "Expires": { + "location": "header", + "locationName": "Expires", + "type": "timestamp" + }, + "GrantFullControl": { + "location": "header", + "locationName": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "locationName": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "locationName": "x-amz-grant-read-acp" + }, + "GrantWriteACP": { + "location": "header", + "locationName": "x-amz-grant-write-acp" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "Metadata": { + "shape": "S11", + "location": "headers", + "locationName": "x-amz-meta-" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "StorageClass": { + "location": "header", + "locationName": "x-amz-storage-class" + }, + "WebsiteRedirectLocation": { + "location": "header", + "locationName": "x-amz-website-redirect-location" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + }, + "payload": "Body" + }, + "output": { + "type": "structure", + "members": { + "Expiration": { + "location": "header", + "locationName": "x-amz-expiration" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "VersionId": { + "location": "header", + "locationName": "x-amz-version-id" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "PutObjectAcl": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}/{Key+}?acl" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "ACL": { + "location": "header", + "locationName": "x-amz-acl" + }, + "AccessControlPolicy": { + "shape": "S88", + "locationName": "AccessControlPolicy", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + } + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "GrantFullControl": { + "location": "header", + "locationName": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "locationName": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "locationName": "x-amz-grant-read-acp" + }, + "GrantWrite": { + "location": "header", + "locationName": "x-amz-grant-write" + }, + "GrantWriteACP": { + "location": "header", + "locationName": "x-amz-grant-write-acp" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + } + }, + "payload": "AccessControlPolicy" + }, + "output": { + "type": "structure", + "members": { + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "RestoreObject": { + "http": { + "requestUri": "/{Bucket}/{Key+}?restore" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + }, + "RestoreRequest": { + "locationName": "RestoreRequest", + "xmlNamespace": { + "uri": "http://s3.amazonaws.com/doc/2006-03-01/" + }, + "type": "structure", + "required": [ + "Days" + ], + "members": { + "Days": { + "type": "integer" + } + } + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + }, + "payload": "RestoreRequest" + }, + "output": { + "type": "structure", + "members": { + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + }, + "alias": "PostObjectRestore" + }, + "UploadPart": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "Key", + "PartNumber", + "UploadId" + ], + "members": { + "Body": { + "streaming": true, + "type": "blob" + }, + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "ContentLength": { + "location": "header", + "locationName": "Content-Length", + "type": "long" + }, + "ContentMD5": { + "location": "header", + "locationName": "Content-MD5" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "PartNumber": { + "location": "querystring", + "locationName": "partNumber", + "type": "integer" + }, + "UploadId": { + "location": "querystring", + "locationName": "uploadId" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + }, + "payload": "Body" + }, + "output": { + "type": "structure", + "members": { + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "ETag": { + "location": "header", + "locationName": "ETag" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + } + } + }, + "UploadPartCopy": { + "http": { + "method": "PUT", + "requestUri": "/{Bucket}/{Key+}" + }, + "input": { + "type": "structure", + "required": [ + "Bucket", + "CopySource", + "Key", + "PartNumber", + "UploadId" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + }, + "CopySource": { + "location": "header", + "locationName": "x-amz-copy-source" + }, + "CopySourceIfMatch": { + "location": "header", + "locationName": "x-amz-copy-source-if-match" + }, + "CopySourceIfModifiedSince": { + "location": "header", + "locationName": "x-amz-copy-source-if-modified-since", + "type": "timestamp" + }, + "CopySourceIfNoneMatch": { + "location": "header", + "locationName": "x-amz-copy-source-if-none-match" + }, + "CopySourceIfUnmodifiedSince": { + "location": "header", + "locationName": "x-amz-copy-source-if-unmodified-since", + "type": "timestamp" + }, + "CopySourceRange": { + "location": "header", + "locationName": "x-amz-copy-source-range" + }, + "Key": { + "location": "uri", + "locationName": "Key" + }, + "PartNumber": { + "location": "querystring", + "locationName": "partNumber", + "type": "integer" + }, + "UploadId": { + "location": "querystring", + "locationName": "uploadId" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey": { + "shape": "S18", + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "CopySourceSSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-copy-source-server-side-encryption-customer-algorithm" + }, + "CopySourceSSECustomerKey": { + "shape": "S1b", + "location": "header", + "locationName": "x-amz-copy-source-server-side-encryption-customer-key" + }, + "CopySourceSSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-copy-source-server-side-encryption-customer-key-MD5" + }, + "RequestPayer": { + "location": "header", + "locationName": "x-amz-request-payer" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopySourceVersionId": { + "location": "header", + "locationName": "x-amz-copy-source-version-id" + }, + "CopyPartResult": { + "type": "structure", + "members": { + "ETag": {}, + "LastModified": { + "type": "timestamp" + } + } + }, + "ServerSideEncryption": { + "location": "header", + "locationName": "x-amz-server-side-encryption" + }, + "SSECustomerAlgorithm": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5": { + "location": "header", + "locationName": "x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId": { + "shape": "Sj", + "location": "header", + "locationName": "x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged": { + "location": "header", + "locationName": "x-amz-request-charged" + } + }, + "payload": "CopyPartResult" + } + } + }, + "shapes": { + "Sj": { + "type": "string", + "sensitive": true + }, + "S11": { + "type": "map", + "key": {}, + "value": {} + }, + "S18": { + "type": "blob", + "sensitive": true + }, + "S1b": { + "type": "blob", + "sensitive": true + }, + "S2k": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "S2n": { + "type": "list", + "member": { + "locationName": "Grant", + "type": "structure", + "members": { + "Grantee": { + "shape": "S2p" + }, + "Permission": {} + } + } + }, + "S2p": { + "type": "structure", + "required": [ + "Type" + ], + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "Type": { + "locationName": "xsi:type", + "xmlAttribute": true + }, + "URI": {} + }, + "xmlNamespace": { + "prefix": "xsi", + "uri": "http://www.w3.org/2001/XMLSchema-instance" + } + }, + "S2w": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AllowedMethods", + "AllowedOrigins" + ], + "members": { + "AllowedHeaders": { + "locationName": "AllowedHeader", + "type": "list", + "member": {}, + "flattened": true + }, + "AllowedMethods": { + "locationName": "AllowedMethod", + "type": "list", + "member": {}, + "flattened": true + }, + "AllowedOrigins": { + "locationName": "AllowedOrigin", + "type": "list", + "member": {}, + "flattened": true + }, + "ExposeHeaders": { + "locationName": "ExposeHeader", + "type": "list", + "member": {}, + "flattened": true + }, + "MaxAgeSeconds": { + "type": "integer" + } + } + }, + "flattened": true + }, + "S39": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Prefix", + "Status" + ], + "members": { + "Expiration": { + "shape": "S3b" + }, + "ID": {}, + "Prefix": {}, + "Status": {}, + "Transition": { + "shape": "S3h" + }, + "NoncurrentVersionTransition": { + "shape": "S3j" + }, + "NoncurrentVersionExpiration": { + "shape": "S3k" + }, + "AbortIncompleteMultipartUpload": { + "shape": "S3l" + } + } + }, + "flattened": true + }, + "S3b": { + "type": "structure", + "members": { + "Date": { + "shape": "S3c" + }, + "Days": { + "type": "integer" + }, + "ExpiredObjectDeleteMarker": { + "type": "boolean" + } + } + }, + "S3c": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "S3h": { + "type": "structure", + "members": { + "Date": { + "shape": "S3c" + }, + "Days": { + "type": "integer" + }, + "StorageClass": {} + } + }, + "S3j": { + "type": "structure", + "members": { + "NoncurrentDays": { + "type": "integer" + }, + "StorageClass": {} + } + }, + "S3k": { + "type": "structure", + "members": { + "NoncurrentDays": { + "type": "integer" + } + } + }, + "S3l": { + "type": "structure", + "members": { + "DaysAfterInitiation": { + "type": "integer" + } + } + }, + "S3p": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Prefix", + "Status" + ], + "members": { + "Expiration": { + "shape": "S3b" + }, + "ID": {}, + "Prefix": {}, + "Status": {}, + "Transitions": { + "locationName": "Transition", + "type": "list", + "member": { + "shape": "S3h" + }, + "flattened": true + }, + "NoncurrentVersionTransitions": { + "locationName": "NoncurrentVersionTransition", + "type": "list", + "member": { + "shape": "S3j" + }, + "flattened": true + }, + "NoncurrentVersionExpiration": { + "shape": "S3k" + }, + "AbortIncompleteMultipartUpload": { + "shape": "S3l" + } + } + }, + "flattened": true + }, + "S3x": { + "type": "structure", + "members": { + "TargetBucket": {}, + "TargetGrants": { + "type": "list", + "member": { + "locationName": "Grant", + "type": "structure", + "members": { + "Grantee": { + "shape": "S2p" + }, + "Permission": {} + } + } + }, + "TargetPrefix": {} + } + }, + "S43": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": { + "location": "uri", + "locationName": "Bucket" + } + } + }, + "S44": { + "type": "structure", + "members": { + "TopicConfiguration": { + "type": "structure", + "members": { + "Id": {}, + "Events": { + "shape": "S47", + "locationName": "Event" + }, + "Event": { + "deprecated": true + }, + "Topic": {} + } + }, + "QueueConfiguration": { + "type": "structure", + "members": { + "Id": {}, + "Event": { + "deprecated": true + }, + "Events": { + "shape": "S47", + "locationName": "Event" + }, + "Queue": {} + } + }, + "CloudFunctionConfiguration": { + "type": "structure", + "members": { + "Id": {}, + "Event": { + "deprecated": true + }, + "Events": { + "shape": "S47", + "locationName": "Event" + }, + "CloudFunction": {}, + "InvocationRole": {} + } + } + } + }, + "S47": { + "type": "list", + "member": {}, + "flattened": true + }, + "S4f": { + "type": "structure", + "members": { + "TopicConfigurations": { + "locationName": "TopicConfiguration", + "type": "list", + "member": { + "type": "structure", + "required": [ + "TopicArn", + "Events" + ], + "members": { + "Id": {}, + "TopicArn": { + "locationName": "Topic" + }, + "Events": { + "shape": "S47", + "locationName": "Event" + }, + "Filter": { + "shape": "S4i" + } + } + }, + "flattened": true + }, + "QueueConfigurations": { + "locationName": "QueueConfiguration", + "type": "list", + "member": { + "type": "structure", + "required": [ + "QueueArn", + "Events" + ], + "members": { + "Id": {}, + "QueueArn": { + "locationName": "Queue" + }, + "Events": { + "shape": "S47", + "locationName": "Event" + }, + "Filter": { + "shape": "S4i" + } + } + }, + "flattened": true + }, + "LambdaFunctionConfigurations": { + "locationName": "CloudFunctionConfiguration", + "type": "list", + "member": { + "type": "structure", + "required": [ + "LambdaFunctionArn", + "Events" + ], + "members": { + "Id": {}, + "LambdaFunctionArn": { + "locationName": "CloudFunction" + }, + "Events": { + "shape": "S47", + "locationName": "Event" + }, + "Filter": { + "shape": "S4i" + } + } + }, + "flattened": true + } + } + }, + "S4i": { + "type": "structure", + "members": { + "Key": { + "locationName": "S3Key", + "type": "structure", + "members": { + "FilterRules": { + "locationName": "FilterRule", + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Value": {} + } + }, + "flattened": true + } + } + } + } + }, + "S4y": { + "type": "structure", + "required": [ + "Role", + "Rules" + ], + "members": { + "Role": {}, + "Rules": { + "locationName": "Rule", + "type": "list", + "member": { + "type": "structure", + "required": [ + "Prefix", + "Status", + "Destination" + ], + "members": { + "ID": {}, + "Prefix": {}, + "Status": {}, + "Destination": { + "type": "structure", + "required": [ + "Bucket" + ], + "members": { + "Bucket": {}, + "StorageClass": {} + } + } + } + }, + "flattened": true + } + } + }, + "S59": { + "type": "list", + "member": { + "locationName": "Tag", + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S5i": { + "type": "structure", + "required": [ + "HostName" + ], + "members": { + "HostName": {}, + "Protocol": {} + } + }, + "S5l": { + "type": "structure", + "required": [ + "Suffix" + ], + "members": { + "Suffix": {} + } + }, + "S5n": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {} + } + }, + "S5o": { + "type": "list", + "member": { + "locationName": "RoutingRule", + "type": "structure", + "required": [ + "Redirect" + ], + "members": { + "Condition": { + "type": "structure", + "members": { + "HttpErrorCodeReturnedEquals": {}, + "KeyPrefixEquals": {} + } + }, + "Redirect": { + "type": "structure", + "members": { + "HostName": {}, + "HttpRedirectCode": {}, + "Protocol": {}, + "ReplaceKeyPrefixWith": {}, + "ReplaceKeyWith": {} + } + } + } + } + }, + "S75": { + "type": "structure", + "members": { + "ID": {}, + "DisplayName": {} + } + }, + "S76": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Prefix": {} + } + }, + "flattened": true + }, + "S7o": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "LastModified": { + "type": "timestamp" + }, + "ETag": {}, + "Size": { + "type": "integer" + }, + "StorageClass": {}, + "Owner": { + "shape": "S2k" + } + } + }, + "flattened": true + }, + "S88": { + "type": "structure", + "members": { + "Grants": { + "shape": "S2n", + "locationName": "AccessControlList" + }, + "Owner": { + "shape": "S2k" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json new file mode 100755 index 0000000..3498920 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json @@ -0,0 +1,66 @@ +{ + "pagination": { + "ListBuckets": { + "result_key": "Buckets" + }, + "ListMultipartUploads": { + "limit_key": "MaxUploads", + "more_results": "IsTruncated", + "output_token": [ + "NextKeyMarker", + "NextUploadIdMarker" + ], + "input_token": [ + "KeyMarker", + "UploadIdMarker" + ], + "result_key": [ + "Uploads", + "CommonPrefixes" + ] + }, + "ListObjectVersions": { + "more_results": "IsTruncated", + "limit_key": "MaxKeys", + "output_token": [ + "NextKeyMarker", + "NextVersionIdMarker" + ], + "input_token": [ + "KeyMarker", + "VersionIdMarker" + ], + "result_key": [ + "Versions", + "DeleteMarkers", + "CommonPrefixes" + ] + }, + "ListObjects": { + "more_results": "IsTruncated", + "limit_key": "MaxKeys", + "output_token": "NextMarker || Contents[-1].Key", + "input_token": "Marker", + "result_key": [ + "Contents", + "CommonPrefixes" + ] + }, + "ListObjectsV2": { + "limit_key": "MaxKeys", + "output_token": "NextContinuationToken", + "input_token": "ContinuationToken", + "result_key": [ + "Contents", + "CommonPrefixes" + ] + }, + "ListParts": { + "more_results": "IsTruncated", + "limit_key": "MaxParts", + "output_token": "NextPartNumberMarker", + "input_token": "PartNumberMarker", + "result_key": "Parts" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json new file mode 100755 index 0000000..b508a8f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json @@ -0,0 +1,73 @@ +{ + "version": 2, + "waiters": { + "BucketExists": { + "delay": 5, + "operation": "HeadBucket", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 200, + "matcher": "status", + "state": "success" + }, + { + "expected": 301, + "matcher": "status", + "state": "success" + }, + { + "expected": 403, + "matcher": "status", + "state": "success" + }, + { + "expected": 404, + "matcher": "status", + "state": "retry" + } + ] + }, + "BucketNotExists": { + "delay": 5, + "operation": "HeadBucket", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 404, + "matcher": "status", + "state": "success" + } + ] + }, + "ObjectExists": { + "delay": 5, + "operation": "HeadObject", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 200, + "matcher": "status", + "state": "success" + }, + { + "expected": 404, + "matcher": "status", + "state": "retry" + } + ] + }, + "ObjectNotExists": { + "delay": 5, + "operation": "HeadObject", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 404, + "matcher": "status", + "state": "success" + } + ] + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.min.json new file mode 100755 index 0000000..e931b3c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.min.json @@ -0,0 +1,336 @@ +{ + "metadata": { + "apiVersion": "2009-04-15", + "endpointPrefix": "sdb", + "serviceFullName": "Amazon SimpleDB", + "signatureVersion": "v2", + "xmlNamespace": "http://sdb.amazonaws.com/doc/2009-04-15/", + "protocol": "query" + }, + "operations": { + "BatchDeleteAttributes": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Items" + ], + "members": { + "DomainName": {}, + "Items": { + "type": "list", + "member": { + "locationName": "Item", + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": { + "locationName": "ItemName" + }, + "Attributes": { + "shape": "S5" + } + } + }, + "flattened": true + } + } + } + }, + "BatchPutAttributes": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "Items" + ], + "members": { + "DomainName": {}, + "Items": { + "type": "list", + "member": { + "locationName": "Item", + "type": "structure", + "required": [ + "Name", + "Attributes" + ], + "members": { + "Name": { + "locationName": "ItemName" + }, + "Attributes": { + "shape": "Sa" + } + } + }, + "flattened": true + } + } + } + }, + "CreateDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + } + }, + "DeleteAttributes": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "ItemName" + ], + "members": { + "DomainName": {}, + "ItemName": {}, + "Attributes": { + "shape": "S5" + }, + "Expected": { + "shape": "Sf" + } + } + } + }, + "DeleteDomain": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + } + }, + "DomainMetadata": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {} + } + }, + "output": { + "resultWrapper": "DomainMetadataResult", + "type": "structure", + "members": { + "ItemCount": { + "type": "integer" + }, + "ItemNamesSizeBytes": { + "type": "long" + }, + "AttributeNameCount": { + "type": "integer" + }, + "AttributeNamesSizeBytes": { + "type": "long" + }, + "AttributeValueCount": { + "type": "integer" + }, + "AttributeValuesSizeBytes": { + "type": "long" + }, + "Timestamp": { + "type": "integer" + } + } + } + }, + "GetAttributes": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "ItemName" + ], + "members": { + "DomainName": {}, + "ItemName": {}, + "AttributeNames": { + "type": "list", + "member": { + "locationName": "AttributeName" + }, + "flattened": true + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "GetAttributesResult", + "type": "structure", + "members": { + "Attributes": { + "shape": "So" + } + } + } + }, + "ListDomains": { + "input": { + "type": "structure", + "members": { + "MaxNumberOfDomains": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListDomainsResult", + "type": "structure", + "members": { + "DomainNames": { + "type": "list", + "member": { + "locationName": "DomainName" + }, + "flattened": true + }, + "NextToken": {} + } + } + }, + "PutAttributes": { + "input": { + "type": "structure", + "required": [ + "DomainName", + "ItemName", + "Attributes" + ], + "members": { + "DomainName": {}, + "ItemName": {}, + "Attributes": { + "shape": "Sa" + }, + "Expected": { + "shape": "Sf" + } + } + } + }, + "Select": { + "input": { + "type": "structure", + "required": [ + "SelectExpression" + ], + "members": { + "SelectExpression": {}, + "NextToken": {}, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "SelectResult", + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "locationName": "Item", + "type": "structure", + "required": [ + "Name", + "Attributes" + ], + "members": { + "Name": {}, + "AlternateNameEncoding": {}, + "Attributes": { + "shape": "So" + } + } + }, + "flattened": true + }, + "NextToken": {} + } + } + } + }, + "shapes": { + "S5": { + "type": "list", + "member": { + "locationName": "Attribute", + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Value": {} + } + }, + "flattened": true + }, + "Sa": { + "type": "list", + "member": { + "locationName": "Attribute", + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {}, + "Replace": { + "type": "boolean" + } + } + }, + "flattened": true + }, + "Sf": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "Exists": { + "type": "boolean" + } + } + }, + "So": { + "type": "list", + "member": { + "locationName": "Attribute", + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "AlternateNameEncoding": {}, + "Value": {}, + "AlternateValueEncoding": {} + } + }, + "flattened": true + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.paginators.json new file mode 100755 index 0000000..2362098 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sdb-2009-04-15.paginators.json @@ -0,0 +1,15 @@ +{ + "pagination": { + "ListDomains": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxNumberOfDomains", + "result_key": "DomainNames" + }, + "Select": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Items" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.min.json new file mode 100755 index 0000000..57b5504 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.min.json @@ -0,0 +1,527 @@ +{ + "metadata": { + "apiVersion": "2010-03-31", + "endpointPrefix": "sns", + "serviceAbbreviation": "Amazon SNS", + "serviceFullName": "Amazon Simple Notification Service", + "signatureVersion": "v4", + "xmlNamespace": "http://sns.amazonaws.com/doc/2010-03-31/", + "protocol": "query" + }, + "operations": { + "AddPermission": { + "input": { + "type": "structure", + "required": [ + "TopicArn", + "Label", + "AWSAccountId", + "ActionName" + ], + "members": { + "TopicArn": {}, + "Label": {}, + "AWSAccountId": { + "type": "list", + "member": {} + }, + "ActionName": { + "type": "list", + "member": {} + } + } + } + }, + "ConfirmSubscription": { + "input": { + "type": "structure", + "required": [ + "TopicArn", + "Token" + ], + "members": { + "TopicArn": {}, + "Token": {}, + "AuthenticateOnUnsubscribe": {} + } + }, + "output": { + "resultWrapper": "ConfirmSubscriptionResult", + "type": "structure", + "members": { + "SubscriptionArn": {} + } + } + }, + "CreatePlatformApplication": { + "input": { + "type": "structure", + "required": [ + "Name", + "Platform", + "Attributes" + ], + "members": { + "Name": {}, + "Platform": {}, + "Attributes": { + "shape": "Sf" + } + } + }, + "output": { + "resultWrapper": "CreatePlatformApplicationResult", + "type": "structure", + "members": { + "PlatformApplicationArn": {} + } + } + }, + "CreatePlatformEndpoint": { + "input": { + "type": "structure", + "required": [ + "PlatformApplicationArn", + "Token" + ], + "members": { + "PlatformApplicationArn": {}, + "Token": {}, + "CustomUserData": {}, + "Attributes": { + "shape": "Sf" + } + } + }, + "output": { + "resultWrapper": "CreatePlatformEndpointResult", + "type": "structure", + "members": { + "EndpointArn": {} + } + } + }, + "CreateTopic": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "resultWrapper": "CreateTopicResult", + "type": "structure", + "members": { + "TopicArn": {} + } + } + }, + "DeleteEndpoint": { + "input": { + "type": "structure", + "required": [ + "EndpointArn" + ], + "members": { + "EndpointArn": {} + } + } + }, + "DeletePlatformApplication": { + "input": { + "type": "structure", + "required": [ + "PlatformApplicationArn" + ], + "members": { + "PlatformApplicationArn": {} + } + } + }, + "DeleteTopic": { + "input": { + "type": "structure", + "required": [ + "TopicArn" + ], + "members": { + "TopicArn": {} + } + } + }, + "GetEndpointAttributes": { + "input": { + "type": "structure", + "required": [ + "EndpointArn" + ], + "members": { + "EndpointArn": {} + } + }, + "output": { + "resultWrapper": "GetEndpointAttributesResult", + "type": "structure", + "members": { + "Attributes": { + "shape": "Sf" + } + } + } + }, + "GetPlatformApplicationAttributes": { + "input": { + "type": "structure", + "required": [ + "PlatformApplicationArn" + ], + "members": { + "PlatformApplicationArn": {} + } + }, + "output": { + "resultWrapper": "GetPlatformApplicationAttributesResult", + "type": "structure", + "members": { + "Attributes": { + "shape": "Sf" + } + } + } + }, + "GetSubscriptionAttributes": { + "input": { + "type": "structure", + "required": [ + "SubscriptionArn" + ], + "members": { + "SubscriptionArn": {} + } + }, + "output": { + "resultWrapper": "GetSubscriptionAttributesResult", + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "GetTopicAttributes": { + "input": { + "type": "structure", + "required": [ + "TopicArn" + ], + "members": { + "TopicArn": {} + } + }, + "output": { + "resultWrapper": "GetTopicAttributesResult", + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "ListEndpointsByPlatformApplication": { + "input": { + "type": "structure", + "required": [ + "PlatformApplicationArn" + ], + "members": { + "PlatformApplicationArn": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListEndpointsByPlatformApplicationResult", + "type": "structure", + "members": { + "Endpoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EndpointArn": {}, + "Attributes": { + "shape": "Sf" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListPlatformApplications": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListPlatformApplicationsResult", + "type": "structure", + "members": { + "PlatformApplications": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PlatformApplicationArn": {}, + "Attributes": { + "shape": "Sf" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListSubscriptions": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListSubscriptionsResult", + "type": "structure", + "members": { + "Subscriptions": { + "shape": "S1c" + }, + "NextToken": {} + } + } + }, + "ListSubscriptionsByTopic": { + "input": { + "type": "structure", + "required": [ + "TopicArn" + ], + "members": { + "TopicArn": {}, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListSubscriptionsByTopicResult", + "type": "structure", + "members": { + "Subscriptions": { + "shape": "S1c" + }, + "NextToken": {} + } + } + }, + "ListTopics": { + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "resultWrapper": "ListTopicsResult", + "type": "structure", + "members": { + "Topics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TopicArn": {} + } + } + }, + "NextToken": {} + } + } + }, + "Publish": { + "input": { + "type": "structure", + "required": [ + "Message" + ], + "members": { + "TopicArn": {}, + "TargetArn": {}, + "Message": {}, + "Subject": {}, + "MessageStructure": {}, + "MessageAttributes": { + "type": "map", + "key": { + "locationName": "Name" + }, + "value": { + "locationName": "Value", + "type": "structure", + "required": [ + "DataType" + ], + "members": { + "DataType": {}, + "StringValue": {}, + "BinaryValue": { + "type": "blob" + } + } + } + } + } + }, + "output": { + "resultWrapper": "PublishResult", + "type": "structure", + "members": { + "MessageId": {} + } + } + }, + "RemovePermission": { + "input": { + "type": "structure", + "required": [ + "TopicArn", + "Label" + ], + "members": { + "TopicArn": {}, + "Label": {} + } + } + }, + "SetEndpointAttributes": { + "input": { + "type": "structure", + "required": [ + "EndpointArn", + "Attributes" + ], + "members": { + "EndpointArn": {}, + "Attributes": { + "shape": "Sf" + } + } + } + }, + "SetPlatformApplicationAttributes": { + "input": { + "type": "structure", + "required": [ + "PlatformApplicationArn", + "Attributes" + ], + "members": { + "PlatformApplicationArn": {}, + "Attributes": { + "shape": "Sf" + } + } + } + }, + "SetSubscriptionAttributes": { + "input": { + "type": "structure", + "required": [ + "SubscriptionArn", + "AttributeName" + ], + "members": { + "SubscriptionArn": {}, + "AttributeName": {}, + "AttributeValue": {} + } + } + }, + "SetTopicAttributes": { + "input": { + "type": "structure", + "required": [ + "TopicArn", + "AttributeName" + ], + "members": { + "TopicArn": {}, + "AttributeName": {}, + "AttributeValue": {} + } + } + }, + "Subscribe": { + "input": { + "type": "structure", + "required": [ + "TopicArn", + "Protocol" + ], + "members": { + "TopicArn": {}, + "Protocol": {}, + "Endpoint": {} + } + }, + "output": { + "resultWrapper": "SubscribeResult", + "type": "structure", + "members": { + "SubscriptionArn": {} + } + } + }, + "Unsubscribe": { + "input": { + "type": "structure", + "required": [ + "SubscriptionArn" + ], + "members": { + "SubscriptionArn": {} + } + } + } + }, + "shapes": { + "Sf": { + "type": "map", + "key": {}, + "value": {} + }, + "S1c": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SubscriptionArn": {}, + "Owner": {}, + "Protocol": {}, + "Endpoint": {}, + "TopicArn": {} + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.paginators.json new file mode 100755 index 0000000..455e470 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sns-2010-03-31.paginators.json @@ -0,0 +1,29 @@ +{ + "pagination": { + "ListEndpointsByPlatformApplication": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Endpoints" + }, + "ListPlatformApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "PlatformApplications" + }, + "ListSubscriptions": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Subscriptions" + }, + "ListSubscriptionsByTopic": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Subscriptions" + }, + "ListTopics": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Topics" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.examples.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.examples.json new file mode 100755 index 0000000..ec81393 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.examples.json @@ -0,0 +1,44 @@ +{ + "version": "1.0", + "examples": { + "CreateQueue": [ + { + "input": { + "QueueName": "MyQueue" + }, + "output": { + "QueueUrl": "https://queue.amazonaws.com/012345678910/MyQueue" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following operation creates an SQS queue named MyQueue.", + "id": "create-an-sqs-queue-1445915686197", + "title": "Create an SQS queue" + } + ], + "GetQueueUrl": [ + { + "input": { + "QueueName": "MyQueue", + "QueueOwnerAWSAccountId": "12345678910" + }, + "output": { + "QueueUrl": "https://queue.amazonaws.com/12345678910/MyQueue" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example retrieves the queue ARN.", + "id": "retrieve-queue-attributes-from-an-sqs-queue-1445915930574", + "title": "Retrieve queue attributes from an SQS queue" + } + ] + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.min.json new file mode 100755 index 0000000..492845e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.min.json @@ -0,0 +1,583 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-11-05", + "endpointPrefix": "sqs", + "protocol": "query", + "serviceAbbreviation": "Amazon SQS", + "serviceFullName": "Amazon Simple Queue Service", + "signatureVersion": "v4", + "xmlNamespace": "http://queue.amazonaws.com/doc/2012-11-05/" + }, + "operations": { + "AddPermission": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "Label", + "AWSAccountIds", + "Actions" + ], + "members": { + "QueueUrl": {}, + "Label": {}, + "AWSAccountIds": { + "type": "list", + "member": { + "locationName": "AWSAccountId" + }, + "flattened": true + }, + "Actions": { + "type": "list", + "member": { + "locationName": "ActionName" + }, + "flattened": true + } + } + } + }, + "ChangeMessageVisibility": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "ReceiptHandle", + "VisibilityTimeout" + ], + "members": { + "QueueUrl": {}, + "ReceiptHandle": {}, + "VisibilityTimeout": { + "type": "integer" + } + } + } + }, + "ChangeMessageVisibilityBatch": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "Entries" + ], + "members": { + "QueueUrl": {}, + "Entries": { + "type": "list", + "member": { + "locationName": "ChangeMessageVisibilityBatchRequestEntry", + "type": "structure", + "required": [ + "Id", + "ReceiptHandle" + ], + "members": { + "Id": {}, + "ReceiptHandle": {}, + "VisibilityTimeout": { + "type": "integer" + } + } + }, + "flattened": true + } + } + }, + "output": { + "resultWrapper": "ChangeMessageVisibilityBatchResult", + "type": "structure", + "required": [ + "Successful", + "Failed" + ], + "members": { + "Successful": { + "type": "list", + "member": { + "locationName": "ChangeMessageVisibilityBatchResultEntry", + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": {} + } + }, + "flattened": true + }, + "Failed": { + "shape": "Sd" + } + } + } + }, + "CreateQueue": { + "input": { + "type": "structure", + "required": [ + "QueueName" + ], + "members": { + "QueueName": {}, + "Attributes": { + "shape": "Sh", + "locationName": "Attribute" + } + } + }, + "output": { + "resultWrapper": "CreateQueueResult", + "type": "structure", + "members": { + "QueueUrl": {} + } + } + }, + "DeleteMessage": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "ReceiptHandle" + ], + "members": { + "QueueUrl": {}, + "ReceiptHandle": {} + } + } + }, + "DeleteMessageBatch": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "Entries" + ], + "members": { + "QueueUrl": {}, + "Entries": { + "type": "list", + "member": { + "locationName": "DeleteMessageBatchRequestEntry", + "type": "structure", + "required": [ + "Id", + "ReceiptHandle" + ], + "members": { + "Id": {}, + "ReceiptHandle": {} + } + }, + "flattened": true + } + } + }, + "output": { + "resultWrapper": "DeleteMessageBatchResult", + "type": "structure", + "required": [ + "Successful", + "Failed" + ], + "members": { + "Successful": { + "type": "list", + "member": { + "locationName": "DeleteMessageBatchResultEntry", + "type": "structure", + "required": [ + "Id" + ], + "members": { + "Id": {} + } + }, + "flattened": true + }, + "Failed": { + "shape": "Sd" + } + } + } + }, + "DeleteQueue": { + "input": { + "type": "structure", + "required": [ + "QueueUrl" + ], + "members": { + "QueueUrl": {} + } + } + }, + "GetQueueAttributes": { + "input": { + "type": "structure", + "required": [ + "QueueUrl" + ], + "members": { + "QueueUrl": {}, + "AttributeNames": { + "shape": "St" + } + } + }, + "output": { + "resultWrapper": "GetQueueAttributesResult", + "type": "structure", + "members": { + "Attributes": { + "shape": "Sh", + "locationName": "Attribute" + } + } + } + }, + "GetQueueUrl": { + "input": { + "type": "structure", + "required": [ + "QueueName" + ], + "members": { + "QueueName": {}, + "QueueOwnerAWSAccountId": {} + } + }, + "output": { + "resultWrapper": "GetQueueUrlResult", + "type": "structure", + "members": { + "QueueUrl": {} + } + } + }, + "ListDeadLetterSourceQueues": { + "input": { + "type": "structure", + "required": [ + "QueueUrl" + ], + "members": { + "QueueUrl": {} + } + }, + "output": { + "resultWrapper": "ListDeadLetterSourceQueuesResult", + "type": "structure", + "required": [ + "queueUrls" + ], + "members": { + "queueUrls": { + "shape": "Sz" + } + } + } + }, + "ListQueues": { + "input": { + "type": "structure", + "members": { + "QueueNamePrefix": {} + } + }, + "output": { + "resultWrapper": "ListQueuesResult", + "type": "structure", + "members": { + "QueueUrls": { + "shape": "Sz" + } + } + } + }, + "PurgeQueue": { + "input": { + "type": "structure", + "required": [ + "QueueUrl" + ], + "members": { + "QueueUrl": {} + } + } + }, + "ReceiveMessage": { + "input": { + "type": "structure", + "required": [ + "QueueUrl" + ], + "members": { + "QueueUrl": {}, + "AttributeNames": { + "shape": "St" + }, + "MessageAttributeNames": { + "type": "list", + "member": { + "locationName": "MessageAttributeName" + }, + "flattened": true + }, + "MaxNumberOfMessages": { + "type": "integer" + }, + "VisibilityTimeout": { + "type": "integer" + }, + "WaitTimeSeconds": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "ReceiveMessageResult", + "type": "structure", + "members": { + "Messages": { + "type": "list", + "member": { + "locationName": "Message", + "type": "structure", + "members": { + "MessageId": {}, + "ReceiptHandle": {}, + "MD5OfBody": {}, + "Body": {}, + "Attributes": { + "shape": "Sh", + "locationName": "Attribute" + }, + "MD5OfMessageAttributes": {}, + "MessageAttributes": { + "shape": "S19", + "locationName": "MessageAttribute" + } + } + }, + "flattened": true + } + } + } + }, + "RemovePermission": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "Label" + ], + "members": { + "QueueUrl": {}, + "Label": {} + } + } + }, + "SendMessage": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "MessageBody" + ], + "members": { + "QueueUrl": {}, + "MessageBody": {}, + "DelaySeconds": { + "type": "integer" + }, + "MessageAttributes": { + "shape": "S19", + "locationName": "MessageAttribute" + } + } + }, + "output": { + "resultWrapper": "SendMessageResult", + "type": "structure", + "members": { + "MD5OfMessageBody": {}, + "MD5OfMessageAttributes": {}, + "MessageId": {} + } + } + }, + "SendMessageBatch": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "Entries" + ], + "members": { + "QueueUrl": {}, + "Entries": { + "type": "list", + "member": { + "locationName": "SendMessageBatchRequestEntry", + "type": "structure", + "required": [ + "Id", + "MessageBody" + ], + "members": { + "Id": {}, + "MessageBody": {}, + "DelaySeconds": { + "type": "integer" + }, + "MessageAttributes": { + "shape": "S19", + "locationName": "MessageAttribute" + } + } + }, + "flattened": true + } + } + }, + "output": { + "resultWrapper": "SendMessageBatchResult", + "type": "structure", + "required": [ + "Successful", + "Failed" + ], + "members": { + "Successful": { + "type": "list", + "member": { + "locationName": "SendMessageBatchResultEntry", + "type": "structure", + "required": [ + "Id", + "MessageId", + "MD5OfMessageBody" + ], + "members": { + "Id": {}, + "MessageId": {}, + "MD5OfMessageBody": {}, + "MD5OfMessageAttributes": {} + } + }, + "flattened": true + }, + "Failed": { + "shape": "Sd" + } + } + } + }, + "SetQueueAttributes": { + "input": { + "type": "structure", + "required": [ + "QueueUrl", + "Attributes" + ], + "members": { + "QueueUrl": {}, + "Attributes": { + "shape": "Sh", + "locationName": "Attribute" + } + } + } + } + }, + "shapes": { + "Sd": { + "type": "list", + "member": { + "locationName": "BatchResultErrorEntry", + "type": "structure", + "required": [ + "Id", + "SenderFault", + "Code" + ], + "members": { + "Id": {}, + "SenderFault": { + "type": "boolean" + }, + "Code": {}, + "Message": {} + } + }, + "flattened": true + }, + "Sh": { + "type": "map", + "key": { + "locationName": "Name" + }, + "value": { + "locationName": "Value" + }, + "flattened": true, + "locationName": "Attribute" + }, + "St": { + "type": "list", + "member": { + "locationName": "AttributeName" + }, + "flattened": true + }, + "Sz": { + "type": "list", + "member": { + "locationName": "QueueUrl" + }, + "flattened": true + }, + "S19": { + "type": "map", + "key": { + "locationName": "Name" + }, + "value": { + "locationName": "Value", + "type": "structure", + "required": [ + "DataType" + ], + "members": { + "StringValue": {}, + "BinaryValue": { + "type": "blob" + }, + "StringListValues": { + "flattened": true, + "locationName": "StringListValue", + "type": "list", + "member": { + "locationName": "StringListValue" + } + }, + "BinaryListValues": { + "flattened": true, + "locationName": "BinaryListValue", + "type": "list", + "member": { + "locationName": "BinaryListValue", + "type": "blob" + } + }, + "DataType": {} + } + }, + "flattened": true + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.paginators.json new file mode 100755 index 0000000..e7ac48a --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sqs-2012-11-05.paginators.json @@ -0,0 +1,7 @@ +{ + "pagination": { + "ListQueues": { + "result_key": "QueueUrls" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json new file mode 100755 index 0000000..ab345e1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json @@ -0,0 +1,692 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2014-11-06", + "endpointPrefix": "ssm", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Amazon SSM", + "serviceFullName": "Amazon Simple Systems Management Service", + "signatureVersion": "v4", + "targetPrefix": "AmazonSSM" + }, + "operations": { + "CancelCommand": { + "input": { + "type": "structure", + "required": [ + "CommandId" + ], + "members": { + "CommandId": {}, + "InstanceIds": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateAssociation": { + "input": { + "type": "structure", + "required": [ + "Name", + "InstanceId" + ], + "members": { + "Name": {}, + "InstanceId": {}, + "Parameters": { + "shape": "S8" + } + } + }, + "output": { + "type": "structure", + "members": { + "AssociationDescription": { + "shape": "Sd" + } + } + } + }, + "CreateAssociationBatch": { + "input": { + "type": "structure", + "required": [ + "Entries" + ], + "members": { + "Entries": { + "type": "list", + "member": { + "shape": "Sl", + "locationName": "entries" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Successful": { + "type": "list", + "member": { + "shape": "Sd", + "locationName": "AssociationDescription" + } + }, + "Failed": { + "type": "list", + "member": { + "locationName": "FailedCreateAssociationEntry", + "type": "structure", + "members": { + "Entry": { + "shape": "Sl" + }, + "Message": {}, + "Fault": {} + } + } + } + } + } + }, + "CreateDocument": { + "input": { + "type": "structure", + "required": [ + "Content", + "Name" + ], + "members": { + "Content": {}, + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "DocumentDescription": { + "shape": "Sv" + } + } + } + }, + "DeleteAssociation": { + "input": { + "type": "structure", + "required": [ + "Name", + "InstanceId" + ], + "members": { + "Name": {}, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDocument": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeAssociation": { + "input": { + "type": "structure", + "required": [ + "Name", + "InstanceId" + ], + "members": { + "Name": {}, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "AssociationDescription": { + "shape": "Sd" + } + } + } + }, + "DescribeDocument": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "Document": { + "shape": "Sv" + } + } + } + }, + "DescribeDocumentPermission": { + "input": { + "type": "structure", + "required": [ + "Name", + "PermissionType" + ], + "members": { + "Name": {}, + "PermissionType": {} + } + }, + "output": { + "type": "structure", + "members": { + "AccountIds": { + "shape": "S1m" + } + } + } + }, + "DescribeInstanceInformation": { + "input": { + "type": "structure", + "members": { + "InstanceInformationFilterList": { + "type": "list", + "member": { + "locationName": "InstanceInformationFilter", + "type": "structure", + "required": [ + "key", + "valueSet" + ], + "members": { + "key": {}, + "valueSet": { + "type": "list", + "member": { + "locationName": "InstanceInformationFilterValue" + } + } + } + } + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceInformationList": { + "type": "list", + "member": { + "locationName": "InstanceInformation", + "type": "structure", + "members": { + "InstanceId": {}, + "PingStatus": {}, + "LastPingDateTime": { + "type": "timestamp" + }, + "AgentVersion": {}, + "IsLatestVersion": { + "type": "boolean" + }, + "PlatformType": {}, + "PlatformName": {}, + "PlatformVersion": {} + } + } + }, + "NextToken": {} + } + } + }, + "GetDocument": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "Content": {} + } + } + }, + "ListAssociations": { + "input": { + "type": "structure", + "required": [ + "AssociationFilterList" + ], + "members": { + "AssociationFilterList": { + "type": "list", + "member": { + "locationName": "AssociationFilter", + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Associations": { + "type": "list", + "member": { + "locationName": "Association", + "type": "structure", + "members": { + "Name": {}, + "InstanceId": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListCommandInvocations": { + "input": { + "type": "structure", + "members": { + "CommandId": {}, + "InstanceId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {}, + "Filters": { + "shape": "S2g" + }, + "Details": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "CommandInvocations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CommandId": {}, + "InstanceId": {}, + "Comment": {}, + "DocumentName": {}, + "RequestedDateTime": { + "type": "timestamp" + }, + "Status": {}, + "TraceOutput": {}, + "CommandPlugins": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Status": {}, + "ResponseCode": { + "type": "integer" + }, + "ResponseStartDateTime": { + "type": "timestamp" + }, + "ResponseFinishDateTime": { + "type": "timestamp" + }, + "Output": {}, + "OutputS3BucketName": {}, + "OutputS3KeyPrefix": {} + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "ListCommands": { + "input": { + "type": "structure", + "members": { + "CommandId": {}, + "InstanceId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {}, + "Filters": { + "shape": "S2g" + } + } + }, + "output": { + "type": "structure", + "members": { + "Commands": { + "type": "list", + "member": { + "shape": "S31" + } + }, + "NextToken": {} + } + } + }, + "ListDocuments": { + "input": { + "type": "structure", + "members": { + "DocumentFilterList": { + "type": "list", + "member": { + "locationName": "DocumentFilter", + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "DocumentIdentifiers": { + "type": "list", + "member": { + "locationName": "DocumentIdentifier", + "type": "structure", + "members": { + "Name": {}, + "Owner": {}, + "PlatformTypes": { + "shape": "S19" + } + } + } + }, + "NextToken": {} + } + } + }, + "ModifyDocumentPermission": { + "input": { + "type": "structure", + "required": [ + "Name", + "PermissionType" + ], + "members": { + "Name": {}, + "PermissionType": {}, + "AccountIdsToAdd": { + "shape": "S1m" + }, + "AccountIdsToRemove": { + "shape": "S1m" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "SendCommand": { + "input": { + "type": "structure", + "required": [ + "InstanceIds", + "DocumentName" + ], + "members": { + "InstanceIds": { + "shape": "S3" + }, + "DocumentName": {}, + "DocumentHash": {}, + "DocumentHashType": {}, + "TimeoutSeconds": { + "type": "integer" + }, + "Comment": {}, + "Parameters": { + "shape": "S8" + }, + "OutputS3BucketName": {}, + "OutputS3KeyPrefix": {} + } + }, + "output": { + "type": "structure", + "members": { + "Command": { + "shape": "S31" + } + } + } + }, + "UpdateAssociationStatus": { + "input": { + "type": "structure", + "required": [ + "Name", + "InstanceId", + "AssociationStatus" + ], + "members": { + "Name": {}, + "InstanceId": {}, + "AssociationStatus": { + "shape": "Sf" + } + } + }, + "output": { + "type": "structure", + "members": { + "AssociationDescription": { + "shape": "Sd" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": {} + }, + "S8": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": {} + } + }, + "Sd": { + "type": "structure", + "members": { + "Name": {}, + "InstanceId": {}, + "Date": { + "type": "timestamp" + }, + "Status": { + "shape": "Sf" + }, + "Parameters": { + "shape": "S8" + } + } + }, + "Sf": { + "type": "structure", + "required": [ + "Date", + "Name", + "Message" + ], + "members": { + "Date": { + "type": "timestamp" + }, + "Name": {}, + "Message": {}, + "AdditionalInfo": {} + } + }, + "Sl": { + "type": "structure", + "members": { + "Name": {}, + "InstanceId": {}, + "Parameters": { + "shape": "S8" + } + } + }, + "Sv": { + "type": "structure", + "members": { + "Sha1": {}, + "Hash": {}, + "HashType": {}, + "Name": {}, + "Owner": {}, + "CreatedDate": { + "type": "timestamp" + }, + "Status": {}, + "Description": {}, + "Parameters": { + "type": "list", + "member": { + "locationName": "DocumentParameter", + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Description": {}, + "DefaultValue": {} + } + } + }, + "PlatformTypes": { + "shape": "S19" + } + } + }, + "S19": { + "type": "list", + "member": { + "locationName": "PlatformType" + } + }, + "S1m": { + "type": "list", + "member": { + "locationName": "AccountId" + } + }, + "S2g": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "S31": { + "type": "structure", + "members": { + "CommandId": {}, + "DocumentName": {}, + "Comment": {}, + "ExpiresAfter": { + "type": "timestamp" + }, + "Parameters": { + "shape": "S8" + }, + "InstanceIds": { + "shape": "S3" + }, + "RequestedDateTime": { + "type": "timestamp" + }, + "Status": {}, + "OutputS3BucketName": {}, + "OutputS3KeyPrefix": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.paginators.json new file mode 100755 index 0000000..1abbbeb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/ssm-2014-11-06.paginators.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "ListAssociations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Associations" + }, + "ListCommandInvocations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "CommandInvocations" + }, + "ListCommands": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Commands" + }, + "ListDocuments": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "DocumentIdentifiers" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.min.json new file mode 100755 index 0000000..ca114c8 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.min.json @@ -0,0 +1,1485 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2013-06-30", + "endpointPrefix": "storagegateway", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Storage Gateway", + "signatureVersion": "v4", + "targetPrefix": "StorageGateway_20130630" + }, + "operations": { + "ActivateGateway": { + "input": { + "type": "structure", + "required": [ + "ActivationKey", + "GatewayName", + "GatewayTimezone", + "GatewayRegion" + ], + "members": { + "ActivationKey": {}, + "GatewayName": {}, + "GatewayTimezone": {}, + "GatewayRegion": {}, + "GatewayType": {}, + "TapeDriveType": {}, + "MediumChangerType": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "AddCache": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "DiskIds" + ], + "members": { + "GatewayARN": {}, + "DiskIds": { + "shape": "Sc" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "AddTagsToResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "Tags" + ], + "members": { + "ResourceARN": {}, + "Tags": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": { + "ResourceARN": {} + } + } + }, + "AddUploadBuffer": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "DiskIds" + ], + "members": { + "GatewayARN": {}, + "DiskIds": { + "shape": "Sc" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "AddWorkingStorage": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "DiskIds" + ], + "members": { + "GatewayARN": {}, + "DiskIds": { + "shape": "Sc" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "CancelArchival": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "TapeARN" + ], + "members": { + "GatewayARN": {}, + "TapeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "CancelRetrieval": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "TapeARN" + ], + "members": { + "GatewayARN": {}, + "TapeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "CreateCachediSCSIVolume": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "VolumeSizeInBytes", + "TargetName", + "NetworkInterfaceId", + "ClientToken" + ], + "members": { + "GatewayARN": {}, + "VolumeSizeInBytes": { + "type": "long" + }, + "SnapshotId": {}, + "TargetName": {}, + "NetworkInterfaceId": {}, + "ClientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "TargetARN": {} + } + } + }, + "CreateSnapshot": { + "input": { + "type": "structure", + "required": [ + "VolumeARN", + "SnapshotDescription" + ], + "members": { + "VolumeARN": {}, + "SnapshotDescription": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "SnapshotId": {} + } + } + }, + "CreateSnapshotFromVolumeRecoveryPoint": { + "input": { + "type": "structure", + "required": [ + "VolumeARN", + "SnapshotDescription" + ], + "members": { + "VolumeARN": {}, + "SnapshotDescription": {} + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeARN": {}, + "VolumeRecoveryPointTime": {} + } + } + }, + "CreateStorediSCSIVolume": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "DiskId", + "PreserveExistingData", + "TargetName", + "NetworkInterfaceId" + ], + "members": { + "GatewayARN": {}, + "DiskId": {}, + "SnapshotId": {}, + "PreserveExistingData": { + "type": "boolean" + }, + "TargetName": {}, + "NetworkInterfaceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeSizeInBytes": { + "type": "long" + }, + "TargetARN": {} + } + } + }, + "CreateTapeWithBarcode": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "TapeSizeInBytes", + "TapeBarcode" + ], + "members": { + "GatewayARN": {}, + "TapeSizeInBytes": { + "type": "long" + }, + "TapeBarcode": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "CreateTapes": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "TapeSizeInBytes", + "ClientToken", + "NumTapesToCreate", + "TapeBarcodePrefix" + ], + "members": { + "GatewayARN": {}, + "TapeSizeInBytes": { + "type": "long" + }, + "ClientToken": {}, + "NumTapesToCreate": { + "type": "integer" + }, + "TapeBarcodePrefix": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARNs": { + "shape": "S1l" + } + } + } + }, + "DeleteBandwidthRateLimit": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "BandwidthType" + ], + "members": { + "GatewayARN": {}, + "BandwidthType": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "DeleteChapCredentials": { + "input": { + "type": "structure", + "required": [ + "TargetARN", + "InitiatorName" + ], + "members": { + "TargetARN": {}, + "InitiatorName": {} + } + }, + "output": { + "type": "structure", + "members": { + "TargetARN": {}, + "InitiatorName": {} + } + } + }, + "DeleteGateway": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "DeleteSnapshotSchedule": { + "input": { + "type": "structure", + "required": [ + "VolumeARN" + ], + "members": { + "VolumeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {} + } + } + }, + "DeleteTape": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "TapeARN" + ], + "members": { + "GatewayARN": {}, + "TapeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "DeleteTapeArchive": { + "input": { + "type": "structure", + "required": [ + "TapeARN" + ], + "members": { + "TapeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "DeleteVolume": { + "input": { + "type": "structure", + "required": [ + "VolumeARN" + ], + "members": { + "VolumeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {} + } + } + }, + "DescribeBandwidthRateLimit": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "AverageUploadRateLimitInBitsPerSec": { + "type": "long" + }, + "AverageDownloadRateLimitInBitsPerSec": { + "type": "long" + } + } + } + }, + "DescribeCache": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "DiskIds": { + "shape": "Sc" + }, + "CacheAllocatedInBytes": { + "type": "long" + }, + "CacheUsedPercentage": { + "type": "double" + }, + "CacheDirtyPercentage": { + "type": "double" + }, + "CacheHitPercentage": { + "type": "double" + }, + "CacheMissPercentage": { + "type": "double" + } + } + } + }, + "DescribeCachediSCSIVolumes": { + "input": { + "type": "structure", + "required": [ + "VolumeARNs" + ], + "members": { + "VolumeARNs": { + "shape": "S2a" + } + } + }, + "output": { + "type": "structure", + "members": { + "CachediSCSIVolumes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeId": {}, + "VolumeType": {}, + "VolumeStatus": {}, + "VolumeSizeInBytes": { + "type": "long" + }, + "VolumeProgress": { + "type": "double" + }, + "SourceSnapshotId": {}, + "VolumeiSCSIAttributes": { + "shape": "S2i" + } + } + } + } + } + } + }, + "DescribeChapCredentials": { + "input": { + "type": "structure", + "required": [ + "TargetARN" + ], + "members": { + "TargetARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChapCredentials": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TargetARN": {}, + "SecretToAuthenticateInitiator": {}, + "InitiatorName": {}, + "SecretToAuthenticateTarget": {} + } + } + } + } + } + }, + "DescribeGatewayInformation": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "GatewayId": {}, + "GatewayName": {}, + "GatewayTimezone": {}, + "GatewayState": {}, + "GatewayNetworkInterfaces": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Ipv4Address": {}, + "MacAddress": {}, + "Ipv6Address": {} + } + } + }, + "GatewayType": {}, + "NextUpdateAvailabilityDate": {}, + "LastSoftwareUpdate": {} + } + } + }, + "DescribeMaintenanceStartTime": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "HourOfDay": { + "type": "integer" + }, + "MinuteOfHour": { + "type": "integer" + }, + "DayOfWeek": { + "type": "integer" + }, + "Timezone": {} + } + } + }, + "DescribeSnapshotSchedule": { + "input": { + "type": "structure", + "required": [ + "VolumeARN" + ], + "members": { + "VolumeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "StartAt": { + "type": "integer" + }, + "RecurrenceInHours": { + "type": "integer" + }, + "Description": {}, + "Timezone": {} + } + } + }, + "DescribeStorediSCSIVolumes": { + "input": { + "type": "structure", + "required": [ + "VolumeARNs" + ], + "members": { + "VolumeARNs": { + "shape": "S2a" + } + } + }, + "output": { + "type": "structure", + "members": { + "StorediSCSIVolumes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeId": {}, + "VolumeType": {}, + "VolumeStatus": {}, + "VolumeSizeInBytes": { + "type": "long" + }, + "VolumeProgress": { + "type": "double" + }, + "VolumeDiskId": {}, + "SourceSnapshotId": {}, + "PreservedExistingData": { + "type": "boolean" + }, + "VolumeiSCSIAttributes": { + "shape": "S2i" + } + } + } + } + } + } + }, + "DescribeTapeArchives": { + "input": { + "type": "structure", + "members": { + "TapeARNs": { + "shape": "S1l" + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeArchives": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeBarcode": {}, + "TapeSizeInBytes": { + "type": "long" + }, + "CompletionTime": { + "type": "timestamp" + }, + "RetrievedTo": {}, + "TapeStatus": {} + } + } + }, + "Marker": {} + } + } + }, + "DescribeTapeRecoveryPoints": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {}, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "TapeRecoveryPointInfos": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeRecoveryPointTime": { + "type": "timestamp" + }, + "TapeSizeInBytes": { + "type": "long" + }, + "TapeStatus": {} + } + } + }, + "Marker": {} + } + } + }, + "DescribeTapes": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {}, + "TapeARNs": { + "shape": "S1l" + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tapes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeBarcode": {}, + "TapeSizeInBytes": { + "type": "long" + }, + "TapeStatus": {}, + "VTLDevice": {}, + "Progress": { + "type": "double" + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeUploadBuffer": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "DiskIds": { + "shape": "Sc" + }, + "UploadBufferUsedInBytes": { + "type": "long" + }, + "UploadBufferAllocatedInBytes": { + "type": "long" + } + } + } + }, + "DescribeVTLDevices": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {}, + "VTLDeviceARNs": { + "type": "list", + "member": {} + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "VTLDevices": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VTLDeviceARN": {}, + "VTLDeviceType": {}, + "VTLDeviceVendor": {}, + "VTLDeviceProductIdentifier": {}, + "DeviceiSCSIAttributes": { + "type": "structure", + "members": { + "TargetARN": {}, + "NetworkInterfaceId": {}, + "NetworkInterfacePort": { + "type": "integer" + }, + "ChapEnabled": { + "type": "boolean" + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "DescribeWorkingStorage": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "DiskIds": { + "shape": "Sc" + }, + "WorkingStorageUsedInBytes": { + "type": "long" + }, + "WorkingStorageAllocatedInBytes": { + "type": "long" + } + } + } + }, + "DisableGateway": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "ListGateways": { + "input": { + "type": "structure", + "members": { + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Gateways": { + "type": "list", + "member": { + "type": "structure", + "members": { + "GatewayId": {}, + "GatewayARN": {}, + "GatewayType": {}, + "GatewayOperationalState": {}, + "GatewayName": {} + } + } + }, + "Marker": {} + } + } + }, + "ListLocalDisks": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "Disks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DiskId": {}, + "DiskPath": {}, + "DiskNode": {}, + "DiskStatus": {}, + "DiskSizeInBytes": { + "type": "long" + }, + "DiskAllocationType": {}, + "DiskAllocationResource": {} + } + } + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN" + ], + "members": { + "ResourceARN": {}, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ResourceARN": {}, + "Marker": {}, + "Tags": { + "shape": "Sh" + } + } + } + }, + "ListTapes": { + "input": { + "type": "structure", + "members": { + "TapeARNs": { + "shape": "S1l" + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeInfos": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeBarcode": {}, + "TapeSizeInBytes": { + "type": "long" + }, + "TapeStatus": {}, + "GatewayARN": {} + } + } + }, + "Marker": {} + } + } + }, + "ListVolumeInitiators": { + "input": { + "type": "structure", + "required": [ + "VolumeARN" + ], + "members": { + "VolumeARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "Initiators": { + "type": "list", + "member": {} + } + } + } + }, + "ListVolumeRecoveryPoints": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "VolumeRecoveryPointInfos": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeSizeInBytes": { + "type": "long" + }, + "VolumeUsageInBytes": { + "type": "long" + }, + "VolumeRecoveryPointTime": {} + } + } + } + } + } + }, + "ListVolumes": { + "input": { + "type": "structure", + "members": { + "GatewayARN": {}, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "Marker": {}, + "VolumeInfos": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeId": {}, + "GatewayARN": {}, + "GatewayId": {}, + "VolumeType": {}, + "VolumeSizeInBytes": { + "type": "long" + } + } + } + } + } + } + }, + "RemoveTagsFromResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "TagKeys" + ], + "members": { + "ResourceARN": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ResourceARN": {} + } + } + }, + "ResetCache": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "RetrieveTapeArchive": { + "input": { + "type": "structure", + "required": [ + "TapeARN", + "GatewayARN" + ], + "members": { + "TapeARN": {}, + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "RetrieveTapeRecoveryPoint": { + "input": { + "type": "structure", + "required": [ + "TapeARN", + "GatewayARN" + ], + "members": { + "TapeARN": {}, + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "SetLocalConsolePassword": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "LocalConsolePassword" + ], + "members": { + "GatewayARN": {}, + "LocalConsolePassword": { + "type": "string", + "sensitive": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "ShutdownGateway": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "StartGateway": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "UpdateBandwidthRateLimit": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {}, + "AverageUploadRateLimitInBitsPerSec": { + "type": "long" + }, + "AverageDownloadRateLimitInBitsPerSec": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "UpdateChapCredentials": { + "input": { + "type": "structure", + "required": [ + "TargetARN", + "SecretToAuthenticateInitiator", + "InitiatorName" + ], + "members": { + "TargetARN": {}, + "SecretToAuthenticateInitiator": {}, + "InitiatorName": {}, + "SecretToAuthenticateTarget": {} + } + }, + "output": { + "type": "structure", + "members": { + "TargetARN": {}, + "InitiatorName": {} + } + } + }, + "UpdateGatewayInformation": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {}, + "GatewayName": {}, + "GatewayTimezone": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "GatewayName": {} + } + } + }, + "UpdateGatewaySoftwareNow": { + "input": { + "type": "structure", + "required": [ + "GatewayARN" + ], + "members": { + "GatewayARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "UpdateMaintenanceStartTime": { + "input": { + "type": "structure", + "required": [ + "GatewayARN", + "HourOfDay", + "MinuteOfHour", + "DayOfWeek" + ], + "members": { + "GatewayARN": {}, + "HourOfDay": { + "type": "integer" + }, + "MinuteOfHour": { + "type": "integer" + }, + "DayOfWeek": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "UpdateSnapshotSchedule": { + "input": { + "type": "structure", + "required": [ + "VolumeARN", + "StartAt", + "RecurrenceInHours" + ], + "members": { + "VolumeARN": {}, + "StartAt": { + "type": "integer" + }, + "RecurrenceInHours": { + "type": "integer" + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {} + } + } + }, + "UpdateVTLDeviceType": { + "input": { + "type": "structure", + "required": [ + "VTLDeviceARN", + "DeviceType" + ], + "members": { + "VTLDeviceARN": {}, + "DeviceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "VTLDeviceARN": {} + } + } + } + }, + "shapes": { + "Sc": { + "type": "list", + "member": {} + }, + "Sh": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S1l": { + "type": "list", + "member": {} + }, + "S2a": { + "type": "list", + "member": {} + }, + "S2i": { + "type": "structure", + "members": { + "TargetARN": {}, + "NetworkInterfaceId": {}, + "NetworkInterfacePort": { + "type": "integer" + }, + "LunNumber": { + "type": "integer" + }, + "ChapEnabled": { + "type": "boolean" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.paginators.json new file mode 100755 index 0000000..286915c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/storagegateway-2013-06-30.paginators.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "DescribeCachediSCSIVolumes": { + "result_key": "CachediSCSIVolumes" + }, + "DescribeStorediSCSIVolumes": { + "result_key": "StorediSCSIVolumes" + }, + "DescribeTapeArchives": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "TapeArchives" + }, + "DescribeTapeRecoveryPoints": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "TapeRecoveryPointInfos" + }, + "DescribeTapes": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Tapes" + }, + "DescribeVTLDevices": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "VTLDevices" + }, + "ListGateways": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Gateways" + }, + "ListLocalDisks": { + "result_key": "Disks" + }, + "ListVolumeRecoveryPoints": { + "result_key": "VolumeRecoveryPointInfos" + }, + "ListVolumes": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "VolumeInfos" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/streams.dynamodb-2012-08-10.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/streams.dynamodb-2012-08-10.min.json new file mode 100755 index 0000000..0e173f6 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/streams.dynamodb-2012-08-10.min.json @@ -0,0 +1,238 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-08-10", + "endpointPrefix": "streams.dynamodb", + "jsonVersion": "1.0", + "protocol": "json", + "serviceFullName": "Amazon DynamoDB Streams", + "signatureVersion": "v4", + "signingName": "dynamodb", + "targetPrefix": "DynamoDBStreams_20120810" + }, + "operations": { + "DescribeStream": { + "input": { + "type": "structure", + "required": [ + "StreamArn" + ], + "members": { + "StreamArn": {}, + "Limit": { + "type": "integer" + }, + "ExclusiveStartShardId": {} + } + }, + "output": { + "type": "structure", + "members": { + "StreamDescription": { + "type": "structure", + "members": { + "StreamArn": {}, + "StreamLabel": {}, + "StreamStatus": {}, + "StreamViewType": {}, + "CreationRequestDateTime": { + "type": "timestamp" + }, + "TableName": {}, + "KeySchema": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AttributeName", + "KeyType" + ], + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Shards": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ShardId": {}, + "SequenceNumberRange": { + "type": "structure", + "members": { + "StartingSequenceNumber": {}, + "EndingSequenceNumber": {} + } + }, + "ParentShardId": {} + } + } + }, + "LastEvaluatedShardId": {} + } + } + } + } + }, + "GetRecords": { + "input": { + "type": "structure", + "required": [ + "ShardIterator" + ], + "members": { + "ShardIterator": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Records": { + "type": "list", + "member": { + "type": "structure", + "members": { + "eventID": {}, + "eventName": {}, + "eventVersion": {}, + "eventSource": {}, + "awsRegion": {}, + "dynamodb": { + "type": "structure", + "members": { + "ApproximateCreationDateTime": { + "type": "timestamp" + }, + "Keys": { + "shape": "Sr" + }, + "NewImage": { + "shape": "Sr" + }, + "OldImage": { + "shape": "Sr" + }, + "SequenceNumber": {}, + "SizeBytes": { + "type": "long" + }, + "StreamViewType": {} + } + } + } + } + }, + "NextShardIterator": {} + } + } + }, + "GetShardIterator": { + "input": { + "type": "structure", + "required": [ + "StreamArn", + "ShardId", + "ShardIteratorType" + ], + "members": { + "StreamArn": {}, + "ShardId": {}, + "ShardIteratorType": {}, + "SequenceNumber": {} + } + }, + "output": { + "type": "structure", + "members": { + "ShardIterator": {} + } + } + }, + "ListStreams": { + "input": { + "type": "structure", + "members": { + "TableName": {}, + "Limit": { + "type": "integer" + }, + "ExclusiveStartStreamArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Streams": { + "type": "list", + "member": { + "type": "structure", + "members": { + "StreamArn": {}, + "TableName": {}, + "StreamLabel": {} + } + } + }, + "LastEvaluatedStreamArn": {} + } + } + } + }, + "shapes": { + "Sr": { + "type": "map", + "key": {}, + "value": { + "shape": "St" + } + }, + "St": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "blob" + }, + "SS": { + "type": "list", + "member": {} + }, + "NS": { + "type": "list", + "member": {} + }, + "BS": { + "type": "list", + "member": { + "type": "blob" + } + }, + "M": { + "type": "map", + "key": {}, + "value": { + "shape": "St" + } + }, + "L": { + "type": "list", + "member": { + "shape": "St" + } + }, + "NULL": { + "type": "boolean" + }, + "BOOL": { + "type": "boolean" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sts-2011-06-15.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sts-2011-06-15.min.json new file mode 100755 index 0000000..219221d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/sts-2011-06-15.min.json @@ -0,0 +1,249 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2011-06-15", + "endpointPrefix": "sts", + "globalEndpoint": "sts.amazonaws.com", + "protocol": "query", + "serviceAbbreviation": "AWS STS", + "serviceFullName": "AWS Security Token Service", + "signatureVersion": "v4", + "xmlNamespace": "https://sts.amazonaws.com/doc/2011-06-15/" + }, + "operations": { + "AssumeRole": { + "input": { + "type": "structure", + "required": [ + "RoleArn", + "RoleSessionName" + ], + "members": { + "RoleArn": {}, + "RoleSessionName": {}, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + }, + "ExternalId": {}, + "SerialNumber": {}, + "TokenCode": {} + } + }, + "output": { + "resultWrapper": "AssumeRoleResult", + "type": "structure", + "members": { + "Credentials": { + "shape": "Sa" + }, + "AssumedRoleUser": { + "shape": "Sf" + }, + "PackedPolicySize": { + "type": "integer" + } + } + } + }, + "AssumeRoleWithSAML": { + "input": { + "type": "structure", + "required": [ + "RoleArn", + "PrincipalArn", + "SAMLAssertion" + ], + "members": { + "RoleArn": {}, + "PrincipalArn": {}, + "SAMLAssertion": {}, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "AssumeRoleWithSAMLResult", + "type": "structure", + "members": { + "Credentials": { + "shape": "Sa" + }, + "AssumedRoleUser": { + "shape": "Sf" + }, + "PackedPolicySize": { + "type": "integer" + }, + "Subject": {}, + "SubjectType": {}, + "Issuer": {}, + "Audience": {}, + "NameQualifier": {} + } + } + }, + "AssumeRoleWithWebIdentity": { + "input": { + "type": "structure", + "required": [ + "RoleArn", + "RoleSessionName", + "WebIdentityToken" + ], + "members": { + "RoleArn": {}, + "RoleSessionName": {}, + "WebIdentityToken": {}, + "ProviderId": {}, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "AssumeRoleWithWebIdentityResult", + "type": "structure", + "members": { + "Credentials": { + "shape": "Sa" + }, + "SubjectFromWebIdentityToken": {}, + "AssumedRoleUser": { + "shape": "Sf" + }, + "PackedPolicySize": { + "type": "integer" + }, + "Provider": {}, + "Audience": {} + } + } + }, + "DecodeAuthorizationMessage": { + "input": { + "type": "structure", + "required": [ + "EncodedMessage" + ], + "members": { + "EncodedMessage": {} + } + }, + "output": { + "resultWrapper": "DecodeAuthorizationMessageResult", + "type": "structure", + "members": { + "DecodedMessage": {} + } + } + }, + "GetCallerIdentity": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "resultWrapper": "GetCallerIdentityResult", + "type": "structure", + "members": { + "UserId": {}, + "Account": {}, + "Arn": {} + } + } + }, + "GetFederationToken": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "GetFederationTokenResult", + "type": "structure", + "members": { + "Credentials": { + "shape": "Sa" + }, + "FederatedUser": { + "type": "structure", + "required": [ + "FederatedUserId", + "Arn" + ], + "members": { + "FederatedUserId": {}, + "Arn": {} + } + }, + "PackedPolicySize": { + "type": "integer" + } + } + } + }, + "GetSessionToken": { + "input": { + "type": "structure", + "members": { + "DurationSeconds": { + "type": "integer" + }, + "SerialNumber": {}, + "TokenCode": {} + } + }, + "output": { + "resultWrapper": "GetSessionTokenResult", + "type": "structure", + "members": { + "Credentials": { + "shape": "Sa" + } + } + } + } + }, + "shapes": { + "Sa": { + "type": "structure", + "required": [ + "AccessKeyId", + "SecretAccessKey", + "SessionToken", + "Expiration" + ], + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + }, + "Sf": { + "type": "structure", + "required": [ + "AssumedRoleId", + "Arn" + ], + "members": { + "AssumedRoleId": {}, + "Arn": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.min.json new file mode 100755 index 0000000..abe9076 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.min.json @@ -0,0 +1,569 @@ +{ + "metadata": { + "apiVersion": "2013-04-15", + "endpointPrefix": "support", + "jsonVersion": "1.1", + "serviceFullName": "AWS Support", + "signatureVersion": "v4", + "targetPrefix": "AWSSupport_20130415", + "protocol": "json" + }, + "operations": { + "AddAttachmentsToSet": { + "input": { + "type": "structure", + "required": [ + "attachments" + ], + "members": { + "attachmentSetId": {}, + "attachments": { + "type": "list", + "member": { + "shape": "S4" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "attachmentSetId": {}, + "expiryTime": {} + } + } + }, + "AddCommunicationToCase": { + "input": { + "type": "structure", + "required": [ + "communicationBody" + ], + "members": { + "caseId": {}, + "communicationBody": {}, + "ccEmailAddresses": { + "shape": "Sc" + }, + "attachmentSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "result": { + "type": "boolean" + } + } + } + }, + "CreateCase": { + "input": { + "type": "structure", + "required": [ + "subject", + "communicationBody" + ], + "members": { + "subject": {}, + "serviceCode": {}, + "severityCode": {}, + "categoryCode": {}, + "communicationBody": {}, + "ccEmailAddresses": { + "shape": "Sc" + }, + "language": {}, + "issueType": {}, + "attachmentSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "caseId": {} + } + } + }, + "DescribeAttachment": { + "input": { + "type": "structure", + "required": [ + "attachmentId" + ], + "members": { + "attachmentId": {} + } + }, + "output": { + "type": "structure", + "members": { + "attachment": { + "shape": "S4" + } + } + } + }, + "DescribeCases": { + "input": { + "type": "structure", + "members": { + "caseIdList": { + "type": "list", + "member": {} + }, + "displayId": {}, + "afterTime": {}, + "beforeTime": {}, + "includeResolvedCases": { + "type": "boolean" + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + }, + "language": {}, + "includeCommunications": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "cases": { + "type": "list", + "member": { + "type": "structure", + "members": { + "caseId": {}, + "displayId": {}, + "subject": {}, + "status": {}, + "serviceCode": {}, + "categoryCode": {}, + "severityCode": {}, + "submittedBy": {}, + "timeCreated": {}, + "recentCommunications": { + "type": "structure", + "members": { + "communications": { + "shape": "S17" + }, + "nextToken": {} + } + }, + "ccEmailAddresses": { + "shape": "Sc" + }, + "language": {} + } + } + }, + "nextToken": {} + } + } + }, + "DescribeCommunications": { + "input": { + "type": "structure", + "required": [ + "caseId" + ], + "members": { + "caseId": {}, + "beforeTime": {}, + "afterTime": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "communications": { + "shape": "S17" + }, + "nextToken": {} + } + } + }, + "DescribeServices": { + "input": { + "type": "structure", + "members": { + "serviceCodeList": { + "type": "list", + "member": {} + }, + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "services": { + "type": "list", + "member": { + "type": "structure", + "members": { + "code": {}, + "name": {}, + "categories": { + "type": "list", + "member": { + "type": "structure", + "members": { + "code": {}, + "name": {} + } + } + } + } + } + } + } + } + }, + "DescribeSeverityLevels": { + "input": { + "type": "structure", + "members": { + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "severityLevels": { + "type": "list", + "member": { + "type": "structure", + "members": { + "code": {}, + "name": {} + } + } + } + } + } + }, + "DescribeTrustedAdvisorCheckRefreshStatuses": { + "input": { + "type": "structure", + "required": [ + "checkIds" + ], + "members": { + "checkIds": { + "shape": "S1t" + } + } + }, + "output": { + "type": "structure", + "required": [ + "statuses" + ], + "members": { + "statuses": { + "type": "list", + "member": { + "shape": "S1x" + } + } + } + } + }, + "DescribeTrustedAdvisorCheckResult": { + "input": { + "type": "structure", + "required": [ + "checkId" + ], + "members": { + "checkId": {}, + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "result": { + "type": "structure", + "required": [ + "checkId", + "timestamp", + "status", + "resourcesSummary", + "categorySpecificSummary", + "flaggedResources" + ], + "members": { + "checkId": {}, + "timestamp": {}, + "status": {}, + "resourcesSummary": { + "shape": "S22" + }, + "categorySpecificSummary": { + "shape": "S23" + }, + "flaggedResources": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "status", + "region", + "resourceId", + "metadata" + ], + "members": { + "status": {}, + "region": {}, + "resourceId": {}, + "isSuppressed": { + "type": "boolean" + }, + "metadata": { + "shape": "S1t" + } + } + } + } + } + } + } + } + }, + "DescribeTrustedAdvisorCheckSummaries": { + "input": { + "type": "structure", + "required": [ + "checkIds" + ], + "members": { + "checkIds": { + "shape": "S1t" + } + } + }, + "output": { + "type": "structure", + "required": [ + "summaries" + ], + "members": { + "summaries": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "checkId", + "timestamp", + "status", + "resourcesSummary", + "categorySpecificSummary" + ], + "members": { + "checkId": {}, + "timestamp": {}, + "status": {}, + "hasFlaggedResources": { + "type": "boolean" + }, + "resourcesSummary": { + "shape": "S22" + }, + "categorySpecificSummary": { + "shape": "S23" + } + } + } + } + } + } + }, + "DescribeTrustedAdvisorChecks": { + "input": { + "type": "structure", + "required": [ + "language" + ], + "members": { + "language": {} + } + }, + "output": { + "type": "structure", + "required": [ + "checks" + ], + "members": { + "checks": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "id", + "name", + "description", + "category", + "metadata" + ], + "members": { + "id": {}, + "name": {}, + "description": {}, + "category": {}, + "metadata": { + "shape": "S1t" + } + } + } + } + } + } + }, + "RefreshTrustedAdvisorCheck": { + "input": { + "type": "structure", + "required": [ + "checkId" + ], + "members": { + "checkId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": { + "shape": "S1x" + } + } + } + }, + "ResolveCase": { + "input": { + "type": "structure", + "members": { + "caseId": {} + } + }, + "output": { + "type": "structure", + "members": { + "initialCaseStatus": {}, + "finalCaseStatus": {} + } + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "members": { + "fileName": {}, + "data": { + "type": "blob" + } + } + }, + "Sc": { + "type": "list", + "member": {} + }, + "S17": { + "type": "list", + "member": { + "type": "structure", + "members": { + "caseId": {}, + "body": {}, + "submittedBy": {}, + "timeCreated": {}, + "attachmentSet": { + "type": "list", + "member": { + "type": "structure", + "members": { + "attachmentId": {}, + "fileName": {} + } + } + } + } + } + }, + "S1t": { + "type": "list", + "member": {} + }, + "S1x": { + "type": "structure", + "required": [ + "checkId", + "status", + "millisUntilNextRefreshable" + ], + "members": { + "checkId": {}, + "status": {}, + "millisUntilNextRefreshable": { + "type": "long" + } + } + }, + "S22": { + "type": "structure", + "required": [ + "resourcesProcessed", + "resourcesFlagged", + "resourcesIgnored", + "resourcesSuppressed" + ], + "members": { + "resourcesProcessed": { + "type": "long" + }, + "resourcesFlagged": { + "type": "long" + }, + "resourcesIgnored": { + "type": "long" + }, + "resourcesSuppressed": { + "type": "long" + } + } + }, + "S23": { + "type": "structure", + "members": { + "costOptimizing": { + "type": "structure", + "required": [ + "estimatedMonthlySavings", + "estimatedPercentMonthlySavings" + ], + "members": { + "estimatedMonthlySavings": { + "type": "double" + }, + "estimatedPercentMonthlySavings": { + "type": "double" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.paginators.json new file mode 100755 index 0000000..1368630 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/support-2013-04-15.paginators.json @@ -0,0 +1,25 @@ +{ + "pagination": { + "DescribeCases": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "cases" + }, + "DescribeCommunications": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "communications" + }, + "DescribeServices": { + "result_key": "services" + }, + "DescribeTrustedAdvisorCheckRefreshStatuses": { + "result_key": "statuses" + }, + "DescribeTrustedAdvisorCheckSummaries": { + "result_key": "summaries" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.min.json new file mode 100755 index 0000000..ebd4a22 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.min.json @@ -0,0 +1,2217 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2012-01-25", + "endpointPrefix": "swf", + "jsonVersion": "1.0", + "serviceAbbreviation": "Amazon SWF", + "serviceFullName": "Amazon Simple Workflow Service", + "signatureVersion": "v4", + "targetPrefix": "SimpleWorkflowService", + "timestampFormat": "unixTimestamp", + "protocol": "json" + }, + "operations": { + "CountClosedWorkflowExecutions": { + "input": { + "type": "structure", + "required": [ + "domain" + ], + "members": { + "domain": {}, + "startTimeFilter": { + "shape": "S3" + }, + "closeTimeFilter": { + "shape": "S3" + }, + "executionFilter": { + "shape": "S5" + }, + "typeFilter": { + "shape": "S7" + }, + "tagFilter": { + "shape": "Sa" + }, + "closeStatusFilter": { + "shape": "Sc" + } + } + }, + "output": { + "shape": "Se" + } + }, + "CountOpenWorkflowExecutions": { + "input": { + "type": "structure", + "required": [ + "domain", + "startTimeFilter" + ], + "members": { + "domain": {}, + "startTimeFilter": { + "shape": "S3" + }, + "typeFilter": { + "shape": "S7" + }, + "tagFilter": { + "shape": "Sa" + }, + "executionFilter": { + "shape": "S5" + } + } + }, + "output": { + "shape": "Se" + } + }, + "CountPendingActivityTasks": { + "input": { + "type": "structure", + "required": [ + "domain", + "taskList" + ], + "members": { + "domain": {}, + "taskList": { + "shape": "Sj" + } + } + }, + "output": { + "shape": "Sk" + } + }, + "CountPendingDecisionTasks": { + "input": { + "type": "structure", + "required": [ + "domain", + "taskList" + ], + "members": { + "domain": {}, + "taskList": { + "shape": "Sj" + } + } + }, + "output": { + "shape": "Sk" + } + }, + "DeprecateActivityType": { + "input": { + "type": "structure", + "required": [ + "domain", + "activityType" + ], + "members": { + "domain": {}, + "activityType": { + "shape": "Sn" + } + } + } + }, + "DeprecateDomain": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + } + }, + "DeprecateWorkflowType": { + "input": { + "type": "structure", + "required": [ + "domain", + "workflowType" + ], + "members": { + "domain": {}, + "workflowType": { + "shape": "Sr" + } + } + } + }, + "DescribeActivityType": { + "input": { + "type": "structure", + "required": [ + "domain", + "activityType" + ], + "members": { + "domain": {}, + "activityType": { + "shape": "Sn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "typeInfo", + "configuration" + ], + "members": { + "typeInfo": { + "shape": "Su" + }, + "configuration": { + "type": "structure", + "members": { + "defaultTaskStartToCloseTimeout": {}, + "defaultTaskHeartbeatTimeout": {}, + "defaultTaskList": { + "shape": "Sj" + }, + "defaultTaskPriority": {}, + "defaultTaskScheduleToStartTimeout": {}, + "defaultTaskScheduleToCloseTimeout": {} + } + } + } + } + }, + "DescribeDomain": { + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + }, + "output": { + "type": "structure", + "required": [ + "domainInfo", + "configuration" + ], + "members": { + "domainInfo": { + "shape": "S12" + }, + "configuration": { + "type": "structure", + "required": [ + "workflowExecutionRetentionPeriodInDays" + ], + "members": { + "workflowExecutionRetentionPeriodInDays": {} + } + } + } + } + }, + "DescribeWorkflowExecution": { + "input": { + "type": "structure", + "required": [ + "domain", + "execution" + ], + "members": { + "domain": {}, + "execution": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "required": [ + "executionInfo", + "executionConfiguration", + "openCounts" + ], + "members": { + "executionInfo": { + "shape": "S19" + }, + "executionConfiguration": { + "type": "structure", + "required": [ + "taskStartToCloseTimeout", + "executionStartToCloseTimeout", + "taskList", + "childPolicy" + ], + "members": { + "taskStartToCloseTimeout": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "childPolicy": {}, + "lambdaRole": {} + } + }, + "openCounts": { + "type": "structure", + "required": [ + "openActivityTasks", + "openDecisionTasks", + "openTimers", + "openChildWorkflowExecutions" + ], + "members": { + "openActivityTasks": { + "type": "integer" + }, + "openDecisionTasks": { + "type": "integer" + }, + "openTimers": { + "type": "integer" + }, + "openChildWorkflowExecutions": { + "type": "integer" + }, + "openLambdaFunctions": { + "type": "integer" + } + } + }, + "latestActivityTaskTimestamp": { + "type": "timestamp" + }, + "latestExecutionContext": {} + } + } + }, + "DescribeWorkflowType": { + "input": { + "type": "structure", + "required": [ + "domain", + "workflowType" + ], + "members": { + "domain": {}, + "workflowType": { + "shape": "Sr" + } + } + }, + "output": { + "type": "structure", + "required": [ + "typeInfo", + "configuration" + ], + "members": { + "typeInfo": { + "shape": "S1m" + }, + "configuration": { + "type": "structure", + "members": { + "defaultTaskStartToCloseTimeout": {}, + "defaultExecutionStartToCloseTimeout": {}, + "defaultTaskList": { + "shape": "Sj" + }, + "defaultTaskPriority": {}, + "defaultChildPolicy": {}, + "defaultLambdaRole": {} + } + } + } + } + }, + "GetWorkflowExecutionHistory": { + "input": { + "type": "structure", + "required": [ + "domain", + "execution" + ], + "members": { + "domain": {}, + "execution": { + "shape": "S16" + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "events" + ], + "members": { + "events": { + "shape": "S1t" + }, + "nextPageToken": {} + } + } + }, + "ListActivityTypes": { + "input": { + "type": "structure", + "required": [ + "domain", + "registrationStatus" + ], + "members": { + "domain": {}, + "name": {}, + "registrationStatus": {}, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "typeInfos" + ], + "members": { + "typeInfos": { + "type": "list", + "member": { + "shape": "Su" + } + }, + "nextPageToken": {} + } + } + }, + "ListClosedWorkflowExecutions": { + "input": { + "type": "structure", + "required": [ + "domain" + ], + "members": { + "domain": {}, + "startTimeFilter": { + "shape": "S3" + }, + "closeTimeFilter": { + "shape": "S3" + }, + "executionFilter": { + "shape": "S5" + }, + "closeStatusFilter": { + "shape": "Sc" + }, + "typeFilter": { + "shape": "S7" + }, + "tagFilter": { + "shape": "Sa" + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "shape": "S4g" + } + }, + "ListDomains": { + "input": { + "type": "structure", + "required": [ + "registrationStatus" + ], + "members": { + "nextPageToken": {}, + "registrationStatus": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "domainInfos" + ], + "members": { + "domainInfos": { + "type": "list", + "member": { + "shape": "S12" + } + }, + "nextPageToken": {} + } + } + }, + "ListOpenWorkflowExecutions": { + "input": { + "type": "structure", + "required": [ + "domain", + "startTimeFilter" + ], + "members": { + "domain": {}, + "startTimeFilter": { + "shape": "S3" + }, + "typeFilter": { + "shape": "S7" + }, + "tagFilter": { + "shape": "Sa" + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + }, + "executionFilter": { + "shape": "S5" + } + } + }, + "output": { + "shape": "S4g" + } + }, + "ListWorkflowTypes": { + "input": { + "type": "structure", + "required": [ + "domain", + "registrationStatus" + ], + "members": { + "domain": {}, + "name": {}, + "registrationStatus": {}, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "typeInfos" + ], + "members": { + "typeInfos": { + "type": "list", + "member": { + "shape": "S1m" + } + }, + "nextPageToken": {} + } + } + }, + "PollForActivityTask": { + "input": { + "type": "structure", + "required": [ + "domain", + "taskList" + ], + "members": { + "domain": {}, + "taskList": { + "shape": "Sj" + }, + "identity": {} + } + }, + "output": { + "type": "structure", + "required": [ + "taskToken", + "activityId", + "startedEventId", + "workflowExecution", + "activityType" + ], + "members": { + "taskToken": {}, + "activityId": {}, + "startedEventId": { + "type": "long" + }, + "workflowExecution": { + "shape": "S16" + }, + "activityType": { + "shape": "Sn" + }, + "input": {} + } + } + }, + "PollForDecisionTask": { + "input": { + "type": "structure", + "required": [ + "domain", + "taskList" + ], + "members": { + "domain": {}, + "taskList": { + "shape": "Sj" + }, + "identity": {}, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "taskToken", + "startedEventId", + "workflowExecution", + "workflowType", + "events" + ], + "members": { + "taskToken": {}, + "startedEventId": { + "type": "long" + }, + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "events": { + "shape": "S1t" + }, + "nextPageToken": {}, + "previousStartedEventId": { + "type": "long" + } + } + } + }, + "RecordActivityTaskHeartbeat": { + "input": { + "type": "structure", + "required": [ + "taskToken" + ], + "members": { + "taskToken": {}, + "details": {} + } + }, + "output": { + "type": "structure", + "required": [ + "cancelRequested" + ], + "members": { + "cancelRequested": { + "type": "boolean" + } + } + } + }, + "RegisterActivityType": { + "input": { + "type": "structure", + "required": [ + "domain", + "name", + "version" + ], + "members": { + "domain": {}, + "name": {}, + "version": {}, + "description": {}, + "defaultTaskStartToCloseTimeout": {}, + "defaultTaskHeartbeatTimeout": {}, + "defaultTaskList": { + "shape": "Sj" + }, + "defaultTaskPriority": {}, + "defaultTaskScheduleToStartTimeout": {}, + "defaultTaskScheduleToCloseTimeout": {} + } + } + }, + "RegisterDomain": { + "input": { + "type": "structure", + "required": [ + "name", + "workflowExecutionRetentionPeriodInDays" + ], + "members": { + "name": {}, + "description": {}, + "workflowExecutionRetentionPeriodInDays": {} + } + } + }, + "RegisterWorkflowType": { + "input": { + "type": "structure", + "required": [ + "domain", + "name", + "version" + ], + "members": { + "domain": {}, + "name": {}, + "version": {}, + "description": {}, + "defaultTaskStartToCloseTimeout": {}, + "defaultExecutionStartToCloseTimeout": {}, + "defaultTaskList": { + "shape": "Sj" + }, + "defaultTaskPriority": {}, + "defaultChildPolicy": {}, + "defaultLambdaRole": {} + } + } + }, + "RequestCancelWorkflowExecution": { + "input": { + "type": "structure", + "required": [ + "domain", + "workflowId" + ], + "members": { + "domain": {}, + "workflowId": {}, + "runId": {} + } + } + }, + "RespondActivityTaskCanceled": { + "input": { + "type": "structure", + "required": [ + "taskToken" + ], + "members": { + "taskToken": {}, + "details": {} + } + } + }, + "RespondActivityTaskCompleted": { + "input": { + "type": "structure", + "required": [ + "taskToken" + ], + "members": { + "taskToken": {}, + "result": {} + } + } + }, + "RespondActivityTaskFailed": { + "input": { + "type": "structure", + "required": [ + "taskToken" + ], + "members": { + "taskToken": {}, + "reason": {}, + "details": {} + } + } + }, + "RespondDecisionTaskCompleted": { + "input": { + "type": "structure", + "required": [ + "taskToken" + ], + "members": { + "taskToken": {}, + "decisions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "decisionType" + ], + "members": { + "decisionType": {}, + "scheduleActivityTaskDecisionAttributes": { + "type": "structure", + "required": [ + "activityType", + "activityId" + ], + "members": { + "activityType": { + "shape": "Sn" + }, + "activityId": {}, + "control": {}, + "input": {}, + "scheduleToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "scheduleToStartTimeout": {}, + "startToCloseTimeout": {}, + "heartbeatTimeout": {} + } + }, + "requestCancelActivityTaskDecisionAttributes": { + "type": "structure", + "required": [ + "activityId" + ], + "members": { + "activityId": {} + } + }, + "completeWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "result": {} + } + }, + "failWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {} + } + }, + "cancelWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "details": {} + } + }, + "continueAsNewWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "shape": "S1b" + }, + "workflowTypeVersion": {}, + "lambdaRole": {} + } + }, + "recordMarkerDecisionAttributes": { + "type": "structure", + "required": [ + "markerName" + ], + "members": { + "markerName": {}, + "details": {} + } + }, + "startTimerDecisionAttributes": { + "type": "structure", + "required": [ + "timerId", + "startToFireTimeout" + ], + "members": { + "timerId": {}, + "control": {}, + "startToFireTimeout": {} + } + }, + "cancelTimerDecisionAttributes": { + "type": "structure", + "required": [ + "timerId" + ], + "members": { + "timerId": {} + } + }, + "signalExternalWorkflowExecutionDecisionAttributes": { + "type": "structure", + "required": [ + "workflowId", + "signalName" + ], + "members": { + "workflowId": {}, + "runId": {}, + "signalName": {}, + "input": {}, + "control": {} + } + }, + "requestCancelExternalWorkflowExecutionDecisionAttributes": { + "type": "structure", + "required": [ + "workflowId" + ], + "members": { + "workflowId": {}, + "runId": {}, + "control": {} + } + }, + "startChildWorkflowExecutionDecisionAttributes": { + "type": "structure", + "required": [ + "workflowType", + "workflowId" + ], + "members": { + "workflowType": { + "shape": "Sr" + }, + "workflowId": {}, + "control": {}, + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "shape": "S1b" + }, + "lambdaRole": {} + } + }, + "scheduleLambdaFunctionDecisionAttributes": { + "type": "structure", + "required": [ + "id", + "name" + ], + "members": { + "id": {}, + "name": {}, + "input": {}, + "startToCloseTimeout": {} + } + } + } + } + }, + "executionContext": {} + } + } + }, + "SignalWorkflowExecution": { + "input": { + "type": "structure", + "required": [ + "domain", + "workflowId", + "signalName" + ], + "members": { + "domain": {}, + "workflowId": {}, + "runId": {}, + "signalName": {}, + "input": {} + } + } + }, + "StartWorkflowExecution": { + "input": { + "type": "structure", + "required": [ + "domain", + "workflowId", + "workflowType" + ], + "members": { + "domain": {}, + "workflowId": {}, + "workflowType": { + "shape": "Sr" + }, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "input": {}, + "executionStartToCloseTimeout": {}, + "tagList": { + "shape": "S1b" + }, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "lambdaRole": {} + } + }, + "output": { + "type": "structure", + "members": { + "runId": {} + } + } + }, + "TerminateWorkflowExecution": { + "input": { + "type": "structure", + "required": [ + "domain", + "workflowId" + ], + "members": { + "domain": {}, + "workflowId": {}, + "runId": {}, + "reason": {}, + "details": {}, + "childPolicy": {} + } + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "required": [ + "oldestDate" + ], + "members": { + "oldestDate": { + "type": "timestamp" + }, + "latestDate": { + "type": "timestamp" + } + } + }, + "S5": { + "type": "structure", + "required": [ + "workflowId" + ], + "members": { + "workflowId": {} + } + }, + "S7": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "version": {} + } + }, + "Sa": { + "type": "structure", + "required": [ + "tag" + ], + "members": { + "tag": {} + } + }, + "Sc": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "Se": { + "type": "structure", + "required": [ + "count" + ], + "members": { + "count": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + } + }, + "Sj": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {} + } + }, + "Sk": { + "type": "structure", + "required": [ + "count" + ], + "members": { + "count": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + } + }, + "Sn": { + "type": "structure", + "required": [ + "name", + "version" + ], + "members": { + "name": {}, + "version": {} + } + }, + "Sr": { + "type": "structure", + "required": [ + "name", + "version" + ], + "members": { + "name": {}, + "version": {} + } + }, + "Su": { + "type": "structure", + "required": [ + "activityType", + "status", + "creationDate" + ], + "members": { + "activityType": { + "shape": "Sn" + }, + "status": {}, + "description": {}, + "creationDate": { + "type": "timestamp" + }, + "deprecationDate": { + "type": "timestamp" + } + } + }, + "S12": { + "type": "structure", + "required": [ + "name", + "status" + ], + "members": { + "name": {}, + "status": {}, + "description": {} + } + }, + "S16": { + "type": "structure", + "required": [ + "workflowId", + "runId" + ], + "members": { + "workflowId": {}, + "runId": {} + } + }, + "S19": { + "type": "structure", + "required": [ + "execution", + "workflowType", + "startTimestamp", + "executionStatus" + ], + "members": { + "execution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "startTimestamp": { + "type": "timestamp" + }, + "closeTimestamp": { + "type": "timestamp" + }, + "executionStatus": {}, + "closeStatus": {}, + "parent": { + "shape": "S16" + }, + "tagList": { + "shape": "S1b" + }, + "cancelRequested": { + "type": "boolean" + } + } + }, + "S1b": { + "type": "list", + "member": {} + }, + "S1m": { + "type": "structure", + "required": [ + "workflowType", + "status", + "creationDate" + ], + "members": { + "workflowType": { + "shape": "Sr" + }, + "status": {}, + "description": {}, + "creationDate": { + "type": "timestamp" + }, + "deprecationDate": { + "type": "timestamp" + } + } + }, + "S1t": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "eventTimestamp", + "eventType", + "eventId" + ], + "members": { + "eventTimestamp": { + "type": "timestamp" + }, + "eventType": {}, + "eventId": { + "type": "long" + }, + "workflowExecutionStartedEventAttributes": { + "type": "structure", + "required": [ + "childPolicy", + "taskList", + "workflowType" + ], + "members": { + "input": {}, + "executionStartToCloseTimeout": {}, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "taskList": { + "shape": "Sj" + }, + "workflowType": { + "shape": "Sr" + }, + "tagList": { + "shape": "S1b" + }, + "taskPriority": {}, + "continuedExecutionRunId": {}, + "parentWorkflowExecution": { + "shape": "S16" + }, + "parentInitiatedEventId": { + "type": "long" + }, + "lambdaRole": {} + } + }, + "workflowExecutionCompletedEventAttributes": { + "type": "structure", + "required": [ + "decisionTaskCompletedEventId" + ], + "members": { + "result": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "completeWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "workflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "decisionTaskCompletedEventId" + ], + "members": { + "reason": {}, + "details": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "failWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "workflowExecutionTimedOutEventAttributes": { + "type": "structure", + "required": [ + "timeoutType", + "childPolicy" + ], + "members": { + "timeoutType": {}, + "childPolicy": {} + } + }, + "workflowExecutionCanceledEventAttributes": { + "type": "structure", + "required": [ + "decisionTaskCompletedEventId" + ], + "members": { + "details": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "cancelWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "workflowExecutionContinuedAsNewEventAttributes": { + "type": "structure", + "required": [ + "decisionTaskCompletedEventId", + "newExecutionRunId", + "taskList", + "childPolicy", + "workflowType" + ], + "members": { + "input": {}, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "newExecutionRunId": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "shape": "S1b" + }, + "workflowType": { + "shape": "Sr" + }, + "lambdaRole": {} + } + }, + "continueAsNewWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "workflowExecutionTerminatedEventAttributes": { + "type": "structure", + "required": [ + "childPolicy" + ], + "members": { + "reason": {}, + "details": {}, + "childPolicy": {}, + "cause": {} + } + }, + "workflowExecutionCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "externalWorkflowExecution": { + "shape": "S16" + }, + "externalInitiatedEventId": { + "type": "long" + }, + "cause": {} + } + }, + "decisionTaskScheduledEventAttributes": { + "type": "structure", + "required": [ + "taskList" + ], + "members": { + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "startToCloseTimeout": {} + } + }, + "decisionTaskStartedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId" + ], + "members": { + "identity": {}, + "scheduledEventId": { + "type": "long" + } + } + }, + "decisionTaskCompletedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "executionContext": {}, + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "decisionTaskTimedOutEventAttributes": { + "type": "structure", + "required": [ + "timeoutType", + "scheduledEventId", + "startedEventId" + ], + "members": { + "timeoutType": {}, + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "activityTaskScheduledEventAttributes": { + "type": "structure", + "required": [ + "activityType", + "activityId", + "taskList", + "decisionTaskCompletedEventId" + ], + "members": { + "activityType": { + "shape": "Sn" + }, + "activityId": {}, + "input": {}, + "control": {}, + "scheduleToStartTimeout": {}, + "scheduleToCloseTimeout": {}, + "startToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "heartbeatTimeout": {} + } + }, + "activityTaskStartedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId" + ], + "members": { + "identity": {}, + "scheduledEventId": { + "type": "long" + } + } + }, + "activityTaskCompletedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "result": {}, + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "activityTaskFailedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "reason": {}, + "details": {}, + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "activityTaskTimedOutEventAttributes": { + "type": "structure", + "required": [ + "timeoutType", + "scheduledEventId", + "startedEventId" + ], + "members": { + "timeoutType": {}, + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + }, + "details": {} + } + }, + "activityTaskCanceledEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "details": {}, + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + }, + "latestCancelRequestedEventId": { + "type": "long" + } + } + }, + "activityTaskCancelRequestedEventAttributes": { + "type": "structure", + "required": [ + "decisionTaskCompletedEventId", + "activityId" + ], + "members": { + "decisionTaskCompletedEventId": { + "type": "long" + }, + "activityId": {} + } + }, + "workflowExecutionSignaledEventAttributes": { + "type": "structure", + "required": [ + "signalName" + ], + "members": { + "signalName": {}, + "input": {}, + "externalWorkflowExecution": { + "shape": "S16" + }, + "externalInitiatedEventId": { + "type": "long" + } + } + }, + "markerRecordedEventAttributes": { + "type": "structure", + "required": [ + "markerName", + "decisionTaskCompletedEventId" + ], + "members": { + "markerName": {}, + "details": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "recordMarkerFailedEventAttributes": { + "type": "structure", + "required": [ + "markerName", + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "markerName": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "timerStartedEventAttributes": { + "type": "structure", + "required": [ + "timerId", + "startToFireTimeout", + "decisionTaskCompletedEventId" + ], + "members": { + "timerId": {}, + "control": {}, + "startToFireTimeout": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "timerFiredEventAttributes": { + "type": "structure", + "required": [ + "timerId", + "startedEventId" + ], + "members": { + "timerId": {}, + "startedEventId": { + "type": "long" + } + } + }, + "timerCanceledEventAttributes": { + "type": "structure", + "required": [ + "timerId", + "startedEventId", + "decisionTaskCompletedEventId" + ], + "members": { + "timerId": {}, + "startedEventId": { + "type": "long" + }, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "startChildWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "required": [ + "workflowId", + "workflowType", + "taskList", + "decisionTaskCompletedEventId", + "childPolicy" + ], + "members": { + "workflowId": {}, + "workflowType": { + "shape": "Sr" + }, + "control": {}, + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "shape": "Sj" + }, + "taskPriority": {}, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "childPolicy": {}, + "taskStartToCloseTimeout": {}, + "tagList": { + "shape": "S1b" + }, + "lambdaRole": {} + } + }, + "childWorkflowExecutionStartedEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "workflowType", + "initiatedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "initiatedEventId": { + "type": "long" + } + } + }, + "childWorkflowExecutionCompletedEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "result": {}, + "initiatedEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "childWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "reason": {}, + "details": {}, + "initiatedEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "childWorkflowExecutionTimedOutEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "workflowType", + "timeoutType", + "initiatedEventId", + "startedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "timeoutType": {}, + "initiatedEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "childWorkflowExecutionCanceledEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "details": {}, + "initiatedEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "childWorkflowExecutionTerminatedEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "workflowType": { + "shape": "Sr" + }, + "initiatedEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + } + } + }, + "signalExternalWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "required": [ + "workflowId", + "signalName", + "decisionTaskCompletedEventId" + ], + "members": { + "workflowId": {}, + "runId": {}, + "signalName": {}, + "input": {}, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "control": {} + } + }, + "externalWorkflowExecutionSignaledEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "initiatedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "initiatedEventId": { + "type": "long" + } + } + }, + "signalExternalWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "workflowId", + "cause", + "initiatedEventId", + "decisionTaskCompletedEventId" + ], + "members": { + "workflowId": {}, + "runId": {}, + "cause": {}, + "initiatedEventId": { + "type": "long" + }, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "control": {} + } + }, + "externalWorkflowExecutionCancelRequestedEventAttributes": { + "type": "structure", + "required": [ + "workflowExecution", + "initiatedEventId" + ], + "members": { + "workflowExecution": { + "shape": "S16" + }, + "initiatedEventId": { + "type": "long" + } + } + }, + "requestCancelExternalWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "required": [ + "workflowId", + "decisionTaskCompletedEventId" + ], + "members": { + "workflowId": {}, + "runId": {}, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "control": {} + } + }, + "requestCancelExternalWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "workflowId", + "cause", + "initiatedEventId", + "decisionTaskCompletedEventId" + ], + "members": { + "workflowId": {}, + "runId": {}, + "cause": {}, + "initiatedEventId": { + "type": "long" + }, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "control": {} + } + }, + "scheduleActivityTaskFailedEventAttributes": { + "type": "structure", + "required": [ + "activityType", + "activityId", + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "activityType": { + "shape": "Sn" + }, + "activityId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "requestCancelActivityTaskFailedEventAttributes": { + "type": "structure", + "required": [ + "activityId", + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "activityId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "startTimerFailedEventAttributes": { + "type": "structure", + "required": [ + "timerId", + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "timerId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "cancelTimerFailedEventAttributes": { + "type": "structure", + "required": [ + "timerId", + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "timerId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "startChildWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "required": [ + "workflowType", + "cause", + "workflowId", + "initiatedEventId", + "decisionTaskCompletedEventId" + ], + "members": { + "workflowType": { + "shape": "Sr" + }, + "cause": {}, + "workflowId": {}, + "initiatedEventId": { + "type": "long" + }, + "decisionTaskCompletedEventId": { + "type": "long" + }, + "control": {} + } + }, + "lambdaFunctionScheduledEventAttributes": { + "type": "structure", + "required": [ + "id", + "name", + "decisionTaskCompletedEventId" + ], + "members": { + "id": {}, + "name": {}, + "input": {}, + "startToCloseTimeout": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "lambdaFunctionStartedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId" + ], + "members": { + "scheduledEventId": { + "type": "long" + } + } + }, + "lambdaFunctionCompletedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + }, + "result": {} + } + }, + "lambdaFunctionFailedEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + }, + "reason": {}, + "details": {} + } + }, + "lambdaFunctionTimedOutEventAttributes": { + "type": "structure", + "required": [ + "scheduledEventId", + "startedEventId" + ], + "members": { + "scheduledEventId": { + "type": "long" + }, + "startedEventId": { + "type": "long" + }, + "timeoutType": {} + } + }, + "scheduleLambdaFunctionFailedEventAttributes": { + "type": "structure", + "required": [ + "id", + "name", + "cause", + "decisionTaskCompletedEventId" + ], + "members": { + "id": {}, + "name": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "long" + } + } + }, + "startLambdaFunctionFailedEventAttributes": { + "type": "structure", + "members": { + "scheduledEventId": { + "type": "long" + }, + "cause": {}, + "message": {} + } + } + } + } + }, + "S4g": { + "type": "structure", + "required": [ + "executionInfos" + ], + "members": { + "executionInfos": { + "type": "list", + "member": { + "shape": "S19" + } + }, + "nextPageToken": {} + } + } + }, + "examples": {} +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.paginators.json new file mode 100755 index 0000000..892ee38 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/swf-2012-01-25.paginators.json @@ -0,0 +1,46 @@ +{ + "pagination": { + "GetWorkflowExecutionHistory": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "events" + }, + "ListActivityTypes": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "typeInfos" + }, + "ListClosedWorkflowExecutions": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "executionInfos" + }, + "ListDomains": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "domainInfos" + }, + "ListOpenWorkflowExecutions": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "executionInfos" + }, + "ListWorkflowTypes": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "typeInfos" + }, + "PollForDecisionTask": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "events" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/waf-2015-08-24.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/waf-2015-08-24.min.json new file mode 100755 index 0000000..dfd79c0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/waf-2015-08-24.min.json @@ -0,0 +1,1303 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-08-24", + "endpointPrefix": "waf", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "WAF", + "serviceFullName": "AWS WAF", + "signatureVersion": "v4", + "targetPrefix": "AWSWAF_20150824" + }, + "operations": { + "CreateByteMatchSet": { + "input": { + "type": "structure", + "required": [ + "Name", + "ChangeToken" + ], + "members": { + "Name": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ByteMatchSet": { + "shape": "S5" + }, + "ChangeToken": {} + } + } + }, + "CreateIPSet": { + "input": { + "type": "structure", + "required": [ + "Name", + "ChangeToken" + ], + "members": { + "Name": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "IPSet": { + "shape": "Sh" + }, + "ChangeToken": {} + } + } + }, + "CreateRule": { + "input": { + "type": "structure", + "required": [ + "Name", + "MetricName", + "ChangeToken" + ], + "members": { + "Name": {}, + "MetricName": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Rule": { + "shape": "Sp" + }, + "ChangeToken": {} + } + } + }, + "CreateSizeConstraintSet": { + "input": { + "type": "structure", + "required": [ + "Name", + "ChangeToken" + ], + "members": { + "Name": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "SizeConstraintSet": { + "shape": "Sw" + }, + "ChangeToken": {} + } + } + }, + "CreateSqlInjectionMatchSet": { + "input": { + "type": "structure", + "required": [ + "Name", + "ChangeToken" + ], + "members": { + "Name": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "SqlInjectionMatchSet": { + "shape": "S13" + }, + "ChangeToken": {} + } + } + }, + "CreateWebACL": { + "input": { + "type": "structure", + "required": [ + "Name", + "MetricName", + "DefaultAction", + "ChangeToken" + ], + "members": { + "Name": {}, + "MetricName": {}, + "DefaultAction": { + "shape": "S17" + }, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "WebACL": { + "shape": "S1a" + }, + "ChangeToken": {} + } + } + }, + "CreateXssMatchSet": { + "input": { + "type": "structure", + "required": [ + "Name", + "ChangeToken" + ], + "members": { + "Name": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "XssMatchSet": { + "shape": "S1g" + }, + "ChangeToken": {} + } + } + }, + "DeleteByteMatchSet": { + "input": { + "type": "structure", + "required": [ + "ByteMatchSetId", + "ChangeToken" + ], + "members": { + "ByteMatchSetId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "DeleteIPSet": { + "input": { + "type": "structure", + "required": [ + "IPSetId", + "ChangeToken" + ], + "members": { + "IPSetId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "DeleteRule": { + "input": { + "type": "structure", + "required": [ + "RuleId", + "ChangeToken" + ], + "members": { + "RuleId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "DeleteSizeConstraintSet": { + "input": { + "type": "structure", + "required": [ + "SizeConstraintSetId", + "ChangeToken" + ], + "members": { + "SizeConstraintSetId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "DeleteSqlInjectionMatchSet": { + "input": { + "type": "structure", + "required": [ + "SqlInjectionMatchSetId", + "ChangeToken" + ], + "members": { + "SqlInjectionMatchSetId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "DeleteWebACL": { + "input": { + "type": "structure", + "required": [ + "WebACLId", + "ChangeToken" + ], + "members": { + "WebACLId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "DeleteXssMatchSet": { + "input": { + "type": "structure", + "required": [ + "XssMatchSetId", + "ChangeToken" + ], + "members": { + "XssMatchSetId": {}, + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "GetByteMatchSet": { + "input": { + "type": "structure", + "required": [ + "ByteMatchSetId" + ], + "members": { + "ByteMatchSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "ByteMatchSet": { + "shape": "S5" + } + } + } + }, + "GetChangeToken": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "GetChangeTokenStatus": { + "input": { + "type": "structure", + "required": [ + "ChangeToken" + ], + "members": { + "ChangeToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ChangeTokenStatus": {} + } + } + }, + "GetIPSet": { + "input": { + "type": "structure", + "required": [ + "IPSetId" + ], + "members": { + "IPSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "IPSet": { + "shape": "Sh" + } + } + } + }, + "GetRule": { + "input": { + "type": "structure", + "required": [ + "RuleId" + ], + "members": { + "RuleId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Rule": { + "shape": "Sp" + } + } + } + }, + "GetSampledRequests": { + "input": { + "type": "structure", + "required": [ + "WebAclId", + "RuleId", + "TimeWindow", + "MaxItems" + ], + "members": { + "WebAclId": {}, + "RuleId": {}, + "TimeWindow": { + "shape": "S29" + }, + "MaxItems": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "SampledRequests": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Request", + "Weight" + ], + "members": { + "Request": { + "type": "structure", + "members": { + "ClientIP": {}, + "Country": {}, + "URI": {}, + "Method": {}, + "HTTPVersion": {}, + "Headers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Value": {} + } + } + } + } + }, + "Weight": { + "type": "long" + }, + "Timestamp": { + "type": "timestamp" + }, + "Action": {} + } + } + }, + "PopulationSize": { + "type": "long" + }, + "TimeWindow": { + "shape": "S29" + } + } + } + }, + "GetSizeConstraintSet": { + "input": { + "type": "structure", + "required": [ + "SizeConstraintSetId" + ], + "members": { + "SizeConstraintSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "SizeConstraintSet": { + "shape": "Sw" + } + } + } + }, + "GetSqlInjectionMatchSet": { + "input": { + "type": "structure", + "required": [ + "SqlInjectionMatchSetId" + ], + "members": { + "SqlInjectionMatchSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "SqlInjectionMatchSet": { + "shape": "S13" + } + } + } + }, + "GetWebACL": { + "input": { + "type": "structure", + "required": [ + "WebACLId" + ], + "members": { + "WebACLId": {} + } + }, + "output": { + "type": "structure", + "members": { + "WebACL": { + "shape": "S1a" + } + } + } + }, + "GetXssMatchSet": { + "input": { + "type": "structure", + "required": [ + "XssMatchSetId" + ], + "members": { + "XssMatchSetId": {} + } + }, + "output": { + "type": "structure", + "members": { + "XssMatchSet": { + "shape": "S1g" + } + } + } + }, + "ListByteMatchSets": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "ByteMatchSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ByteMatchSetId", + "Name" + ], + "members": { + "ByteMatchSetId": {}, + "Name": {} + } + } + } + } + } + }, + "ListIPSets": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "IPSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "IPSetId", + "Name" + ], + "members": { + "IPSetId": {}, + "Name": {} + } + } + } + } + } + }, + "ListRules": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "Rules": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "RuleId", + "Name" + ], + "members": { + "RuleId": {}, + "Name": {} + } + } + } + } + } + }, + "ListSizeConstraintSets": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "SizeConstraintSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "SizeConstraintSetId", + "Name" + ], + "members": { + "SizeConstraintSetId": {}, + "Name": {} + } + } + } + } + } + }, + "ListSqlInjectionMatchSets": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "SqlInjectionMatchSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "SqlInjectionMatchSetId", + "Name" + ], + "members": { + "SqlInjectionMatchSetId": {}, + "Name": {} + } + } + } + } + } + }, + "ListWebACLs": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "WebACLs": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "WebACLId", + "Name" + ], + "members": { + "WebACLId": {}, + "Name": {} + } + } + } + } + } + }, + "ListXssMatchSets": { + "input": { + "type": "structure", + "required": [ + "Limit" + ], + "members": { + "NextMarker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextMarker": {}, + "XssMatchSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "XssMatchSetId", + "Name" + ], + "members": { + "XssMatchSetId": {}, + "Name": {} + } + } + } + } + } + }, + "UpdateByteMatchSet": { + "input": { + "type": "structure", + "required": [ + "ByteMatchSetId", + "ChangeToken", + "Updates" + ], + "members": { + "ByteMatchSetId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "ByteMatchTuple" + ], + "members": { + "Action": {}, + "ByteMatchTuple": { + "shape": "S8" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "UpdateIPSet": { + "input": { + "type": "structure", + "required": [ + "IPSetId", + "ChangeToken", + "Updates" + ], + "members": { + "IPSetId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "IPSetDescriptor" + ], + "members": { + "Action": {}, + "IPSetDescriptor": { + "shape": "Sj" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "UpdateRule": { + "input": { + "type": "structure", + "required": [ + "RuleId", + "ChangeToken", + "Updates" + ], + "members": { + "RuleId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "Predicate" + ], + "members": { + "Action": {}, + "Predicate": { + "shape": "Sr" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "UpdateSizeConstraintSet": { + "input": { + "type": "structure", + "required": [ + "SizeConstraintSetId", + "ChangeToken", + "Updates" + ], + "members": { + "SizeConstraintSetId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "SizeConstraint" + ], + "members": { + "Action": {}, + "SizeConstraint": { + "shape": "Sy" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "UpdateSqlInjectionMatchSet": { + "input": { + "type": "structure", + "required": [ + "SqlInjectionMatchSetId", + "ChangeToken", + "Updates" + ], + "members": { + "SqlInjectionMatchSetId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "SqlInjectionMatchTuple" + ], + "members": { + "Action": {}, + "SqlInjectionMatchTuple": { + "shape": "S15" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "UpdateWebACL": { + "input": { + "type": "structure", + "required": [ + "WebACLId", + "ChangeToken" + ], + "members": { + "WebACLId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "ActivatedRule" + ], + "members": { + "Action": {}, + "ActivatedRule": { + "shape": "S1c" + } + } + } + }, + "DefaultAction": { + "shape": "S17" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + }, + "UpdateXssMatchSet": { + "input": { + "type": "structure", + "required": [ + "XssMatchSetId", + "ChangeToken", + "Updates" + ], + "members": { + "XssMatchSetId": {}, + "ChangeToken": {}, + "Updates": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "XssMatchTuple" + ], + "members": { + "Action": {}, + "XssMatchTuple": { + "shape": "S1i" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeToken": {} + } + } + } + }, + "shapes": { + "S5": { + "type": "structure", + "required": [ + "ByteMatchSetId", + "ByteMatchTuples" + ], + "members": { + "ByteMatchSetId": {}, + "Name": {}, + "ByteMatchTuples": { + "type": "list", + "member": { + "shape": "S8" + } + } + } + }, + "S8": { + "type": "structure", + "required": [ + "FieldToMatch", + "TargetString", + "TextTransformation", + "PositionalConstraint" + ], + "members": { + "FieldToMatch": { + "shape": "S9" + }, + "TargetString": { + "type": "blob" + }, + "TextTransformation": {}, + "PositionalConstraint": {} + } + }, + "S9": { + "type": "structure", + "required": [ + "Type" + ], + "members": { + "Type": {}, + "Data": {} + } + }, + "Sh": { + "type": "structure", + "required": [ + "IPSetId", + "IPSetDescriptors" + ], + "members": { + "IPSetId": {}, + "Name": {}, + "IPSetDescriptors": { + "type": "list", + "member": { + "shape": "Sj" + } + } + } + }, + "Sj": { + "type": "structure", + "required": [ + "Type", + "Value" + ], + "members": { + "Type": {}, + "Value": {} + } + }, + "Sp": { + "type": "structure", + "required": [ + "RuleId", + "Predicates" + ], + "members": { + "RuleId": {}, + "Name": {}, + "MetricName": {}, + "Predicates": { + "type": "list", + "member": { + "shape": "Sr" + } + } + } + }, + "Sr": { + "type": "structure", + "required": [ + "Negated", + "Type", + "DataId" + ], + "members": { + "Negated": { + "type": "boolean" + }, + "Type": {}, + "DataId": {} + } + }, + "Sw": { + "type": "structure", + "required": [ + "SizeConstraintSetId", + "SizeConstraints" + ], + "members": { + "SizeConstraintSetId": {}, + "Name": {}, + "SizeConstraints": { + "type": "list", + "member": { + "shape": "Sy" + } + } + } + }, + "Sy": { + "type": "structure", + "required": [ + "FieldToMatch", + "TextTransformation", + "ComparisonOperator", + "Size" + ], + "members": { + "FieldToMatch": { + "shape": "S9" + }, + "TextTransformation": {}, + "ComparisonOperator": {}, + "Size": { + "type": "long" + } + } + }, + "S13": { + "type": "structure", + "required": [ + "SqlInjectionMatchSetId", + "SqlInjectionMatchTuples" + ], + "members": { + "SqlInjectionMatchSetId": {}, + "Name": {}, + "SqlInjectionMatchTuples": { + "type": "list", + "member": { + "shape": "S15" + } + } + } + }, + "S15": { + "type": "structure", + "required": [ + "FieldToMatch", + "TextTransformation" + ], + "members": { + "FieldToMatch": { + "shape": "S9" + }, + "TextTransformation": {} + } + }, + "S17": { + "type": "structure", + "required": [ + "Type" + ], + "members": { + "Type": {} + } + }, + "S1a": { + "type": "structure", + "required": [ + "WebACLId", + "DefaultAction", + "Rules" + ], + "members": { + "WebACLId": {}, + "Name": {}, + "MetricName": {}, + "DefaultAction": { + "shape": "S17" + }, + "Rules": { + "type": "list", + "member": { + "shape": "S1c" + } + } + } + }, + "S1c": { + "type": "structure", + "required": [ + "Priority", + "RuleId", + "Action" + ], + "members": { + "Priority": { + "type": "integer" + }, + "RuleId": {}, + "Action": { + "shape": "S17" + } + } + }, + "S1g": { + "type": "structure", + "required": [ + "XssMatchSetId", + "XssMatchTuples" + ], + "members": { + "XssMatchSetId": {}, + "Name": {}, + "XssMatchTuples": { + "type": "list", + "member": { + "shape": "S1i" + } + } + } + }, + "S1i": { + "type": "structure", + "required": [ + "FieldToMatch", + "TextTransformation" + ], + "members": { + "FieldToMatch": { + "shape": "S9" + }, + "TextTransformation": {} + } + }, + "S29": { + "type": "structure", + "required": [ + "StartTime", + "EndTime" + ], + "members": { + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + } + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.min.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.min.json new file mode 100755 index 0000000..98eb53b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.min.json @@ -0,0 +1,408 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-04-08", + "endpointPrefix": "workspaces", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon WorkSpaces", + "signatureVersion": "v4", + "targetPrefix": "WorkspacesService" + }, + "operations": { + "CreateTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId", + "Tags" + ], + "members": { + "ResourceId": {}, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateWorkspaces": { + "input": { + "type": "structure", + "required": [ + "Workspaces" + ], + "members": { + "Workspaces": { + "type": "list", + "member": { + "shape": "Sa" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedRequests": { + "type": "list", + "member": { + "type": "structure", + "members": { + "WorkspaceRequest": { + "shape": "Sa" + }, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "PendingRequests": { + "shape": "Sl" + } + } + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId", + "TagKeys" + ], + "members": { + "ResourceId": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "required": [ + "ResourceId" + ], + "members": { + "ResourceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "TagList": { + "shape": "S3" + } + } + } + }, + "DescribeWorkspaceBundles": { + "input": { + "type": "structure", + "members": { + "BundleIds": { + "type": "list", + "member": {} + }, + "Owner": {}, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Bundles": { + "type": "list", + "member": { + "type": "structure", + "members": { + "BundleId": {}, + "Name": {}, + "Owner": {}, + "Description": {}, + "UserStorage": { + "type": "structure", + "members": { + "Capacity": {} + } + }, + "ComputeType": { + "type": "structure", + "members": { + "Name": {} + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeWorkspaceDirectories": { + "input": { + "type": "structure", + "members": { + "DirectoryIds": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Directories": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DirectoryId": {}, + "Alias": {}, + "DirectoryName": {}, + "RegistrationCode": {}, + "SubnetIds": { + "type": "list", + "member": {} + }, + "DnsIpAddresses": { + "type": "list", + "member": {} + }, + "CustomerUserName": {}, + "IamRoleId": {}, + "DirectoryType": {}, + "WorkspaceSecurityGroupId": {}, + "State": {}, + "WorkspaceCreationProperties": { + "type": "structure", + "members": { + "EnableWorkDocs": { + "type": "boolean" + }, + "EnableInternetAccess": { + "type": "boolean" + }, + "DefaultOu": {}, + "CustomSecurityGroupId": {}, + "UserEnabledAsLocalAdministrator": { + "type": "boolean" + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeWorkspaces": { + "input": { + "type": "structure", + "members": { + "WorkspaceIds": { + "type": "list", + "member": {} + }, + "DirectoryId": {}, + "UserName": {}, + "BundleId": {}, + "Limit": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Workspaces": { + "shape": "Sl" + }, + "NextToken": {} + } + } + }, + "RebootWorkspaces": { + "input": { + "type": "structure", + "required": [ + "RebootWorkspaceRequests" + ], + "members": { + "RebootWorkspaceRequests": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "WorkspaceId" + ], + "members": { + "WorkspaceId": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedRequests": { + "type": "list", + "member": { + "shape": "S1x" + } + } + } + } + }, + "RebuildWorkspaces": { + "input": { + "type": "structure", + "required": [ + "RebuildWorkspaceRequests" + ], + "members": { + "RebuildWorkspaceRequests": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "WorkspaceId" + ], + "members": { + "WorkspaceId": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedRequests": { + "type": "list", + "member": { + "shape": "S1x" + } + } + } + } + }, + "TerminateWorkspaces": { + "input": { + "type": "structure", + "required": [ + "TerminateWorkspaceRequests" + ], + "members": { + "TerminateWorkspaceRequests": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "WorkspaceId" + ], + "members": { + "WorkspaceId": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "FailedRequests": { + "type": "list", + "member": { + "shape": "S1x" + } + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sa": { + "type": "structure", + "required": [ + "DirectoryId", + "UserName", + "BundleId" + ], + "members": { + "DirectoryId": {}, + "UserName": {}, + "BundleId": {}, + "VolumeEncryptionKey": {}, + "UserVolumeEncryptionEnabled": { + "type": "boolean" + }, + "RootVolumeEncryptionEnabled": { + "type": "boolean" + }, + "Tags": { + "shape": "S3" + } + } + }, + "Sl": { + "type": "list", + "member": { + "type": "structure", + "members": { + "WorkspaceId": {}, + "DirectoryId": {}, + "UserName": {}, + "IpAddress": {}, + "State": {}, + "BundleId": {}, + "SubnetId": {}, + "ErrorMessage": {}, + "ErrorCode": {}, + "ComputerName": {}, + "VolumeEncryptionKey": {}, + "UserVolumeEncryptionEnabled": { + "type": "boolean" + }, + "RootVolumeEncryptionEnabled": { + "type": "boolean" + } + } + } + }, + "S1x": { + "type": "structure", + "members": { + "WorkspaceId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } +} \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.paginators.json b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.paginators.json new file mode 100755 index 0000000..efa8cba --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/apis/workspaces-2015-04-08.paginators.json @@ -0,0 +1,20 @@ +{ + "pagination": { + "DescribeWorkspaceBundles": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Bundles" + }, + "DescribeWorkspaceDirectories": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Directories" + }, + "DescribeWorkspaces": { + "limit_key": "Limit", + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Workspaces" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/bower.json b/cognitoLambdaTrigger/node_modules/aws-sdk/bower.json new file mode 100755 index 0000000..bda489f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/bower.json @@ -0,0 +1,9 @@ +{ + "name": "aws-sdk", + "ignore": [ + "apis", "doc-src", "dist-tools", "eslint-rules", "features", "lib", + "scripts", "tasks", "test", "Gemfile*", "configuration*", + "Rakefile", "package.json", "testem.json", ".*", "index.js" + ], + "main": "dist/aws-sdk.js" +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/browser-builder.js b/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/browser-builder.js new file mode 100755 index 0000000..5dfb692 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/browser-builder.js @@ -0,0 +1,87 @@ +#!/usr/bin/env node + +var path = require('path'); + +var AWS = require('../'); + +var license = [ + '// AWS SDK for JavaScript v' + AWS.VERSION, + '// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.', + '// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt' +].join('\n') + '\n'; + +function minify(code) { + var uglify = require('uglify-js'); + var minified = uglify.minify(code, {fromString: true}); + return minified.code; +} + +function stripComments(code) { + var lines = code.split(/\r?\n/); + var multiLine = false; + lines = lines.map(function (line) { + var rLine = line; + if (line.match(/^\s*\/\//)) { + rLine = null; + } else if (line.match(/^\s*\/\*/)) { + multiLine = true; + rLine = null; + } + + if (multiLine) { + var multiLineEnd = line.match(/\*\/(.*)/); + if (multiLineEnd) { + multiLine = false; + rLine = multiLineEnd[1]; + } else { + rLine = null; + } + } + + return rLine; + }).filter(function(l) { return l !== null; }); + + var newCode = lines.join('\n'); + newCode = newCode.replace(/\/\*\*[\s\S]+?Copyright\s+.+?Amazon[\s\S]+?\*\//g, ''); + return newCode; +} + +function build(options, callback) { + if (arguments.length === 1) { + callback = options; + options = {}; + } + + var img = require('insert-module-globals'); + img.vars.process = function() { return '{browser:true}'; }; + + if (options.services) process.env.AWS_SERVICES = options.services; + + var browserify = require('browserify'); + var brOpts = { basedir: path.resolve(__dirname, '..') }; + browserify(brOpts).add('./').ignore('domain').bundle(function(err, data) { + if (err) return callback(err); + + var code = (data || '').toString(); + if (options.minify) code = minify(code); + else code = stripComments(code); + + code = license + code; + callback(null, code); + }); +} + +// run if we called this tool directly +if (require.main === module) { + var opts = { + services: process.argv[2] || process.env.SERVICES, + minify: process.env.MINIFY ? true : false + }; + build(opts, function(err, code) { + if (err) console.error(err.message); + else console.log(code); + }); +} + +build.license = license; +module.exports = build; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/service-collector.js b/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/service-collector.js new file mode 100755 index 0000000..318f72f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/service-collector.js @@ -0,0 +1,149 @@ +var fs = require('fs'); +var util = require('util'); +var path = require('path'); + +var AWS = require('../'); +var apis = require('../lib/api_loader'); + +var defaultServices = 'acm,apigateway,cloudfront,cloudtrail,cloudwatch,cloudwatchlogs,cloudwatchevents,codecommit,codepipeline,cognitoidentity,cognitoidentityserviceprovider,cognitosync,configservice,devicefarm,directconnect,dynamodb,dynamodbstreams,ec2,ecr,ecs,elastictranscoder,elb,firehose,gamelift,inspector,iotdata,kinesis,kms,lambda,marketplacecommerceanalytics,mobileanalytics,machinelearning,opsworks,rds,route53,route53domains,s3,ses,sns,sqs,ssm,storagegateway,sts,waf'; +var sanitizeRegex = /[^a-zA-Z0-9,-]/; + +var serviceClasses = {}; +Object.keys(AWS).forEach(function(name) { + if (AWS[name].serviceIdentifier) { + serviceClasses[AWS[name].serviceIdentifier] = AWS[name]; + } +}); + +function getServiceHeader(service) { + if (service === 'all') { + return Object.keys(serviceClasses).map(function(name) { + return getServiceHeader(name); + }).join('\n'); + } + + if (!serviceClasses[service]) return null; + var versions = serviceClasses[service].apiVersions.map(function(version) { + return version.indexOf('*') >= 0 ? null : version; + }).filter(function(c) { return c !== null; }); + + var file = util.format( + 'AWS.apiLoader.services[\'%s\'] = {};\n' + + 'AWS.%s = AWS.Service.defineService(\'%s\', %s);\n', + service, apis.serviceName(service), service, util.inspect(versions)); + var svcPath = path.join(__dirname, '..', 'lib', 'services', service + '.js'); + if (fs.existsSync(svcPath)) { + file += 'require(\'./services/' + service + '\');\n'; + } + + return file; +} + +function getService(service, version) { + if (service === 'all') { + return Object.keys(serviceClasses).map(function(name) { + var out = serviceClasses[name].apiVersions.map(function(svcVersion) { + if (svcVersion.indexOf('*') >= 0) return null; + return getService(name, svcVersion); + }).filter(function(c) { return c !== null; }).join('\n'); + + return out; + }).join('\n'); + } + + var svc, api; + if (!serviceClasses[service]) { + return null; + } + + try { + var ClassName = serviceClasses[service]; + svc = new ClassName({apiVersion: version, endpoint: 'localhost'}); + api = apis.load(service, svc.api.apiVersion); + } catch (e) { + return null; + } + + var line = util.format( + 'AWS.apiLoader.services[\'%s\'][\'%s\'] = %s;', + service, svc.api.apiVersion, JSON.stringify(api)); + + return line; +} + +function ServiceCollector(services) { + var builtServices = {}; + + function buildService(name, usingDefaultServices) { + var match = name.match(/^(.+?)(?:-(.+?))?$/); + var service = match[1], version = match[2] || 'latest'; + var contents = []; + var lines, err; + + if (!builtServices[service]) { + builtServices[service] = {}; + + lines = getServiceHeader(service); + if (lines === null) { + if (!usingDefaultServices) { + err = new Error('Invalid module: ' + service); + err.name = 'InvalidModuleError'; + throw err; + } + } else { + contents.push(lines); + } + } + + if (!builtServices[service][version]) { + builtServices[service][version] = true; + + lines = getService(service, version); + if (lines === null) { + if (!usingDefaultServices) { + err = new Error('Invalid module: ' + service + '-' + version); + err.name = 'InvalidModuleError'; + throw err; + } + } else { + contents.push(lines); + } + } + + return contents.join('\n'); + } + + var serviceCode = ''; + var usingDefaultServicesToggle = false; + if (!services) { + usingDefaultServicesToggle = true; + services = defaultServices; + } + if (services.match(sanitizeRegex)) { + throw new Error('Incorrectly formatted service names'); + } + + var invalidModules = []; + var stsIncluded = false; + services.split(',').sort().forEach(function(name) { + if (name.match(/^sts\b/) || name === 'all') stsIncluded = true; + try { + serviceCode += buildService(name, usingDefaultServicesToggle) + '\n'; + } catch (e) { + if (e.name === 'InvalidModuleError') invalidModules.push(name); + else throw e; + } + }); + + if (!stsIncluded) { + serviceCode += buildService('sts') + '\n'; + } + + if (invalidModules.length > 0) { + throw new Error('Missing modules: ' + invalidModules.join(', ')); + } + + return serviceCode; +} + +module.exports = ServiceCollector; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/transform.js b/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/transform.js new file mode 100755 index 0000000..cb980c3 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/dist-tools/transform.js @@ -0,0 +1,19 @@ +var Transform = require('stream').Transform; +var collector = require('./service-collector'); +var license = require('./browser-builder').license; + +module.exports = function(file) { + var stream = new Transform(); + stream._transform = function(data, encoding, callback) { + callback(null, data); + }; + + if (file.match(/[\/\\]lib[\/\\]browser\.js$/)) { + stream.push(license); + + var src = collector(process.env.AWS_SERVICES); + stream._flush = function(callback) { stream.push(src); callback(); }; + } + + return stream; +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt b/cognitoLambdaTrigger/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt new file mode 100755 index 0000000..14e4658 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt @@ -0,0 +1,96 @@ +The bundled package of the AWS SDK for JavaScript is available under the +Apache License, Version 2.0: + + 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. + +This product bundles browserify, which is available under a +"3-clause BSD" license: + + Copyright Joyent, Inc. and other Node contributors. + + 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. + +This product bundles crypto-browserify, which is available under +the MIT license: + + Copyright (c) 2013 Dominic Tarr + + 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. + +This product bundles MD5, SHA-1, and SHA-256 hashing algorithm components, +which are available under a BSD license: + + Copyright (c) 1998 - 2009, Paul Johnston & Contributors + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyrightnotice, + this list of conditions and the following disclaimer. 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. + + Neither the name of the author nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.js b/cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.js new file mode 100755 index 0000000..19fa846 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.js @@ -0,0 +1,16232 @@ +// AWS SDK for JavaScript v2.3.19 +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o `0`","state":"success"}]}}}; +AWS.apiLoader.services['cloudwatchevents'] = {}; +AWS.CloudWatchEvents = AWS.Service.defineService('cloudwatchevents', [ '2015-10-07' ]); + +AWS.apiLoader.services['cloudwatchevents']['2015-10-07'] = {"version":"2.0","metadata":{"apiVersion":"2015-10-07","endpointPrefix":"events","jsonVersion":"1.1","serviceFullName":"Amazon CloudWatch Events","signatureVersion":"v4","targetPrefix":"AWSEvents","protocol":"json"},"operations":{"DeleteRule":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"http":{}},"DescribeRule":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{"Name":{},"Arn":{},"EventPattern":{},"ScheduleExpression":{},"State":{},"Description":{},"RoleArn":{}}},"http":{}},"DisableRule":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"http":{}},"EnableRule":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"http":{}},"ListRuleNamesByTarget":{"input":{"type":"structure","required":["TargetArn"],"members":{"TargetArn":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"RuleNames":{"type":"list","member":{}},"NextToken":{}}},"http":{}},"ListRules":{"input":{"type":"structure","members":{"NamePrefix":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Rules":{"type":"list","member":{"type":"structure","members":{"Name":{},"Arn":{},"EventPattern":{},"State":{},"Description":{},"ScheduleExpression":{},"RoleArn":{}}}},"NextToken":{}}},"http":{}},"ListTargetsByRule":{"input":{"type":"structure","required":["Rule"],"members":{"Rule":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Targets":{"shape":"Sp"},"NextToken":{}}},"http":{}},"PutEvents":{"input":{"type":"structure","required":["Entries"],"members":{"Entries":{"type":"list","member":{"type":"structure","members":{"Time":{"type":"timestamp"},"Source":{},"Resources":{"type":"list","member":{}},"DetailType":{},"Detail":{}}}}}},"output":{"type":"structure","members":{"FailedEntryCount":{"type":"integer"},"Entries":{"type":"list","member":{"type":"structure","members":{"EventId":{},"ErrorCode":{},"ErrorMessage":{}}}}}},"http":{}},"PutRule":{"input":{"type":"structure","required":["Name"],"members":{"Name":{},"ScheduleExpression":{},"EventPattern":{},"State":{},"Description":{},"RoleArn":{}}},"output":{"type":"structure","members":{"RuleArn":{}}},"http":{}},"PutTargets":{"input":{"type":"structure","required":["Rule","Targets"],"members":{"Rule":{},"Targets":{"shape":"Sp"}}},"output":{"type":"structure","members":{"FailedEntryCount":{"type":"integer"},"FailedEntries":{"type":"list","member":{"type":"structure","members":{"TargetId":{},"ErrorCode":{},"ErrorMessage":{}}}}}},"http":{}},"RemoveTargets":{"input":{"type":"structure","required":["Rule","Ids"],"members":{"Rule":{},"Ids":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"FailedEntryCount":{"type":"integer"},"FailedEntries":{"type":"list","member":{"type":"structure","members":{"TargetId":{},"ErrorCode":{},"ErrorMessage":{}}}}}},"http":{}},"TestEventPattern":{"input":{"type":"structure","required":["EventPattern","Event"],"members":{"EventPattern":{},"Event":{}}},"output":{"type":"structure","members":{"Result":{"type":"boolean"}}},"http":{}}},"shapes":{"Sp":{"type":"list","member":{"type":"structure","required":["Id","Arn"],"members":{"Id":{},"Arn":{},"Input":{},"InputPath":{}}}}},"examples":{}}; +AWS.apiLoader.services['cloudwatchlogs'] = {}; +AWS.CloudWatchLogs = AWS.Service.defineService('cloudwatchlogs', [ '2014-03-28' ]); + +AWS.apiLoader.services['cloudwatchlogs']['2014-03-28'] = {"version":"2.0","metadata":{"apiVersion":"2014-03-28","endpointPrefix":"logs","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon CloudWatch Logs","signatureVersion":"v4","targetPrefix":"Logs_20140328"},"operations":{"CancelExportTask":{"input":{"type":"structure","required":["taskId"],"members":{"taskId":{}}},"http":{}},"CreateExportTask":{"input":{"type":"structure","required":["logGroupName","from","to","destination"],"members":{"taskName":{},"logGroupName":{},"logStreamNamePrefix":{},"from":{"type":"long"},"to":{"type":"long"},"destination":{},"destinationPrefix":{}}},"output":{"type":"structure","members":{"taskId":{}}},"http":{}},"CreateLogGroup":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{}}},"http":{}},"CreateLogStream":{"input":{"type":"structure","required":["logGroupName","logStreamName"],"members":{"logGroupName":{},"logStreamName":{}}},"http":{}},"DeleteDestination":{"input":{"type":"structure","required":["destinationName"],"members":{"destinationName":{}}},"http":{}},"DeleteLogGroup":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{}}},"http":{}},"DeleteLogStream":{"input":{"type":"structure","required":["logGroupName","logStreamName"],"members":{"logGroupName":{},"logStreamName":{}}},"http":{}},"DeleteMetricFilter":{"input":{"type":"structure","required":["logGroupName","filterName"],"members":{"logGroupName":{},"filterName":{}}},"http":{}},"DeleteRetentionPolicy":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{}}},"http":{}},"DeleteSubscriptionFilter":{"input":{"type":"structure","required":["logGroupName","filterName"],"members":{"logGroupName":{},"filterName":{}}},"http":{}},"DescribeDestinations":{"input":{"type":"structure","members":{"DestinationNamePrefix":{},"nextToken":{},"limit":{"type":"integer"}}},"output":{"type":"structure","members":{"destinations":{"type":"list","member":{"shape":"Sq"}},"nextToken":{}}},"http":{}},"DescribeExportTasks":{"input":{"type":"structure","members":{"taskId":{},"statusCode":{},"nextToken":{},"limit":{"type":"integer"}}},"output":{"type":"structure","members":{"exportTasks":{"type":"list","member":{"type":"structure","members":{"taskId":{},"taskName":{},"logGroupName":{},"from":{"type":"long"},"to":{"type":"long"},"destination":{},"destinationPrefix":{},"status":{"type":"structure","members":{"code":{},"message":{}}},"executionInfo":{"type":"structure","members":{"creationTime":{"type":"long"},"completionTime":{"type":"long"}}}}}},"nextToken":{}}},"http":{}},"DescribeLogGroups":{"input":{"type":"structure","members":{"logGroupNamePrefix":{},"nextToken":{},"limit":{"type":"integer"}}},"output":{"type":"structure","members":{"logGroups":{"type":"list","member":{"type":"structure","members":{"logGroupName":{},"creationTime":{"type":"long"},"retentionInDays":{"type":"integer"},"metricFilterCount":{"type":"integer"},"arn":{},"storedBytes":{"type":"long"}}}},"nextToken":{}}},"http":{}},"DescribeLogStreams":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{},"logStreamNamePrefix":{},"orderBy":{},"descending":{"type":"boolean"},"nextToken":{},"limit":{"type":"integer"}}},"output":{"type":"structure","members":{"logStreams":{"type":"list","member":{"type":"structure","members":{"logStreamName":{},"creationTime":{"type":"long"},"firstEventTimestamp":{"type":"long"},"lastEventTimestamp":{"type":"long"},"lastIngestionTime":{"type":"long"},"uploadSequenceToken":{},"arn":{},"storedBytes":{"type":"long"}}}},"nextToken":{}}},"http":{}},"DescribeMetricFilters":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{},"filterNamePrefix":{},"nextToken":{},"limit":{"type":"integer"}}},"output":{"type":"structure","members":{"metricFilters":{"type":"list","member":{"type":"structure","members":{"filterName":{},"filterPattern":{},"metricTransformations":{"shape":"S1m"},"creationTime":{"type":"long"}}}},"nextToken":{}}},"http":{}},"DescribeSubscriptionFilters":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{},"filterNamePrefix":{},"nextToken":{},"limit":{"type":"integer"}}},"output":{"type":"structure","members":{"subscriptionFilters":{"type":"list","member":{"type":"structure","members":{"filterName":{},"logGroupName":{},"filterPattern":{},"destinationArn":{},"roleArn":{},"creationTime":{"type":"long"}}}},"nextToken":{}}},"http":{}},"FilterLogEvents":{"input":{"type":"structure","required":["logGroupName"],"members":{"logGroupName":{},"logStreamNames":{"type":"list","member":{}},"startTime":{"type":"long"},"endTime":{"type":"long"},"filterPattern":{},"nextToken":{},"limit":{"type":"integer"},"interleaved":{"type":"boolean"}}},"output":{"type":"structure","members":{"events":{"type":"list","member":{"type":"structure","members":{"logStreamName":{},"timestamp":{"type":"long"},"message":{},"ingestionTime":{"type":"long"},"eventId":{}}}},"searchedLogStreams":{"type":"list","member":{"type":"structure","members":{"logStreamName":{},"searchedCompletely":{"type":"boolean"}}}},"nextToken":{}}},"http":{}},"GetLogEvents":{"input":{"type":"structure","required":["logGroupName","logStreamName"],"members":{"logGroupName":{},"logStreamName":{},"startTime":{"type":"long"},"endTime":{"type":"long"},"nextToken":{},"limit":{"type":"integer"},"startFromHead":{"type":"boolean"}}},"output":{"type":"structure","members":{"events":{"type":"list","member":{"type":"structure","members":{"timestamp":{"type":"long"},"message":{},"ingestionTime":{"type":"long"}}}},"nextForwardToken":{},"nextBackwardToken":{}}},"http":{}},"PutDestination":{"input":{"type":"structure","required":["destinationName","targetArn","roleArn"],"members":{"destinationName":{},"targetArn":{},"roleArn":{}}},"output":{"type":"structure","members":{"destination":{"shape":"Sq"}}},"http":{}},"PutDestinationPolicy":{"input":{"type":"structure","required":["destinationName","accessPolicy"],"members":{"destinationName":{},"accessPolicy":{}}},"http":{}},"PutLogEvents":{"input":{"type":"structure","required":["logGroupName","logStreamName","logEvents"],"members":{"logGroupName":{},"logStreamName":{},"logEvents":{"type":"list","member":{"type":"structure","required":["timestamp","message"],"members":{"timestamp":{"type":"long"},"message":{}}}},"sequenceToken":{}}},"output":{"type":"structure","members":{"nextSequenceToken":{},"rejectedLogEventsInfo":{"type":"structure","members":{"tooNewLogEventStartIndex":{"type":"integer"},"tooOldLogEventEndIndex":{"type":"integer"},"expiredLogEventEndIndex":{"type":"integer"}}}}},"http":{}},"PutMetricFilter":{"input":{"type":"structure","required":["logGroupName","filterName","filterPattern","metricTransformations"],"members":{"logGroupName":{},"filterName":{},"filterPattern":{},"metricTransformations":{"shape":"S1m"}}},"http":{}},"PutRetentionPolicy":{"input":{"type":"structure","required":["logGroupName","retentionInDays"],"members":{"logGroupName":{},"retentionInDays":{"type":"integer"}}},"http":{}},"PutSubscriptionFilter":{"input":{"type":"structure","required":["logGroupName","filterName","filterPattern","destinationArn"],"members":{"logGroupName":{},"filterName":{},"filterPattern":{},"destinationArn":{},"roleArn":{}}},"http":{}},"TestMetricFilter":{"input":{"type":"structure","required":["filterPattern","logEventMessages"],"members":{"filterPattern":{},"logEventMessages":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"matches":{"type":"list","member":{"type":"structure","members":{"eventNumber":{"type":"long"},"eventMessage":{},"extractedValues":{"type":"map","key":{},"value":{}}}}}}},"http":{}}},"shapes":{"Sq":{"type":"structure","members":{"destinationName":{},"targetArn":{},"roleArn":{},"accessPolicy":{},"arn":{},"creationTime":{"type":"long"}}},"S1m":{"type":"list","member":{"type":"structure","required":["metricName","metricNamespace","metricValue"],"members":{"metricName":{},"metricNamespace":{},"metricValue":{}}}}},"paginators":{"DescribeDestinations":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":"destinations"},"DescribeLogGroups":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":"logGroups"},"DescribeLogStreams":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":"logStreams"},"DescribeMetricFilters":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":"metricFilters"},"DescribeSubscriptionFilters":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":"subscriptionFilters"},"FilterLogEvents":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":["events","searchedLogStreams"]},"GetLogEvents":{"input_token":"nextToken","output_token":"nextForwardToken","limit_key":"limit","result_key":"events"}}}; +AWS.apiLoader.services['codecommit'] = {}; +AWS.CodeCommit = AWS.Service.defineService('codecommit', [ '2015-04-13' ]); + +AWS.apiLoader.services['codecommit']['2015-04-13'] = {"version":"2.0","metadata":{"apiVersion":"2015-04-13","endpointPrefix":"codecommit","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"CodeCommit","serviceFullName":"AWS CodeCommit","signatureVersion":"v4","targetPrefix":"CodeCommit_20150413"},"operations":{"BatchGetRepositories":{"input":{"type":"structure","required":["repositoryNames"],"members":{"repositoryNames":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"repositories":{"type":"list","member":{"shape":"S6"}},"repositoriesNotFound":{"type":"list","member":{}}}},"http":{}},"CreateBranch":{"input":{"type":"structure","required":["repositoryName","branchName","commitId"],"members":{"repositoryName":{},"branchName":{},"commitId":{}}},"http":{}},"CreateRepository":{"input":{"type":"structure","required":["repositoryName"],"members":{"repositoryName":{},"repositoryDescription":{}}},"output":{"type":"structure","members":{"repositoryMetadata":{"shape":"S6"}}},"http":{}},"DeleteRepository":{"input":{"type":"structure","required":["repositoryName"],"members":{"repositoryName":{}}},"output":{"type":"structure","members":{"repositoryId":{}}},"http":{}},"GetBranch":{"input":{"type":"structure","members":{"repositoryName":{},"branchName":{}}},"output":{"type":"structure","members":{"branch":{"type":"structure","members":{"branchName":{},"commitId":{}}}}},"http":{}},"GetCommit":{"input":{"type":"structure","required":["repositoryName","commitId"],"members":{"repositoryName":{},"commitId":{}}},"output":{"type":"structure","required":["commit"],"members":{"commit":{"type":"structure","members":{"treeId":{},"parents":{"type":"list","member":{}},"message":{},"author":{"shape":"Sw"},"committer":{"shape":"Sw"},"additionalData":{}}}}},"http":{}},"GetRepository":{"input":{"type":"structure","required":["repositoryName"],"members":{"repositoryName":{}}},"output":{"type":"structure","members":{"repositoryMetadata":{"shape":"S6"}}},"http":{}},"GetRepositoryTriggers":{"input":{"type":"structure","members":{"repositoryName":{}}},"output":{"type":"structure","members":{"configurationId":{},"triggers":{"shape":"S16"}}},"http":{}},"ListBranches":{"input":{"type":"structure","required":["repositoryName"],"members":{"repositoryName":{},"nextToken":{}}},"output":{"type":"structure","members":{"branches":{"shape":"S1a"},"nextToken":{}}},"http":{}},"ListRepositories":{"input":{"type":"structure","members":{"nextToken":{},"sortBy":{},"order":{}}},"output":{"type":"structure","members":{"repositories":{"type":"list","member":{"type":"structure","members":{"repositoryName":{},"repositoryId":{}}}},"nextToken":{}}},"http":{}},"PutRepositoryTriggers":{"input":{"type":"structure","members":{"repositoryName":{},"triggers":{"shape":"S16"}}},"output":{"type":"structure","members":{"configurationId":{}}},"http":{}},"TestRepositoryTriggers":{"input":{"type":"structure","members":{"repositoryName":{},"triggers":{"shape":"S16"}}},"output":{"type":"structure","members":{"successfulExecutions":{"type":"list","member":{}},"failedExecutions":{"type":"list","member":{"type":"structure","members":{"trigger":{},"failureMessage":{}}}}}},"http":{}},"UpdateDefaultBranch":{"input":{"type":"structure","required":["repositoryName","defaultBranchName"],"members":{"repositoryName":{},"defaultBranchName":{}}},"http":{}},"UpdateRepositoryDescription":{"input":{"type":"structure","required":["repositoryName"],"members":{"repositoryName":{},"repositoryDescription":{}}},"http":{}},"UpdateRepositoryName":{"input":{"type":"structure","required":["oldName","newName"],"members":{"oldName":{},"newName":{}}},"http":{}}},"shapes":{"S6":{"type":"structure","members":{"accountId":{},"repositoryId":{},"repositoryName":{},"repositoryDescription":{},"defaultBranch":{},"lastModifiedDate":{"type":"timestamp"},"creationDate":{"type":"timestamp"},"cloneUrlHttp":{},"cloneUrlSsh":{},"Arn":{}}},"Sw":{"type":"structure","members":{"name":{},"email":{},"date":{}}},"S16":{"type":"list","member":{"type":"structure","members":{"name":{},"destinationArn":{},"customData":{},"branches":{"shape":"S1a"},"events":{"type":"list","member":{}}}}},"S1a":{"type":"list","member":{}}},"paginators":{"ListBranches":{"input_token":"nextToken","output_token":"nextToken","result_key":"branches"},"ListRepositories":{"input_token":"nextToken","output_token":"nextToken","result_key":"repositories"}}}; +AWS.apiLoader.services['codepipeline'] = {}; +AWS.CodePipeline = AWS.Service.defineService('codepipeline', [ '2015-07-09' ]); + +AWS.apiLoader.services['codepipeline']['2015-07-09'] = {"version":"2.0","metadata":{"apiVersion":"2015-07-09","endpointPrefix":"codepipeline","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"CodePipeline","serviceFullName":"AWS CodePipeline","signatureVersion":"v4","targetPrefix":"CodePipeline_20150709"},"operations":{"AcknowledgeJob":{"input":{"type":"structure","required":["jobId","nonce"],"members":{"jobId":{},"nonce":{}}},"output":{"type":"structure","members":{"status":{}}},"http":{}},"AcknowledgeThirdPartyJob":{"input":{"type":"structure","required":["jobId","nonce","clientToken"],"members":{"jobId":{},"nonce":{},"clientToken":{}}},"output":{"type":"structure","members":{"status":{}}},"http":{}},"CreateCustomActionType":{"input":{"type":"structure","required":["category","provider","version","inputArtifactDetails","outputArtifactDetails"],"members":{"category":{},"provider":{},"version":{},"settings":{"shape":"Se"},"configurationProperties":{"shape":"Sh"},"inputArtifactDetails":{"shape":"Sn"},"outputArtifactDetails":{"shape":"Sn"}}},"output":{"type":"structure","required":["actionType"],"members":{"actionType":{"shape":"Sr"}}},"http":{}},"CreatePipeline":{"input":{"type":"structure","required":["pipeline"],"members":{"pipeline":{"shape":"Sv"}}},"output":{"type":"structure","members":{"pipeline":{"shape":"Sv"}}},"http":{}},"DeleteCustomActionType":{"input":{"type":"structure","required":["category","provider","version"],"members":{"category":{},"provider":{},"version":{}}},"http":{}},"DeletePipeline":{"input":{"type":"structure","required":["name"],"members":{"name":{}}},"http":{}},"DisableStageTransition":{"input":{"type":"structure","required":["pipelineName","stageName","transitionType","reason"],"members":{"pipelineName":{},"stageName":{},"transitionType":{},"reason":{}}},"http":{}},"EnableStageTransition":{"input":{"type":"structure","required":["pipelineName","stageName","transitionType"],"members":{"pipelineName":{},"stageName":{},"transitionType":{}}},"http":{}},"GetJobDetails":{"input":{"type":"structure","required":["jobId"],"members":{"jobId":{}}},"output":{"type":"structure","members":{"jobDetails":{"type":"structure","members":{"id":{},"data":{"shape":"S1x"},"accountId":{}}}}},"http":{}},"GetPipeline":{"input":{"type":"structure","required":["name"],"members":{"name":{},"version":{"type":"integer"}}},"output":{"type":"structure","members":{"pipeline":{"shape":"Sv"}}},"http":{}},"GetPipelineState":{"input":{"type":"structure","required":["name"],"members":{"name":{}}},"output":{"type":"structure","members":{"pipelineName":{},"pipelineVersion":{"type":"integer"},"stageStates":{"type":"list","member":{"type":"structure","members":{"stageName":{},"inboundTransitionState":{"type":"structure","members":{"enabled":{"type":"boolean"},"lastChangedBy":{},"lastChangedAt":{"type":"timestamp"},"disabledReason":{}}},"actionStates":{"type":"list","member":{"type":"structure","members":{"actionName":{},"currentRevision":{"shape":"S2s"},"latestExecution":{"type":"structure","members":{"status":{},"summary":{},"lastStatusChange":{"type":"timestamp"},"externalExecutionId":{},"externalExecutionUrl":{},"percentComplete":{"type":"integer"},"errorDetails":{"type":"structure","members":{"code":{},"message":{}}}}},"entityUrl":{},"revisionUrl":{}}}}}}},"created":{"type":"timestamp"},"updated":{"type":"timestamp"}}},"http":{}},"GetThirdPartyJobDetails":{"input":{"type":"structure","required":["jobId","clientToken"],"members":{"jobId":{},"clientToken":{}}},"output":{"type":"structure","members":{"jobDetails":{"type":"structure","members":{"id":{},"data":{"type":"structure","members":{"actionTypeId":{"shape":"Ss"},"actionConfiguration":{"shape":"S1y"},"pipelineContext":{"shape":"S1z"},"inputArtifacts":{"shape":"S22"},"outputArtifacts":{"shape":"S22"},"artifactCredentials":{"shape":"S2a"},"continuationToken":{},"encryptionKey":{"shape":"S11"}}},"nonce":{}}}}},"http":{}},"ListActionTypes":{"input":{"type":"structure","members":{"actionOwnerFilter":{},"nextToken":{}}},"output":{"type":"structure","required":["actionTypes"],"members":{"actionTypes":{"type":"list","member":{"shape":"Sr"}},"nextToken":{}}},"http":{}},"ListPipelines":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"pipelines":{"type":"list","member":{"type":"structure","members":{"name":{},"version":{"type":"integer"},"created":{"type":"timestamp"},"updated":{"type":"timestamp"}}}},"nextToken":{}}},"http":{}},"PollForJobs":{"input":{"type":"structure","required":["actionTypeId"],"members":{"actionTypeId":{"shape":"Ss"},"maxBatchSize":{"type":"integer"},"queryParam":{"type":"map","key":{},"value":{}}}},"output":{"type":"structure","members":{"jobs":{"type":"list","member":{"type":"structure","members":{"id":{},"data":{"shape":"S1x"},"nonce":{},"accountId":{}}}}}},"http":{}},"PollForThirdPartyJobs":{"input":{"type":"structure","required":["actionTypeId"],"members":{"actionTypeId":{"shape":"Ss"},"maxBatchSize":{"type":"integer"}}},"output":{"type":"structure","members":{"jobs":{"type":"list","member":{"type":"structure","members":{"clientId":{},"jobId":{}}}}}},"http":{}},"PutActionRevision":{"input":{"type":"structure","required":["pipelineName","stageName","actionName","actionRevision"],"members":{"pipelineName":{},"stageName":{},"actionName":{},"actionRevision":{"shape":"S2s"}}},"output":{"type":"structure","members":{"newRevision":{"type":"boolean"},"pipelineExecutionId":{}}},"http":{}},"PutJobFailureResult":{"input":{"type":"structure","required":["jobId","failureDetails"],"members":{"jobId":{},"failureDetails":{"shape":"S3v"}}},"http":{}},"PutJobSuccessResult":{"input":{"type":"structure","required":["jobId"],"members":{"jobId":{},"currentRevision":{"shape":"S3y"},"continuationToken":{},"executionDetails":{"shape":"S3z"}}},"http":{}},"PutThirdPartyJobFailureResult":{"input":{"type":"structure","required":["jobId","clientToken","failureDetails"],"members":{"jobId":{},"clientToken":{},"failureDetails":{"shape":"S3v"}}},"http":{}},"PutThirdPartyJobSuccessResult":{"input":{"type":"structure","required":["jobId","clientToken"],"members":{"jobId":{},"clientToken":{},"currentRevision":{"shape":"S3y"},"continuationToken":{},"executionDetails":{"shape":"S3z"}}},"http":{}},"StartPipelineExecution":{"input":{"type":"structure","required":["name"],"members":{"name":{}}},"output":{"type":"structure","members":{"pipelineExecutionId":{}}},"http":{}},"UpdatePipeline":{"input":{"type":"structure","required":["pipeline"],"members":{"pipeline":{"shape":"Sv"}}},"output":{"type":"structure","members":{"pipeline":{"shape":"Sv"}}},"http":{}}},"shapes":{"Se":{"type":"structure","members":{"thirdPartyConfigurationUrl":{},"entityUrlTemplate":{},"executionUrlTemplate":{},"revisionUrlTemplate":{}}},"Sh":{"type":"list","member":{"type":"structure","required":["name","required","key","secret"],"members":{"name":{},"required":{"type":"boolean"},"key":{"type":"boolean"},"secret":{"type":"boolean"},"queryable":{"type":"boolean"},"description":{},"type":{}}}},"Sn":{"type":"structure","required":["minimumCount","maximumCount"],"members":{"minimumCount":{"type":"integer"},"maximumCount":{"type":"integer"}}},"Sr":{"type":"structure","required":["id","inputArtifactDetails","outputArtifactDetails"],"members":{"id":{"shape":"Ss"},"settings":{"shape":"Se"},"actionConfigurationProperties":{"shape":"Sh"},"inputArtifactDetails":{"shape":"Sn"},"outputArtifactDetails":{"shape":"Sn"}}},"Ss":{"type":"structure","required":["category","owner","provider","version"],"members":{"category":{},"owner":{},"provider":{},"version":{}}},"Sv":{"type":"structure","required":["name","roleArn","artifactStore","stages"],"members":{"name":{},"roleArn":{},"artifactStore":{"type":"structure","required":["type","location"],"members":{"type":{},"location":{},"encryptionKey":{"shape":"S11"}}},"stages":{"type":"list","member":{"type":"structure","required":["name","actions"],"members":{"name":{},"blockers":{"type":"list","member":{"type":"structure","required":["name","type"],"members":{"name":{},"type":{}}}},"actions":{"type":"list","member":{"type":"structure","required":["name","actionTypeId"],"members":{"name":{},"actionTypeId":{"shape":"Ss"},"runOrder":{"type":"integer"},"configuration":{"shape":"S1f"},"outputArtifacts":{"type":"list","member":{"type":"structure","required":["name"],"members":{"name":{}}}},"inputArtifacts":{"type":"list","member":{"type":"structure","required":["name"],"members":{"name":{}}}},"roleArn":{}}}}}}},"version":{"type":"integer"}}},"S11":{"type":"structure","required":["id","type"],"members":{"id":{},"type":{}}},"S1f":{"type":"map","key":{},"value":{}},"S1x":{"type":"structure","members":{"actionTypeId":{"shape":"Ss"},"actionConfiguration":{"shape":"S1y"},"pipelineContext":{"shape":"S1z"},"inputArtifacts":{"shape":"S22"},"outputArtifacts":{"shape":"S22"},"artifactCredentials":{"shape":"S2a"},"continuationToken":{},"encryptionKey":{"shape":"S11"}}},"S1y":{"type":"structure","members":{"configuration":{"shape":"S1f"}}},"S1z":{"type":"structure","members":{"pipelineName":{},"stage":{"type":"structure","members":{"name":{}}},"action":{"type":"structure","members":{"name":{}}}}},"S22":{"type":"list","member":{"type":"structure","members":{"name":{},"revision":{},"location":{"type":"structure","members":{"type":{},"s3Location":{"type":"structure","required":["bucketName","objectKey"],"members":{"bucketName":{},"objectKey":{}}}}}}}},"S2a":{"type":"structure","required":["accessKeyId","secretAccessKey","sessionToken"],"members":{"accessKeyId":{},"secretAccessKey":{},"sessionToken":{}},"sensitive":true},"S2s":{"type":"structure","required":["revisionId","revisionChangeId","created"],"members":{"revisionId":{},"revisionChangeId":{},"created":{"type":"timestamp"}}},"S3v":{"type":"structure","required":["type","message"],"members":{"type":{},"message":{},"externalExecutionId":{}}},"S3y":{"type":"structure","required":["revision","changeIdentifier"],"members":{"revision":{},"changeIdentifier":{}}},"S3z":{"type":"structure","members":{"summary":{},"externalExecutionId":{},"percentComplete":{"type":"integer"}}}}}; +AWS.apiLoader.services['cognitoidentity'] = {}; +AWS.CognitoIdentity = AWS.Service.defineService('cognitoidentity', [ '2014-06-30' ]); +require('./services/cognitoidentity'); + +AWS.apiLoader.services['cognitoidentity']['2014-06-30'] = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpointPrefix":"cognito-identity","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Cognito Identity","signatureVersion":"v4","targetPrefix":"AWSCognitoIdentityService"},"operations":{"CreateIdentityPool":{"input":{"type":"structure","required":["IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S4"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S8"},"CognitoIdentityProviders":{"shape":"Sa"}}},"output":{"shape":"Se"},"http":{}},"DeleteIdentities":{"input":{"type":"structure","required":["IdentityIdsToDelete"],"members":{"IdentityIdsToDelete":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"UnprocessedIdentityIds":{"type":"list","member":{"type":"structure","members":{"IdentityId":{},"ErrorCode":{}}}}}},"http":{}},"DeleteIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"http":{}},"DescribeIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{}}},"output":{"shape":"Sp"},"http":{}},"DescribeIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"shape":"Se"},"http":{}},"GetCredentialsForIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"Su"}}},"output":{"type":"structure","members":{"IdentityId":{},"Credentials":{"type":"structure","members":{"AccessKeyId":{},"SecretKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}}}},"http":{}},"GetId":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"AccountId":{},"IdentityPoolId":{},"Logins":{"shape":"Su"}}},"output":{"type":"structure","members":{"IdentityId":{}}},"http":{}},"GetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Roles":{"shape":"S16"}}},"http":{}},"GetOpenIdToken":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"Su"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}},"http":{}},"GetOpenIdTokenForDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId","Logins"],"members":{"IdentityPoolId":{},"IdentityId":{},"Logins":{"shape":"Su"},"TokenDuration":{"type":"long"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}},"http":{}},"ListIdentities":{"input":{"type":"structure","required":["IdentityPoolId","MaxResults"],"members":{"IdentityPoolId":{},"MaxResults":{"type":"integer"},"NextToken":{},"HideDisabled":{"type":"boolean"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Identities":{"type":"list","member":{"shape":"Sp"}},"NextToken":{}}},"http":{}},"ListIdentityPools":{"input":{"type":"structure","required":["MaxResults"],"members":{"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityPools":{"type":"list","member":{"type":"structure","members":{"IdentityPoolId":{},"IdentityPoolName":{}}}},"NextToken":{}}},"http":{}},"LookupDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{},"IdentityId":{},"DeveloperUserIdentifier":{},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityId":{},"DeveloperUserIdentifierList":{"type":"list","member":{}},"NextToken":{}}},"http":{}},"MergeDeveloperIdentities":{"input":{"type":"structure","required":["SourceUserIdentifier","DestinationUserIdentifier","DeveloperProviderName","IdentityPoolId"],"members":{"SourceUserIdentifier":{},"DestinationUserIdentifier":{},"DeveloperProviderName":{},"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityId":{}}},"http":{}},"SetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId","Roles"],"members":{"IdentityPoolId":{},"Roles":{"shape":"S16"}}},"http":{}},"UnlinkDeveloperIdentity":{"input":{"type":"structure","required":["IdentityId","IdentityPoolId","DeveloperProviderName","DeveloperUserIdentifier"],"members":{"IdentityId":{},"IdentityPoolId":{},"DeveloperProviderName":{},"DeveloperUserIdentifier":{}}},"http":{}},"UnlinkIdentity":{"input":{"type":"structure","required":["IdentityId","Logins","LoginsToRemove"],"members":{"IdentityId":{},"Logins":{"shape":"Su"},"LoginsToRemove":{"shape":"Sq"}}},"http":{}},"UpdateIdentityPool":{"input":{"shape":"Se"},"output":{"shape":"Se"},"http":{}}},"shapes":{"S4":{"type":"map","key":{},"value":{}},"S8":{"type":"list","member":{}},"Sa":{"type":"list","member":{"type":"structure","members":{"ProviderName":{},"ClientId":{}}}},"Se":{"type":"structure","required":["IdentityPoolId","IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolId":{},"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S4"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S8"},"CognitoIdentityProviders":{"shape":"Sa"}}},"Sp":{"type":"structure","members":{"IdentityId":{},"Logins":{"shape":"Sq"},"CreationDate":{"type":"timestamp"},"LastModifiedDate":{"type":"timestamp"}}},"Sq":{"type":"list","member":{}},"Su":{"type":"map","key":{},"value":{}},"S16":{"type":"map","key":{},"value":{}}}}; +AWS.apiLoader.services['cognitoidentityserviceprovider'] = {}; +AWS.CognitoIdentityServiceProvider = AWS.Service.defineService('cognitoidentityserviceprovider', [ '2016-04-18' ]); + +AWS.apiLoader.services['cognitoidentityserviceprovider']['2016-04-18'] = {"version":"2.0","metadata":{"apiVersion":"2016-04-18","endpointPrefix":"cognito-idp","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Cognito Identity Provider","signatureVersion":"v4","targetPrefix":"AWSCognitoIdentityProviderService"},"operations":{"AddCustomAttributes":{"input":{"type":"structure","required":["UserPoolId","CustomAttributes"],"members":{"UserPoolId":{},"CustomAttributes":{"type":"list","member":{"shape":"S4"}}}},"output":{"type":"structure","members":{}},"http":{}},"AdminConfirmSignUp":{"input":{"type":"structure","required":["UserPoolId","Username"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"}}},"output":{"type":"structure","members":{}},"http":{}},"AdminDeleteUser":{"input":{"type":"structure","required":["UserPoolId","Username"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"}}},"http":{}},"AdminDeleteUserAttributes":{"input":{"type":"structure","required":["UserPoolId","Username","UserAttributeNames"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"},"UserAttributeNames":{"shape":"Sh"}}},"output":{"type":"structure","members":{}},"http":{}},"AdminDisableUser":{"input":{"type":"structure","required":["UserPoolId","Username"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"}}},"output":{"type":"structure","members":{}},"http":{}},"AdminEnableUser":{"input":{"type":"structure","required":["UserPoolId","Username"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"}}},"output":{"type":"structure","members":{}},"http":{}},"AdminGetUser":{"input":{"type":"structure","required":["UserPoolId","Username"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"}}},"output":{"type":"structure","required":["Username"],"members":{"Username":{"shape":"Sd"},"UserAttributes":{"shape":"Sq"},"UserCreateDate":{"type":"timestamp"},"UserLastModifiedDate":{"type":"timestamp"},"Enabled":{"type":"boolean"},"UserStatus":{},"MFAOptions":{"shape":"Sv"}}},"http":{}},"AdminResetUserPassword":{"input":{"type":"structure","required":["UserPoolId","Username"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"}}},"output":{"type":"structure","members":{}},"http":{}},"AdminSetUserSettings":{"input":{"type":"structure","required":["UserPoolId","Username","MFAOptions"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"},"MFAOptions":{"shape":"Sv"}}},"output":{"type":"structure","members":{}},"http":{}},"AdminUpdateUserAttributes":{"input":{"type":"structure","required":["UserPoolId","Username","UserAttributes"],"members":{"UserPoolId":{},"Username":{"shape":"Sd"},"UserAttributes":{"shape":"Sq"}}},"output":{"type":"structure","members":{}},"http":{}},"ChangePassword":{"input":{"type":"structure","required":["PreviousPassword","ProposedPassword"],"members":{"PreviousPassword":{"shape":"S15"},"ProposedPassword":{"shape":"S15"},"AccessToken":{"shape":"S16"}}},"output":{"type":"structure","members":{}},"authtype":"none","http":{}},"ConfirmForgotPassword":{"input":{"type":"structure","required":["ClientId","Username","ConfirmationCode","Password"],"members":{"ClientId":{"shape":"S19"},"SecretHash":{"shape":"S1a"},"Username":{"shape":"Sd"},"ConfirmationCode":{},"Password":{"shape":"S15"}}},"output":{"type":"structure","members":{}},"authtype":"none","http":{}},"ConfirmSignUp":{"input":{"type":"structure","required":["ClientId","Username","ConfirmationCode"],"members":{"ClientId":{"shape":"S19"},"SecretHash":{"shape":"S1a"},"Username":{"shape":"Sd"},"ConfirmationCode":{},"ForceAliasCreation":{"type":"boolean"}}},"output":{"type":"structure","members":{}},"authtype":"none","http":{}},"CreateUserPool":{"input":{"type":"structure","required":["PoolName"],"members":{"PoolName":{},"Policies":{"shape":"S1i"},"LambdaConfig":{"shape":"S1l"},"AutoVerifiedAttributes":{"shape":"S1n"},"AliasAttributes":{"shape":"S1p"},"SmsVerificationMessage":{},"EmailVerificationMessage":{},"EmailVerificationSubject":{},"SmsAuthenticationMessage":{},"MfaConfiguration":{}}},"output":{"type":"structure","members":{"UserPool":{"shape":"S1w"}}},"http":{}},"CreateUserPoolClient":{"input":{"type":"structure","required":["UserPoolId","ClientName"],"members":{"UserPoolId":{},"ClientName":{},"GenerateSecret":{"type":"boolean"}}},"output":{"type":"structure","members":{"UserPoolClient":{"shape":"S24"}}},"http":{}},"DeleteUser":{"input":{"type":"structure","members":{"AccessToken":{"shape":"S16"}}},"authtype":"none","http":{}},"DeleteUserAttributes":{"input":{"type":"structure","required":["UserAttributeNames"],"members":{"UserAttributeNames":{"shape":"Sh"},"AccessToken":{"shape":"S16"}}},"output":{"type":"structure","members":{}},"authtype":"none","http":{}},"DeleteUserPool":{"input":{"type":"structure","required":["UserPoolId"],"members":{"UserPoolId":{}}},"http":{}},"DeleteUserPoolClient":{"input":{"type":"structure","required":["UserPoolId","ClientId"],"members":{"UserPoolId":{},"ClientId":{"shape":"S19"}}},"http":{}},"DescribeUserPool":{"input":{"type":"structure","required":["UserPoolId"],"members":{"UserPoolId":{}}},"output":{"type":"structure","members":{"UserPool":{"shape":"S1w"}}},"http":{}},"DescribeUserPoolClient":{"input":{"type":"structure","required":["UserPoolId","ClientId"],"members":{"UserPoolId":{},"ClientId":{"shape":"S19"}}},"output":{"type":"structure","members":{"UserPoolClient":{"shape":"S24"}}},"http":{}},"ForgotPassword":{"input":{"type":"structure","required":["ClientId","Username"],"members":{"ClientId":{"shape":"S19"},"SecretHash":{"shape":"S1a"},"Username":{"shape":"Sd"}}},"output":{"type":"structure","members":{"CodeDeliveryDetails":{"shape":"S2h"}}},"authtype":"none","http":{}},"GetUser":{"input":{"type":"structure","members":{"AccessToken":{"shape":"S16"}}},"output":{"type":"structure","required":["Username","UserAttributes"],"members":{"Username":{"shape":"Sd"},"UserAttributes":{"shape":"Sq"},"MFAOptions":{"shape":"Sv"}}},"authtype":"none","http":{}},"GetUserAttributeVerificationCode":{"input":{"type":"structure","required":["AttributeName"],"members":{"AccessToken":{"shape":"S16"},"AttributeName":{}}},"output":{"type":"structure","members":{"CodeDeliveryDetails":{"shape":"S2h"}}},"authtype":"none","http":{}},"ListUserPoolClients":{"input":{"type":"structure","required":["UserPoolId"],"members":{"UserPoolId":{},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"UserPoolClients":{"type":"list","member":{"type":"structure","members":{"ClientId":{"shape":"S19"},"UserPoolId":{},"ClientName":{}}}},"NextToken":{}}},"http":{}},"ListUserPools":{"input":{"type":"structure","required":["MaxResults"],"members":{"NextToken":{},"MaxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"UserPools":{"type":"list","member":{"type":"structure","members":{"Id":{},"Name":{},"LambdaConfig":{"shape":"S1l"},"Status":{},"LastModifiedDate":{"type":"timestamp"},"CreationDate":{"type":"timestamp"}}}},"NextToken":{}}},"http":{}},"ListUsers":{"input":{"type":"structure","required":["UserPoolId"],"members":{"UserPoolId":{},"AttributesToGet":{"type":"list","member":{}},"Limit":{"type":"integer"},"PaginationToken":{},"UserStatus":{}}},"output":{"type":"structure","members":{"Users":{"type":"list","member":{"type":"structure","members":{"Username":{"shape":"Sd"},"Attributes":{"shape":"Sq"},"UserCreateDate":{"type":"timestamp"},"UserLastModifiedDate":{"type":"timestamp"},"Enabled":{"type":"boolean"},"UserStatus":{}}}},"PaginationToken":{}}},"http":{}},"ResendConfirmationCode":{"input":{"type":"structure","required":["ClientId","Username"],"members":{"ClientId":{"shape":"S19"},"SecretHash":{"shape":"S1a"},"Username":{"shape":"Sd"}}},"output":{"type":"structure","members":{"CodeDeliveryDetails":{"shape":"S2h"}}},"authtype":"none","http":{}},"SetUserSettings":{"input":{"type":"structure","required":["AccessToken","MFAOptions"],"members":{"AccessToken":{"shape":"S16"},"MFAOptions":{"shape":"Sv"}}},"output":{"type":"structure","members":{}},"authtype":"none","http":{}},"SignUp":{"input":{"type":"structure","required":["ClientId","Username","Password"],"members":{"ClientId":{"shape":"S19"},"SecretHash":{"shape":"S1a"},"Username":{"shape":"Sd"},"Password":{"shape":"S15"},"UserAttributes":{"shape":"Sq"},"ValidationData":{"shape":"Sq"}}},"output":{"type":"structure","members":{"UserConfirmed":{"type":"boolean"},"CodeDeliveryDetails":{"shape":"S2h"}}},"authtype":"none","http":{}},"UpdateUserAttributes":{"input":{"type":"structure","required":["UserAttributes"],"members":{"UserAttributes":{"shape":"Sq"},"AccessToken":{"shape":"S16"}}},"output":{"type":"structure","members":{"CodeDeliveryDetailsList":{"type":"list","member":{"shape":"S2h"}}}},"authtype":"none","http":{}},"UpdateUserPool":{"input":{"type":"structure","required":["UserPoolId"],"members":{"UserPoolId":{},"Policies":{"shape":"S1i"},"LambdaConfig":{"shape":"S1l"},"AutoVerifiedAttributes":{"shape":"S1n"},"SmsVerificationMessage":{},"EmailVerificationMessage":{},"EmailVerificationSubject":{},"SmsAuthenticationMessage":{},"MfaConfiguration":{}}},"output":{"type":"structure","members":{}},"http":{}},"UpdateUserPoolClient":{"input":{"type":"structure","required":["UserPoolId","ClientId"],"members":{"UserPoolId":{},"ClientId":{"shape":"S19"},"ClientName":{}}},"output":{"type":"structure","members":{"UserPoolClient":{"shape":"S24"}}},"http":{}},"VerifyUserAttribute":{"input":{"type":"structure","required":["AttributeName","Code"],"members":{"AccessToken":{"shape":"S16"},"AttributeName":{},"Code":{}}},"output":{"type":"structure","members":{}},"authtype":"none","http":{}}},"shapes":{"S4":{"type":"structure","members":{"Name":{},"AttributeDataType":{},"DeveloperOnlyAttribute":{"type":"boolean"},"Mutable":{"type":"boolean"},"Required":{"type":"boolean"},"NumberAttributeConstraints":{"type":"structure","members":{"MinValue":{},"MaxValue":{}}},"StringAttributeConstraints":{"type":"structure","members":{"MinLength":{},"MaxLength":{}}}}},"Sd":{"type":"string","sensitive":true},"Sh":{"type":"list","member":{}},"Sq":{"type":"list","member":{"type":"structure","required":["Name"],"members":{"Name":{},"Value":{"type":"string","sensitive":true}}}},"Sv":{"type":"list","member":{"type":"structure","members":{"DeliveryMedium":{},"AttributeName":{}}}},"S15":{"type":"string","sensitive":true},"S16":{"type":"string","sensitive":true},"S19":{"type":"string","sensitive":true},"S1a":{"type":"string","sensitive":true},"S1i":{"type":"structure","members":{"PasswordPolicy":{"type":"structure","members":{"MinimumLength":{"type":"integer"},"RequireUppercase":{"type":"boolean"},"RequireLowercase":{"type":"boolean"},"RequireNumbers":{"type":"boolean"},"RequireSymbols":{"type":"boolean"}}}}},"S1l":{"type":"structure","members":{"PreSignUp":{},"CustomMessage":{},"PostConfirmation":{},"PreAuthentication":{},"PostAuthentication":{}}},"S1n":{"type":"list","member":{}},"S1p":{"type":"list","member":{}},"S1w":{"type":"structure","members":{"Id":{},"Name":{},"Policies":{"shape":"S1i"},"LambdaConfig":{"shape":"S1l"},"Status":{},"LastModifiedDate":{"type":"timestamp"},"CreationDate":{"type":"timestamp"},"SchemaAttributes":{"type":"list","member":{"shape":"S4"}},"AutoVerifiedAttributes":{"shape":"S1n"},"AliasAttributes":{"shape":"S1p"},"SmsVerificationMessage":{},"EmailVerificationMessage":{},"EmailVerificationSubject":{},"SmsAuthenticationMessage":{},"MfaConfiguration":{},"EstimatedNumberOfUsers":{"type":"integer"}}},"S24":{"type":"structure","members":{"UserPoolId":{},"ClientName":{},"ClientId":{"shape":"S19"},"ClientSecret":{"type":"string","sensitive":true},"LastModifiedDate":{"type":"timestamp"},"CreationDate":{"type":"timestamp"}}},"S2h":{"type":"structure","members":{"Destination":{},"DeliveryMedium":{},"AttributeName":{}}}}}; +AWS.apiLoader.services['cognitosync'] = {}; +AWS.CognitoSync = AWS.Service.defineService('cognitosync', [ '2014-06-30' ]); + +AWS.apiLoader.services['cognitosync']['2014-06-30'] = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpointPrefix":"cognito-sync","jsonVersion":"1.1","serviceFullName":"Amazon Cognito Sync","signatureVersion":"v4","protocol":"rest-json"},"operations":{"BulkPublish":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/bulkpublish","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"}}},"output":{"type":"structure","members":{"IdentityPoolId":{}}}},"DeleteDataset":{"http":{"method":"DELETE","requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","DatasetName"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"DatasetName":{"location":"uri","locationName":"DatasetName"}}},"output":{"type":"structure","members":{"Dataset":{"shape":"S8"}}}},"DescribeDataset":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","DatasetName"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"DatasetName":{"location":"uri","locationName":"DatasetName"}}},"output":{"type":"structure","members":{"Dataset":{"shape":"S8"}}}},"DescribeIdentityPoolUsage":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"}}},"output":{"type":"structure","members":{"IdentityPoolUsage":{"shape":"Sg"}}}},"DescribeIdentityUsage":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"}}},"output":{"type":"structure","members":{"IdentityUsage":{"type":"structure","members":{"IdentityId":{},"IdentityPoolId":{},"LastModifiedDate":{"type":"timestamp"},"DatasetCount":{"type":"integer"},"DataStorage":{"type":"long"}}}}}},"GetBulkPublishDetails":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/getBulkPublishDetails","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"BulkPublishStartTime":{"type":"timestamp"},"BulkPublishCompleteTime":{"type":"timestamp"},"BulkPublishStatus":{},"FailureMessage":{}}}},"GetCognitoEvents":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}/events","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"}}},"output":{"type":"structure","members":{"Events":{"shape":"Sq"}}}},"GetIdentityPoolConfiguration":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}/configuration","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"PushSync":{"shape":"Sv"},"CognitoStreams":{"shape":"Sz"}}}},"ListDatasets":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets","responseCode":200},"input":{"type":"structure","required":["IdentityId","IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"NextToken":{"location":"querystring","locationName":"nextToken"},"MaxResults":{"location":"querystring","locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"Datasets":{"type":"list","member":{"shape":"S8"}},"Count":{"type":"integer"},"NextToken":{}}}},"ListIdentityPoolUsage":{"http":{"method":"GET","requestUri":"/identitypools","responseCode":200},"input":{"type":"structure","members":{"NextToken":{"location":"querystring","locationName":"nextToken"},"MaxResults":{"location":"querystring","locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"IdentityPoolUsages":{"type":"list","member":{"shape":"Sg"}},"MaxResults":{"type":"integer"},"Count":{"type":"integer"},"NextToken":{}}}},"ListRecords":{"http":{"method":"GET","requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","DatasetName"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"DatasetName":{"location":"uri","locationName":"DatasetName"},"LastSyncCount":{"location":"querystring","locationName":"lastSyncCount","type":"long"},"NextToken":{"location":"querystring","locationName":"nextToken"},"MaxResults":{"location":"querystring","locationName":"maxResults","type":"integer"},"SyncSessionToken":{"location":"querystring","locationName":"syncSessionToken"}}},"output":{"type":"structure","members":{"Records":{"shape":"S1c"},"NextToken":{},"Count":{"type":"integer"},"DatasetSyncCount":{"type":"long"},"LastModifiedBy":{},"MergedDatasetNames":{"type":"list","member":{}},"DatasetExists":{"type":"boolean"},"DatasetDeletedAfterRequestedSyncCount":{"type":"boolean"},"SyncSessionToken":{}}}},"RegisterDevice":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/identity/{IdentityId}/device","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","Platform","Token"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"Platform":{},"Token":{}}},"output":{"type":"structure","members":{"DeviceId":{}}}},"SetCognitoEvents":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/events","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","Events"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"Events":{"shape":"Sq"}}}},"SetIdentityPoolConfiguration":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/configuration","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"PushSync":{"shape":"Sv"},"CognitoStreams":{"shape":"Sz"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"PushSync":{"shape":"Sv"},"CognitoStreams":{"shape":"Sz"}}}},"SubscribeToDataset":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","DatasetName","DeviceId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"DatasetName":{"location":"uri","locationName":"DatasetName"},"DeviceId":{"location":"uri","locationName":"DeviceId"}}},"output":{"type":"structure","members":{}}},"UnsubscribeFromDataset":{"http":{"method":"DELETE","requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","DatasetName","DeviceId"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"DatasetName":{"location":"uri","locationName":"DatasetName"},"DeviceId":{"location":"uri","locationName":"DeviceId"}}},"output":{"type":"structure","members":{}}},"UpdateRecords":{"http":{"requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}","responseCode":200},"input":{"type":"structure","required":["IdentityPoolId","IdentityId","DatasetName","SyncSessionToken"],"members":{"IdentityPoolId":{"location":"uri","locationName":"IdentityPoolId"},"IdentityId":{"location":"uri","locationName":"IdentityId"},"DatasetName":{"location":"uri","locationName":"DatasetName"},"DeviceId":{},"RecordPatches":{"type":"list","member":{"type":"structure","required":["Op","Key","SyncCount"],"members":{"Op":{},"Key":{},"Value":{},"SyncCount":{"type":"long"},"DeviceLastModifiedDate":{"type":"timestamp"}}}},"SyncSessionToken":{},"ClientContext":{"location":"header","locationName":"x-amz-Client-Context"}}},"output":{"type":"structure","members":{"Records":{"shape":"S1c"}}}}},"shapes":{"S8":{"type":"structure","members":{"IdentityId":{},"DatasetName":{},"CreationDate":{"type":"timestamp"},"LastModifiedDate":{"type":"timestamp"},"LastModifiedBy":{},"DataStorage":{"type":"long"},"NumRecords":{"type":"long"}}},"Sg":{"type":"structure","members":{"IdentityPoolId":{},"SyncSessionsCount":{"type":"long"},"DataStorage":{"type":"long"},"LastModifiedDate":{"type":"timestamp"}}},"Sq":{"type":"map","key":{},"value":{}},"Sv":{"type":"structure","members":{"ApplicationArns":{"type":"list","member":{}},"RoleArn":{}}},"Sz":{"type":"structure","members":{"StreamName":{},"RoleArn":{},"StreamingStatus":{}}},"S1c":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{},"SyncCount":{"type":"long"},"LastModifiedDate":{"type":"timestamp"},"LastModifiedBy":{},"DeviceLastModifiedDate":{"type":"timestamp"}}}}},"examples":{}}; +AWS.apiLoader.services['configservice'] = {}; +AWS.ConfigService = AWS.Service.defineService('configservice', [ '2014-11-12' ]); + +AWS.apiLoader.services['configservice']['2014-11-12'] = {"version":"2.0","metadata":{"apiVersion":"2014-11-12","endpointPrefix":"config","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"Config Service","serviceFullName":"AWS Config","signatureVersion":"v4","targetPrefix":"StarlingDoveService"},"operations":{"DeleteConfigRule":{"input":{"type":"structure","required":["ConfigRuleName"],"members":{"ConfigRuleName":{}}},"http":{}},"DeleteDeliveryChannel":{"input":{"type":"structure","required":["DeliveryChannelName"],"members":{"DeliveryChannelName":{}}},"http":{}},"DeliverConfigSnapshot":{"input":{"type":"structure","required":["deliveryChannelName"],"members":{"deliveryChannelName":{}}},"output":{"type":"structure","members":{"configSnapshotId":{}}},"http":{}},"DescribeComplianceByConfigRule":{"input":{"type":"structure","members":{"ConfigRuleNames":{"shape":"S9"},"ComplianceTypes":{"shape":"Sa"},"NextToken":{}}},"output":{"type":"structure","members":{"ComplianceByConfigRules":{"type":"list","member":{"type":"structure","members":{"ConfigRuleName":{},"Compliance":{"shape":"Sf"}}}},"NextToken":{}}},"http":{}},"DescribeComplianceByResource":{"input":{"type":"structure","members":{"ResourceType":{},"ResourceId":{},"ComplianceTypes":{"shape":"Sa"},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"ComplianceByResources":{"type":"list","member":{"type":"structure","members":{"ResourceType":{},"ResourceId":{},"Compliance":{"shape":"Sf"}}}},"NextToken":{}}},"http":{}},"DescribeConfigRuleEvaluationStatus":{"input":{"type":"structure","members":{"ConfigRuleNames":{"shape":"S9"}}},"output":{"type":"structure","members":{"ConfigRulesEvaluationStatus":{"type":"list","member":{"type":"structure","members":{"ConfigRuleName":{},"ConfigRuleArn":{},"ConfigRuleId":{},"LastSuccessfulInvocationTime":{"type":"timestamp"},"LastFailedInvocationTime":{"type":"timestamp"},"LastSuccessfulEvaluationTime":{"type":"timestamp"},"LastFailedEvaluationTime":{"type":"timestamp"},"FirstActivatedTime":{"type":"timestamp"},"LastErrorCode":{},"LastErrorMessage":{},"FirstEvaluationStarted":{"type":"boolean"}}}}}},"http":{}},"DescribeConfigRules":{"input":{"type":"structure","members":{"ConfigRuleNames":{"shape":"S9"},"NextToken":{}}},"output":{"type":"structure","members":{"ConfigRules":{"type":"list","member":{"shape":"Sy"}},"NextToken":{}}},"http":{}},"DescribeConfigurationRecorderStatus":{"input":{"type":"structure","members":{"ConfigurationRecorderNames":{"shape":"S1c"}}},"output":{"type":"structure","members":{"ConfigurationRecordersStatus":{"type":"list","member":{"type":"structure","members":{"name":{},"lastStartTime":{"type":"timestamp"},"lastStopTime":{"type":"timestamp"},"recording":{"type":"boolean"},"lastStatus":{},"lastErrorCode":{},"lastErrorMessage":{},"lastStatusChangeTime":{"type":"timestamp"}}}}}},"http":{}},"DescribeConfigurationRecorders":{"input":{"type":"structure","members":{"ConfigurationRecorderNames":{"shape":"S1c"}}},"output":{"type":"structure","members":{"ConfigurationRecorders":{"type":"list","member":{"shape":"S1l"}}}},"http":{}},"DescribeDeliveryChannelStatus":{"input":{"type":"structure","members":{"DeliveryChannelNames":{"shape":"S1s"}}},"output":{"type":"structure","members":{"DeliveryChannelsStatus":{"type":"list","member":{"type":"structure","members":{"name":{},"configSnapshotDeliveryInfo":{"shape":"S1w"},"configHistoryDeliveryInfo":{"shape":"S1w"},"configStreamDeliveryInfo":{"type":"structure","members":{"lastStatus":{},"lastErrorCode":{},"lastErrorMessage":{},"lastStatusChangeTime":{"type":"timestamp"}}}}}}}},"http":{}},"DescribeDeliveryChannels":{"input":{"type":"structure","members":{"DeliveryChannelNames":{"shape":"S1s"}}},"output":{"type":"structure","members":{"DeliveryChannels":{"type":"list","member":{"shape":"S22"}}}},"http":{}},"GetComplianceDetailsByConfigRule":{"input":{"type":"structure","required":["ConfigRuleName"],"members":{"ConfigRuleName":{},"ComplianceTypes":{"shape":"Sa"},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"EvaluationResults":{"shape":"S26"},"NextToken":{}}},"http":{}},"GetComplianceDetailsByResource":{"input":{"type":"structure","required":["ResourceType","ResourceId"],"members":{"ResourceType":{},"ResourceId":{},"ComplianceTypes":{"shape":"Sa"},"NextToken":{}}},"output":{"type":"structure","members":{"EvaluationResults":{"shape":"S26"},"NextToken":{}}},"http":{}},"GetComplianceSummaryByConfigRule":{"output":{"type":"structure","members":{"ComplianceSummary":{"shape":"S2d"}}},"http":{}},"GetComplianceSummaryByResourceType":{"input":{"type":"structure","members":{"ResourceTypes":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"ComplianceSummariesByResourceType":{"type":"list","member":{"type":"structure","members":{"ResourceType":{},"ComplianceSummary":{"shape":"S2d"}}}}}},"http":{}},"GetResourceConfigHistory":{"input":{"type":"structure","required":["resourceType","resourceId"],"members":{"resourceType":{},"resourceId":{},"laterTime":{"type":"timestamp"},"earlierTime":{"type":"timestamp"},"chronologicalOrder":{},"limit":{"type":"integer"},"nextToken":{}}},"output":{"type":"structure","members":{"configurationItems":{"type":"list","member":{"type":"structure","members":{"version":{},"accountId":{},"configurationItemCaptureTime":{"type":"timestamp"},"configurationItemStatus":{},"configurationStateId":{},"configurationItemMD5Hash":{},"arn":{},"resourceType":{},"resourceId":{},"resourceName":{},"awsRegion":{},"availabilityZone":{},"resourceCreationTime":{"type":"timestamp"},"tags":{"type":"map","key":{},"value":{}},"relatedEvents":{"type":"list","member":{}},"relationships":{"type":"list","member":{"type":"structure","members":{"resourceType":{},"resourceId":{},"resourceName":{},"relationshipName":{}}}},"configuration":{}}}},"nextToken":{}}},"http":{}},"ListDiscoveredResources":{"input":{"type":"structure","required":["resourceType"],"members":{"resourceType":{},"resourceIds":{"type":"list","member":{}},"resourceName":{},"limit":{"type":"integer"},"includeDeletedResources":{"type":"boolean"},"nextToken":{}}},"output":{"type":"structure","members":{"resourceIdentifiers":{"type":"list","member":{"type":"structure","members":{"resourceType":{},"resourceId":{},"resourceName":{},"resourceDeletionTime":{"type":"timestamp"}}}},"nextToken":{}}},"http":{}},"PutConfigRule":{"input":{"type":"structure","required":["ConfigRule"],"members":{"ConfigRule":{"shape":"Sy"}}},"http":{}},"PutConfigurationRecorder":{"input":{"type":"structure","required":["ConfigurationRecorder"],"members":{"ConfigurationRecorder":{"shape":"S1l"}}},"http":{}},"PutDeliveryChannel":{"input":{"type":"structure","required":["DeliveryChannel"],"members":{"DeliveryChannel":{"shape":"S22"}}},"http":{}},"PutEvaluations":{"input":{"type":"structure","required":["ResultToken"],"members":{"Evaluations":{"shape":"S3l"},"ResultToken":{}}},"output":{"type":"structure","members":{"FailedEvaluations":{"shape":"S3l"}}},"http":{}},"StartConfigurationRecorder":{"input":{"type":"structure","required":["ConfigurationRecorderName"],"members":{"ConfigurationRecorderName":{}}},"http":{}},"StopConfigurationRecorder":{"input":{"type":"structure","required":["ConfigurationRecorderName"],"members":{"ConfigurationRecorderName":{}}},"http":{}}},"shapes":{"S9":{"type":"list","member":{}},"Sa":{"type":"list","member":{}},"Sf":{"type":"structure","members":{"ComplianceType":{},"ComplianceContributorCount":{"shape":"Sg"}}},"Sg":{"type":"structure","members":{"CappedCount":{"type":"integer"},"CapExceeded":{"type":"boolean"}}},"Sy":{"type":"structure","required":["Source"],"members":{"ConfigRuleName":{},"ConfigRuleArn":{},"ConfigRuleId":{},"Description":{},"Scope":{"type":"structure","members":{"ComplianceResourceTypes":{"type":"list","member":{}},"TagKey":{},"TagValue":{},"ComplianceResourceId":{}}},"Source":{"type":"structure","members":{"Owner":{},"SourceIdentifier":{},"SourceDetails":{"type":"list","member":{"type":"structure","members":{"EventSource":{},"MessageType":{}}}}}},"InputParameters":{},"MaximumExecutionFrequency":{},"ConfigRuleState":{}}},"S1c":{"type":"list","member":{}},"S1l":{"type":"structure","members":{"name":{},"roleARN":{},"recordingGroup":{"type":"structure","members":{"allSupported":{"type":"boolean"},"includeGlobalResourceTypes":{"type":"boolean"},"resourceTypes":{"type":"list","member":{}}}}}},"S1s":{"type":"list","member":{}},"S1w":{"type":"structure","members":{"lastStatus":{},"lastErrorCode":{},"lastErrorMessage":{},"lastAttemptTime":{"type":"timestamp"},"lastSuccessfulTime":{"type":"timestamp"},"nextDeliveryTime":{"type":"timestamp"}}},"S22":{"type":"structure","members":{"name":{},"s3BucketName":{},"s3KeyPrefix":{},"snsTopicARN":{},"configSnapshotDeliveryProperties":{"type":"structure","members":{"deliveryFrequency":{}}}}},"S26":{"type":"list","member":{"type":"structure","members":{"EvaluationResultIdentifier":{"type":"structure","members":{"EvaluationResultQualifier":{"type":"structure","members":{"ConfigRuleName":{},"ResourceType":{},"ResourceId":{}}},"OrderingTimestamp":{"type":"timestamp"}}},"ComplianceType":{},"ResultRecordedTime":{"type":"timestamp"},"ConfigRuleInvokedTime":{"type":"timestamp"},"Annotation":{},"ResultToken":{}}}},"S2d":{"type":"structure","members":{"CompliantResourceCount":{"shape":"Sg"},"NonCompliantResourceCount":{"shape":"Sg"},"ComplianceSummaryTimestamp":{"type":"timestamp"}}},"S3l":{"type":"list","member":{"type":"structure","required":["ComplianceResourceType","ComplianceResourceId","ComplianceType","OrderingTimestamp"],"members":{"ComplianceResourceType":{},"ComplianceResourceId":{},"ComplianceType":{},"Annotation":{},"OrderingTimestamp":{"type":"timestamp"}}}}},"paginators":{"GetResourceConfigHistory":{"input_token":"nextToken","output_token":"nextToken","limit_key":"limit","result_key":"configurationItems"}}}; +AWS.apiLoader.services['devicefarm'] = {}; +AWS.DeviceFarm = AWS.Service.defineService('devicefarm', [ '2015-06-23' ]); + +AWS.apiLoader.services['devicefarm']['2015-06-23'] = {"version":"2.0","metadata":{"apiVersion":"2015-06-23","endpointPrefix":"devicefarm","jsonVersion":"1.1","protocol":"json","serviceFullName":"AWS Device Farm","signatureVersion":"v4","targetPrefix":"DeviceFarm_20150623"},"operations":{"CreateDevicePool":{"input":{"type":"structure","required":["projectArn","name","rules"],"members":{"projectArn":{},"name":{},"description":{},"rules":{"shape":"S5"}}},"output":{"type":"structure","members":{"devicePool":{"shape":"Sb"}}},"http":{}},"CreateProject":{"input":{"type":"structure","required":["name"],"members":{"name":{}}},"output":{"type":"structure","members":{"project":{"shape":"Sf"}}},"http":{}},"CreateUpload":{"input":{"type":"structure","required":["projectArn","name","type"],"members":{"projectArn":{},"name":{},"type":{},"contentType":{}}},"output":{"type":"structure","members":{"upload":{"shape":"Sl"}}},"http":{}},"DeleteDevicePool":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{}},"http":{}},"DeleteProject":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{}},"http":{}},"DeleteRun":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{}},"http":{}},"DeleteUpload":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{}},"http":{}},"GetAccountSettings":{"input":{"type":"structure","members":{}},"output":{"type":"structure","members":{"accountSettings":{"type":"structure","members":{"awsAccountNumber":{},"unmeteredDevices":{"shape":"S11"},"unmeteredRemoteAccessDevices":{"shape":"S11"}}}}},"http":{}},"GetDevice":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"device":{"shape":"S16"}}},"http":{}},"GetDevicePool":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"devicePool":{"shape":"Sb"}}},"http":{}},"GetDevicePoolCompatibility":{"input":{"type":"structure","required":["devicePoolArn"],"members":{"devicePoolArn":{},"appArn":{},"testType":{}}},"output":{"type":"structure","members":{"compatibleDevices":{"shape":"S1h"},"incompatibleDevices":{"shape":"S1h"}}},"http":{}},"GetJob":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"job":{"shape":"S1o"}}},"http":{}},"GetOfferingStatus":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"current":{"shape":"S1w"},"nextPeriod":{"shape":"S1w"},"nextToken":{}}},"http":{}},"GetProject":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"project":{"shape":"Sf"}}},"http":{}},"GetRun":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"run":{"shape":"S2b"}}},"http":{}},"GetSuite":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"suite":{"shape":"S2f"}}},"http":{}},"GetTest":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"test":{"shape":"S2i"}}},"http":{}},"GetUpload":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"upload":{"shape":"Sl"}}},"http":{}},"ListArtifacts":{"input":{"type":"structure","required":["arn","type"],"members":{"arn":{},"type":{},"nextToken":{}}},"output":{"type":"structure","members":{"artifacts":{"type":"list","member":{"type":"structure","members":{"arn":{},"name":{},"type":{},"extension":{},"url":{}}}},"nextToken":{}}},"http":{}},"ListDevicePools":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"type":{},"nextToken":{}}},"output":{"type":"structure","members":{"devicePools":{"type":"list","member":{"shape":"Sb"}},"nextToken":{}}},"http":{}},"ListDevices":{"input":{"type":"structure","members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"devices":{"type":"list","member":{"shape":"S16"}},"nextToken":{}}},"http":{}},"ListJobs":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"jobs":{"type":"list","member":{"shape":"S1o"}},"nextToken":{}}},"http":{}},"ListOfferingTransactions":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"offeringTransactions":{"type":"list","member":{"shape":"S33"}},"nextToken":{}}},"http":{}},"ListOfferings":{"input":{"type":"structure","members":{"nextToken":{}}},"output":{"type":"structure","members":{"offerings":{"type":"list","member":{"shape":"S20"}},"nextToken":{}}},"http":{}},"ListProjects":{"input":{"type":"structure","members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"projects":{"type":"list","member":{"shape":"Sf"}},"nextToken":{}}},"http":{}},"ListRuns":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"runs":{"type":"list","member":{"shape":"S2b"}},"nextToken":{}}},"http":{}},"ListSamples":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"samples":{"type":"list","member":{"type":"structure","members":{"arn":{},"type":{},"url":{}}}},"nextToken":{}}},"http":{}},"ListSuites":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"suites":{"type":"list","member":{"shape":"S2f"}},"nextToken":{}}},"http":{}},"ListTests":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"tests":{"type":"list","member":{"shape":"S2i"}},"nextToken":{}}},"http":{}},"ListUniqueProblems":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"uniqueProblems":{"type":"map","key":{},"value":{"type":"list","member":{"type":"structure","members":{"message":{},"problems":{"type":"list","member":{"type":"structure","members":{"run":{"shape":"S3w"},"job":{"shape":"S3w"},"suite":{"shape":"S3w"},"test":{"shape":"S3w"},"device":{"shape":"S16"},"result":{},"message":{}}}}}}}},"nextToken":{}}},"http":{}},"ListUploads":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"nextToken":{}}},"output":{"type":"structure","members":{"uploads":{"type":"list","member":{"shape":"Sl"}},"nextToken":{}}},"http":{}},"PurchaseOffering":{"input":{"type":"structure","members":{"offeringId":{},"quantity":{"type":"integer"}}},"output":{"type":"structure","members":{"offeringTransaction":{"shape":"S33"}}},"http":{}},"RenewOffering":{"input":{"type":"structure","members":{"offeringId":{},"quantity":{"type":"integer"}}},"output":{"type":"structure","members":{"offeringTransaction":{"shape":"S33"}}},"http":{}},"ScheduleRun":{"input":{"type":"structure","required":["projectArn","devicePoolArn","test"],"members":{"projectArn":{},"appArn":{},"devicePoolArn":{},"name":{},"test":{"type":"structure","required":["type"],"members":{"type":{},"testPackageArn":{},"filter":{},"parameters":{"type":"map","key":{},"value":{}}}},"configuration":{"type":"structure","members":{"extraDataPackageArn":{},"networkProfileArn":{},"locale":{},"location":{"type":"structure","required":["latitude","longitude"],"members":{"latitude":{"type":"double"},"longitude":{"type":"double"}}},"radios":{"type":"structure","members":{"wifi":{"type":"boolean"},"bluetooth":{"type":"boolean"},"nfc":{"type":"boolean"},"gps":{"type":"boolean"}}},"auxiliaryApps":{"type":"list","member":{}},"billingMethod":{}}}}},"output":{"type":"structure","members":{"run":{"shape":"S2b"}}},"http":{}},"StopRun":{"input":{"type":"structure","required":["arn"],"members":{"arn":{}}},"output":{"type":"structure","members":{"run":{"shape":"S2b"}}},"http":{}},"UpdateDevicePool":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"name":{},"description":{},"rules":{"shape":"S5"}}},"output":{"type":"structure","members":{"devicePool":{"shape":"Sb"}}},"http":{}},"UpdateProject":{"input":{"type":"structure","required":["arn"],"members":{"arn":{},"name":{}}},"output":{"type":"structure","members":{"project":{"shape":"Sf"}}},"http":{}}},"shapes":{"S5":{"type":"list","member":{"type":"structure","members":{"attribute":{},"operator":{},"value":{}}}},"Sb":{"type":"structure","members":{"arn":{},"name":{},"description":{},"type":{},"rules":{"shape":"S5"}}},"Sf":{"type":"structure","members":{"arn":{},"name":{},"created":{"type":"timestamp"}}},"Sl":{"type":"structure","members":{"arn":{},"name":{},"created":{"type":"timestamp"},"type":{},"status":{},"url":{},"metadata":{},"contentType":{},"message":{}}},"S11":{"type":"map","key":{},"value":{"type":"integer"}},"S16":{"type":"structure","members":{"arn":{},"name":{},"manufacturer":{},"model":{},"formFactor":{},"platform":{},"os":{},"cpu":{"type":"structure","members":{"frequency":{},"architecture":{},"clock":{"type":"double"}}},"resolution":{"type":"structure","members":{"width":{"type":"integer"},"height":{"type":"integer"}}},"heapSize":{"type":"long"},"memory":{"type":"long"},"image":{},"carrier":{},"radio":{}}},"S1h":{"type":"list","member":{"type":"structure","members":{"device":{"shape":"S16"},"compatible":{"type":"boolean"},"incompatibilityMessages":{"type":"list","member":{"type":"structure","members":{"message":{},"type":{}}}}}}},"S1o":{"type":"structure","members":{"arn":{},"name":{},"type":{},"created":{"type":"timestamp"},"status":{},"result":{},"started":{"type":"timestamp"},"stopped":{"type":"timestamp"},"counters":{"shape":"S1r"},"message":{},"device":{"shape":"S16"},"deviceMinutes":{"shape":"S1s"}}},"S1r":{"type":"structure","members":{"total":{"type":"integer"},"passed":{"type":"integer"},"failed":{"type":"integer"},"warned":{"type":"integer"},"errored":{"type":"integer"},"stopped":{"type":"integer"},"skipped":{"type":"integer"}}},"S1s":{"type":"structure","members":{"total":{"type":"double"},"metered":{"type":"double"},"unmetered":{"type":"double"}}},"S1w":{"type":"map","key":{},"value":{"shape":"S1y"}},"S1y":{"type":"structure","members":{"type":{},"offering":{"shape":"S20"},"quantity":{"type":"integer"},"effectiveOn":{"type":"timestamp"}}},"S20":{"type":"structure","members":{"id":{},"description":{},"type":{},"platform":{},"recurringCharges":{"type":"list","member":{"type":"structure","members":{"cost":{"shape":"S24"},"frequency":{}}}}}},"S24":{"type":"structure","members":{"amount":{"type":"double"},"currencyCode":{}}},"S2b":{"type":"structure","members":{"arn":{},"name":{},"type":{},"platform":{},"created":{"type":"timestamp"},"status":{},"result":{},"started":{"type":"timestamp"},"stopped":{"type":"timestamp"},"counters":{"shape":"S1r"},"message":{},"totalJobs":{"type":"integer"},"completedJobs":{"type":"integer"},"billingMethod":{},"deviceMinutes":{"shape":"S1s"}}},"S2f":{"type":"structure","members":{"arn":{},"name":{},"type":{},"created":{"type":"timestamp"},"status":{},"result":{},"started":{"type":"timestamp"},"stopped":{"type":"timestamp"},"counters":{"shape":"S1r"},"message":{},"deviceMinutes":{"shape":"S1s"}}},"S2i":{"type":"structure","members":{"arn":{},"name":{},"type":{},"created":{"type":"timestamp"},"status":{},"result":{},"started":{"type":"timestamp"},"stopped":{"type":"timestamp"},"counters":{"shape":"S1r"},"message":{},"deviceMinutes":{"shape":"S1s"}}},"S33":{"type":"structure","members":{"offeringStatus":{"shape":"S1y"},"transactionId":{},"createdOn":{"type":"timestamp"},"cost":{"shape":"S24"}}},"S3w":{"type":"structure","members":{"arn":{},"name":{}}}},"paginators":{"GetOfferingStatus":{"input_token":"nextToken","output_token":"nextToken","result_key":["current","nextPeriod"]},"ListArtifacts":{"input_token":"nextToken","output_token":"nextToken","result_key":"artifacts"},"ListDevicePools":{"input_token":"nextToken","output_token":"nextToken","result_key":"devicePools"},"ListDevices":{"input_token":"nextToken","output_token":"nextToken","result_key":"devices"},"ListJobs":{"input_token":"nextToken","output_token":"nextToken","result_key":"jobs"},"ListOfferingTransactions":{"input_token":"nextToken","output_token":"nextToken","result_key":"offeringTransactions"},"ListOfferings":{"input_token":"nextToken","output_token":"nextToken","result_key":"offerings"},"ListProjects":{"input_token":"nextToken","output_token":"nextToken","result_key":"projects"},"ListRuns":{"input_token":"nextToken","output_token":"nextToken","result_key":"runs"},"ListSamples":{"input_token":"nextToken","output_token":"nextToken","result_key":"samples"},"ListSuites":{"input_token":"nextToken","output_token":"nextToken","result_key":"suites"},"ListTests":{"input_token":"nextToken","output_token":"nextToken","result_key":"tests"},"ListUniqueProblems":{"input_token":"nextToken","output_token":"nextToken","result_key":"uniqueProblems"},"ListUploads":{"input_token":"nextToken","output_token":"nextToken","result_key":"uploads"}}}; +AWS.apiLoader.services['directconnect'] = {}; +AWS.DirectConnect = AWS.Service.defineService('directconnect', [ '2012-10-25' ]); + +AWS.apiLoader.services['directconnect']['2012-10-25'] = {"version":"2.0","metadata":{"apiVersion":"2012-10-25","endpointPrefix":"directconnect","jsonVersion":"1.1","protocol":"json","serviceFullName":"AWS Direct Connect","signatureVersion":"v4","targetPrefix":"OvertureService"},"operations":{"AllocateConnectionOnInterconnect":{"input":{"type":"structure","required":["bandwidth","connectionName","ownerAccount","interconnectId","vlan"],"members":{"bandwidth":{},"connectionName":{},"ownerAccount":{},"interconnectId":{},"vlan":{"type":"integer"}}},"output":{"shape":"S7"},"http":{}},"AllocatePrivateVirtualInterface":{"input":{"type":"structure","required":["connectionId","ownerAccount","newPrivateVirtualInterfaceAllocation"],"members":{"connectionId":{},"ownerAccount":{},"newPrivateVirtualInterfaceAllocation":{"type":"structure","required":["virtualInterfaceName","vlan","asn"],"members":{"virtualInterfaceName":{},"vlan":{"type":"integer"},"asn":{"type":"integer"},"authKey":{},"amazonAddress":{},"customerAddress":{}}}}},"output":{"shape":"Sk"},"http":{}},"AllocatePublicVirtualInterface":{"input":{"type":"structure","required":["connectionId","ownerAccount","newPublicVirtualInterfaceAllocation"],"members":{"connectionId":{},"ownerAccount":{},"newPublicVirtualInterfaceAllocation":{"type":"structure","required":["virtualInterfaceName","vlan","asn","amazonAddress","customerAddress","routeFilterPrefixes"],"members":{"virtualInterfaceName":{},"vlan":{"type":"integer"},"asn":{"type":"integer"},"authKey":{},"amazonAddress":{},"customerAddress":{},"routeFilterPrefixes":{"shape":"Sq"}}}}},"output":{"shape":"Sk"},"http":{}},"ConfirmConnection":{"input":{"type":"structure","required":["connectionId"],"members":{"connectionId":{}}},"output":{"type":"structure","members":{"connectionState":{}}},"http":{}},"ConfirmPrivateVirtualInterface":{"input":{"type":"structure","required":["virtualInterfaceId","virtualGatewayId"],"members":{"virtualInterfaceId":{},"virtualGatewayId":{}}},"output":{"type":"structure","members":{"virtualInterfaceState":{}}},"http":{}},"ConfirmPublicVirtualInterface":{"input":{"type":"structure","required":["virtualInterfaceId"],"members":{"virtualInterfaceId":{}}},"output":{"type":"structure","members":{"virtualInterfaceState":{}}},"http":{}},"CreateConnection":{"input":{"type":"structure","required":["location","bandwidth","connectionName"],"members":{"location":{},"bandwidth":{},"connectionName":{}}},"output":{"shape":"S7"},"http":{}},"CreateInterconnect":{"input":{"type":"structure","required":["interconnectName","bandwidth","location"],"members":{"interconnectName":{},"bandwidth":{},"location":{}}},"output":{"shape":"S14"},"http":{}},"CreatePrivateVirtualInterface":{"input":{"type":"structure","required":["connectionId","newPrivateVirtualInterface"],"members":{"connectionId":{},"newPrivateVirtualInterface":{"type":"structure","required":["virtualInterfaceName","vlan","asn","virtualGatewayId"],"members":{"virtualInterfaceName":{},"vlan":{"type":"integer"},"asn":{"type":"integer"},"authKey":{},"amazonAddress":{},"customerAddress":{},"virtualGatewayId":{}}}}},"output":{"shape":"Sk"},"http":{}},"CreatePublicVirtualInterface":{"input":{"type":"structure","required":["connectionId","newPublicVirtualInterface"],"members":{"connectionId":{},"newPublicVirtualInterface":{"type":"structure","required":["virtualInterfaceName","vlan","asn","amazonAddress","customerAddress","routeFilterPrefixes"],"members":{"virtualInterfaceName":{},"vlan":{"type":"integer"},"asn":{"type":"integer"},"authKey":{},"amazonAddress":{},"customerAddress":{},"routeFilterPrefixes":{"shape":"Sq"}}}}},"output":{"shape":"Sk"},"http":{}},"DeleteConnection":{"input":{"type":"structure","required":["connectionId"],"members":{"connectionId":{}}},"output":{"shape":"S7"},"http":{}},"DeleteInterconnect":{"input":{"type":"structure","required":["interconnectId"],"members":{"interconnectId":{}}},"output":{"type":"structure","members":{"interconnectState":{}}},"http":{}},"DeleteVirtualInterface":{"input":{"type":"structure","required":["virtualInterfaceId"],"members":{"virtualInterfaceId":{}}},"output":{"type":"structure","members":{"virtualInterfaceState":{}}},"http":{}},"DescribeConnections":{"input":{"type":"structure","members":{"connectionId":{}}},"output":{"shape":"S1g"},"http":{}},"DescribeConnectionsOnInterconnect":{"input":{"type":"structure","required":["interconnectId"],"members":{"interconnectId":{}}},"output":{"shape":"S1g"},"http":{}},"DescribeInterconnects":{"input":{"type":"structure","members":{"interconnectId":{}}},"output":{"type":"structure","members":{"interconnects":{"type":"list","member":{"shape":"S14"}}}},"http":{}},"DescribeLocations":{"output":{"type":"structure","members":{"locations":{"type":"list","member":{"type":"structure","members":{"locationCode":{},"locationName":{}}}}}},"http":{}},"DescribeVirtualGateways":{"output":{"type":"structure","members":{"virtualGateways":{"type":"list","member":{"type":"structure","members":{"virtualGatewayId":{},"virtualGatewayState":{}}}}}},"http":{}},"DescribeVirtualInterfaces":{"input":{"type":"structure","members":{"connectionId":{},"virtualInterfaceId":{}}},"output":{"type":"structure","members":{"virtualInterfaces":{"type":"list","member":{"shape":"Sk"}}}},"http":{}}},"shapes":{"S7":{"type":"structure","members":{"ownerAccount":{},"connectionId":{},"connectionName":{},"connectionState":{},"region":{},"location":{},"bandwidth":{},"vlan":{"type":"integer"},"partnerName":{}}},"Sk":{"type":"structure","members":{"ownerAccount":{},"virtualInterfaceId":{},"location":{},"connectionId":{},"virtualInterfaceType":{},"virtualInterfaceName":{},"vlan":{"type":"integer"},"asn":{"type":"integer"},"authKey":{},"amazonAddress":{},"customerAddress":{},"virtualInterfaceState":{},"customerRouterConfig":{},"virtualGatewayId":{},"routeFilterPrefixes":{"shape":"Sq"}}},"Sq":{"type":"list","member":{"type":"structure","members":{"cidr":{}}}},"S14":{"type":"structure","members":{"interconnectId":{},"interconnectName":{},"interconnectState":{},"region":{},"location":{},"bandwidth":{}}},"S1g":{"type":"structure","members":{"connections":{"type":"list","member":{"shape":"S7"}}}}},"paginators":{"DescribeConnections":{"result_key":"connections"},"DescribeConnectionsOnInterconnect":{"result_key":"connections"},"DescribeInterconnects":{"result_key":"interconnects"},"DescribeLocations":{"result_key":"locations"},"DescribeVirtualGateways":{"result_key":"virtualGateways"},"DescribeVirtualInterfaces":{"result_key":"virtualInterfaces"}}}; +AWS.apiLoader.services['dynamodb'] = {}; +AWS.DynamoDB = AWS.Service.defineService('dynamodb', [ '2011-12-05', '2012-08-10' ]); +require('./services/dynamodb'); + +AWS.apiLoader.services['dynamodb']['2012-08-10'] = {"version":"2.0","metadata":{"apiVersion":"2012-08-10","endpointPrefix":"dynamodb","jsonVersion":"1.0","protocol":"json","serviceAbbreviation":"DynamoDB","serviceFullName":"Amazon DynamoDB","signatureVersion":"v4","targetPrefix":"DynamoDB_20120810"},"operations":{"BatchGetItem":{"input":{"type":"structure","required":["RequestItems"],"members":{"RequestItems":{"shape":"S2"},"ReturnConsumedCapacity":{}}},"output":{"type":"structure","members":{"Responses":{"type":"map","key":{},"value":{"shape":"Sr"}},"UnprocessedKeys":{"shape":"S2"},"ConsumedCapacity":{"shape":"St"}}},"http":{}},"BatchWriteItem":{"input":{"type":"structure","required":["RequestItems"],"members":{"RequestItems":{"shape":"S10"},"ReturnConsumedCapacity":{},"ReturnItemCollectionMetrics":{}}},"output":{"type":"structure","members":{"UnprocessedItems":{"shape":"S10"},"ItemCollectionMetrics":{"type":"map","key":{},"value":{"type":"list","member":{"shape":"S1a"}}},"ConsumedCapacity":{"shape":"St"}}},"http":{}},"CreateTable":{"input":{"type":"structure","required":["AttributeDefinitions","TableName","KeySchema","ProvisionedThroughput"],"members":{"AttributeDefinitions":{"shape":"S1f"},"TableName":{},"KeySchema":{"shape":"S1j"},"LocalSecondaryIndexes":{"type":"list","member":{"type":"structure","required":["IndexName","KeySchema","Projection"],"members":{"IndexName":{},"KeySchema":{"shape":"S1j"},"Projection":{"shape":"S1o"}}}},"GlobalSecondaryIndexes":{"type":"list","member":{"type":"structure","required":["IndexName","KeySchema","Projection","ProvisionedThroughput"],"members":{"IndexName":{},"KeySchema":{"shape":"S1j"},"Projection":{"shape":"S1o"},"ProvisionedThroughput":{"shape":"S1u"}}}},"ProvisionedThroughput":{"shape":"S1u"},"StreamSpecification":{"shape":"S1w"}}},"output":{"type":"structure","members":{"TableDescription":{"shape":"S20"}}},"http":{}},"DeleteItem":{"input":{"type":"structure","required":["TableName","Key"],"members":{"TableName":{},"Key":{"shape":"S6"},"Expected":{"shape":"S2e"},"ConditionalOperator":{},"ReturnValues":{},"ReturnConsumedCapacity":{},"ReturnItemCollectionMetrics":{},"ConditionExpression":{},"ExpressionAttributeNames":{"shape":"Sm"},"ExpressionAttributeValues":{"shape":"S2m"}}},"output":{"type":"structure","members":{"Attributes":{"shape":"Ss"},"ConsumedCapacity":{"shape":"Su"},"ItemCollectionMetrics":{"shape":"S1a"}}},"http":{}},"DeleteTable":{"input":{"type":"structure","required":["TableName"],"members":{"TableName":{}}},"output":{"type":"structure","members":{"TableDescription":{"shape":"S20"}}},"http":{}},"DescribeLimits":{"input":{"type":"structure","members":{}},"output":{"type":"structure","members":{"AccountMaxReadCapacityUnits":{"type":"long"},"AccountMaxWriteCapacityUnits":{"type":"long"},"TableMaxReadCapacityUnits":{"type":"long"},"TableMaxWriteCapacityUnits":{"type":"long"}}},"http":{}},"DescribeTable":{"input":{"type":"structure","required":["TableName"],"members":{"TableName":{}}},"output":{"type":"structure","members":{"Table":{"shape":"S20"}}},"http":{}},"GetItem":{"input":{"type":"structure","required":["TableName","Key"],"members":{"TableName":{},"Key":{"shape":"S6"},"AttributesToGet":{"shape":"Sj"},"ConsistentRead":{"type":"boolean"},"ReturnConsumedCapacity":{},"ProjectionExpression":{},"ExpressionAttributeNames":{"shape":"Sm"}}},"output":{"type":"structure","members":{"Item":{"shape":"Ss"},"ConsumedCapacity":{"shape":"Su"}}},"http":{}},"ListTables":{"input":{"type":"structure","members":{"ExclusiveStartTableName":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"TableNames":{"type":"list","member":{}},"LastEvaluatedTableName":{}}},"http":{}},"PutItem":{"input":{"type":"structure","required":["TableName","Item"],"members":{"TableName":{},"Item":{"shape":"S14"},"Expected":{"shape":"S2e"},"ReturnValues":{},"ReturnConsumedCapacity":{},"ReturnItemCollectionMetrics":{},"ConditionalOperator":{},"ConditionExpression":{},"ExpressionAttributeNames":{"shape":"Sm"},"ExpressionAttributeValues":{"shape":"S2m"}}},"output":{"type":"structure","members":{"Attributes":{"shape":"Ss"},"ConsumedCapacity":{"shape":"Su"},"ItemCollectionMetrics":{"shape":"S1a"}}},"http":{}},"Query":{"input":{"type":"structure","required":["TableName"],"members":{"TableName":{},"IndexName":{},"Select":{},"AttributesToGet":{"shape":"Sj"},"Limit":{"type":"integer"},"ConsistentRead":{"type":"boolean"},"KeyConditions":{"type":"map","key":{},"value":{"shape":"S37"}},"QueryFilter":{"shape":"S38"},"ConditionalOperator":{},"ScanIndexForward":{"type":"boolean"},"ExclusiveStartKey":{"shape":"S6"},"ReturnConsumedCapacity":{},"ProjectionExpression":{},"FilterExpression":{},"KeyConditionExpression":{},"ExpressionAttributeNames":{"shape":"Sm"},"ExpressionAttributeValues":{"shape":"S2m"}}},"output":{"type":"structure","members":{"Items":{"shape":"Sr"},"Count":{"type":"integer"},"ScannedCount":{"type":"integer"},"LastEvaluatedKey":{"shape":"S6"},"ConsumedCapacity":{"shape":"Su"}}},"http":{}},"Scan":{"input":{"type":"structure","required":["TableName"],"members":{"TableName":{},"IndexName":{},"AttributesToGet":{"shape":"Sj"},"Limit":{"type":"integer"},"Select":{},"ScanFilter":{"shape":"S38"},"ConditionalOperator":{},"ExclusiveStartKey":{"shape":"S6"},"ReturnConsumedCapacity":{},"TotalSegments":{"type":"integer"},"Segment":{"type":"integer"},"ProjectionExpression":{},"FilterExpression":{},"ExpressionAttributeNames":{"shape":"Sm"},"ExpressionAttributeValues":{"shape":"S2m"},"ConsistentRead":{"type":"boolean"}}},"output":{"type":"structure","members":{"Items":{"shape":"Sr"},"Count":{"type":"integer"},"ScannedCount":{"type":"integer"},"LastEvaluatedKey":{"shape":"S6"},"ConsumedCapacity":{"shape":"Su"}}},"http":{}},"UpdateItem":{"input":{"type":"structure","required":["TableName","Key"],"members":{"TableName":{},"Key":{"shape":"S6"},"AttributeUpdates":{"type":"map","key":{},"value":{"type":"structure","members":{"Value":{"shape":"S8"},"Action":{}}}},"Expected":{"shape":"S2e"},"ConditionalOperator":{},"ReturnValues":{},"ReturnConsumedCapacity":{},"ReturnItemCollectionMetrics":{},"UpdateExpression":{},"ConditionExpression":{},"ExpressionAttributeNames":{"shape":"Sm"},"ExpressionAttributeValues":{"shape":"S2m"}}},"output":{"type":"structure","members":{"Attributes":{"shape":"Ss"},"ConsumedCapacity":{"shape":"Su"},"ItemCollectionMetrics":{"shape":"S1a"}}},"http":{}},"UpdateTable":{"input":{"type":"structure","required":["TableName"],"members":{"AttributeDefinitions":{"shape":"S1f"},"TableName":{},"ProvisionedThroughput":{"shape":"S1u"},"GlobalSecondaryIndexUpdates":{"type":"list","member":{"type":"structure","members":{"Update":{"type":"structure","required":["IndexName","ProvisionedThroughput"],"members":{"IndexName":{},"ProvisionedThroughput":{"shape":"S1u"}}},"Create":{"type":"structure","required":["IndexName","KeySchema","Projection","ProvisionedThroughput"],"members":{"IndexName":{},"KeySchema":{"shape":"S1j"},"Projection":{"shape":"S1o"},"ProvisionedThroughput":{"shape":"S1u"}}},"Delete":{"type":"structure","required":["IndexName"],"members":{"IndexName":{}}}}}},"StreamSpecification":{"shape":"S1w"}}},"output":{"type":"structure","members":{"TableDescription":{"shape":"S20"}}},"http":{}}},"shapes":{"S2":{"type":"map","key":{},"value":{"type":"structure","required":["Keys"],"members":{"Keys":{"type":"list","member":{"shape":"S6"}},"AttributesToGet":{"shape":"Sj"},"ConsistentRead":{"type":"boolean"},"ProjectionExpression":{},"ExpressionAttributeNames":{"shape":"Sm"}}}},"S6":{"type":"map","key":{},"value":{"shape":"S8"}},"S8":{"type":"structure","members":{"S":{},"N":{},"B":{"type":"blob"},"SS":{"type":"list","member":{}},"NS":{"type":"list","member":{}},"BS":{"type":"list","member":{"type":"blob"}},"M":{"type":"map","key":{},"value":{"shape":"S8"}},"L":{"type":"list","member":{"shape":"S8"}},"NULL":{"type":"boolean"},"BOOL":{"type":"boolean"}}},"Sj":{"type":"list","member":{}},"Sm":{"type":"map","key":{},"value":{}},"Sr":{"type":"list","member":{"shape":"Ss"}},"Ss":{"type":"map","key":{},"value":{"shape":"S8"}},"St":{"type":"list","member":{"shape":"Su"}},"Su":{"type":"structure","members":{"TableName":{},"CapacityUnits":{"type":"double"},"Table":{"shape":"Sw"},"LocalSecondaryIndexes":{"shape":"Sx"},"GlobalSecondaryIndexes":{"shape":"Sx"}}},"Sw":{"type":"structure","members":{"CapacityUnits":{"type":"double"}}},"Sx":{"type":"map","key":{},"value":{"shape":"Sw"}},"S10":{"type":"map","key":{},"value":{"type":"list","member":{"type":"structure","members":{"PutRequest":{"type":"structure","required":["Item"],"members":{"Item":{"shape":"S14"}}},"DeleteRequest":{"type":"structure","required":["Key"],"members":{"Key":{"shape":"S6"}}}}}}},"S14":{"type":"map","key":{},"value":{"shape":"S8"}},"S1a":{"type":"structure","members":{"ItemCollectionKey":{"type":"map","key":{},"value":{"shape":"S8"}},"SizeEstimateRangeGB":{"type":"list","member":{"type":"double"}}}},"S1f":{"type":"list","member":{"type":"structure","required":["AttributeName","AttributeType"],"members":{"AttributeName":{},"AttributeType":{}}}},"S1j":{"type":"list","member":{"type":"structure","required":["AttributeName","KeyType"],"members":{"AttributeName":{},"KeyType":{}}}},"S1o":{"type":"structure","members":{"ProjectionType":{},"NonKeyAttributes":{"type":"list","member":{}}}},"S1u":{"type":"structure","required":["ReadCapacityUnits","WriteCapacityUnits"],"members":{"ReadCapacityUnits":{"type":"long"},"WriteCapacityUnits":{"type":"long"}}},"S1w":{"type":"structure","members":{"StreamEnabled":{"type":"boolean"},"StreamViewType":{}}},"S20":{"type":"structure","members":{"AttributeDefinitions":{"shape":"S1f"},"TableName":{},"KeySchema":{"shape":"S1j"},"TableStatus":{},"CreationDateTime":{"type":"timestamp"},"ProvisionedThroughput":{"shape":"S23"},"TableSizeBytes":{"type":"long"},"ItemCount":{"type":"long"},"TableArn":{},"LocalSecondaryIndexes":{"type":"list","member":{"type":"structure","members":{"IndexName":{},"KeySchema":{"shape":"S1j"},"Projection":{"shape":"S1o"},"IndexSizeBytes":{"type":"long"},"ItemCount":{"type":"long"},"IndexArn":{}}}},"GlobalSecondaryIndexes":{"type":"list","member":{"type":"structure","members":{"IndexName":{},"KeySchema":{"shape":"S1j"},"Projection":{"shape":"S1o"},"IndexStatus":{},"Backfilling":{"type":"boolean"},"ProvisionedThroughput":{"shape":"S23"},"IndexSizeBytes":{"type":"long"},"ItemCount":{"type":"long"},"IndexArn":{}}}},"StreamSpecification":{"shape":"S1w"},"LatestStreamLabel":{},"LatestStreamArn":{}}},"S23":{"type":"structure","members":{"LastIncreaseDateTime":{"type":"timestamp"},"LastDecreaseDateTime":{"type":"timestamp"},"NumberOfDecreasesToday":{"type":"long"},"ReadCapacityUnits":{"type":"long"},"WriteCapacityUnits":{"type":"long"}}},"S2e":{"type":"map","key":{},"value":{"type":"structure","members":{"Value":{"shape":"S8"},"Exists":{"type":"boolean"},"ComparisonOperator":{},"AttributeValueList":{"shape":"S2i"}}}},"S2i":{"type":"list","member":{"shape":"S8"}},"S2m":{"type":"map","key":{},"value":{"shape":"S8"}},"S37":{"type":"structure","required":["ComparisonOperator"],"members":{"AttributeValueList":{"shape":"S2i"},"ComparisonOperator":{}}},"S38":{"type":"map","key":{},"value":{"shape":"S37"}}},"paginators":{"BatchGetItem":{"input_token":"RequestItems","output_token":"UnprocessedKeys"},"ListTables":{"input_token":"ExclusiveStartTableName","output_token":"LastEvaluatedTableName","limit_key":"Limit","result_key":"TableNames"},"Query":{"input_token":"ExclusiveStartKey","output_token":"LastEvaluatedKey","limit_key":"Limit","result_key":"Items"},"Scan":{"input_token":"ExclusiveStartKey","output_token":"LastEvaluatedKey","limit_key":"Limit","result_key":"Items"}},"waiters":{"TableExists":{"delay":20,"operation":"DescribeTable","maxAttempts":25,"acceptors":[{"expected":"ACTIVE","matcher":"path","state":"success","argument":"Table.TableStatus"},{"expected":"ResourceNotFoundException","matcher":"error","state":"retry"}]},"TableNotExists":{"delay":20,"operation":"DescribeTable","maxAttempts":25,"acceptors":[{"expected":"ResourceNotFoundException","matcher":"error","state":"success"}]}}}; +AWS.apiLoader.services['dynamodbstreams'] = {}; +AWS.DynamoDBStreams = AWS.Service.defineService('dynamodbstreams', [ '2012-08-10' ]); + +AWS.apiLoader.services['dynamodbstreams']['2012-08-10'] = {"version":"2.0","metadata":{"apiVersion":"2012-08-10","endpointPrefix":"streams.dynamodb","jsonVersion":"1.0","protocol":"json","serviceFullName":"Amazon DynamoDB Streams","signatureVersion":"v4","signingName":"dynamodb","targetPrefix":"DynamoDBStreams_20120810"},"operations":{"DescribeStream":{"input":{"type":"structure","required":["StreamArn"],"members":{"StreamArn":{},"Limit":{"type":"integer"},"ExclusiveStartShardId":{}}},"output":{"type":"structure","members":{"StreamDescription":{"type":"structure","members":{"StreamArn":{},"StreamLabel":{},"StreamStatus":{},"StreamViewType":{},"CreationRequestDateTime":{"type":"timestamp"},"TableName":{},"KeySchema":{"type":"list","member":{"type":"structure","required":["AttributeName","KeyType"],"members":{"AttributeName":{},"KeyType":{}}}},"Shards":{"type":"list","member":{"type":"structure","members":{"ShardId":{},"SequenceNumberRange":{"type":"structure","members":{"StartingSequenceNumber":{},"EndingSequenceNumber":{}}},"ParentShardId":{}}}},"LastEvaluatedShardId":{}}}}},"http":{}},"GetRecords":{"input":{"type":"structure","required":["ShardIterator"],"members":{"ShardIterator":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Records":{"type":"list","member":{"type":"structure","members":{"eventID":{},"eventName":{},"eventVersion":{},"eventSource":{},"awsRegion":{},"dynamodb":{"type":"structure","members":{"ApproximateCreationDateTime":{"type":"timestamp"},"Keys":{"shape":"Sr"},"NewImage":{"shape":"Sr"},"OldImage":{"shape":"Sr"},"SequenceNumber":{},"SizeBytes":{"type":"long"},"StreamViewType":{}}}}}},"NextShardIterator":{}}},"http":{}},"GetShardIterator":{"input":{"type":"structure","required":["StreamArn","ShardId","ShardIteratorType"],"members":{"StreamArn":{},"ShardId":{},"ShardIteratorType":{},"SequenceNumber":{}}},"output":{"type":"structure","members":{"ShardIterator":{}}},"http":{}},"ListStreams":{"input":{"type":"structure","members":{"TableName":{},"Limit":{"type":"integer"},"ExclusiveStartStreamArn":{}}},"output":{"type":"structure","members":{"Streams":{"type":"list","member":{"type":"structure","members":{"StreamArn":{},"TableName":{},"StreamLabel":{}}}},"LastEvaluatedStreamArn":{}}},"http":{}}},"shapes":{"Sr":{"type":"map","key":{},"value":{"shape":"St"}},"St":{"type":"structure","members":{"S":{},"N":{},"B":{"type":"blob"},"SS":{"type":"list","member":{}},"NS":{"type":"list","member":{}},"BS":{"type":"list","member":{"type":"blob"}},"M":{"type":"map","key":{},"value":{"shape":"St"}},"L":{"type":"list","member":{"shape":"St"}},"NULL":{"type":"boolean"},"BOOL":{"type":"boolean"}}}}}; +AWS.apiLoader.services['ec2'] = {}; +AWS.EC2 = AWS.Service.defineService('ec2', [ '2015-10-01' ]); +require('./services/ec2'); + +AWS.apiLoader.services['ec2']['2015-10-01'] = {"version":"2.0","metadata":{"apiVersion":"2015-10-01","endpointPrefix":"ec2","protocol":"ec2","serviceAbbreviation":"Amazon EC2","serviceFullName":"Amazon Elastic Compute Cloud","signatureVersion":"v4","xmlNamespace":"http://ec2.amazonaws.com/doc/2015-10-01"},"operations":{"AcceptVpcPeeringConnection":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"}}},"output":{"type":"structure","members":{"VpcPeeringConnection":{"shape":"S5","locationName":"vpcPeeringConnection"}}},"http":{}},"AllocateAddress":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Domain":{}}},"output":{"type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"Domain":{"locationName":"domain"},"AllocationId":{"locationName":"allocationId"}}},"http":{}},"AllocateHosts":{"input":{"type":"structure","required":["InstanceType","Quantity","AvailabilityZone"],"members":{"AutoPlacement":{"locationName":"autoPlacement"},"ClientToken":{"locationName":"clientToken"},"InstanceType":{"locationName":"instanceType"},"Quantity":{"locationName":"quantity","type":"integer"},"AvailabilityZone":{"locationName":"availabilityZone"}}},"output":{"type":"structure","members":{"HostIds":{"shape":"Sk","locationName":"hostIdSet"}}},"http":{}},"AssignPrivateIpAddresses":{"input":{"type":"structure","required":["NetworkInterfaceId"],"members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"PrivateIpAddresses":{"shape":"Sm","locationName":"privateIpAddress"},"SecondaryPrivateIpAddressCount":{"locationName":"secondaryPrivateIpAddressCount","type":"integer"},"AllowReassignment":{"locationName":"allowReassignment","type":"boolean"}}},"http":{}},"AssociateAddress":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{},"PublicIp":{},"AllocationId":{},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"AllowReassociation":{"locationName":"allowReassociation","type":"boolean"}}},"output":{"type":"structure","members":{"AssociationId":{"locationName":"associationId"}}},"http":{}},"AssociateDhcpOptions":{"input":{"type":"structure","required":["DhcpOptionsId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"DhcpOptionsId":{},"VpcId":{}}},"http":{}},"AssociateRouteTable":{"input":{"type":"structure","required":["SubnetId","RouteTableId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SubnetId":{"locationName":"subnetId"},"RouteTableId":{"locationName":"routeTableId"}}},"output":{"type":"structure","members":{"AssociationId":{"locationName":"associationId"}}},"http":{}},"AttachClassicLinkVpc":{"input":{"type":"structure","required":["InstanceId","VpcId","Groups"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{"locationName":"instanceId"},"VpcId":{"locationName":"vpcId"},"Groups":{"shape":"St","locationName":"SecurityGroupId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"AttachInternetGateway":{"input":{"type":"structure","required":["InternetGatewayId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InternetGatewayId":{"locationName":"internetGatewayId"},"VpcId":{"locationName":"vpcId"}}},"http":{}},"AttachNetworkInterface":{"input":{"type":"structure","required":["NetworkInterfaceId","InstanceId","DeviceIndex"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"InstanceId":{"locationName":"instanceId"},"DeviceIndex":{"locationName":"deviceIndex","type":"integer"}}},"output":{"type":"structure","members":{"AttachmentId":{"locationName":"attachmentId"}}},"http":{}},"AttachVolume":{"input":{"type":"structure","required":["VolumeId","InstanceId","Device"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{},"InstanceId":{},"Device":{}}},"output":{"shape":"Sz"},"http":{}},"AttachVpnGateway":{"input":{"type":"structure","required":["VpnGatewayId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnGatewayId":{},"VpcId":{}}},"output":{"type":"structure","members":{"VpcAttachment":{"shape":"S13","locationName":"attachment"}}},"http":{}},"AuthorizeSecurityGroupEgress":{"input":{"type":"structure","required":["GroupId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupId":{"locationName":"groupId"},"SourceSecurityGroupName":{"locationName":"sourceSecurityGroupName"},"SourceSecurityGroupOwnerId":{"locationName":"sourceSecurityGroupOwnerId"},"IpProtocol":{"locationName":"ipProtocol"},"FromPort":{"locationName":"fromPort","type":"integer"},"ToPort":{"locationName":"toPort","type":"integer"},"CidrIp":{"locationName":"cidrIp"},"IpPermissions":{"shape":"S16","locationName":"ipPermissions"}}},"http":{}},"AuthorizeSecurityGroupIngress":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupName":{},"GroupId":{},"SourceSecurityGroupName":{},"SourceSecurityGroupOwnerId":{},"IpProtocol":{},"FromPort":{"type":"integer"},"ToPort":{"type":"integer"},"CidrIp":{},"IpPermissions":{"shape":"S16"}}},"http":{}},"BundleInstance":{"input":{"type":"structure","required":["InstanceId","Storage"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{},"Storage":{"shape":"S1g"}}},"output":{"type":"structure","members":{"BundleTask":{"shape":"S1k","locationName":"bundleInstanceTask"}}},"http":{}},"CancelBundleTask":{"input":{"type":"structure","required":["BundleId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"BundleId":{}}},"output":{"type":"structure","members":{"BundleTask":{"shape":"S1k","locationName":"bundleInstanceTask"}}},"http":{}},"CancelConversionTask":{"input":{"type":"structure","required":["ConversionTaskId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ConversionTaskId":{"locationName":"conversionTaskId"},"ReasonMessage":{"locationName":"reasonMessage"}}},"http":{}},"CancelExportTask":{"input":{"type":"structure","required":["ExportTaskId"],"members":{"ExportTaskId":{"locationName":"exportTaskId"}}},"http":{}},"CancelImportTask":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"ImportTaskId":{},"CancelReason":{}}},"output":{"type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"State":{"locationName":"state"},"PreviousState":{"locationName":"previousState"}}},"http":{}},"CancelReservedInstancesListing":{"input":{"type":"structure","required":["ReservedInstancesListingId"],"members":{"ReservedInstancesListingId":{"locationName":"reservedInstancesListingId"}}},"output":{"type":"structure","members":{"ReservedInstancesListings":{"shape":"S1v","locationName":"reservedInstancesListingsSet"}}},"http":{}},"CancelSpotFleetRequests":{"input":{"type":"structure","required":["SpotFleetRequestIds","TerminateInstances"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotFleetRequestIds":{"shape":"S27","locationName":"spotFleetRequestId"},"TerminateInstances":{"locationName":"terminateInstances","type":"boolean"}}},"output":{"type":"structure","members":{"UnsuccessfulFleetRequests":{"locationName":"unsuccessfulFleetRequestSet","type":"list","member":{"locationName":"item","type":"structure","required":["SpotFleetRequestId","Error"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"Error":{"locationName":"error","type":"structure","required":["Code","Message"],"members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}}}}},"SuccessfulFleetRequests":{"locationName":"successfulFleetRequestSet","type":"list","member":{"locationName":"item","type":"structure","required":["SpotFleetRequestId","CurrentSpotFleetRequestState","PreviousSpotFleetRequestState"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"CurrentSpotFleetRequestState":{"locationName":"currentSpotFleetRequestState"},"PreviousSpotFleetRequestState":{"locationName":"previousSpotFleetRequestState"}}}}}},"http":{}},"CancelSpotInstanceRequests":{"input":{"type":"structure","required":["SpotInstanceRequestIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotInstanceRequestIds":{"shape":"S2h","locationName":"SpotInstanceRequestId"}}},"output":{"type":"structure","members":{"CancelledSpotInstanceRequests":{"locationName":"spotInstanceRequestSet","type":"list","member":{"locationName":"item","type":"structure","members":{"SpotInstanceRequestId":{"locationName":"spotInstanceRequestId"},"State":{"locationName":"state"}}}}}},"http":{}},"ConfirmProductInstance":{"input":{"type":"structure","required":["ProductCode","InstanceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ProductCode":{},"InstanceId":{}}},"output":{"type":"structure","members":{"OwnerId":{"locationName":"ownerId"},"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"CopyImage":{"input":{"type":"structure","required":["SourceRegion","SourceImageId","Name"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SourceRegion":{},"SourceImageId":{},"Name":{},"Description":{},"ClientToken":{},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{"locationName":"kmsKeyId"}}},"output":{"type":"structure","members":{"ImageId":{"locationName":"imageId"}}},"http":{}},"CopySnapshot":{"input":{"type":"structure","required":["SourceRegion","SourceSnapshotId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SourceRegion":{},"SourceSnapshotId":{},"Description":{},"DestinationRegion":{"locationName":"destinationRegion"},"PresignedUrl":{"locationName":"presignedUrl"},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{"locationName":"kmsKeyId"}}},"output":{"type":"structure","members":{"SnapshotId":{"locationName":"snapshotId"}}},"http":{}},"CreateCustomerGateway":{"input":{"type":"structure","required":["Type","PublicIp","BgpAsn"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Type":{},"PublicIp":{"locationName":"IpAddress"},"BgpAsn":{"type":"integer"}}},"output":{"type":"structure","members":{"CustomerGateway":{"shape":"S2v","locationName":"customerGateway"}}},"http":{}},"CreateDhcpOptions":{"input":{"type":"structure","required":["DhcpConfigurations"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"DhcpConfigurations":{"locationName":"dhcpConfiguration","type":"list","member":{"locationName":"item","type":"structure","members":{"Key":{"locationName":"key"},"Values":{"shape":"S27","locationName":"Value"}}}}}},"output":{"type":"structure","members":{"DhcpOptions":{"shape":"S30","locationName":"dhcpOptions"}}},"http":{}},"CreateFlowLogs":{"input":{"type":"structure","required":["ResourceIds","ResourceType","TrafficType","LogGroupName","DeliverLogsPermissionArn"],"members":{"ResourceIds":{"shape":"S27","locationName":"ResourceId"},"ResourceType":{},"TrafficType":{},"LogGroupName":{},"DeliverLogsPermissionArn":{},"ClientToken":{}}},"output":{"type":"structure","members":{"FlowLogIds":{"shape":"S27","locationName":"flowLogIdSet"},"ClientToken":{"locationName":"clientToken"},"Unsuccessful":{"shape":"S39","locationName":"unsuccessful"}}},"http":{}},"CreateImage":{"input":{"type":"structure","required":["InstanceId","Name"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{"locationName":"instanceId"},"Name":{"locationName":"name"},"Description":{"locationName":"description"},"NoReboot":{"locationName":"noReboot","type":"boolean"},"BlockDeviceMappings":{"shape":"S3d","locationName":"blockDeviceMapping"}}},"output":{"type":"structure","members":{"ImageId":{"locationName":"imageId"}}},"http":{}},"CreateInstanceExportTask":{"input":{"type":"structure","required":["InstanceId"],"members":{"Description":{"locationName":"description"},"InstanceId":{"locationName":"instanceId"},"TargetEnvironment":{"locationName":"targetEnvironment"},"ExportToS3Task":{"locationName":"exportToS3","type":"structure","members":{"DiskImageFormat":{"locationName":"diskImageFormat"},"ContainerFormat":{"locationName":"containerFormat"},"S3Bucket":{"locationName":"s3Bucket"},"S3Prefix":{"locationName":"s3Prefix"}}}}},"output":{"type":"structure","members":{"ExportTask":{"shape":"S3o","locationName":"exportTask"}}},"http":{}},"CreateInternetGateway":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"InternetGateway":{"shape":"S3u","locationName":"internetGateway"}}},"http":{}},"CreateKeyPair":{"input":{"type":"structure","required":["KeyName"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"KeyName":{}}},"output":{"type":"structure","members":{"KeyName":{"locationName":"keyName"},"KeyFingerprint":{"locationName":"keyFingerprint"},"KeyMaterial":{"locationName":"keyMaterial"}}},"http":{}},"CreateNatGateway":{"input":{"type":"structure","required":["SubnetId","AllocationId"],"members":{"SubnetId":{},"AllocationId":{},"ClientToken":{}}},"output":{"type":"structure","members":{"NatGateway":{"shape":"S41","locationName":"natGateway"},"ClientToken":{"locationName":"clientToken"}}},"http":{}},"CreateNetworkAcl":{"input":{"type":"structure","required":["VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{"locationName":"vpcId"}}},"output":{"type":"structure","members":{"NetworkAcl":{"shape":"S48","locationName":"networkAcl"}}},"http":{}},"CreateNetworkAclEntry":{"input":{"type":"structure","required":["NetworkAclId","RuleNumber","Protocol","RuleAction","Egress","CidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkAclId":{"locationName":"networkAclId"},"RuleNumber":{"locationName":"ruleNumber","type":"integer"},"Protocol":{"locationName":"protocol"},"RuleAction":{"locationName":"ruleAction"},"Egress":{"locationName":"egress","type":"boolean"},"CidrBlock":{"locationName":"cidrBlock"},"IcmpTypeCode":{"shape":"S4c","locationName":"Icmp"},"PortRange":{"shape":"S4d","locationName":"portRange"}}},"http":{}},"CreateNetworkInterface":{"input":{"type":"structure","required":["SubnetId"],"members":{"SubnetId":{"locationName":"subnetId"},"Description":{"locationName":"description"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"Groups":{"shape":"S4i","locationName":"SecurityGroupId"},"PrivateIpAddresses":{"shape":"S4j","locationName":"privateIpAddresses"},"SecondaryPrivateIpAddressCount":{"locationName":"secondaryPrivateIpAddressCount","type":"integer"},"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"NetworkInterface":{"shape":"S4m","locationName":"networkInterface"}}},"http":{}},"CreatePlacementGroup":{"input":{"type":"structure","required":["GroupName","Strategy"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupName":{"locationName":"groupName"},"Strategy":{"locationName":"strategy"}}},"http":{}},"CreateReservedInstancesListing":{"input":{"type":"structure","required":["ReservedInstancesId","InstanceCount","PriceSchedules","ClientToken"],"members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"},"InstanceCount":{"locationName":"instanceCount","type":"integer"},"PriceSchedules":{"locationName":"priceSchedules","type":"list","member":{"locationName":"item","type":"structure","members":{"Term":{"locationName":"term","type":"long"},"Price":{"locationName":"price","type":"double"},"CurrencyCode":{"locationName":"currencyCode"}}}},"ClientToken":{"locationName":"clientToken"}}},"output":{"type":"structure","members":{"ReservedInstancesListings":{"shape":"S1v","locationName":"reservedInstancesListingsSet"}}},"http":{}},"CreateRoute":{"input":{"type":"structure","required":["RouteTableId","DestinationCidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"RouteTableId":{"locationName":"routeTableId"},"DestinationCidrBlock":{"locationName":"destinationCidrBlock"},"GatewayId":{"locationName":"gatewayId"},"InstanceId":{"locationName":"instanceId"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"},"NatGatewayId":{"locationName":"natGatewayId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"CreateRouteTable":{"input":{"type":"structure","required":["VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{"locationName":"vpcId"}}},"output":{"type":"structure","members":{"RouteTable":{"shape":"S55","locationName":"routeTable"}}},"http":{}},"CreateSecurityGroup":{"input":{"type":"structure","required":["GroupName","Description"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupName":{},"Description":{"locationName":"GroupDescription"},"VpcId":{}}},"output":{"type":"structure","members":{"GroupId":{"locationName":"groupId"}}},"http":{}},"CreateSnapshot":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{},"Description":{}}},"output":{"shape":"S5h"},"http":{}},"CreateSpotDatafeedSubscription":{"input":{"type":"structure","required":["Bucket"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Bucket":{"locationName":"bucket"},"Prefix":{"locationName":"prefix"}}},"output":{"type":"structure","members":{"SpotDatafeedSubscription":{"shape":"S5l","locationName":"spotDatafeedSubscription"}}},"http":{}},"CreateSubnet":{"input":{"type":"structure","required":["VpcId","CidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{},"CidrBlock":{},"AvailabilityZone":{}}},"output":{"type":"structure","members":{"Subnet":{"shape":"S5q","locationName":"subnet"}}},"http":{}},"CreateTags":{"input":{"type":"structure","required":["Resources","Tags"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Resources":{"shape":"S5t","locationName":"ResourceId"},"Tags":{"shape":"Sb","locationName":"Tag"}}},"http":{}},"CreateVolume":{"input":{"type":"structure","required":["AvailabilityZone"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Size":{"type":"integer"},"SnapshotId":{},"AvailabilityZone":{},"VolumeType":{},"Iops":{"type":"integer"},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{}}},"output":{"shape":"S5v"},"http":{}},"CreateVpc":{"input":{"type":"structure","required":["CidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"CidrBlock":{},"InstanceTenancy":{"locationName":"instanceTenancy"}}},"output":{"type":"structure","members":{"Vpc":{"shape":"S61","locationName":"vpc"}}},"http":{}},"CreateVpcEndpoint":{"input":{"type":"structure","required":["VpcId","ServiceName"],"members":{"DryRun":{"type":"boolean"},"VpcId":{},"ServiceName":{},"PolicyDocument":{},"RouteTableIds":{"shape":"S27","locationName":"RouteTableId"},"ClientToken":{}}},"output":{"type":"structure","members":{"VpcEndpoint":{"shape":"S65","locationName":"vpcEndpoint"},"ClientToken":{"locationName":"clientToken"}}},"http":{}},"CreateVpcPeeringConnection":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{"locationName":"vpcId"},"PeerVpcId":{"locationName":"peerVpcId"},"PeerOwnerId":{"locationName":"peerOwnerId"}}},"output":{"type":"structure","members":{"VpcPeeringConnection":{"shape":"S5","locationName":"vpcPeeringConnection"}}},"http":{}},"CreateVpnConnection":{"input":{"type":"structure","required":["Type","CustomerGatewayId","VpnGatewayId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Type":{},"CustomerGatewayId":{},"VpnGatewayId":{},"Options":{"locationName":"options","type":"structure","members":{"StaticRoutesOnly":{"locationName":"staticRoutesOnly","type":"boolean"}}}}},"output":{"type":"structure","members":{"VpnConnection":{"shape":"S6c","locationName":"vpnConnection"}}},"http":{}},"CreateVpnConnectionRoute":{"input":{"type":"structure","required":["VpnConnectionId","DestinationCidrBlock"],"members":{"VpnConnectionId":{},"DestinationCidrBlock":{}}},"http":{}},"CreateVpnGateway":{"input":{"type":"structure","required":["Type"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Type":{},"AvailabilityZone":{}}},"output":{"type":"structure","members":{"VpnGateway":{"shape":"S6o","locationName":"vpnGateway"}}},"http":{}},"DeleteCustomerGateway":{"input":{"type":"structure","required":["CustomerGatewayId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"CustomerGatewayId":{}}},"http":{}},"DeleteDhcpOptions":{"input":{"type":"structure","required":["DhcpOptionsId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"DhcpOptionsId":{}}},"http":{}},"DeleteFlowLogs":{"input":{"type":"structure","required":["FlowLogIds"],"members":{"FlowLogIds":{"shape":"S27","locationName":"FlowLogId"}}},"output":{"type":"structure","members":{"Unsuccessful":{"shape":"S39","locationName":"unsuccessful"}}},"http":{}},"DeleteInternetGateway":{"input":{"type":"structure","required":["InternetGatewayId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InternetGatewayId":{"locationName":"internetGatewayId"}}},"http":{}},"DeleteKeyPair":{"input":{"type":"structure","required":["KeyName"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"KeyName":{}}},"http":{}},"DeleteNatGateway":{"input":{"type":"structure","required":["NatGatewayId"],"members":{"NatGatewayId":{}}},"output":{"type":"structure","members":{"NatGatewayId":{"locationName":"natGatewayId"}}},"http":{}},"DeleteNetworkAcl":{"input":{"type":"structure","required":["NetworkAclId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkAclId":{"locationName":"networkAclId"}}},"http":{}},"DeleteNetworkAclEntry":{"input":{"type":"structure","required":["NetworkAclId","RuleNumber","Egress"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkAclId":{"locationName":"networkAclId"},"RuleNumber":{"locationName":"ruleNumber","type":"integer"},"Egress":{"locationName":"egress","type":"boolean"}}},"http":{}},"DeleteNetworkInterface":{"input":{"type":"structure","required":["NetworkInterfaceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"}}},"http":{}},"DeletePlacementGroup":{"input":{"type":"structure","required":["GroupName"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupName":{"locationName":"groupName"}}},"http":{}},"DeleteRoute":{"input":{"type":"structure","required":["RouteTableId","DestinationCidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"RouteTableId":{"locationName":"routeTableId"},"DestinationCidrBlock":{"locationName":"destinationCidrBlock"}}},"http":{}},"DeleteRouteTable":{"input":{"type":"structure","required":["RouteTableId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"RouteTableId":{"locationName":"routeTableId"}}},"http":{}},"DeleteSecurityGroup":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupName":{},"GroupId":{}}},"http":{}},"DeleteSnapshot":{"input":{"type":"structure","required":["SnapshotId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SnapshotId":{}}},"http":{}},"DeleteSpotDatafeedSubscription":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"}}},"http":{}},"DeleteSubnet":{"input":{"type":"structure","required":["SubnetId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SubnetId":{}}},"http":{}},"DeleteTags":{"input":{"type":"structure","required":["Resources"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Resources":{"shape":"S5t","locationName":"resourceId"},"Tags":{"shape":"Sb","locationName":"tag"}}},"http":{}},"DeleteVolume":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{}}},"http":{}},"DeleteVpc":{"input":{"type":"structure","required":["VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{}}},"http":{}},"DeleteVpcEndpoints":{"input":{"type":"structure","required":["VpcEndpointIds"],"members":{"DryRun":{"type":"boolean"},"VpcEndpointIds":{"shape":"S27","locationName":"VpcEndpointId"}}},"output":{"type":"structure","members":{"Unsuccessful":{"shape":"S39","locationName":"unsuccessful"}}},"http":{}},"DeleteVpcPeeringConnection":{"input":{"type":"structure","required":["VpcPeeringConnectionId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"DeleteVpnConnection":{"input":{"type":"structure","required":["VpnConnectionId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnConnectionId":{}}},"http":{}},"DeleteVpnConnectionRoute":{"input":{"type":"structure","required":["VpnConnectionId","DestinationCidrBlock"],"members":{"VpnConnectionId":{},"DestinationCidrBlock":{}}},"http":{}},"DeleteVpnGateway":{"input":{"type":"structure","required":["VpnGatewayId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnGatewayId":{}}},"http":{}},"DeregisterImage":{"input":{"type":"structure","required":["ImageId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageId":{}}},"http":{}},"DescribeAccountAttributes":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"AttributeNames":{"locationName":"attributeName","type":"list","member":{"locationName":"attributeName"}}}},"output":{"type":"structure","members":{"AccountAttributes":{"locationName":"accountAttributeSet","type":"list","member":{"locationName":"item","type":"structure","members":{"AttributeName":{"locationName":"attributeName"},"AttributeValues":{"locationName":"attributeValueSet","type":"list","member":{"locationName":"item","type":"structure","members":{"AttributeValue":{"locationName":"attributeValue"}}}}}}}}},"http":{}},"DescribeAddresses":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"PublicIps":{"locationName":"PublicIp","type":"list","member":{"locationName":"PublicIp"}},"Filters":{"shape":"S7t","locationName":"Filter"},"AllocationIds":{"locationName":"AllocationId","type":"list","member":{"locationName":"AllocationId"}}}},"output":{"type":"structure","members":{"Addresses":{"locationName":"addressesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"PublicIp":{"locationName":"publicIp"},"AllocationId":{"locationName":"allocationId"},"AssociationId":{"locationName":"associationId"},"Domain":{"locationName":"domain"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"NetworkInterfaceOwnerId":{"locationName":"networkInterfaceOwnerId"},"PrivateIpAddress":{"locationName":"privateIpAddress"}}}}}},"http":{}},"DescribeAvailabilityZones":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ZoneNames":{"locationName":"ZoneName","type":"list","member":{"locationName":"ZoneName"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"AvailabilityZones":{"locationName":"availabilityZoneInfo","type":"list","member":{"locationName":"item","type":"structure","members":{"ZoneName":{"locationName":"zoneName"},"State":{"locationName":"zoneState"},"RegionName":{"locationName":"regionName"},"Messages":{"locationName":"messageSet","type":"list","member":{"locationName":"item","type":"structure","members":{"Message":{"locationName":"message"}}}}}}}}},"http":{}},"DescribeBundleTasks":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"BundleIds":{"locationName":"BundleId","type":"list","member":{"locationName":"BundleId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"BundleTasks":{"locationName":"bundleInstanceTasksSet","type":"list","member":{"shape":"S1k","locationName":"item"}}}},"http":{}},"DescribeClassicLinkInstances":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"},"Filters":{"shape":"S7t","locationName":"Filter"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"Instances":{"locationName":"instancesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"VpcId":{"locationName":"vpcId"},"Groups":{"shape":"S4o","locationName":"groupSet"},"Tags":{"shape":"Sb","locationName":"tagSet"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeConversionTasks":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Filters":{"shape":"S7t","locationName":"filter"},"ConversionTaskIds":{"locationName":"conversionTaskId","type":"list","member":{"locationName":"item"}}}},"output":{"type":"structure","members":{"ConversionTasks":{"locationName":"conversionTasks","type":"list","member":{"shape":"S8k","locationName":"item"}}}},"http":{}},"DescribeCustomerGateways":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"CustomerGatewayIds":{"locationName":"CustomerGatewayId","type":"list","member":{"locationName":"CustomerGatewayId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"CustomerGateways":{"locationName":"customerGatewaySet","type":"list","member":{"shape":"S2v","locationName":"item"}}}},"http":{}},"DescribeDhcpOptions":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"DhcpOptionsIds":{"locationName":"DhcpOptionsId","type":"list","member":{"locationName":"DhcpOptionsId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"DhcpOptions":{"locationName":"dhcpOptionsSet","type":"list","member":{"shape":"S30","locationName":"item"}}}},"http":{}},"DescribeExportTasks":{"input":{"type":"structure","members":{"ExportTaskIds":{"locationName":"exportTaskId","type":"list","member":{"locationName":"ExportTaskId"}}}},"output":{"type":"structure","members":{"ExportTasks":{"locationName":"exportTaskSet","type":"list","member":{"shape":"S3o","locationName":"item"}}}},"http":{}},"DescribeFlowLogs":{"input":{"type":"structure","members":{"FlowLogIds":{"shape":"S27","locationName":"FlowLogId"},"Filter":{"shape":"S7t"},"NextToken":{},"MaxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"FlowLogs":{"locationName":"flowLogSet","type":"list","member":{"locationName":"item","type":"structure","members":{"CreationTime":{"locationName":"creationTime","type":"timestamp"},"FlowLogId":{"locationName":"flowLogId"},"FlowLogStatus":{"locationName":"flowLogStatus"},"ResourceId":{"locationName":"resourceId"},"TrafficType":{"locationName":"trafficType"},"LogGroupName":{"locationName":"logGroupName"},"DeliverLogsStatus":{"locationName":"deliverLogsStatus"},"DeliverLogsErrorMessage":{"locationName":"deliverLogsErrorMessage"},"DeliverLogsPermissionArn":{"locationName":"deliverLogsPermissionArn"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeHosts":{"input":{"type":"structure","members":{"HostIds":{"shape":"S9a","locationName":"hostId"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"},"Filter":{"shape":"S7t","locationName":"filter"}}},"output":{"type":"structure","members":{"Hosts":{"locationName":"hostSet","type":"list","member":{"locationName":"item","type":"structure","members":{"HostId":{"locationName":"hostId"},"AutoPlacement":{"locationName":"autoPlacement"},"HostReservationId":{"locationName":"hostReservationId"},"ClientToken":{"locationName":"clientToken"},"HostProperties":{"locationName":"hostProperties","type":"structure","members":{"Sockets":{"locationName":"sockets","type":"integer"},"Cores":{"locationName":"cores","type":"integer"},"TotalVCpus":{"locationName":"totalVCpus","type":"integer"},"InstanceType":{"locationName":"instanceType"}}},"State":{"locationName":"state"},"AvailabilityZone":{"locationName":"availabilityZone"},"Instances":{"locationName":"instances","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"InstanceType":{"locationName":"instanceType"}}}},"AvailableCapacity":{"locationName":"availableCapacity","type":"structure","members":{"AvailableInstanceCapacity":{"locationName":"availableInstanceCapacity","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceType":{"locationName":"instanceType"},"AvailableCapacity":{"locationName":"availableCapacity","type":"integer"},"TotalCapacity":{"locationName":"totalCapacity","type":"integer"}}}},"AvailableVCpus":{"locationName":"availableVCpus","type":"integer"}}}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeIdFormat":{"input":{"type":"structure","members":{"Resource":{}}},"output":{"type":"structure","members":{"Statuses":{"locationName":"statusSet","type":"list","member":{"locationName":"item","type":"structure","members":{"Resource":{"locationName":"resource"},"UseLongIds":{"locationName":"useLongIds","type":"boolean"},"Deadline":{"locationName":"deadline","type":"timestamp"}}}}}},"http":{}},"DescribeImageAttribute":{"input":{"type":"structure","required":["ImageId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageId":{},"Attribute":{}}},"output":{"type":"structure","members":{"ImageId":{"locationName":"imageId"},"LaunchPermissions":{"shape":"S9s","locationName":"launchPermission"},"ProductCodes":{"shape":"S9v","locationName":"productCodes"},"KernelId":{"shape":"S34","locationName":"kernel"},"RamdiskId":{"shape":"S34","locationName":"ramdisk"},"Description":{"shape":"S34","locationName":"description"},"SriovNetSupport":{"shape":"S34","locationName":"sriovNetSupport"},"BlockDeviceMappings":{"shape":"S9y","locationName":"blockDeviceMapping"}}},"http":{}},"DescribeImages":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageIds":{"locationName":"ImageId","type":"list","member":{"locationName":"ImageId"}},"Owners":{"shape":"Sa1","locationName":"Owner"},"ExecutableUsers":{"locationName":"ExecutableBy","type":"list","member":{"locationName":"ExecutableBy"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"Images":{"locationName":"imagesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ImageId":{"locationName":"imageId"},"ImageLocation":{"locationName":"imageLocation"},"State":{"locationName":"imageState"},"OwnerId":{"locationName":"imageOwnerId"},"CreationDate":{"locationName":"creationDate"},"Public":{"locationName":"isPublic","type":"boolean"},"ProductCodes":{"shape":"S9v","locationName":"productCodes"},"Architecture":{"locationName":"architecture"},"ImageType":{"locationName":"imageType"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"Platform":{"locationName":"platform"},"SriovNetSupport":{"locationName":"sriovNetSupport"},"StateReason":{"shape":"Sa9","locationName":"stateReason"},"ImageOwnerAlias":{"locationName":"imageOwnerAlias"},"Name":{"locationName":"name"},"Description":{"locationName":"description"},"RootDeviceType":{"locationName":"rootDeviceType"},"RootDeviceName":{"locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"S9y","locationName":"blockDeviceMapping"},"VirtualizationType":{"locationName":"virtualizationType"},"Tags":{"shape":"Sb","locationName":"tagSet"},"Hypervisor":{"locationName":"hypervisor"}}}}}},"http":{}},"DescribeImportImageTasks":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"ImportTaskIds":{"shape":"Sae","locationName":"ImportTaskId"},"NextToken":{},"MaxResults":{"type":"integer"},"Filters":{"shape":"S7t"}}},"output":{"type":"structure","members":{"ImportImageTasks":{"locationName":"importImageTaskSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"Architecture":{"locationName":"architecture"},"LicenseType":{"locationName":"licenseType"},"Platform":{"locationName":"platform"},"Hypervisor":{"locationName":"hypervisor"},"Description":{"locationName":"description"},"SnapshotDetails":{"shape":"Sai","locationName":"snapshotDetailSet"},"ImageId":{"locationName":"imageId"},"Progress":{"locationName":"progress"},"StatusMessage":{"locationName":"statusMessage"},"Status":{"locationName":"status"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeImportSnapshotTasks":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"ImportTaskIds":{"shape":"Sae","locationName":"ImportTaskId"},"NextToken":{},"MaxResults":{"type":"integer"},"Filters":{"shape":"S7t"}}},"output":{"type":"structure","members":{"ImportSnapshotTasks":{"locationName":"importSnapshotTaskSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"SnapshotTaskDetail":{"shape":"Sap","locationName":"snapshotTaskDetail"},"Description":{"locationName":"description"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeInstanceAttribute":{"input":{"type":"structure","required":["InstanceId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{"locationName":"instanceId"},"Attribute":{"locationName":"attribute"}}},"output":{"type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"InstanceType":{"shape":"S34","locationName":"instanceType"},"KernelId":{"shape":"S34","locationName":"kernel"},"RamdiskId":{"shape":"S34","locationName":"ramdisk"},"UserData":{"shape":"S34","locationName":"userData"},"DisableApiTermination":{"shape":"Sat","locationName":"disableApiTermination"},"InstanceInitiatedShutdownBehavior":{"shape":"S34","locationName":"instanceInitiatedShutdownBehavior"},"RootDeviceName":{"shape":"S34","locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"Sau","locationName":"blockDeviceMapping"},"ProductCodes":{"shape":"S9v","locationName":"productCodes"},"EbsOptimized":{"shape":"Sat","locationName":"ebsOptimized"},"SriovNetSupport":{"shape":"S34","locationName":"sriovNetSupport"},"SourceDestCheck":{"shape":"Sat","locationName":"sourceDestCheck"},"Groups":{"shape":"S4o","locationName":"groupSet"}}},"http":{}},"DescribeInstanceStatus":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"},"Filters":{"shape":"S7t","locationName":"Filter"},"NextToken":{},"MaxResults":{"type":"integer"},"IncludeAllInstances":{"locationName":"includeAllInstances","type":"boolean"}}},"output":{"type":"structure","members":{"InstanceStatuses":{"locationName":"instanceStatusSet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"AvailabilityZone":{"locationName":"availabilityZone"},"Events":{"locationName":"eventsSet","type":"list","member":{"locationName":"item","type":"structure","members":{"Code":{"locationName":"code"},"Description":{"locationName":"description"},"NotBefore":{"locationName":"notBefore","type":"timestamp"},"NotAfter":{"locationName":"notAfter","type":"timestamp"}}}},"InstanceState":{"shape":"Sb4","locationName":"instanceState"},"SystemStatus":{"shape":"Sb6","locationName":"systemStatus"},"InstanceStatus":{"shape":"Sb6","locationName":"instanceStatus"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeInstances":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"},"Filters":{"shape":"S7t","locationName":"Filter"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"Reservations":{"locationName":"reservationSet","type":"list","member":{"shape":"Sbf","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeInternetGateways":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InternetGatewayIds":{"shape":"S27","locationName":"internetGatewayId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"InternetGateways":{"locationName":"internetGatewaySet","type":"list","member":{"shape":"S3u","locationName":"item"}}}},"http":{}},"DescribeKeyPairs":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"KeyNames":{"locationName":"KeyName","type":"list","member":{"locationName":"KeyName"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"KeyPairs":{"locationName":"keySet","type":"list","member":{"locationName":"item","type":"structure","members":{"KeyName":{"locationName":"keyName"},"KeyFingerprint":{"locationName":"keyFingerprint"}}}}}},"http":{}},"DescribeMovingAddresses":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"PublicIps":{"shape":"S27","locationName":"publicIp"},"NextToken":{"locationName":"nextToken"},"Filters":{"shape":"S7t","locationName":"filter"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"MovingAddressStatuses":{"locationName":"movingAddressStatusSet","type":"list","member":{"locationName":"item","type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"MoveStatus":{"locationName":"moveStatus"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeNatGateways":{"input":{"type":"structure","members":{"NatGatewayIds":{"shape":"S27","locationName":"NatGatewayId"},"Filter":{"shape":"S7t"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"NatGateways":{"locationName":"natGatewaySet","type":"list","member":{"shape":"S41","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeNetworkAcls":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkAclIds":{"shape":"S27","locationName":"NetworkAclId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"NetworkAcls":{"locationName":"networkAclSet","type":"list","member":{"shape":"S48","locationName":"item"}}}},"http":{}},"DescribeNetworkInterfaceAttribute":{"input":{"type":"structure","required":["NetworkInterfaceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"Attribute":{"locationName":"attribute"}}},"output":{"type":"structure","members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"Description":{"shape":"S34","locationName":"description"},"SourceDestCheck":{"shape":"Sat","locationName":"sourceDestCheck"},"Groups":{"shape":"S4o","locationName":"groupSet"},"Attachment":{"shape":"S4q","locationName":"attachment"}}},"http":{}},"DescribeNetworkInterfaces":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceIds":{"locationName":"NetworkInterfaceId","type":"list","member":{"locationName":"item"}},"Filters":{"shape":"S7t","locationName":"filter"}}},"output":{"type":"structure","members":{"NetworkInterfaces":{"locationName":"networkInterfaceSet","type":"list","member":{"shape":"S4m","locationName":"item"}}}},"http":{}},"DescribePlacementGroups":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupNames":{"locationName":"groupName","type":"list","member":{}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"PlacementGroups":{"locationName":"placementGroupSet","type":"list","member":{"locationName":"item","type":"structure","members":{"GroupName":{"locationName":"groupName"},"Strategy":{"locationName":"strategy"},"State":{"locationName":"state"}}}}}},"http":{}},"DescribePrefixLists":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"PrefixListIds":{"shape":"S27","locationName":"PrefixListId"},"Filters":{"shape":"S7t","locationName":"Filter"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"PrefixLists":{"locationName":"prefixListSet","type":"list","member":{"locationName":"item","type":"structure","members":{"PrefixListId":{"locationName":"prefixListId"},"PrefixListName":{"locationName":"prefixListName"},"Cidrs":{"shape":"S27","locationName":"cidrSet"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeRegions":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"RegionNames":{"locationName":"RegionName","type":"list","member":{"locationName":"RegionName"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"Regions":{"locationName":"regionInfo","type":"list","member":{"locationName":"item","type":"structure","members":{"RegionName":{"locationName":"regionName"},"Endpoint":{"locationName":"regionEndpoint"}}}}}},"http":{}},"DescribeReservedInstances":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ReservedInstancesIds":{"shape":"Sd0","locationName":"ReservedInstancesId"},"Filters":{"shape":"S7t","locationName":"Filter"},"OfferingType":{"locationName":"offeringType"}}},"output":{"type":"structure","members":{"ReservedInstances":{"locationName":"reservedInstancesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"},"InstanceType":{"locationName":"instanceType"},"AvailabilityZone":{"locationName":"availabilityZone"},"Start":{"locationName":"start","type":"timestamp"},"End":{"locationName":"end","type":"timestamp"},"Duration":{"locationName":"duration","type":"long"},"UsagePrice":{"locationName":"usagePrice","type":"float"},"FixedPrice":{"locationName":"fixedPrice","type":"float"},"InstanceCount":{"locationName":"instanceCount","type":"integer"},"ProductDescription":{"locationName":"productDescription"},"State":{"locationName":"state"},"Tags":{"shape":"Sb","locationName":"tagSet"},"InstanceTenancy":{"locationName":"instanceTenancy"},"CurrencyCode":{"locationName":"currencyCode"},"OfferingType":{"locationName":"offeringType"},"RecurringCharges":{"shape":"Sd8","locationName":"recurringCharges"}}}}}},"http":{}},"DescribeReservedInstancesListings":{"input":{"type":"structure","members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"},"ReservedInstancesListingId":{"locationName":"reservedInstancesListingId"},"Filters":{"shape":"S7t","locationName":"filters"}}},"output":{"type":"structure","members":{"ReservedInstancesListings":{"shape":"S1v","locationName":"reservedInstancesListingsSet"}}},"http":{}},"DescribeReservedInstancesModifications":{"input":{"type":"structure","members":{"ReservedInstancesModificationIds":{"locationName":"ReservedInstancesModificationId","type":"list","member":{"locationName":"ReservedInstancesModificationId"}},"NextToken":{"locationName":"nextToken"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"ReservedInstancesModifications":{"locationName":"reservedInstancesModificationsSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ReservedInstancesModificationId":{"locationName":"reservedInstancesModificationId"},"ReservedInstancesIds":{"locationName":"reservedInstancesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"}}}},"ModificationResults":{"locationName":"modificationResultSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"},"TargetConfiguration":{"shape":"Sdm","locationName":"targetConfiguration"}}}},"CreateDate":{"locationName":"createDate","type":"timestamp"},"UpdateDate":{"locationName":"updateDate","type":"timestamp"},"EffectiveDate":{"locationName":"effectiveDate","type":"timestamp"},"Status":{"locationName":"status"},"StatusMessage":{"locationName":"statusMessage"},"ClientToken":{"locationName":"clientToken"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeReservedInstancesOfferings":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ReservedInstancesOfferingIds":{"locationName":"ReservedInstancesOfferingId","type":"list","member":{}},"InstanceType":{},"AvailabilityZone":{},"ProductDescription":{},"Filters":{"shape":"S7t","locationName":"Filter"},"InstanceTenancy":{"locationName":"instanceTenancy"},"OfferingType":{"locationName":"offeringType"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"},"IncludeMarketplace":{"type":"boolean"},"MinDuration":{"type":"long"},"MaxDuration":{"type":"long"},"MaxInstanceCount":{"type":"integer"}}},"output":{"type":"structure","members":{"ReservedInstancesOfferings":{"locationName":"reservedInstancesOfferingsSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ReservedInstancesOfferingId":{"locationName":"reservedInstancesOfferingId"},"InstanceType":{"locationName":"instanceType"},"AvailabilityZone":{"locationName":"availabilityZone"},"Duration":{"locationName":"duration","type":"long"},"UsagePrice":{"locationName":"usagePrice","type":"float"},"FixedPrice":{"locationName":"fixedPrice","type":"float"},"ProductDescription":{"locationName":"productDescription"},"InstanceTenancy":{"locationName":"instanceTenancy"},"CurrencyCode":{"locationName":"currencyCode"},"OfferingType":{"locationName":"offeringType"},"RecurringCharges":{"shape":"Sd8","locationName":"recurringCharges"},"Marketplace":{"locationName":"marketplace","type":"boolean"},"PricingDetails":{"locationName":"pricingDetailsSet","type":"list","member":{"locationName":"item","type":"structure","members":{"Price":{"locationName":"price","type":"double"},"Count":{"locationName":"count","type":"integer"}}}}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeRouteTables":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"RouteTableIds":{"shape":"S27","locationName":"RouteTableId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"RouteTables":{"locationName":"routeTableSet","type":"list","member":{"shape":"S55","locationName":"item"}}}},"http":{}},"DescribeScheduledInstanceAvailability":{"input":{"type":"structure","required":["Recurrence","FirstSlotStartTimeRange"],"members":{"DryRun":{"type":"boolean"},"Recurrence":{"type":"structure","members":{"Frequency":{},"Interval":{"type":"integer"},"OccurrenceDays":{"locationName":"OccurrenceDay","type":"list","member":{"locationName":"OccurenceDay","type":"integer"}},"OccurrenceRelativeToEnd":{"type":"boolean"},"OccurrenceUnit":{}}},"FirstSlotStartTimeRange":{"type":"structure","required":["EarliestTime","LatestTime"],"members":{"EarliestTime":{"type":"timestamp"},"LatestTime":{"type":"timestamp"}}},"MinSlotDurationInHours":{"type":"integer"},"MaxSlotDurationInHours":{"type":"integer"},"NextToken":{},"MaxResults":{"type":"integer"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"NextToken":{"locationName":"nextToken"},"ScheduledInstanceAvailabilitySet":{"locationName":"scheduledInstanceAvailabilitySet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceType":{"locationName":"instanceType"},"Platform":{"locationName":"platform"},"NetworkPlatform":{"locationName":"networkPlatform"},"AvailabilityZone":{"locationName":"availabilityZone"},"PurchaseToken":{"locationName":"purchaseToken"},"SlotDurationInHours":{"locationName":"slotDurationInHours","type":"integer"},"Recurrence":{"shape":"Se4","locationName":"recurrence"},"FirstSlotStartTime":{"locationName":"firstSlotStartTime","type":"timestamp"},"HourlyPrice":{"locationName":"hourlyPrice"},"TotalScheduledInstanceHours":{"locationName":"totalScheduledInstanceHours","type":"integer"},"AvailableInstanceCount":{"locationName":"availableInstanceCount","type":"integer"},"MinTermDurationInDays":{"locationName":"minTermDurationInDays","type":"integer"},"MaxTermDurationInDays":{"locationName":"maxTermDurationInDays","type":"integer"}}}}}},"http":{}},"DescribeScheduledInstances":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"ScheduledInstanceIds":{"locationName":"ScheduledInstanceId","type":"list","member":{"locationName":"ScheduledInstanceId"}},"SlotStartTimeRange":{"type":"structure","members":{"EarliestTime":{"type":"timestamp"},"LatestTime":{"type":"timestamp"}}},"NextToken":{},"MaxResults":{"type":"integer"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"NextToken":{"locationName":"nextToken"},"ScheduledInstanceSet":{"locationName":"scheduledInstanceSet","type":"list","member":{"shape":"Seb","locationName":"item"}}}},"http":{}},"DescribeSecurityGroupReferences":{"input":{"type":"structure","required":["GroupId"],"members":{"DryRun":{"type":"boolean"},"GroupId":{"type":"list","member":{"locationName":"item"}}}},"output":{"type":"structure","members":{"SecurityGroupReferenceSet":{"locationName":"securityGroupReferenceSet","type":"list","member":{"locationName":"item","type":"structure","required":["GroupId","ReferencingVpcId"],"members":{"GroupId":{"locationName":"groupId"},"ReferencingVpcId":{"locationName":"referencingVpcId"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"}}}}}},"http":{}},"DescribeSecurityGroups":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupNames":{"shape":"Sei","locationName":"GroupName"},"GroupIds":{"shape":"St","locationName":"GroupId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"SecurityGroups":{"locationName":"securityGroupInfo","type":"list","member":{"locationName":"item","type":"structure","members":{"OwnerId":{"locationName":"ownerId"},"GroupName":{"locationName":"groupName"},"GroupId":{"locationName":"groupId"},"Description":{"locationName":"groupDescription"},"IpPermissions":{"shape":"S16","locationName":"ipPermissions"},"IpPermissionsEgress":{"shape":"S16","locationName":"ipPermissionsEgress"},"VpcId":{"locationName":"vpcId"},"Tags":{"shape":"Sb","locationName":"tagSet"}}}}}},"http":{}},"DescribeSnapshotAttribute":{"input":{"type":"structure","required":["SnapshotId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SnapshotId":{},"Attribute":{}}},"output":{"type":"structure","members":{"SnapshotId":{"locationName":"snapshotId"},"CreateVolumePermissions":{"shape":"Sep","locationName":"createVolumePermission"},"ProductCodes":{"shape":"S9v","locationName":"productCodes"}}},"http":{}},"DescribeSnapshots":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SnapshotIds":{"locationName":"SnapshotId","type":"list","member":{"locationName":"SnapshotId"}},"OwnerIds":{"shape":"Sa1","locationName":"Owner"},"RestorableByUserIds":{"locationName":"RestorableBy","type":"list","member":{}},"Filters":{"shape":"S7t","locationName":"Filter"},"NextToken":{},"MaxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"Snapshots":{"locationName":"snapshotSet","type":"list","member":{"shape":"S5h","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSpotDatafeedSubscription":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"SpotDatafeedSubscription":{"shape":"S5l","locationName":"spotDatafeedSubscription"}}},"http":{}},"DescribeSpotFleetInstances":{"input":{"type":"structure","required":["SpotFleetRequestId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","required":["SpotFleetRequestId","ActiveInstances"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"ActiveInstances":{"locationName":"activeInstanceSet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceType":{"locationName":"instanceType"},"InstanceId":{"locationName":"instanceId"},"SpotInstanceRequestId":{"locationName":"spotInstanceRequestId"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSpotFleetRequestHistory":{"input":{"type":"structure","required":["SpotFleetRequestId","StartTime"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"EventType":{"locationName":"eventType"},"StartTime":{"locationName":"startTime","type":"timestamp"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","required":["SpotFleetRequestId","StartTime","LastEvaluatedTime","HistoryRecords"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"StartTime":{"locationName":"startTime","type":"timestamp"},"LastEvaluatedTime":{"locationName":"lastEvaluatedTime","type":"timestamp"},"HistoryRecords":{"locationName":"historyRecordSet","type":"list","member":{"locationName":"item","type":"structure","required":["Timestamp","EventType","EventInformation"],"members":{"Timestamp":{"locationName":"timestamp","type":"timestamp"},"EventType":{"locationName":"eventType"},"EventInformation":{"locationName":"eventInformation","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"EventSubType":{"locationName":"eventSubType"},"EventDescription":{"locationName":"eventDescription"}}}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSpotFleetRequests":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotFleetRequestIds":{"shape":"S27","locationName":"spotFleetRequestId"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","required":["SpotFleetRequestConfigs"],"members":{"SpotFleetRequestConfigs":{"locationName":"spotFleetRequestConfigSet","type":"list","member":{"locationName":"item","type":"structure","required":["SpotFleetRequestId","SpotFleetRequestState","SpotFleetRequestConfig","CreateTime"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"SpotFleetRequestState":{"locationName":"spotFleetRequestState"},"SpotFleetRequestConfig":{"shape":"Sfc","locationName":"spotFleetRequestConfig"},"CreateTime":{"locationName":"createTime","type":"timestamp"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSpotInstanceRequests":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotInstanceRequestIds":{"shape":"S2h","locationName":"SpotInstanceRequestId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"SpotInstanceRequests":{"shape":"Sfp","locationName":"spotInstanceRequestSet"}}},"http":{}},"DescribeSpotPriceHistory":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"StartTime":{"locationName":"startTime","type":"timestamp"},"EndTime":{"locationName":"endTime","type":"timestamp"},"InstanceTypes":{"locationName":"InstanceType","type":"list","member":{}},"ProductDescriptions":{"locationName":"ProductDescription","type":"list","member":{}},"Filters":{"shape":"S7t","locationName":"Filter"},"AvailabilityZone":{"locationName":"availabilityZone"},"MaxResults":{"locationName":"maxResults","type":"integer"},"NextToken":{"locationName":"nextToken"}}},"output":{"type":"structure","members":{"SpotPriceHistory":{"locationName":"spotPriceHistorySet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceType":{"locationName":"instanceType"},"ProductDescription":{"locationName":"productDescription"},"SpotPrice":{"locationName":"spotPrice"},"Timestamp":{"locationName":"timestamp","type":"timestamp"},"AvailabilityZone":{"locationName":"availabilityZone"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeStaleSecurityGroups":{"input":{"type":"structure","required":["VpcId"],"members":{"DryRun":{"type":"boolean"},"VpcId":{},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"StaleSecurityGroupSet":{"locationName":"staleSecurityGroupSet","type":"list","member":{"locationName":"item","type":"structure","required":["GroupId"],"members":{"GroupId":{"locationName":"groupId"},"GroupName":{"locationName":"groupName"},"Description":{"locationName":"description"},"VpcId":{"locationName":"vpcId"},"StaleIpPermissions":{"shape":"Sg8","locationName":"staleIpPermissions"},"StaleIpPermissionsEgress":{"shape":"Sg8","locationName":"staleIpPermissionsEgress"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSubnets":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SubnetIds":{"locationName":"SubnetId","type":"list","member":{"locationName":"SubnetId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"Subnets":{"locationName":"subnetSet","type":"list","member":{"shape":"S5q","locationName":"item"}}}},"http":{}},"DescribeTags":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Filters":{"shape":"S7t","locationName":"Filter"},"MaxResults":{"locationName":"maxResults","type":"integer"},"NextToken":{"locationName":"nextToken"}}},"output":{"type":"structure","members":{"Tags":{"locationName":"tagSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ResourceId":{"locationName":"resourceId"},"ResourceType":{"locationName":"resourceType"},"Key":{"locationName":"key"},"Value":{"locationName":"value"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVolumeAttribute":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{},"Attribute":{}}},"output":{"type":"structure","members":{"VolumeId":{"locationName":"volumeId"},"AutoEnableIO":{"shape":"Sat","locationName":"autoEnableIO"},"ProductCodes":{"shape":"S9v","locationName":"productCodes"}}},"http":{}},"DescribeVolumeStatus":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeIds":{"shape":"Sgq","locationName":"VolumeId"},"Filters":{"shape":"S7t","locationName":"Filter"},"NextToken":{},"MaxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"VolumeStatuses":{"locationName":"volumeStatusSet","type":"list","member":{"locationName":"item","type":"structure","members":{"VolumeId":{"locationName":"volumeId"},"AvailabilityZone":{"locationName":"availabilityZone"},"VolumeStatus":{"locationName":"volumeStatus","type":"structure","members":{"Status":{"locationName":"status"},"Details":{"locationName":"details","type":"list","member":{"locationName":"item","type":"structure","members":{"Name":{"locationName":"name"},"Status":{"locationName":"status"}}}}}},"Events":{"locationName":"eventsSet","type":"list","member":{"locationName":"item","type":"structure","members":{"EventType":{"locationName":"eventType"},"Description":{"locationName":"description"},"NotBefore":{"locationName":"notBefore","type":"timestamp"},"NotAfter":{"locationName":"notAfter","type":"timestamp"},"EventId":{"locationName":"eventId"}}}},"Actions":{"locationName":"actionsSet","type":"list","member":{"locationName":"item","type":"structure","members":{"Code":{"locationName":"code"},"Description":{"locationName":"description"},"EventType":{"locationName":"eventType"},"EventId":{"locationName":"eventId"}}}}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVolumes":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeIds":{"shape":"Sgq","locationName":"VolumeId"},"Filters":{"shape":"S7t","locationName":"Filter"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"Volumes":{"locationName":"volumeSet","type":"list","member":{"shape":"S5v","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVpcAttribute":{"input":{"type":"structure","required":["VpcId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{},"Attribute":{}}},"output":{"type":"structure","members":{"VpcId":{"locationName":"vpcId"},"EnableDnsSupport":{"shape":"Sat","locationName":"enableDnsSupport"},"EnableDnsHostnames":{"shape":"Sat","locationName":"enableDnsHostnames"}}},"http":{}},"DescribeVpcClassicLink":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcIds":{"shape":"Sha","locationName":"VpcId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"Vpcs":{"locationName":"vpcSet","type":"list","member":{"locationName":"item","type":"structure","members":{"VpcId":{"locationName":"vpcId"},"ClassicLinkEnabled":{"locationName":"classicLinkEnabled","type":"boolean"},"Tags":{"shape":"Sb","locationName":"tagSet"}}}}}},"http":{}},"DescribeVpcClassicLinkDnsSupport":{"input":{"type":"structure","members":{"VpcIds":{"shape":"Sha"},"MaxResults":{"locationName":"maxResults","type":"integer"},"NextToken":{"locationName":"nextToken"}}},"output":{"type":"structure","members":{"Vpcs":{"locationName":"vpcs","type":"list","member":{"locationName":"item","type":"structure","members":{"VpcId":{"locationName":"vpcId"},"ClassicLinkDnsSupported":{"locationName":"classicLinkDnsSupported","type":"boolean"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVpcEndpointServices":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"ServiceNames":{"shape":"S27","locationName":"serviceNameSet"},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVpcEndpoints":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"VpcEndpointIds":{"shape":"S27","locationName":"VpcEndpointId"},"Filters":{"shape":"S7t","locationName":"Filter"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"VpcEndpoints":{"locationName":"vpcEndpointSet","type":"list","member":{"shape":"S65","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVpcPeeringConnections":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcPeeringConnectionIds":{"shape":"S27","locationName":"VpcPeeringConnectionId"},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"VpcPeeringConnections":{"locationName":"vpcPeeringConnectionSet","type":"list","member":{"shape":"S5","locationName":"item"}}}},"http":{}},"DescribeVpcs":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcIds":{"locationName":"VpcId","type":"list","member":{"locationName":"VpcId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"Vpcs":{"locationName":"vpcSet","type":"list","member":{"shape":"S61","locationName":"item"}}}},"http":{}},"DescribeVpnConnections":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnConnectionIds":{"locationName":"VpnConnectionId","type":"list","member":{"locationName":"VpnConnectionId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"VpnConnections":{"locationName":"vpnConnectionSet","type":"list","member":{"shape":"S6c","locationName":"item"}}}},"http":{}},"DescribeVpnGateways":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnGatewayIds":{"locationName":"VpnGatewayId","type":"list","member":{"locationName":"VpnGatewayId"}},"Filters":{"shape":"S7t","locationName":"Filter"}}},"output":{"type":"structure","members":{"VpnGateways":{"locationName":"vpnGatewaySet","type":"list","member":{"shape":"S6o","locationName":"item"}}}},"http":{}},"DetachClassicLinkVpc":{"input":{"type":"structure","required":["InstanceId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{"locationName":"instanceId"},"VpcId":{"locationName":"vpcId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"DetachInternetGateway":{"input":{"type":"structure","required":["InternetGatewayId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InternetGatewayId":{"locationName":"internetGatewayId"},"VpcId":{"locationName":"vpcId"}}},"http":{}},"DetachNetworkInterface":{"input":{"type":"structure","required":["AttachmentId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"AttachmentId":{"locationName":"attachmentId"},"Force":{"locationName":"force","type":"boolean"}}},"http":{}},"DetachVolume":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{},"InstanceId":{},"Device":{},"Force":{"type":"boolean"}}},"output":{"shape":"Sz"},"http":{}},"DetachVpnGateway":{"input":{"type":"structure","required":["VpnGatewayId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnGatewayId":{},"VpcId":{}}},"http":{}},"DisableVgwRoutePropagation":{"input":{"type":"structure","required":["RouteTableId","GatewayId"],"members":{"RouteTableId":{},"GatewayId":{}}},"http":{}},"DisableVpcClassicLink":{"input":{"type":"structure","required":["VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{"locationName":"vpcId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"DisableVpcClassicLinkDnsSupport":{"input":{"type":"structure","members":{"VpcId":{}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"DisassociateAddress":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"PublicIp":{},"AssociationId":{}}},"http":{}},"DisassociateRouteTable":{"input":{"type":"structure","required":["AssociationId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"AssociationId":{"locationName":"associationId"}}},"http":{}},"EnableVgwRoutePropagation":{"input":{"type":"structure","required":["RouteTableId","GatewayId"],"members":{"RouteTableId":{},"GatewayId":{}}},"http":{}},"EnableVolumeIO":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{"locationName":"volumeId"}}},"http":{}},"EnableVpcClassicLink":{"input":{"type":"structure","required":["VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcId":{"locationName":"vpcId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"EnableVpcClassicLinkDnsSupport":{"input":{"type":"structure","members":{"VpcId":{}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"GetConsoleOutput":{"input":{"type":"structure","required":["InstanceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{}}},"output":{"type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"Timestamp":{"locationName":"timestamp","type":"timestamp"},"Output":{"locationName":"output"}}},"http":{}},"GetConsoleScreenshot":{"input":{"type":"structure","required":["InstanceId"],"members":{"DryRun":{"type":"boolean"},"InstanceId":{},"WakeUp":{"type":"boolean"}}},"output":{"type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"ImageData":{"locationName":"imageData"}}},"http":{}},"GetPasswordData":{"input":{"type":"structure","required":["InstanceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{}}},"output":{"type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"Timestamp":{"locationName":"timestamp","type":"timestamp"},"PasswordData":{"locationName":"passwordData"}}},"http":{}},"ImportImage":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"Description":{},"DiskContainers":{"locationName":"DiskContainer","type":"list","member":{"locationName":"item","type":"structure","members":{"Description":{},"Format":{},"Url":{},"UserBucket":{"shape":"Siu"},"DeviceName":{},"SnapshotId":{}}}},"LicenseType":{},"Hypervisor":{},"Architecture":{},"Platform":{},"ClientData":{"shape":"Siv"},"ClientToken":{},"RoleName":{}}},"output":{"type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"Architecture":{"locationName":"architecture"},"LicenseType":{"locationName":"licenseType"},"Platform":{"locationName":"platform"},"Hypervisor":{"locationName":"hypervisor"},"Description":{"locationName":"description"},"SnapshotDetails":{"shape":"Sai","locationName":"snapshotDetailSet"},"ImageId":{"locationName":"imageId"},"Progress":{"locationName":"progress"},"StatusMessage":{"locationName":"statusMessage"},"Status":{"locationName":"status"}}},"http":{}},"ImportInstance":{"input":{"type":"structure","required":["Platform"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Description":{"locationName":"description"},"LaunchSpecification":{"locationName":"launchSpecification","type":"structure","members":{"Architecture":{"locationName":"architecture"},"GroupNames":{"shape":"Siz","locationName":"GroupName"},"GroupIds":{"shape":"S4i","locationName":"GroupId"},"AdditionalInfo":{"locationName":"additionalInfo"},"UserData":{"locationName":"userData","type":"structure","members":{"Data":{"locationName":"data"}}},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sbj","locationName":"placement"},"Monitoring":{"locationName":"monitoring","type":"boolean"},"SubnetId":{"locationName":"subnetId"},"InstanceInitiatedShutdownBehavior":{"locationName":"instanceInitiatedShutdownBehavior"},"PrivateIpAddress":{"locationName":"privateIpAddress"}}},"DiskImages":{"locationName":"diskImage","type":"list","member":{"type":"structure","members":{"Image":{"shape":"Sj4"},"Description":{},"Volume":{"shape":"Sj5"}}}},"Platform":{"locationName":"platform"}}},"output":{"type":"structure","members":{"ConversionTask":{"shape":"S8k","locationName":"conversionTask"}}},"http":{}},"ImportKeyPair":{"input":{"type":"structure","required":["KeyName","PublicKeyMaterial"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"KeyName":{"locationName":"keyName"},"PublicKeyMaterial":{"locationName":"publicKeyMaterial","type":"blob"}}},"output":{"type":"structure","members":{"KeyName":{"locationName":"keyName"},"KeyFingerprint":{"locationName":"keyFingerprint"}}},"http":{}},"ImportSnapshot":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"Description":{},"DiskContainer":{"type":"structure","members":{"Description":{},"Format":{},"Url":{},"UserBucket":{"shape":"Siu"}}},"ClientData":{"shape":"Siv"},"ClientToken":{},"RoleName":{}}},"output":{"type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"SnapshotTaskDetail":{"shape":"Sap","locationName":"snapshotTaskDetail"},"Description":{"locationName":"description"}}},"http":{}},"ImportVolume":{"input":{"type":"structure","required":["AvailabilityZone","Image","Volume"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"AvailabilityZone":{"locationName":"availabilityZone"},"Image":{"shape":"Sj4","locationName":"image"},"Description":{"locationName":"description"},"Volume":{"shape":"Sj5","locationName":"volume"}}},"output":{"type":"structure","members":{"ConversionTask":{"shape":"S8k","locationName":"conversionTask"}}},"http":{}},"ModifyHosts":{"input":{"type":"structure","required":["HostIds","AutoPlacement"],"members":{"HostIds":{"shape":"S9a","locationName":"hostId"},"AutoPlacement":{"locationName":"autoPlacement"}}},"output":{"type":"structure","members":{"Successful":{"shape":"Sk","locationName":"successful"},"Unsuccessful":{"shape":"Sjg","locationName":"unsuccessful"}}},"http":{}},"ModifyIdFormat":{"input":{"type":"structure","required":["Resource","UseLongIds"],"members":{"Resource":{},"UseLongIds":{"type":"boolean"}}},"http":{}},"ModifyImageAttribute":{"input":{"type":"structure","required":["ImageId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageId":{},"Attribute":{},"OperationType":{},"UserIds":{"shape":"Sjk","locationName":"UserId"},"UserGroups":{"locationName":"UserGroup","type":"list","member":{"locationName":"UserGroup"}},"ProductCodes":{"locationName":"ProductCode","type":"list","member":{"locationName":"ProductCode"}},"Value":{},"LaunchPermission":{"type":"structure","members":{"Add":{"shape":"S9s"},"Remove":{"shape":"S9s"}}},"Description":{"shape":"S34"}}},"http":{}},"ModifyInstanceAttribute":{"input":{"type":"structure","required":["InstanceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{"locationName":"instanceId"},"Attribute":{"locationName":"attribute"},"Value":{"locationName":"value"},"BlockDeviceMappings":{"locationName":"blockDeviceMapping","type":"list","member":{"locationName":"item","type":"structure","members":{"DeviceName":{"locationName":"deviceName"},"Ebs":{"locationName":"ebs","type":"structure","members":{"VolumeId":{"locationName":"volumeId"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"}}},"VirtualName":{"locationName":"virtualName"},"NoDevice":{"locationName":"noDevice"}}}},"SourceDestCheck":{"shape":"Sat"},"DisableApiTermination":{"shape":"Sat","locationName":"disableApiTermination"},"InstanceType":{"shape":"S34","locationName":"instanceType"},"Kernel":{"shape":"S34","locationName":"kernel"},"Ramdisk":{"shape":"S34","locationName":"ramdisk"},"UserData":{"locationName":"userData","type":"structure","members":{"Value":{"locationName":"value","type":"blob"}}},"InstanceInitiatedShutdownBehavior":{"shape":"S34","locationName":"instanceInitiatedShutdownBehavior"},"Groups":{"shape":"St","locationName":"GroupId"},"EbsOptimized":{"shape":"Sat","locationName":"ebsOptimized"},"SriovNetSupport":{"shape":"S34","locationName":"sriovNetSupport"}}},"http":{}},"ModifyInstancePlacement":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{"locationName":"instanceId"},"Tenancy":{"locationName":"tenancy"},"Affinity":{"locationName":"affinity"},"HostId":{"locationName":"hostId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"ModifyNetworkInterfaceAttribute":{"input":{"type":"structure","required":["NetworkInterfaceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"Description":{"shape":"S34","locationName":"description"},"SourceDestCheck":{"shape":"Sat","locationName":"sourceDestCheck"},"Groups":{"shape":"S4i","locationName":"SecurityGroupId"},"Attachment":{"locationName":"attachment","type":"structure","members":{"AttachmentId":{"locationName":"attachmentId"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"}}}}},"http":{}},"ModifyReservedInstances":{"input":{"type":"structure","required":["ReservedInstancesIds","TargetConfigurations"],"members":{"ClientToken":{"locationName":"clientToken"},"ReservedInstancesIds":{"shape":"Sd0","locationName":"ReservedInstancesId"},"TargetConfigurations":{"locationName":"ReservedInstancesConfigurationSetItemType","type":"list","member":{"shape":"Sdm","locationName":"item"}}}},"output":{"type":"structure","members":{"ReservedInstancesModificationId":{"locationName":"reservedInstancesModificationId"}}},"http":{}},"ModifySnapshotAttribute":{"input":{"type":"structure","required":["SnapshotId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SnapshotId":{},"Attribute":{},"OperationType":{},"UserIds":{"shape":"Sjk","locationName":"UserId"},"GroupNames":{"shape":"Sei","locationName":"UserGroup"},"CreateVolumePermission":{"type":"structure","members":{"Add":{"shape":"Sep"},"Remove":{"shape":"Sep"}}}}},"http":{}},"ModifySpotFleetRequest":{"input":{"type":"structure","required":["SpotFleetRequestId"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"},"TargetCapacity":{"locationName":"targetCapacity","type":"integer"},"ExcessCapacityTerminationPolicy":{"locationName":"excessCapacityTerminationPolicy"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"ModifySubnetAttribute":{"input":{"type":"structure","required":["SubnetId"],"members":{"SubnetId":{"locationName":"subnetId"},"MapPublicIpOnLaunch":{"shape":"Sat"}}},"http":{}},"ModifyVolumeAttribute":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{},"AutoEnableIO":{"shape":"Sat"}}},"http":{}},"ModifyVpcAttribute":{"input":{"type":"structure","required":["VpcId"],"members":{"VpcId":{"locationName":"vpcId"},"EnableDnsSupport":{"shape":"Sat"},"EnableDnsHostnames":{"shape":"Sat"}}},"http":{}},"ModifyVpcEndpoint":{"input":{"type":"structure","required":["VpcEndpointId"],"members":{"DryRun":{"type":"boolean"},"VpcEndpointId":{},"ResetPolicy":{"type":"boolean"},"PolicyDocument":{},"AddRouteTableIds":{"shape":"S27","locationName":"AddRouteTableId"},"RemoveRouteTableIds":{"shape":"S27","locationName":"RemoveRouteTableId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"ModifyVpcPeeringConnectionOptions":{"input":{"type":"structure","required":["VpcPeeringConnectionId"],"members":{"DryRun":{"type":"boolean"},"VpcPeeringConnectionId":{},"RequesterPeeringConnectionOptions":{"shape":"Skc"},"AccepterPeeringConnectionOptions":{"shape":"Skc"}}},"output":{"type":"structure","members":{"RequesterPeeringConnectionOptions":{"shape":"Ske","locationName":"requesterPeeringConnectionOptions"},"AccepterPeeringConnectionOptions":{"shape":"Ske","locationName":"accepterPeeringConnectionOptions"}}},"http":{}},"MonitorInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"}}},"output":{"type":"structure","members":{"InstanceMonitorings":{"shape":"Skh","locationName":"instancesSet"}}},"http":{}},"MoveAddressToVpc":{"input":{"type":"structure","required":["PublicIp"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"PublicIp":{"locationName":"publicIp"}}},"output":{"type":"structure","members":{"AllocationId":{"locationName":"allocationId"},"Status":{"locationName":"status"}}},"http":{}},"PurchaseReservedInstancesOffering":{"input":{"type":"structure","required":["ReservedInstancesOfferingId","InstanceCount"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ReservedInstancesOfferingId":{},"InstanceCount":{"type":"integer"},"LimitPrice":{"locationName":"limitPrice","type":"structure","members":{"Amount":{"locationName":"amount","type":"double"},"CurrencyCode":{"locationName":"currencyCode"}}}}},"output":{"type":"structure","members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"}}},"http":{}},"PurchaseScheduledInstances":{"input":{"type":"structure","required":["PurchaseRequests"],"members":{"DryRun":{"type":"boolean"},"ClientToken":{"idempotencyToken":true},"PurchaseRequests":{"locationName":"PurchaseRequest","type":"list","member":{"locationName":"PurchaseRequest","type":"structure","required":["PurchaseToken","InstanceCount"],"members":{"PurchaseToken":{},"InstanceCount":{"type":"integer"}}}}}},"output":{"type":"structure","members":{"ScheduledInstanceSet":{"locationName":"scheduledInstanceSet","type":"list","member":{"shape":"Seb","locationName":"item"}}}},"http":{}},"RebootInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"}}},"http":{}},"RegisterImage":{"input":{"type":"structure","required":["Name"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageLocation":{},"Name":{"locationName":"name"},"Description":{"locationName":"description"},"Architecture":{"locationName":"architecture"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"RootDeviceName":{"locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"S3d","locationName":"BlockDeviceMapping"},"VirtualizationType":{"locationName":"virtualizationType"},"SriovNetSupport":{"locationName":"sriovNetSupport"}}},"output":{"type":"structure","members":{"ImageId":{"locationName":"imageId"}}},"http":{}},"RejectVpcPeeringConnection":{"input":{"type":"structure","required":["VpcPeeringConnectionId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"ReleaseAddress":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"PublicIp":{},"AllocationId":{}}},"http":{}},"ReleaseHosts":{"input":{"type":"structure","required":["HostIds"],"members":{"HostIds":{"shape":"S9a","locationName":"hostId"}}},"output":{"type":"structure","members":{"Successful":{"shape":"Sk","locationName":"successful"},"Unsuccessful":{"shape":"Sjg","locationName":"unsuccessful"}}},"http":{}},"ReplaceNetworkAclAssociation":{"input":{"type":"structure","required":["AssociationId","NetworkAclId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"AssociationId":{"locationName":"associationId"},"NetworkAclId":{"locationName":"networkAclId"}}},"output":{"type":"structure","members":{"NewAssociationId":{"locationName":"newAssociationId"}}},"http":{}},"ReplaceNetworkAclEntry":{"input":{"type":"structure","required":["NetworkAclId","RuleNumber","Protocol","RuleAction","Egress","CidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkAclId":{"locationName":"networkAclId"},"RuleNumber":{"locationName":"ruleNumber","type":"integer"},"Protocol":{"locationName":"protocol"},"RuleAction":{"locationName":"ruleAction"},"Egress":{"locationName":"egress","type":"boolean"},"CidrBlock":{"locationName":"cidrBlock"},"IcmpTypeCode":{"shape":"S4c","locationName":"Icmp"},"PortRange":{"shape":"S4d","locationName":"portRange"}}},"http":{}},"ReplaceRoute":{"input":{"type":"structure","required":["RouteTableId","DestinationCidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"RouteTableId":{"locationName":"routeTableId"},"DestinationCidrBlock":{"locationName":"destinationCidrBlock"},"GatewayId":{"locationName":"gatewayId"},"InstanceId":{"locationName":"instanceId"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"},"NatGatewayId":{"locationName":"natGatewayId"}}},"http":{}},"ReplaceRouteTableAssociation":{"input":{"type":"structure","required":["AssociationId","RouteTableId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"AssociationId":{"locationName":"associationId"},"RouteTableId":{"locationName":"routeTableId"}}},"output":{"type":"structure","members":{"NewAssociationId":{"locationName":"newAssociationId"}}},"http":{}},"ReportInstanceStatus":{"input":{"type":"structure","required":["Instances","Status","ReasonCodes"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Instances":{"shape":"S8c","locationName":"instanceId"},"Status":{"locationName":"status"},"StartTime":{"locationName":"startTime","type":"timestamp"},"EndTime":{"locationName":"endTime","type":"timestamp"},"ReasonCodes":{"locationName":"reasonCode","type":"list","member":{"locationName":"item"}},"Description":{"locationName":"description"}}},"http":{}},"RequestSpotFleet":{"input":{"type":"structure","required":["SpotFleetRequestConfig"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotFleetRequestConfig":{"shape":"Sfc","locationName":"spotFleetRequestConfig"}}},"output":{"type":"structure","required":["SpotFleetRequestId"],"members":{"SpotFleetRequestId":{"locationName":"spotFleetRequestId"}}},"http":{}},"RequestSpotInstances":{"input":{"type":"structure","required":["SpotPrice"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotPrice":{"locationName":"spotPrice"},"ClientToken":{"locationName":"clientToken"},"InstanceCount":{"locationName":"instanceCount","type":"integer"},"Type":{"locationName":"type"},"ValidFrom":{"locationName":"validFrom","type":"timestamp"},"ValidUntil":{"locationName":"validUntil","type":"timestamp"},"LaunchGroup":{"locationName":"launchGroup"},"AvailabilityZoneGroup":{"locationName":"availabilityZoneGroup"},"BlockDurationMinutes":{"locationName":"blockDurationMinutes","type":"integer"},"LaunchSpecification":{"type":"structure","members":{"ImageId":{"locationName":"imageId"},"KeyName":{"locationName":"keyName"},"SecurityGroups":{"shape":"S27","locationName":"SecurityGroup"},"UserData":{"locationName":"userData"},"AddressingType":{"locationName":"addressingType"},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sff","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"BlockDeviceMappings":{"shape":"S9y","locationName":"blockDeviceMapping"},"SubnetId":{"locationName":"subnetId"},"NetworkInterfaces":{"shape":"Sfh","locationName":"NetworkInterface"},"IamInstanceProfile":{"shape":"Sfj","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"Monitoring":{"shape":"Sfv","locationName":"monitoring"},"SecurityGroupIds":{"shape":"S27","locationName":"SecurityGroupId"}}}}},"output":{"type":"structure","members":{"SpotInstanceRequests":{"shape":"Sfp","locationName":"spotInstanceRequestSet"}}},"http":{}},"ResetImageAttribute":{"input":{"type":"structure","required":["ImageId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageId":{},"Attribute":{}}},"http":{}},"ResetInstanceAttribute":{"input":{"type":"structure","required":["InstanceId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{"locationName":"instanceId"},"Attribute":{"locationName":"attribute"}}},"http":{}},"ResetNetworkInterfaceAttribute":{"input":{"type":"structure","required":["NetworkInterfaceId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"SourceDestCheck":{"locationName":"sourceDestCheck"}}},"http":{}},"ResetSnapshotAttribute":{"input":{"type":"structure","required":["SnapshotId","Attribute"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SnapshotId":{},"Attribute":{}}},"http":{}},"RestoreAddressToClassic":{"input":{"type":"structure","required":["PublicIp"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"PublicIp":{"locationName":"publicIp"}}},"output":{"type":"structure","members":{"Status":{"locationName":"status"},"PublicIp":{"locationName":"publicIp"}}},"http":{}},"RevokeSecurityGroupEgress":{"input":{"type":"structure","required":["GroupId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupId":{"locationName":"groupId"},"SourceSecurityGroupName":{"locationName":"sourceSecurityGroupName"},"SourceSecurityGroupOwnerId":{"locationName":"sourceSecurityGroupOwnerId"},"IpProtocol":{"locationName":"ipProtocol"},"FromPort":{"locationName":"fromPort","type":"integer"},"ToPort":{"locationName":"toPort","type":"integer"},"CidrIp":{"locationName":"cidrIp"},"IpPermissions":{"shape":"S16","locationName":"ipPermissions"}}},"http":{}},"RevokeSecurityGroupIngress":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupName":{},"GroupId":{},"SourceSecurityGroupName":{},"SourceSecurityGroupOwnerId":{},"IpProtocol":{},"FromPort":{"type":"integer"},"ToPort":{"type":"integer"},"CidrIp":{},"IpPermissions":{"shape":"S16"}}},"http":{}},"RunInstances":{"input":{"type":"structure","required":["ImageId","MinCount","MaxCount"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageId":{},"MinCount":{"type":"integer"},"MaxCount":{"type":"integer"},"KeyName":{},"SecurityGroups":{"shape":"Siz","locationName":"SecurityGroup"},"SecurityGroupIds":{"shape":"S4i","locationName":"SecurityGroupId"},"UserData":{},"InstanceType":{},"Placement":{"shape":"Sbj"},"KernelId":{},"RamdiskId":{},"BlockDeviceMappings":{"shape":"S3d","locationName":"BlockDeviceMapping"},"Monitoring":{"shape":"Sfv"},"SubnetId":{},"DisableApiTermination":{"locationName":"disableApiTermination","type":"boolean"},"InstanceInitiatedShutdownBehavior":{"locationName":"instanceInitiatedShutdownBehavior"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"ClientToken":{"locationName":"clientToken"},"AdditionalInfo":{"locationName":"additionalInfo"},"NetworkInterfaces":{"shape":"Sfh","locationName":"networkInterface"},"IamInstanceProfile":{"shape":"Sfj","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"}}},"output":{"shape":"Sbf"},"http":{}},"RunScheduledInstances":{"input":{"type":"structure","required":["ScheduledInstanceId","LaunchSpecification"],"members":{"DryRun":{"type":"boolean"},"ClientToken":{"idempotencyToken":true},"InstanceCount":{"type":"integer"},"ScheduledInstanceId":{},"LaunchSpecification":{"type":"structure","required":["ImageId"],"members":{"ImageId":{},"KeyName":{},"SecurityGroupIds":{"shape":"Slt","locationName":"SecurityGroupId"},"UserData":{},"Placement":{"type":"structure","members":{"AvailabilityZone":{},"GroupName":{}}},"KernelId":{},"InstanceType":{},"RamdiskId":{},"BlockDeviceMappings":{"locationName":"BlockDeviceMapping","type":"list","member":{"locationName":"BlockDeviceMapping","type":"structure","members":{"DeviceName":{},"NoDevice":{},"VirtualName":{},"Ebs":{"type":"structure","members":{"SnapshotId":{},"VolumeSize":{"type":"integer"},"DeleteOnTermination":{"type":"boolean"},"VolumeType":{},"Iops":{"type":"integer"},"Encrypted":{"type":"boolean"}}}}}},"Monitoring":{"type":"structure","members":{"Enabled":{"type":"boolean"}}},"SubnetId":{},"NetworkInterfaces":{"locationName":"NetworkInterface","type":"list","member":{"locationName":"NetworkInterface","type":"structure","members":{"NetworkInterfaceId":{},"DeviceIndex":{"type":"integer"},"SubnetId":{},"Description":{},"PrivateIpAddress":{},"PrivateIpAddressConfigs":{"locationName":"PrivateIpAddressConfig","type":"list","member":{"locationName":"PrivateIpAddressConfigSet","type":"structure","members":{"PrivateIpAddress":{},"Primary":{"type":"boolean"}}}},"SecondaryPrivateIpAddressCount":{"type":"integer"},"AssociatePublicIpAddress":{"type":"boolean"},"Groups":{"shape":"Slt","locationName":"Group"},"DeleteOnTermination":{"type":"boolean"}}}},"IamInstanceProfile":{"type":"structure","members":{"Arn":{},"Name":{}}},"EbsOptimized":{"type":"boolean"}}}}},"output":{"type":"structure","members":{"InstanceIdSet":{"locationName":"instanceIdSet","type":"list","member":{"locationName":"item"}}}},"http":{}},"StartInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"InstanceIds":{"shape":"S8c","locationName":"InstanceId"},"AdditionalInfo":{"locationName":"additionalInfo"},"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"StartingInstances":{"shape":"Sm8","locationName":"instancesSet"}}},"http":{}},"StopInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"},"Force":{"locationName":"force","type":"boolean"}}},"output":{"type":"structure","members":{"StoppingInstances":{"shape":"Sm8","locationName":"instancesSet"}}},"http":{}},"TerminateInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"}}},"output":{"type":"structure","members":{"TerminatingInstances":{"shape":"Sm8","locationName":"instancesSet"}}},"http":{}},"UnassignPrivateIpAddresses":{"input":{"type":"structure","required":["NetworkInterfaceId","PrivateIpAddresses"],"members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"PrivateIpAddresses":{"shape":"Sm","locationName":"privateIpAddress"}}},"http":{}},"UnmonitorInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8c","locationName":"InstanceId"}}},"output":{"type":"structure","members":{"InstanceMonitorings":{"shape":"Skh","locationName":"instancesSet"}}},"http":{}}},"shapes":{"S5":{"type":"structure","members":{"AccepterVpcInfo":{"shape":"S6","locationName":"accepterVpcInfo"},"ExpirationTime":{"locationName":"expirationTime","type":"timestamp"},"RequesterVpcInfo":{"shape":"S6","locationName":"requesterVpcInfo"},"Status":{"locationName":"status","type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}},"Tags":{"shape":"Sb","locationName":"tagSet"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"}}},"S6":{"type":"structure","members":{"CidrBlock":{"locationName":"cidrBlock"},"OwnerId":{"locationName":"ownerId"},"VpcId":{"locationName":"vpcId"},"PeeringOptions":{"locationName":"peeringOptions","type":"structure","members":{"AllowEgressFromLocalClassicLinkToRemoteVpc":{"locationName":"allowEgressFromLocalClassicLinkToRemoteVpc","type":"boolean"},"AllowEgressFromLocalVpcToRemoteClassicLink":{"locationName":"allowEgressFromLocalVpcToRemoteClassicLink","type":"boolean"}}}}},"Sb":{"type":"list","member":{"locationName":"item","type":"structure","members":{"Key":{"locationName":"key"},"Value":{"locationName":"value"}}}},"Sk":{"type":"list","member":{"locationName":"item"}},"Sm":{"type":"list","member":{"locationName":"PrivateIpAddress"}},"St":{"type":"list","member":{"locationName":"groupId"}},"Sz":{"type":"structure","members":{"VolumeId":{"locationName":"volumeId"},"InstanceId":{"locationName":"instanceId"},"Device":{"locationName":"device"},"State":{"locationName":"status"},"AttachTime":{"locationName":"attachTime","type":"timestamp"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"}}},"S13":{"type":"structure","members":{"VpcId":{"locationName":"vpcId"},"State":{"locationName":"state"}}},"S16":{"type":"list","member":{"locationName":"item","type":"structure","members":{"IpProtocol":{"locationName":"ipProtocol"},"FromPort":{"locationName":"fromPort","type":"integer"},"ToPort":{"locationName":"toPort","type":"integer"},"UserIdGroupPairs":{"locationName":"groups","type":"list","member":{"shape":"S19","locationName":"item"}},"IpRanges":{"locationName":"ipRanges","type":"list","member":{"locationName":"item","type":"structure","members":{"CidrIp":{"locationName":"cidrIp"}}}},"PrefixListIds":{"locationName":"prefixListIds","type":"list","member":{"locationName":"item","type":"structure","members":{"PrefixListId":{"locationName":"prefixListId"}}}}}}},"S19":{"type":"structure","members":{"UserId":{"locationName":"userId"},"GroupName":{"locationName":"groupName"},"GroupId":{"locationName":"groupId"},"VpcId":{"locationName":"vpcId"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"},"PeeringStatus":{"locationName":"peeringStatus"}}},"S1g":{"type":"structure","members":{"S3":{"type":"structure","members":{"Bucket":{"locationName":"bucket"},"Prefix":{"locationName":"prefix"},"AWSAccessKeyId":{},"UploadPolicy":{"locationName":"uploadPolicy","type":"blob"},"UploadPolicySignature":{"locationName":"uploadPolicySignature"}}}}},"S1k":{"type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"BundleId":{"locationName":"bundleId"},"State":{"locationName":"state"},"StartTime":{"locationName":"startTime","type":"timestamp"},"UpdateTime":{"locationName":"updateTime","type":"timestamp"},"Storage":{"shape":"S1g","locationName":"storage"},"Progress":{"locationName":"progress"},"BundleTaskError":{"locationName":"error","type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}}}},"S1v":{"type":"list","member":{"locationName":"item","type":"structure","members":{"ReservedInstancesListingId":{"locationName":"reservedInstancesListingId"},"ReservedInstancesId":{"locationName":"reservedInstancesId"},"CreateDate":{"locationName":"createDate","type":"timestamp"},"UpdateDate":{"locationName":"updateDate","type":"timestamp"},"Status":{"locationName":"status"},"StatusMessage":{"locationName":"statusMessage"},"InstanceCounts":{"locationName":"instanceCounts","type":"list","member":{"locationName":"item","type":"structure","members":{"State":{"locationName":"state"},"InstanceCount":{"locationName":"instanceCount","type":"integer"}}}},"PriceSchedules":{"locationName":"priceSchedules","type":"list","member":{"locationName":"item","type":"structure","members":{"Term":{"locationName":"term","type":"long"},"Price":{"locationName":"price","type":"double"},"CurrencyCode":{"locationName":"currencyCode"},"Active":{"locationName":"active","type":"boolean"}}}},"Tags":{"shape":"Sb","locationName":"tagSet"},"ClientToken":{"locationName":"clientToken"}}}},"S27":{"type":"list","member":{"locationName":"item"}},"S2h":{"type":"list","member":{"locationName":"SpotInstanceRequestId"}},"S2v":{"type":"structure","members":{"CustomerGatewayId":{"locationName":"customerGatewayId"},"State":{"locationName":"state"},"Type":{"locationName":"type"},"IpAddress":{"locationName":"ipAddress"},"BgpAsn":{"locationName":"bgpAsn"},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S30":{"type":"structure","members":{"DhcpOptionsId":{"locationName":"dhcpOptionsId"},"DhcpConfigurations":{"locationName":"dhcpConfigurationSet","type":"list","member":{"locationName":"item","type":"structure","members":{"Key":{"locationName":"key"},"Values":{"locationName":"valueSet","type":"list","member":{"shape":"S34","locationName":"item"}}}}},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S34":{"type":"structure","members":{"Value":{"locationName":"value"}}},"S39":{"type":"list","member":{"shape":"S3a","locationName":"item"}},"S3a":{"type":"structure","required":["Error"],"members":{"Error":{"locationName":"error","type":"structure","required":["Code","Message"],"members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}},"ResourceId":{"locationName":"resourceId"}}},"S3d":{"type":"list","member":{"shape":"S3e","locationName":"BlockDeviceMapping"}},"S3e":{"type":"structure","members":{"VirtualName":{"locationName":"virtualName"},"DeviceName":{"locationName":"deviceName"},"Ebs":{"locationName":"ebs","type":"structure","members":{"SnapshotId":{"locationName":"snapshotId"},"VolumeSize":{"locationName":"volumeSize","type":"integer"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"},"VolumeType":{"locationName":"volumeType"},"Iops":{"locationName":"iops","type":"integer"},"Encrypted":{"locationName":"encrypted","type":"boolean"}}},"NoDevice":{"locationName":"noDevice"}}},"S3o":{"type":"structure","members":{"ExportTaskId":{"locationName":"exportTaskId"},"Description":{"locationName":"description"},"State":{"locationName":"state"},"StatusMessage":{"locationName":"statusMessage"},"InstanceExportDetails":{"locationName":"instanceExport","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"TargetEnvironment":{"locationName":"targetEnvironment"}}},"ExportToS3Task":{"locationName":"exportToS3","type":"structure","members":{"DiskImageFormat":{"locationName":"diskImageFormat"},"ContainerFormat":{"locationName":"containerFormat"},"S3Bucket":{"locationName":"s3Bucket"},"S3Key":{"locationName":"s3Key"}}}}},"S3u":{"type":"structure","members":{"InternetGatewayId":{"locationName":"internetGatewayId"},"Attachments":{"locationName":"attachmentSet","type":"list","member":{"locationName":"item","type":"structure","members":{"VpcId":{"locationName":"vpcId"},"State":{"locationName":"state"}}}},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S41":{"type":"structure","members":{"VpcId":{"locationName":"vpcId"},"SubnetId":{"locationName":"subnetId"},"NatGatewayId":{"locationName":"natGatewayId"},"CreateTime":{"locationName":"createTime","type":"timestamp"},"DeleteTime":{"locationName":"deleteTime","type":"timestamp"},"NatGatewayAddresses":{"locationName":"natGatewayAddressSet","type":"list","member":{"locationName":"item","type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"AllocationId":{"locationName":"allocationId"},"PrivateIp":{"locationName":"privateIp"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"}}}},"State":{"locationName":"state"},"FailureCode":{"locationName":"failureCode"},"FailureMessage":{"locationName":"failureMessage"},"ProvisionedBandwidth":{"locationName":"provisionedBandwidth","type":"structure","members":{"Provisioned":{"locationName":"provisioned"},"Requested":{"locationName":"requested"},"RequestTime":{"locationName":"requestTime","type":"timestamp"},"ProvisionTime":{"locationName":"provisionTime","type":"timestamp"},"Status":{"locationName":"status"}}}}},"S48":{"type":"structure","members":{"NetworkAclId":{"locationName":"networkAclId"},"VpcId":{"locationName":"vpcId"},"IsDefault":{"locationName":"default","type":"boolean"},"Entries":{"locationName":"entrySet","type":"list","member":{"locationName":"item","type":"structure","members":{"RuleNumber":{"locationName":"ruleNumber","type":"integer"},"Protocol":{"locationName":"protocol"},"RuleAction":{"locationName":"ruleAction"},"Egress":{"locationName":"egress","type":"boolean"},"CidrBlock":{"locationName":"cidrBlock"},"IcmpTypeCode":{"shape":"S4c","locationName":"icmpTypeCode"},"PortRange":{"shape":"S4d","locationName":"portRange"}}}},"Associations":{"locationName":"associationSet","type":"list","member":{"locationName":"item","type":"structure","members":{"NetworkAclAssociationId":{"locationName":"networkAclAssociationId"},"NetworkAclId":{"locationName":"networkAclId"},"SubnetId":{"locationName":"subnetId"}}}},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S4c":{"type":"structure","members":{"Type":{"locationName":"type","type":"integer"},"Code":{"locationName":"code","type":"integer"}}},"S4d":{"type":"structure","members":{"From":{"locationName":"from","type":"integer"},"To":{"locationName":"to","type":"integer"}}},"S4i":{"type":"list","member":{"locationName":"SecurityGroupId"}},"S4j":{"type":"list","member":{"locationName":"item","type":"structure","required":["PrivateIpAddress"],"members":{"PrivateIpAddress":{"locationName":"privateIpAddress"},"Primary":{"locationName":"primary","type":"boolean"}}}},"S4m":{"type":"structure","members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"SubnetId":{"locationName":"subnetId"},"VpcId":{"locationName":"vpcId"},"AvailabilityZone":{"locationName":"availabilityZone"},"Description":{"locationName":"description"},"OwnerId":{"locationName":"ownerId"},"RequesterId":{"locationName":"requesterId"},"RequesterManaged":{"locationName":"requesterManaged","type":"boolean"},"Status":{"locationName":"status"},"MacAddress":{"locationName":"macAddress"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"PrivateDnsName":{"locationName":"privateDnsName"},"SourceDestCheck":{"locationName":"sourceDestCheck","type":"boolean"},"Groups":{"shape":"S4o","locationName":"groupSet"},"Attachment":{"shape":"S4q","locationName":"attachment"},"Association":{"shape":"S4r","locationName":"association"},"TagSet":{"shape":"Sb","locationName":"tagSet"},"PrivateIpAddresses":{"locationName":"privateIpAddressesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"PrivateIpAddress":{"locationName":"privateIpAddress"},"PrivateDnsName":{"locationName":"privateDnsName"},"Primary":{"locationName":"primary","type":"boolean"},"Association":{"shape":"S4r","locationName":"association"}}}},"InterfaceType":{"locationName":"interfaceType"}}},"S4o":{"type":"list","member":{"locationName":"item","type":"structure","members":{"GroupName":{"locationName":"groupName"},"GroupId":{"locationName":"groupId"}}}},"S4q":{"type":"structure","members":{"AttachmentId":{"locationName":"attachmentId"},"InstanceId":{"locationName":"instanceId"},"InstanceOwnerId":{"locationName":"instanceOwnerId"},"DeviceIndex":{"locationName":"deviceIndex","type":"integer"},"Status":{"locationName":"status"},"AttachTime":{"locationName":"attachTime","type":"timestamp"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"}}},"S4r":{"type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"PublicDnsName":{"locationName":"publicDnsName"},"IpOwnerId":{"locationName":"ipOwnerId"},"AllocationId":{"locationName":"allocationId"},"AssociationId":{"locationName":"associationId"}}},"S55":{"type":"structure","members":{"RouteTableId":{"locationName":"routeTableId"},"VpcId":{"locationName":"vpcId"},"Routes":{"locationName":"routeSet","type":"list","member":{"locationName":"item","type":"structure","members":{"DestinationCidrBlock":{"locationName":"destinationCidrBlock"},"DestinationPrefixListId":{"locationName":"destinationPrefixListId"},"GatewayId":{"locationName":"gatewayId"},"InstanceId":{"locationName":"instanceId"},"InstanceOwnerId":{"locationName":"instanceOwnerId"},"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"},"NatGatewayId":{"locationName":"natGatewayId"},"State":{"locationName":"state"},"Origin":{"locationName":"origin"}}}},"Associations":{"locationName":"associationSet","type":"list","member":{"locationName":"item","type":"structure","members":{"RouteTableAssociationId":{"locationName":"routeTableAssociationId"},"RouteTableId":{"locationName":"routeTableId"},"SubnetId":{"locationName":"subnetId"},"Main":{"locationName":"main","type":"boolean"}}}},"Tags":{"shape":"Sb","locationName":"tagSet"},"PropagatingVgws":{"locationName":"propagatingVgwSet","type":"list","member":{"locationName":"item","type":"structure","members":{"GatewayId":{"locationName":"gatewayId"}}}}}},"S5h":{"type":"structure","members":{"SnapshotId":{"locationName":"snapshotId"},"VolumeId":{"locationName":"volumeId"},"State":{"locationName":"status"},"StateMessage":{"locationName":"statusMessage"},"StartTime":{"locationName":"startTime","type":"timestamp"},"Progress":{"locationName":"progress"},"OwnerId":{"locationName":"ownerId"},"Description":{"locationName":"description"},"VolumeSize":{"locationName":"volumeSize","type":"integer"},"OwnerAlias":{"locationName":"ownerAlias"},"Tags":{"shape":"Sb","locationName":"tagSet"},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{"locationName":"kmsKeyId"},"DataEncryptionKeyId":{"locationName":"dataEncryptionKeyId"}}},"S5l":{"type":"structure","members":{"OwnerId":{"locationName":"ownerId"},"Bucket":{"locationName":"bucket"},"Prefix":{"locationName":"prefix"},"State":{"locationName":"state"},"Fault":{"shape":"S5n","locationName":"fault"}}},"S5n":{"type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}},"S5q":{"type":"structure","members":{"SubnetId":{"locationName":"subnetId"},"State":{"locationName":"state"},"VpcId":{"locationName":"vpcId"},"CidrBlock":{"locationName":"cidrBlock"},"AvailableIpAddressCount":{"locationName":"availableIpAddressCount","type":"integer"},"AvailabilityZone":{"locationName":"availabilityZone"},"DefaultForAz":{"locationName":"defaultForAz","type":"boolean"},"MapPublicIpOnLaunch":{"locationName":"mapPublicIpOnLaunch","type":"boolean"},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S5t":{"type":"list","member":{}},"S5v":{"type":"structure","members":{"VolumeId":{"locationName":"volumeId"},"Size":{"locationName":"size","type":"integer"},"SnapshotId":{"locationName":"snapshotId"},"AvailabilityZone":{"locationName":"availabilityZone"},"State":{"locationName":"status"},"CreateTime":{"locationName":"createTime","type":"timestamp"},"Attachments":{"locationName":"attachmentSet","type":"list","member":{"shape":"Sz","locationName":"item"}},"Tags":{"shape":"Sb","locationName":"tagSet"},"VolumeType":{"locationName":"volumeType"},"Iops":{"locationName":"iops","type":"integer"},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{"locationName":"kmsKeyId"}}},"S61":{"type":"structure","members":{"VpcId":{"locationName":"vpcId"},"State":{"locationName":"state"},"CidrBlock":{"locationName":"cidrBlock"},"DhcpOptionsId":{"locationName":"dhcpOptionsId"},"Tags":{"shape":"Sb","locationName":"tagSet"},"InstanceTenancy":{"locationName":"instanceTenancy"},"IsDefault":{"locationName":"isDefault","type":"boolean"}}},"S65":{"type":"structure","members":{"VpcEndpointId":{"locationName":"vpcEndpointId"},"VpcId":{"locationName":"vpcId"},"ServiceName":{"locationName":"serviceName"},"State":{"locationName":"state"},"PolicyDocument":{"locationName":"policyDocument"},"RouteTableIds":{"shape":"S27","locationName":"routeTableIdSet"},"CreationTimestamp":{"locationName":"creationTimestamp","type":"timestamp"}}},"S6c":{"type":"structure","members":{"VpnConnectionId":{"locationName":"vpnConnectionId"},"State":{"locationName":"state"},"CustomerGatewayConfiguration":{"locationName":"customerGatewayConfiguration"},"Type":{"locationName":"type"},"CustomerGatewayId":{"locationName":"customerGatewayId"},"VpnGatewayId":{"locationName":"vpnGatewayId"},"Tags":{"shape":"Sb","locationName":"tagSet"},"VgwTelemetry":{"locationName":"vgwTelemetry","type":"list","member":{"locationName":"item","type":"structure","members":{"OutsideIpAddress":{"locationName":"outsideIpAddress"},"Status":{"locationName":"status"},"LastStatusChange":{"locationName":"lastStatusChange","type":"timestamp"},"StatusMessage":{"locationName":"statusMessage"},"AcceptedRouteCount":{"locationName":"acceptedRouteCount","type":"integer"}}}},"Options":{"locationName":"options","type":"structure","members":{"StaticRoutesOnly":{"locationName":"staticRoutesOnly","type":"boolean"}}},"Routes":{"locationName":"routes","type":"list","member":{"locationName":"item","type":"structure","members":{"DestinationCidrBlock":{"locationName":"destinationCidrBlock"},"Source":{"locationName":"source"},"State":{"locationName":"state"}}}}}},"S6o":{"type":"structure","members":{"VpnGatewayId":{"locationName":"vpnGatewayId"},"State":{"locationName":"state"},"Type":{"locationName":"type"},"AvailabilityZone":{"locationName":"availabilityZone"},"VpcAttachments":{"locationName":"attachments","type":"list","member":{"shape":"S13","locationName":"item"}},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S7t":{"type":"list","member":{"locationName":"Filter","type":"structure","members":{"Name":{},"Values":{"shape":"S27","locationName":"Value"}}}},"S8c":{"type":"list","member":{"locationName":"InstanceId"}},"S8k":{"type":"structure","required":["ConversionTaskId","State"],"members":{"ConversionTaskId":{"locationName":"conversionTaskId"},"ExpirationTime":{"locationName":"expirationTime"},"ImportInstance":{"locationName":"importInstance","type":"structure","required":["Volumes"],"members":{"Volumes":{"locationName":"volumes","type":"list","member":{"locationName":"item","type":"structure","required":["BytesConverted","AvailabilityZone","Image","Volume","Status"],"members":{"BytesConverted":{"locationName":"bytesConverted","type":"long"},"AvailabilityZone":{"locationName":"availabilityZone"},"Image":{"shape":"S8o","locationName":"image"},"Volume":{"shape":"S8p","locationName":"volume"},"Status":{"locationName":"status"},"StatusMessage":{"locationName":"statusMessage"},"Description":{"locationName":"description"}}}},"InstanceId":{"locationName":"instanceId"},"Platform":{"locationName":"platform"},"Description":{"locationName":"description"}}},"ImportVolume":{"locationName":"importVolume","type":"structure","required":["BytesConverted","AvailabilityZone","Image","Volume"],"members":{"BytesConverted":{"locationName":"bytesConverted","type":"long"},"AvailabilityZone":{"locationName":"availabilityZone"},"Description":{"locationName":"description"},"Image":{"shape":"S8o","locationName":"image"},"Volume":{"shape":"S8p","locationName":"volume"}}},"State":{"locationName":"state"},"StatusMessage":{"locationName":"statusMessage"},"Tags":{"shape":"Sb","locationName":"tagSet"}}},"S8o":{"type":"structure","required":["Format","Size","ImportManifestUrl"],"members":{"Format":{"locationName":"format"},"Size":{"locationName":"size","type":"long"},"ImportManifestUrl":{"locationName":"importManifestUrl"},"Checksum":{"locationName":"checksum"}}},"S8p":{"type":"structure","required":["Id"],"members":{"Size":{"locationName":"size","type":"long"},"Id":{"locationName":"id"}}},"S9a":{"type":"list","member":{"locationName":"item"}},"S9s":{"type":"list","member":{"locationName":"item","type":"structure","members":{"UserId":{"locationName":"userId"},"Group":{"locationName":"group"}}}},"S9v":{"type":"list","member":{"locationName":"item","type":"structure","members":{"ProductCodeId":{"locationName":"productCode"},"ProductCodeType":{"locationName":"type"}}}},"S9y":{"type":"list","member":{"shape":"S3e","locationName":"item"}},"Sa1":{"type":"list","member":{"locationName":"Owner"}},"Sa9":{"type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}},"Sae":{"type":"list","member":{"locationName":"ImportTaskId"}},"Sai":{"type":"list","member":{"locationName":"item","type":"structure","members":{"DiskImageSize":{"locationName":"diskImageSize","type":"double"},"Description":{"locationName":"description"},"Format":{"locationName":"format"},"Url":{"locationName":"url"},"UserBucket":{"shape":"Sak","locationName":"userBucket"},"DeviceName":{"locationName":"deviceName"},"SnapshotId":{"locationName":"snapshotId"},"Progress":{"locationName":"progress"},"StatusMessage":{"locationName":"statusMessage"},"Status":{"locationName":"status"}}}},"Sak":{"type":"structure","members":{"S3Bucket":{"locationName":"s3Bucket"},"S3Key":{"locationName":"s3Key"}}},"Sap":{"type":"structure","members":{"DiskImageSize":{"locationName":"diskImageSize","type":"double"},"Description":{"locationName":"description"},"Format":{"locationName":"format"},"Url":{"locationName":"url"},"UserBucket":{"shape":"Sak","locationName":"userBucket"},"SnapshotId":{"locationName":"snapshotId"},"Progress":{"locationName":"progress"},"StatusMessage":{"locationName":"statusMessage"},"Status":{"locationName":"status"}}},"Sat":{"type":"structure","members":{"Value":{"locationName":"value","type":"boolean"}}},"Sau":{"type":"list","member":{"locationName":"item","type":"structure","members":{"DeviceName":{"locationName":"deviceName"},"Ebs":{"locationName":"ebs","type":"structure","members":{"VolumeId":{"locationName":"volumeId"},"Status":{"locationName":"status"},"AttachTime":{"locationName":"attachTime","type":"timestamp"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"}}}}}},"Sb4":{"type":"structure","members":{"Code":{"locationName":"code","type":"integer"},"Name":{"locationName":"name"}}},"Sb6":{"type":"structure","members":{"Status":{"locationName":"status"},"Details":{"locationName":"details","type":"list","member":{"locationName":"item","type":"structure","members":{"Name":{"locationName":"name"},"Status":{"locationName":"status"},"ImpairedSince":{"locationName":"impairedSince","type":"timestamp"}}}}}},"Sbf":{"type":"structure","members":{"ReservationId":{"locationName":"reservationId"},"OwnerId":{"locationName":"ownerId"},"RequesterId":{"locationName":"requesterId"},"Groups":{"shape":"S4o","locationName":"groupSet"},"Instances":{"locationName":"instancesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"ImageId":{"locationName":"imageId"},"State":{"shape":"Sb4","locationName":"instanceState"},"PrivateDnsName":{"locationName":"privateDnsName"},"PublicDnsName":{"locationName":"dnsName"},"StateTransitionReason":{"locationName":"reason"},"KeyName":{"locationName":"keyName"},"AmiLaunchIndex":{"locationName":"amiLaunchIndex","type":"integer"},"ProductCodes":{"shape":"S9v","locationName":"productCodes"},"InstanceType":{"locationName":"instanceType"},"LaunchTime":{"locationName":"launchTime","type":"timestamp"},"Placement":{"shape":"Sbj","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"Platform":{"locationName":"platform"},"Monitoring":{"shape":"Sbk","locationName":"monitoring"},"SubnetId":{"locationName":"subnetId"},"VpcId":{"locationName":"vpcId"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"PublicIpAddress":{"locationName":"ipAddress"},"StateReason":{"shape":"Sa9","locationName":"stateReason"},"Architecture":{"locationName":"architecture"},"RootDeviceType":{"locationName":"rootDeviceType"},"RootDeviceName":{"locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"Sau","locationName":"blockDeviceMapping"},"VirtualizationType":{"locationName":"virtualizationType"},"InstanceLifecycle":{"locationName":"instanceLifecycle"},"SpotInstanceRequestId":{"locationName":"spotInstanceRequestId"},"ClientToken":{"locationName":"clientToken"},"Tags":{"shape":"Sb","locationName":"tagSet"},"SecurityGroups":{"shape":"S4o","locationName":"groupSet"},"SourceDestCheck":{"locationName":"sourceDestCheck","type":"boolean"},"Hypervisor":{"locationName":"hypervisor"},"NetworkInterfaces":{"locationName":"networkInterfaceSet","type":"list","member":{"locationName":"item","type":"structure","members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"SubnetId":{"locationName":"subnetId"},"VpcId":{"locationName":"vpcId"},"Description":{"locationName":"description"},"OwnerId":{"locationName":"ownerId"},"Status":{"locationName":"status"},"MacAddress":{"locationName":"macAddress"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"PrivateDnsName":{"locationName":"privateDnsName"},"SourceDestCheck":{"locationName":"sourceDestCheck","type":"boolean"},"Groups":{"shape":"S4o","locationName":"groupSet"},"Attachment":{"locationName":"attachment","type":"structure","members":{"AttachmentId":{"locationName":"attachmentId"},"DeviceIndex":{"locationName":"deviceIndex","type":"integer"},"Status":{"locationName":"status"},"AttachTime":{"locationName":"attachTime","type":"timestamp"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"}}},"Association":{"shape":"Sbq","locationName":"association"},"PrivateIpAddresses":{"locationName":"privateIpAddressesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"PrivateIpAddress":{"locationName":"privateIpAddress"},"PrivateDnsName":{"locationName":"privateDnsName"},"Primary":{"locationName":"primary","type":"boolean"},"Association":{"shape":"Sbq","locationName":"association"}}}}}}},"IamInstanceProfile":{"locationName":"iamInstanceProfile","type":"structure","members":{"Arn":{"locationName":"arn"},"Id":{"locationName":"id"}}},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"SriovNetSupport":{"locationName":"sriovNetSupport"}}}}}},"Sbj":{"type":"structure","members":{"AvailabilityZone":{"locationName":"availabilityZone"},"GroupName":{"locationName":"groupName"},"Tenancy":{"locationName":"tenancy"},"HostId":{"locationName":"hostId"},"Affinity":{"locationName":"affinity"}}},"Sbk":{"type":"structure","members":{"State":{"locationName":"state"}}},"Sbq":{"type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"PublicDnsName":{"locationName":"publicDnsName"},"IpOwnerId":{"locationName":"ipOwnerId"}}},"Sd0":{"type":"list","member":{"locationName":"ReservedInstancesId"}},"Sd8":{"type":"list","member":{"locationName":"item","type":"structure","members":{"Frequency":{"locationName":"frequency"},"Amount":{"locationName":"amount","type":"double"}}}},"Sdm":{"type":"structure","members":{"AvailabilityZone":{"locationName":"availabilityZone"},"Platform":{"locationName":"platform"},"InstanceCount":{"locationName":"instanceCount","type":"integer"},"InstanceType":{"locationName":"instanceType"}}},"Se4":{"type":"structure","members":{"Frequency":{"locationName":"frequency"},"Interval":{"locationName":"interval","type":"integer"},"OccurrenceDaySet":{"locationName":"occurrenceDaySet","type":"list","member":{"locationName":"item","type":"integer"}},"OccurrenceRelativeToEnd":{"locationName":"occurrenceRelativeToEnd","type":"boolean"},"OccurrenceUnit":{"locationName":"occurrenceUnit"}}},"Seb":{"type":"structure","members":{"ScheduledInstanceId":{"locationName":"scheduledInstanceId"},"InstanceType":{"locationName":"instanceType"},"Platform":{"locationName":"platform"},"NetworkPlatform":{"locationName":"networkPlatform"},"AvailabilityZone":{"locationName":"availabilityZone"},"SlotDurationInHours":{"locationName":"slotDurationInHours","type":"integer"},"Recurrence":{"shape":"Se4","locationName":"recurrence"},"PreviousSlotEndTime":{"locationName":"previousSlotEndTime","type":"timestamp"},"NextSlotStartTime":{"locationName":"nextSlotStartTime","type":"timestamp"},"HourlyPrice":{"locationName":"hourlyPrice"},"TotalScheduledInstanceHours":{"locationName":"totalScheduledInstanceHours","type":"integer"},"InstanceCount":{"locationName":"instanceCount","type":"integer"},"TermStartDate":{"locationName":"termStartDate","type":"timestamp"},"TermEndDate":{"locationName":"termEndDate","type":"timestamp"},"CreateDate":{"locationName":"createDate","type":"timestamp"}}},"Sei":{"type":"list","member":{"locationName":"GroupName"}},"Sep":{"type":"list","member":{"locationName":"item","type":"structure","members":{"UserId":{"locationName":"userId"},"Group":{"locationName":"group"}}}},"Sfc":{"type":"structure","required":["SpotPrice","TargetCapacity","IamFleetRole","LaunchSpecifications"],"members":{"ClientToken":{"locationName":"clientToken"},"SpotPrice":{"locationName":"spotPrice"},"TargetCapacity":{"locationName":"targetCapacity","type":"integer"},"ValidFrom":{"locationName":"validFrom","type":"timestamp"},"ValidUntil":{"locationName":"validUntil","type":"timestamp"},"TerminateInstancesWithExpiration":{"locationName":"terminateInstancesWithExpiration","type":"boolean"},"IamFleetRole":{"locationName":"iamFleetRole"},"LaunchSpecifications":{"locationName":"launchSpecifications","type":"list","member":{"locationName":"item","type":"structure","members":{"ImageId":{"locationName":"imageId"},"KeyName":{"locationName":"keyName"},"SecurityGroups":{"shape":"S4o","locationName":"groupSet"},"UserData":{"locationName":"userData"},"AddressingType":{"locationName":"addressingType"},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sff","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"BlockDeviceMappings":{"shape":"S9y","locationName":"blockDeviceMapping"},"Monitoring":{"locationName":"monitoring","type":"structure","members":{"Enabled":{"locationName":"enabled","type":"boolean"}}},"SubnetId":{"locationName":"subnetId"},"NetworkInterfaces":{"shape":"Sfh","locationName":"networkInterfaceSet"},"IamInstanceProfile":{"shape":"Sfj","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"WeightedCapacity":{"locationName":"weightedCapacity","type":"double"},"SpotPrice":{"locationName":"spotPrice"}}}},"ExcessCapacityTerminationPolicy":{"locationName":"excessCapacityTerminationPolicy"},"AllocationStrategy":{"locationName":"allocationStrategy"},"FulfilledCapacity":{"locationName":"fulfilledCapacity","type":"double"},"Type":{"locationName":"type"}}},"Sff":{"type":"structure","members":{"AvailabilityZone":{"locationName":"availabilityZone"},"GroupName":{"locationName":"groupName"}}},"Sfh":{"type":"list","member":{"locationName":"item","type":"structure","members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"DeviceIndex":{"locationName":"deviceIndex","type":"integer"},"SubnetId":{"locationName":"subnetId"},"Description":{"locationName":"description"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"Groups":{"shape":"S4i","locationName":"SecurityGroupId"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"},"PrivateIpAddresses":{"shape":"S4j","locationName":"privateIpAddressesSet","queryName":"PrivateIpAddresses"},"SecondaryPrivateIpAddressCount":{"locationName":"secondaryPrivateIpAddressCount","type":"integer"},"AssociatePublicIpAddress":{"locationName":"associatePublicIpAddress","type":"boolean"}}}},"Sfj":{"type":"structure","members":{"Arn":{"locationName":"arn"},"Name":{"locationName":"name"}}},"Sfp":{"type":"list","member":{"locationName":"item","type":"structure","members":{"SpotInstanceRequestId":{"locationName":"spotInstanceRequestId"},"SpotPrice":{"locationName":"spotPrice"},"Type":{"locationName":"type"},"State":{"locationName":"state"},"Fault":{"shape":"S5n","locationName":"fault"},"Status":{"locationName":"status","type":"structure","members":{"Code":{"locationName":"code"},"UpdateTime":{"locationName":"updateTime","type":"timestamp"},"Message":{"locationName":"message"}}},"ValidFrom":{"locationName":"validFrom","type":"timestamp"},"ValidUntil":{"locationName":"validUntil","type":"timestamp"},"LaunchGroup":{"locationName":"launchGroup"},"AvailabilityZoneGroup":{"locationName":"availabilityZoneGroup"},"LaunchSpecification":{"locationName":"launchSpecification","type":"structure","members":{"ImageId":{"locationName":"imageId"},"KeyName":{"locationName":"keyName"},"SecurityGroups":{"shape":"S4o","locationName":"groupSet"},"UserData":{"locationName":"userData"},"AddressingType":{"locationName":"addressingType"},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sff","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"BlockDeviceMappings":{"shape":"S9y","locationName":"blockDeviceMapping"},"SubnetId":{"locationName":"subnetId"},"NetworkInterfaces":{"shape":"Sfh","locationName":"networkInterfaceSet"},"IamInstanceProfile":{"shape":"Sfj","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"Monitoring":{"shape":"Sfv","locationName":"monitoring"}}},"InstanceId":{"locationName":"instanceId"},"CreateTime":{"locationName":"createTime","type":"timestamp"},"ProductDescription":{"locationName":"productDescription"},"BlockDurationMinutes":{"locationName":"blockDurationMinutes","type":"integer"},"ActualBlockHourlyPrice":{"locationName":"actualBlockHourlyPrice"},"Tags":{"shape":"Sb","locationName":"tagSet"},"LaunchedAvailabilityZone":{"locationName":"launchedAvailabilityZone"}}}},"Sfv":{"type":"structure","required":["Enabled"],"members":{"Enabled":{"locationName":"enabled","type":"boolean"}}},"Sg8":{"type":"list","member":{"locationName":"item","type":"structure","members":{"FromPort":{"locationName":"fromPort","type":"integer"},"IpProtocol":{"locationName":"ipProtocol"},"IpRanges":{"locationName":"ipRanges","type":"list","member":{"locationName":"item"}},"PrefixListIds":{"locationName":"prefixListIds","type":"list","member":{"locationName":"item"}},"ToPort":{"locationName":"toPort","type":"integer"},"UserIdGroupPairs":{"locationName":"groups","type":"list","member":{"shape":"S19","locationName":"item"}}}}},"Sgq":{"type":"list","member":{"locationName":"VolumeId"}},"Sha":{"type":"list","member":{"locationName":"VpcId"}},"Siu":{"type":"structure","members":{"S3Bucket":{},"S3Key":{}}},"Siv":{"type":"structure","members":{"UploadStart":{"type":"timestamp"},"UploadEnd":{"type":"timestamp"},"UploadSize":{"type":"double"},"Comment":{}}},"Siz":{"type":"list","member":{"locationName":"SecurityGroup"}},"Sj4":{"type":"structure","required":["Format","Bytes","ImportManifestUrl"],"members":{"Format":{"locationName":"format"},"Bytes":{"locationName":"bytes","type":"long"},"ImportManifestUrl":{"locationName":"importManifestUrl"}}},"Sj5":{"type":"structure","required":["Size"],"members":{"Size":{"locationName":"size","type":"long"}}},"Sjg":{"type":"list","member":{"shape":"S3a","locationName":"item"}},"Sjk":{"type":"list","member":{"locationName":"UserId"}},"Skc":{"type":"structure","required":["AllowEgressFromLocalClassicLinkToRemoteVpc","AllowEgressFromLocalVpcToRemoteClassicLink"],"members":{"AllowEgressFromLocalClassicLinkToRemoteVpc":{"type":"boolean"},"AllowEgressFromLocalVpcToRemoteClassicLink":{"type":"boolean"}}},"Ske":{"type":"structure","members":{"AllowEgressFromLocalClassicLinkToRemoteVpc":{"locationName":"allowEgressFromLocalClassicLinkToRemoteVpc","type":"boolean"},"AllowEgressFromLocalVpcToRemoteClassicLink":{"locationName":"allowEgressFromLocalVpcToRemoteClassicLink","type":"boolean"}}},"Skh":{"type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"Monitoring":{"shape":"Sbk","locationName":"monitoring"}}}},"Slt":{"type":"list","member":{"locationName":"SecurityGroupId"}},"Sm8":{"type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"CurrentState":{"shape":"Sb4","locationName":"currentState"},"PreviousState":{"shape":"Sb4","locationName":"previousState"}}}}},"paginators":{"DescribeAccountAttributes":{"result_key":"AccountAttributes"},"DescribeAddresses":{"result_key":"Addresses"},"DescribeAvailabilityZones":{"result_key":"AvailabilityZones"},"DescribeBundleTasks":{"result_key":"BundleTasks"},"DescribeConversionTasks":{"result_key":"ConversionTasks"},"DescribeCustomerGateways":{"result_key":"CustomerGateways"},"DescribeDhcpOptions":{"result_key":"DhcpOptions"},"DescribeExportTasks":{"result_key":"ExportTasks"},"DescribeImages":{"result_key":"Images"},"DescribeInstanceStatus":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"InstanceStatuses"},"DescribeInstances":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"Reservations"},"DescribeInternetGateways":{"result_key":"InternetGateways"},"DescribeKeyPairs":{"result_key":"KeyPairs"},"DescribeNetworkAcls":{"result_key":"NetworkAcls"},"DescribeNetworkInterfaces":{"result_key":"NetworkInterfaces"},"DescribePlacementGroups":{"result_key":"PlacementGroups"},"DescribeRegions":{"result_key":"Regions"},"DescribeReservedInstances":{"result_key":"ReservedInstances"},"DescribeReservedInstancesListings":{"result_key":"ReservedInstancesListings"},"DescribeReservedInstancesOfferings":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"ReservedInstancesOfferings"},"DescribeReservedInstancesModifications":{"input_token":"NextToken","output_token":"NextToken","result_key":"ReservedInstancesModifications"},"DescribeRouteTables":{"result_key":"RouteTables"},"DescribeSecurityGroups":{"result_key":"SecurityGroups"},"DescribeSnapshots":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"Snapshots"},"DescribeSpotInstanceRequests":{"result_key":"SpotInstanceRequests"},"DescribeSpotFleetRequests":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"SpotFleetRequestConfigs"},"DescribeSpotPriceHistory":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"SpotPriceHistory"},"DescribeSubnets":{"result_key":"Subnets"},"DescribeTags":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"Tags"},"DescribeVolumeStatus":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"VolumeStatuses"},"DescribeVolumes":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"Volumes"},"DescribeVpcs":{"result_key":"Vpcs"},"DescribeVpcPeeringConnections":{"result_key":"VpcPeeringConnections"},"DescribeVpnConnections":{"result_key":"VpnConnections"},"DescribeVpnGateways":{"result_key":"VpnGateways"}},"waiters":{"InstanceExists":{"delay":5,"maxAttempts":40,"operation":"DescribeInstances","acceptors":[{"matcher":"path","expected":true,"argument":"length(Reservations[]) > `0`","state":"success"},{"matcher":"error","expected":"InvalidInstanceID.NotFound","state":"retry"}]},"BundleTaskComplete":{"delay":15,"operation":"DescribeBundleTasks","maxAttempts":40,"acceptors":[{"expected":"complete","matcher":"pathAll","state":"success","argument":"BundleTasks[].State"},{"expected":"failed","matcher":"pathAny","state":"failure","argument":"BundleTasks[].State"}]},"ConversionTaskCancelled":{"delay":15,"operation":"DescribeConversionTasks","maxAttempts":40,"acceptors":[{"expected":"cancelled","matcher":"pathAll","state":"success","argument":"ConversionTasks[].State"}]},"ConversionTaskCompleted":{"delay":15,"operation":"DescribeConversionTasks","maxAttempts":40,"acceptors":[{"expected":"completed","matcher":"pathAll","state":"success","argument":"ConversionTasks[].State"},{"expected":"cancelled","matcher":"pathAny","state":"failure","argument":"ConversionTasks[].State"},{"expected":"cancelling","matcher":"pathAny","state":"failure","argument":"ConversionTasks[].State"}]},"ConversionTaskDeleted":{"delay":15,"operation":"DescribeConversionTasks","maxAttempts":40,"acceptors":[{"expected":"deleted","matcher":"pathAll","state":"success","argument":"ConversionTasks[].State"}]},"CustomerGatewayAvailable":{"delay":15,"operation":"DescribeCustomerGateways","maxAttempts":40,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"CustomerGateways[].State"},{"expected":"deleted","matcher":"pathAny","state":"failure","argument":"CustomerGateways[].State"},{"expected":"deleting","matcher":"pathAny","state":"failure","argument":"CustomerGateways[].State"}]},"ExportTaskCancelled":{"delay":15,"operation":"DescribeExportTasks","maxAttempts":40,"acceptors":[{"expected":"cancelled","matcher":"pathAll","state":"success","argument":"ExportTasks[].State"}]},"ExportTaskCompleted":{"delay":15,"operation":"DescribeExportTasks","maxAttempts":40,"acceptors":[{"expected":"completed","matcher":"pathAll","state":"success","argument":"ExportTasks[].State"}]},"ImageExists":{"operation":"DescribeImages","maxAttempts":40,"delay":15,"acceptors":[{"matcher":"path","expected":true,"argument":"length(Images[]) > `0`","state":"success"},{"matcher":"error","expected":"InvalidAMIID.NotFound","state":"retry"}]},"ImageAvailable":{"operation":"DescribeImages","maxAttempts":40,"delay":15,"acceptors":[{"state":"success","matcher":"pathAll","argument":"Images[].State","expected":"available"},{"state":"failure","matcher":"pathAny","argument":"Images[].State","expected":"failed"}]},"InstanceRunning":{"delay":15,"operation":"DescribeInstances","maxAttempts":40,"acceptors":[{"expected":"running","matcher":"pathAll","state":"success","argument":"Reservations[].Instances[].State.Name"},{"expected":"shutting-down","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"},{"expected":"terminated","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"},{"expected":"stopping","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"},{"matcher":"error","expected":"InvalidInstanceID.NotFound","state":"retry"}]},"InstanceStatusOk":{"operation":"DescribeInstanceStatus","maxAttempts":40,"delay":15,"acceptors":[{"state":"success","matcher":"pathAll","argument":"InstanceStatuses[].InstanceStatus.Status","expected":"ok"},{"matcher":"error","expected":"InvalidInstanceID.NotFound","state":"retry"}]},"InstanceStopped":{"delay":15,"operation":"DescribeInstances","maxAttempts":40,"acceptors":[{"expected":"stopped","matcher":"pathAll","state":"success","argument":"Reservations[].Instances[].State.Name"},{"expected":"pending","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"},{"expected":"terminated","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"}]},"InstanceTerminated":{"delay":15,"operation":"DescribeInstances","maxAttempts":40,"acceptors":[{"expected":"terminated","matcher":"pathAll","state":"success","argument":"Reservations[].Instances[].State.Name"},{"expected":"pending","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"},{"expected":"stopping","matcher":"pathAny","state":"failure","argument":"Reservations[].Instances[].State.Name"}]},"KeyPairExists":{"operation":"DescribeKeyPairs","delay":5,"maxAttempts":6,"acceptors":[{"expected":true,"matcher":"pathAll","state":"success","argument":"length(KeyPairs[].KeyName) > `0`"},{"expected":"InvalidKeyPair.NotFound","matcher":"error","state":"retry"}]},"NatGatewayAvailable":{"operation":"DescribeNatGateways","delay":15,"maxAttempts":40,"acceptors":[{"state":"success","matcher":"pathAll","argument":"NatGateways[].State","expected":"available"},{"state":"failure","matcher":"pathAny","argument":"NatGateways[].State","expected":"failed"},{"state":"failure","matcher":"pathAny","argument":"NatGateways[].State","expected":"deleting"},{"state":"failure","matcher":"pathAny","argument":"NatGateways[].State","expected":"deleted"},{"state":"retry","matcher":"error","expected":"NatGatewayNotFound"}]},"NetworkInterfaceAvailable":{"operation":"DescribeNetworkInterfaces","delay":20,"maxAttempts":10,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"NetworkInterfaces[].Status"},{"expected":"InvalidNetworkInterfaceID.NotFound","matcher":"error","state":"failure"}]},"PasswordDataAvailable":{"operation":"GetPasswordData","maxAttempts":40,"delay":15,"acceptors":[{"state":"success","matcher":"path","argument":"length(PasswordData) > `0`","expected":true}]},"SnapshotCompleted":{"delay":15,"operation":"DescribeSnapshots","maxAttempts":40,"acceptors":[{"expected":"completed","matcher":"pathAll","state":"success","argument":"Snapshots[].State"}]},"SpotInstanceRequestFulfilled":{"operation":"DescribeSpotInstanceRequests","maxAttempts":40,"delay":15,"acceptors":[{"state":"success","matcher":"pathAll","argument":"SpotInstanceRequests[].Status.Code","expected":"fulfilled"},{"state":"failure","matcher":"pathAny","argument":"SpotInstanceRequests[].Status.Code","expected":"schedule-expired"},{"state":"failure","matcher":"pathAny","argument":"SpotInstanceRequests[].Status.Code","expected":"canceled-before-fulfillment"},{"state":"failure","matcher":"pathAny","argument":"SpotInstanceRequests[].Status.Code","expected":"bad-parameters"},{"state":"failure","matcher":"pathAny","argument":"SpotInstanceRequests[].Status.Code","expected":"system-error"}]},"SubnetAvailable":{"delay":15,"operation":"DescribeSubnets","maxAttempts":40,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"Subnets[].State"}]},"SystemStatusOk":{"operation":"DescribeInstanceStatus","maxAttempts":40,"delay":15,"acceptors":[{"state":"success","matcher":"pathAll","argument":"InstanceStatuses[].SystemStatus.Status","expected":"ok"}]},"VolumeAvailable":{"delay":15,"operation":"DescribeVolumes","maxAttempts":40,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"Volumes[].State"},{"expected":"deleted","matcher":"pathAny","state":"failure","argument":"Volumes[].State"}]},"VolumeDeleted":{"delay":15,"operation":"DescribeVolumes","maxAttempts":40,"acceptors":[{"expected":"deleted","matcher":"pathAll","state":"success","argument":"Volumes[].State"},{"matcher":"error","expected":"InvalidVolume.NotFound","state":"success"}]},"VolumeInUse":{"delay":15,"operation":"DescribeVolumes","maxAttempts":40,"acceptors":[{"expected":"in-use","matcher":"pathAll","state":"success","argument":"Volumes[].State"},{"expected":"deleted","matcher":"pathAny","state":"failure","argument":"Volumes[].State"}]},"VpcAvailable":{"delay":15,"operation":"DescribeVpcs","maxAttempts":40,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"Vpcs[].State"}]},"VpnConnectionAvailable":{"delay":15,"operation":"DescribeVpnConnections","maxAttempts":40,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"VpnConnections[].State"},{"expected":"deleting","matcher":"pathAny","state":"failure","argument":"VpnConnections[].State"},{"expected":"deleted","matcher":"pathAny","state":"failure","argument":"VpnConnections[].State"}]},"VpnConnectionDeleted":{"delay":15,"operation":"DescribeVpnConnections","maxAttempts":40,"acceptors":[{"expected":"deleted","matcher":"pathAll","state":"success","argument":"VpnConnections[].State"},{"expected":"pending","matcher":"pathAny","state":"failure","argument":"VpnConnections[].State"}]},"VpcPeeringConnectionExists":{"delay":15,"operation":"DescribeVpcPeeringConnections","maxAttempts":40,"acceptors":[{"matcher":"status","expected":200,"state":"success"},{"matcher":"error","expected":"InvalidVpcPeeringConnectionID.NotFound","state":"retry"}]}}}; +AWS.apiLoader.services['ecr'] = {}; +AWS.ECR = AWS.Service.defineService('ecr', [ '2015-09-21' ]); + +AWS.apiLoader.services['ecr']['2015-09-21'] = {"version":"2.0","metadata":{"apiVersion":"2015-09-21","endpointPrefix":"ecr","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"Amazon ECR","serviceFullName":"Amazon EC2 Container Registry","signatureVersion":"v4","targetPrefix":"AmazonEC2ContainerRegistry_V20150921"},"operations":{"BatchCheckLayerAvailability":{"input":{"type":"structure","required":["repositoryName","layerDigests"],"members":{"registryId":{},"repositoryName":{},"layerDigests":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"layers":{"type":"list","member":{"type":"structure","members":{"layerDigest":{},"layerAvailability":{},"layerSize":{"type":"long"}}}},"failures":{"type":"list","member":{"type":"structure","members":{"layerDigest":{},"failureCode":{},"failureReason":{}}}}}},"http":{}},"BatchDeleteImage":{"input":{"type":"structure","required":["repositoryName","imageIds"],"members":{"registryId":{},"repositoryName":{},"imageIds":{"shape":"Sh"}}},"output":{"type":"structure","members":{"imageIds":{"shape":"Sh"},"failures":{"shape":"Sm"}}},"http":{}},"BatchGetImage":{"input":{"type":"structure","required":["repositoryName","imageIds"],"members":{"registryId":{},"repositoryName":{},"imageIds":{"shape":"Sh"}}},"output":{"type":"structure","members":{"images":{"type":"list","member":{"shape":"St"}},"failures":{"shape":"Sm"}}},"http":{}},"CompleteLayerUpload":{"input":{"type":"structure","required":["repositoryName","uploadId","layerDigests"],"members":{"registryId":{},"repositoryName":{},"uploadId":{},"layerDigests":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"registryId":{},"repositoryName":{},"uploadId":{},"layerDigest":{}}},"http":{}},"CreateRepository":{"input":{"type":"structure","required":["repositoryName"],"members":{"repositoryName":{}}},"output":{"type":"structure","members":{"repository":{"shape":"S11"}}},"http":{}},"DeleteRepository":{"input":{"type":"structure","required":["repositoryName"],"members":{"registryId":{},"repositoryName":{},"force":{"type":"boolean"}}},"output":{"type":"structure","members":{"repository":{"shape":"S11"}}},"http":{}},"DeleteRepositoryPolicy":{"input":{"type":"structure","required":["repositoryName"],"members":{"registryId":{},"repositoryName":{}}},"output":{"type":"structure","members":{"registryId":{},"repositoryName":{},"policyText":{}}},"http":{}},"DescribeRepositories":{"input":{"type":"structure","members":{"registryId":{},"repositoryNames":{"type":"list","member":{}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"repositories":{"type":"list","member":{"shape":"S11"}},"nextToken":{}}},"http":{}},"GetAuthorizationToken":{"input":{"type":"structure","members":{"registryIds":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"authorizationData":{"type":"list","member":{"type":"structure","members":{"authorizationToken":{},"expiresAt":{"type":"timestamp"},"proxyEndpoint":{}}}}}},"http":{}},"GetDownloadUrlForLayer":{"input":{"type":"structure","required":["repositoryName","layerDigest"],"members":{"registryId":{},"repositoryName":{},"layerDigest":{}}},"output":{"type":"structure","members":{"downloadUrl":{},"layerDigest":{}}},"http":{}},"GetRepositoryPolicy":{"input":{"type":"structure","required":["repositoryName"],"members":{"registryId":{},"repositoryName":{}}},"output":{"type":"structure","members":{"registryId":{},"repositoryName":{},"policyText":{}}},"http":{}},"InitiateLayerUpload":{"input":{"type":"structure","required":["repositoryName"],"members":{"registryId":{},"repositoryName":{}}},"output":{"type":"structure","members":{"uploadId":{},"partSize":{"type":"long"}}},"http":{}},"ListImages":{"input":{"type":"structure","required":["repositoryName"],"members":{"registryId":{},"repositoryName":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"imageIds":{"shape":"Sh"},"nextToken":{}}},"http":{}},"PutImage":{"input":{"type":"structure","required":["repositoryName","imageManifest"],"members":{"registryId":{},"repositoryName":{},"imageManifest":{}}},"output":{"type":"structure","members":{"image":{"shape":"St"}}},"http":{}},"SetRepositoryPolicy":{"input":{"type":"structure","required":["repositoryName","policyText"],"members":{"registryId":{},"repositoryName":{},"policyText":{},"force":{"type":"boolean"}}},"output":{"type":"structure","members":{"registryId":{},"repositoryName":{},"policyText":{}}},"http":{}},"UploadLayerPart":{"input":{"type":"structure","required":["repositoryName","uploadId","partFirstByte","partLastByte","layerPartBlob"],"members":{"registryId":{},"repositoryName":{},"uploadId":{},"partFirstByte":{"type":"long"},"partLastByte":{"type":"long"},"layerPartBlob":{"type":"blob"}}},"output":{"type":"structure","members":{"registryId":{},"repositoryName":{},"uploadId":{},"lastByteReceived":{"type":"long"}}},"http":{}}},"shapes":{"Sh":{"type":"list","member":{"shape":"Si"}},"Si":{"type":"structure","members":{"imageDigest":{},"imageTag":{}}},"Sm":{"type":"list","member":{"type":"structure","members":{"imageId":{"shape":"Si"},"failureCode":{},"failureReason":{}}}},"St":{"type":"structure","members":{"registryId":{},"repositoryName":{},"imageId":{"shape":"Si"},"imageManifest":{}}},"S11":{"type":"structure","members":{"repositoryArn":{},"registryId":{},"repositoryName":{},"repositoryUri":{}}}}}; +AWS.apiLoader.services['ecs'] = {}; +AWS.ECS = AWS.Service.defineService('ecs', [ '2014-11-13' ]); + +AWS.apiLoader.services['ecs']['2014-11-13'] = {"version":"2.0","metadata":{"apiVersion":"2014-11-13","endpointPrefix":"ecs","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"Amazon ECS","serviceFullName":"Amazon EC2 Container Service","signatureVersion":"v4","targetPrefix":"AmazonEC2ContainerServiceV20141113"},"operations":{"CreateCluster":{"input":{"type":"structure","members":{"clusterName":{}}},"output":{"type":"structure","members":{"cluster":{"shape":"S4"}}},"http":{}},"CreateService":{"input":{"type":"structure","required":["serviceName","taskDefinition","desiredCount"],"members":{"cluster":{},"serviceName":{},"taskDefinition":{},"loadBalancers":{"shape":"S7"},"desiredCount":{"type":"integer"},"clientToken":{},"role":{},"deploymentConfiguration":{"shape":"Sa"}}},"output":{"type":"structure","members":{"service":{"shape":"Sc"}}},"http":{}},"DeleteCluster":{"input":{"type":"structure","required":["cluster"],"members":{"cluster":{}}},"output":{"type":"structure","members":{"cluster":{"shape":"S4"}}},"http":{}},"DeleteService":{"input":{"type":"structure","required":["service"],"members":{"cluster":{},"service":{}}},"output":{"type":"structure","members":{"service":{"shape":"Sc"}}},"http":{}},"DeregisterContainerInstance":{"input":{"type":"structure","required":["containerInstance"],"members":{"cluster":{},"containerInstance":{},"force":{"type":"boolean"}}},"output":{"type":"structure","members":{"containerInstance":{"shape":"Sp"}}},"http":{}},"DeregisterTaskDefinition":{"input":{"type":"structure","required":["taskDefinition"],"members":{"taskDefinition":{}}},"output":{"type":"structure","members":{"taskDefinition":{"shape":"S12"}}},"http":{}},"DescribeClusters":{"input":{"type":"structure","members":{"clusters":{"shape":"Sv"}}},"output":{"type":"structure","members":{"clusters":{"type":"list","member":{"shape":"S4"}},"failures":{"shape":"S1v"}}},"http":{}},"DescribeContainerInstances":{"input":{"type":"structure","required":["containerInstances"],"members":{"cluster":{},"containerInstances":{"shape":"Sv"}}},"output":{"type":"structure","members":{"containerInstances":{"type":"list","member":{"shape":"Sp"}},"failures":{"shape":"S1v"}}},"http":{}},"DescribeServices":{"input":{"type":"structure","required":["services"],"members":{"cluster":{},"services":{"shape":"Sv"}}},"output":{"type":"structure","members":{"services":{"type":"list","member":{"shape":"Sc"}},"failures":{"shape":"S1v"}}},"http":{}},"DescribeTaskDefinition":{"input":{"type":"structure","required":["taskDefinition"],"members":{"taskDefinition":{}}},"output":{"type":"structure","members":{"taskDefinition":{"shape":"S12"}}},"http":{}},"DescribeTasks":{"input":{"type":"structure","required":["tasks"],"members":{"cluster":{},"tasks":{"shape":"Sv"}}},"output":{"type":"structure","members":{"tasks":{"shape":"S27"},"failures":{"shape":"S1v"}}},"http":{}},"DiscoverPollEndpoint":{"input":{"type":"structure","members":{"containerInstance":{},"cluster":{}}},"output":{"type":"structure","members":{"endpoint":{},"telemetryEndpoint":{}}},"http":{}},"ListClusters":{"input":{"type":"structure","members":{"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"clusterArns":{"shape":"Sv"},"nextToken":{}}},"http":{}},"ListContainerInstances":{"input":{"type":"structure","members":{"cluster":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"containerInstanceArns":{"shape":"Sv"},"nextToken":{}}},"http":{}},"ListServices":{"input":{"type":"structure","members":{"cluster":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"serviceArns":{"shape":"Sv"},"nextToken":{}}},"http":{}},"ListTaskDefinitionFamilies":{"input":{"type":"structure","members":{"familyPrefix":{},"status":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"families":{"shape":"Sv"},"nextToken":{}}},"http":{}},"ListTaskDefinitions":{"input":{"type":"structure","members":{"familyPrefix":{},"status":{},"sort":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"taskDefinitionArns":{"shape":"Sv"},"nextToken":{}}},"http":{}},"ListTasks":{"input":{"type":"structure","members":{"cluster":{},"containerInstance":{},"family":{},"nextToken":{},"maxResults":{"type":"integer"},"startedBy":{},"serviceName":{},"desiredStatus":{}}},"output":{"type":"structure","members":{"taskArns":{"shape":"Sv"},"nextToken":{}}},"http":{}},"RegisterContainerInstance":{"input":{"type":"structure","members":{"cluster":{},"instanceIdentityDocument":{},"instanceIdentityDocumentSignature":{},"totalResources":{"shape":"Sr"},"versionInfo":{"shape":"Sq"},"containerInstanceArn":{},"attributes":{"shape":"Sy"}}},"output":{"type":"structure","members":{"containerInstance":{"shape":"Sp"}}},"http":{}},"RegisterTaskDefinition":{"input":{"type":"structure","required":["family","containerDefinitions"],"members":{"family":{},"containerDefinitions":{"shape":"S13"},"volumes":{"shape":"S1n"}}},"output":{"type":"structure","members":{"taskDefinition":{"shape":"S12"}}},"http":{}},"RunTask":{"input":{"type":"structure","required":["taskDefinition"],"members":{"cluster":{},"taskDefinition":{},"overrides":{"shape":"S29"},"count":{"type":"integer"},"startedBy":{}}},"output":{"type":"structure","members":{"tasks":{"shape":"S27"},"failures":{"shape":"S1v"}}},"http":{}},"StartTask":{"input":{"type":"structure","required":["taskDefinition","containerInstances"],"members":{"cluster":{},"taskDefinition":{},"overrides":{"shape":"S29"},"containerInstances":{"shape":"Sv"},"startedBy":{}}},"output":{"type":"structure","members":{"tasks":{"shape":"S27"},"failures":{"shape":"S1v"}}},"http":{}},"StopTask":{"input":{"type":"structure","required":["task"],"members":{"cluster":{},"task":{},"reason":{}}},"output":{"type":"structure","members":{"task":{"shape":"S28"}}},"http":{}},"SubmitContainerStateChange":{"input":{"type":"structure","members":{"cluster":{},"task":{},"containerName":{},"status":{},"exitCode":{"type":"integer"},"reason":{},"networkBindings":{"shape":"S2e"}}},"output":{"type":"structure","members":{"acknowledgment":{}}},"http":{}},"SubmitTaskStateChange":{"input":{"type":"structure","members":{"cluster":{},"task":{},"status":{},"reason":{}}},"output":{"type":"structure","members":{"acknowledgment":{}}},"http":{}},"UpdateContainerAgent":{"input":{"type":"structure","required":["containerInstance"],"members":{"cluster":{},"containerInstance":{}}},"output":{"type":"structure","members":{"containerInstance":{"shape":"Sp"}}},"http":{}},"UpdateService":{"input":{"type":"structure","required":["service"],"members":{"cluster":{},"service":{},"desiredCount":{"type":"integer"},"taskDefinition":{},"deploymentConfiguration":{"shape":"Sa"}}},"output":{"type":"structure","members":{"service":{"shape":"Sc"}}},"http":{}}},"shapes":{"S4":{"type":"structure","members":{"clusterArn":{},"clusterName":{},"status":{},"registeredContainerInstancesCount":{"type":"integer"},"runningTasksCount":{"type":"integer"},"pendingTasksCount":{"type":"integer"},"activeServicesCount":{"type":"integer"}}},"S7":{"type":"list","member":{"type":"structure","members":{"loadBalancerName":{},"containerName":{},"containerPort":{"type":"integer"}}}},"Sa":{"type":"structure","members":{"maximumPercent":{"type":"integer"},"minimumHealthyPercent":{"type":"integer"}}},"Sc":{"type":"structure","members":{"serviceArn":{},"serviceName":{},"clusterArn":{},"loadBalancers":{"shape":"S7"},"status":{},"desiredCount":{"type":"integer"},"runningCount":{"type":"integer"},"pendingCount":{"type":"integer"},"taskDefinition":{},"deploymentConfiguration":{"shape":"Sa"},"deployments":{"type":"list","member":{"type":"structure","members":{"id":{},"status":{},"taskDefinition":{},"desiredCount":{"type":"integer"},"pendingCount":{"type":"integer"},"runningCount":{"type":"integer"},"createdAt":{"type":"timestamp"},"updatedAt":{"type":"timestamp"}}}},"roleArn":{},"events":{"type":"list","member":{"type":"structure","members":{"id":{},"createdAt":{"type":"timestamp"},"message":{}}}},"createdAt":{"type":"timestamp"}}},"Sp":{"type":"structure","members":{"containerInstanceArn":{},"ec2InstanceId":{},"versionInfo":{"shape":"Sq"},"remainingResources":{"shape":"Sr"},"registeredResources":{"shape":"Sr"},"status":{},"agentConnected":{"type":"boolean"},"runningTasksCount":{"type":"integer"},"pendingTasksCount":{"type":"integer"},"agentUpdateStatus":{},"attributes":{"shape":"Sy"}}},"Sq":{"type":"structure","members":{"agentVersion":{},"agentHash":{},"dockerVersion":{}}},"Sr":{"type":"list","member":{"type":"structure","members":{"name":{},"type":{},"doubleValue":{"type":"double"},"longValue":{"type":"long"},"integerValue":{"type":"integer"},"stringSetValue":{"shape":"Sv"}}}},"Sv":{"type":"list","member":{}},"Sy":{"type":"list","member":{"shape":"Sz"}},"Sz":{"type":"structure","required":["name"],"members":{"name":{},"value":{}}},"S12":{"type":"structure","members":{"taskDefinitionArn":{},"containerDefinitions":{"shape":"S13"},"family":{},"revision":{"type":"integer"},"volumes":{"shape":"S1n"},"status":{},"requiresAttributes":{"type":"list","member":{"shape":"Sz"}}}},"S13":{"type":"list","member":{"type":"structure","members":{"name":{},"image":{},"cpu":{"type":"integer"},"memory":{"type":"integer"},"links":{"shape":"Sv"},"portMappings":{"type":"list","member":{"type":"structure","members":{"containerPort":{"type":"integer"},"hostPort":{"type":"integer"},"protocol":{}}}},"essential":{"type":"boolean"},"entryPoint":{"shape":"Sv"},"command":{"shape":"Sv"},"environment":{"shape":"S18"},"mountPoints":{"type":"list","member":{"type":"structure","members":{"sourceVolume":{},"containerPath":{},"readOnly":{"type":"boolean"}}}},"volumesFrom":{"type":"list","member":{"type":"structure","members":{"sourceContainer":{},"readOnly":{"type":"boolean"}}}},"hostname":{},"user":{},"workingDirectory":{},"disableNetworking":{"type":"boolean"},"privileged":{"type":"boolean"},"readonlyRootFilesystem":{"type":"boolean"},"dnsServers":{"shape":"Sv"},"dnsSearchDomains":{"shape":"Sv"},"extraHosts":{"type":"list","member":{"type":"structure","required":["hostname","ipAddress"],"members":{"hostname":{},"ipAddress":{}}}},"dockerSecurityOptions":{"shape":"Sv"},"dockerLabels":{"type":"map","key":{},"value":{}},"ulimits":{"type":"list","member":{"type":"structure","required":["name","softLimit","hardLimit"],"members":{"name":{},"softLimit":{"type":"integer"},"hardLimit":{"type":"integer"}}}},"logConfiguration":{"type":"structure","required":["logDriver"],"members":{"logDriver":{},"options":{"type":"map","key":{},"value":{}}}}}}},"S18":{"type":"list","member":{"type":"structure","members":{"name":{},"value":{}}}},"S1n":{"type":"list","member":{"type":"structure","members":{"name":{},"host":{"type":"structure","members":{"sourcePath":{}}}}}},"S1v":{"type":"list","member":{"type":"structure","members":{"arn":{},"reason":{}}}},"S27":{"type":"list","member":{"shape":"S28"}},"S28":{"type":"structure","members":{"taskArn":{},"clusterArn":{},"taskDefinitionArn":{},"containerInstanceArn":{},"overrides":{"shape":"S29"},"lastStatus":{},"desiredStatus":{},"containers":{"type":"list","member":{"type":"structure","members":{"containerArn":{},"taskArn":{},"name":{},"lastStatus":{},"exitCode":{"type":"integer"},"reason":{},"networkBindings":{"shape":"S2e"}}}},"startedBy":{},"stoppedReason":{},"createdAt":{"type":"timestamp"},"startedAt":{"type":"timestamp"},"stoppedAt":{"type":"timestamp"}}},"S29":{"type":"structure","members":{"containerOverrides":{"type":"list","member":{"type":"structure","members":{"name":{},"command":{"shape":"Sv"},"environment":{"shape":"S18"}}}}}},"S2e":{"type":"list","member":{"type":"structure","members":{"bindIP":{},"containerPort":{"type":"integer"},"hostPort":{"type":"integer"},"protocol":{}}}}},"paginators":{"ListClusters":{"input_token":"nextToken","output_token":"nextToken","limit_key":"maxResults","result_key":"clusterArns"},"ListContainerInstances":{"input_token":"nextToken","output_token":"nextToken","limit_key":"maxResults","result_key":"containerInstanceArns"},"ListTaskDefinitions":{"input_token":"nextToken","output_token":"nextToken","limit_key":"maxResults","result_key":"taskDefinitionArns"},"ListTaskDefinitionFamilies":{"input_token":"nextToken","output_token":"nextToken","limit_key":"maxResults","result_key":"families"},"ListTasks":{"input_token":"nextToken","output_token":"nextToken","limit_key":"maxResults","result_key":"taskArns"},"ListServices":{"input_token":"nextToken","output_token":"nextToken","limit_key":"maxResults","result_key":"serviceArns"}},"waiters":{"TasksRunning":{"delay":6,"operation":"DescribeTasks","maxAttempts":100,"acceptors":[{"expected":"STOPPED","matcher":"pathAny","state":"failure","argument":"tasks[].lastStatus"},{"expected":"MISSING","matcher":"pathAny","state":"failure","argument":"failures[].reason"},{"expected":"RUNNING","matcher":"pathAll","state":"success","argument":"tasks[].lastStatus"}]},"TasksStopped":{"delay":6,"operation":"DescribeTasks","maxAttempts":100,"acceptors":[{"expected":"STOPPED","matcher":"pathAll","state":"success","argument":"tasks[].lastStatus"}]},"ServicesStable":{"delay":15,"operation":"DescribeServices","maxAttempts":40,"acceptors":[{"expected":"MISSING","matcher":"pathAny","state":"failure","argument":"failures[].reason"},{"expected":"DRAINING","matcher":"pathAny","state":"failure","argument":"services[].status"},{"expected":"INACTIVE","matcher":"pathAny","state":"failure","argument":"services[].status"},{"expected":true,"matcher":"path","state":"success","argument":"services | [@[?length(deployments)!=`1`], @[?desiredCount!=runningCount]][] | length(@) == `0`"}]},"ServicesInactive":{"delay":15,"operation":"DescribeServices","maxAttempts":40,"acceptors":[{"expected":"MISSING","matcher":"pathAny","state":"failure","argument":"failures[].reason"},{"expected":"INACTIVE","matcher":"pathAny","state":"success","argument":"services[].status"}]}}}; +AWS.apiLoader.services['elastictranscoder'] = {}; +AWS.ElasticTranscoder = AWS.Service.defineService('elastictranscoder', [ '2012-09-25' ]); + +AWS.apiLoader.services['elastictranscoder']['2012-09-25'] = {"version":"2.0","metadata":{"apiVersion":"2012-09-25","endpointPrefix":"elastictranscoder","serviceFullName":"Amazon Elastic Transcoder","signatureVersion":"v4","protocol":"rest-json"},"operations":{"CancelJob":{"http":{"method":"DELETE","requestUri":"/2012-09-25/jobs/{Id}","responseCode":202},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{}}},"CreateJob":{"http":{"requestUri":"/2012-09-25/jobs","responseCode":201},"input":{"type":"structure","required":["PipelineId","Input"],"members":{"PipelineId":{},"Input":{"shape":"S5"},"Output":{"shape":"Sk"},"Outputs":{"type":"list","member":{"shape":"Sk"}},"OutputKeyPrefix":{},"Playlists":{"type":"list","member":{"type":"structure","members":{"Name":{},"Format":{},"OutputKeys":{"shape":"S1i"},"HlsContentProtection":{"shape":"S1j"},"PlayReadyDrm":{"shape":"S1n"}}}},"UserMetadata":{"shape":"S1s"}}},"output":{"type":"structure","members":{"Job":{"shape":"S1v"}}}},"CreatePipeline":{"http":{"requestUri":"/2012-09-25/pipelines","responseCode":201},"input":{"type":"structure","required":["Name","InputBucket","Role"],"members":{"Name":{},"InputBucket":{},"OutputBucket":{},"Role":{},"AwsKmsKeyArn":{},"Notifications":{"shape":"S27"},"ContentConfig":{"shape":"S29"},"ThumbnailConfig":{"shape":"S29"}}},"output":{"type":"structure","members":{"Pipeline":{"shape":"S2i"},"Warnings":{"shape":"S2k"}}}},"CreatePreset":{"http":{"requestUri":"/2012-09-25/presets","responseCode":201},"input":{"type":"structure","required":["Name","Container"],"members":{"Name":{},"Description":{},"Container":{},"Video":{"shape":"S2o"},"Audio":{"shape":"S34"},"Thumbnails":{"shape":"S3f"}}},"output":{"type":"structure","members":{"Preset":{"shape":"S3j"},"Warning":{}}}},"DeletePipeline":{"http":{"method":"DELETE","requestUri":"/2012-09-25/pipelines/{Id}","responseCode":202},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{}}},"DeletePreset":{"http":{"method":"DELETE","requestUri":"/2012-09-25/presets/{Id}","responseCode":202},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{}}},"ListJobsByPipeline":{"http":{"method":"GET","requestUri":"/2012-09-25/jobsByPipeline/{PipelineId}"},"input":{"type":"structure","required":["PipelineId"],"members":{"PipelineId":{"location":"uri","locationName":"PipelineId"},"Ascending":{"location":"querystring","locationName":"Ascending"},"PageToken":{"location":"querystring","locationName":"PageToken"}}},"output":{"type":"structure","members":{"Jobs":{"shape":"S3s"},"NextPageToken":{}}}},"ListJobsByStatus":{"http":{"method":"GET","requestUri":"/2012-09-25/jobsByStatus/{Status}"},"input":{"type":"structure","required":["Status"],"members":{"Status":{"location":"uri","locationName":"Status"},"Ascending":{"location":"querystring","locationName":"Ascending"},"PageToken":{"location":"querystring","locationName":"PageToken"}}},"output":{"type":"structure","members":{"Jobs":{"shape":"S3s"},"NextPageToken":{}}}},"ListPipelines":{"http":{"method":"GET","requestUri":"/2012-09-25/pipelines"},"input":{"type":"structure","members":{"Ascending":{"location":"querystring","locationName":"Ascending"},"PageToken":{"location":"querystring","locationName":"PageToken"}}},"output":{"type":"structure","members":{"Pipelines":{"type":"list","member":{"shape":"S2i"}},"NextPageToken":{}}}},"ListPresets":{"http":{"method":"GET","requestUri":"/2012-09-25/presets"},"input":{"type":"structure","members":{"Ascending":{"location":"querystring","locationName":"Ascending"},"PageToken":{"location":"querystring","locationName":"PageToken"}}},"output":{"type":"structure","members":{"Presets":{"type":"list","member":{"shape":"S3j"}},"NextPageToken":{}}}},"ReadJob":{"http":{"method":"GET","requestUri":"/2012-09-25/jobs/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{"Job":{"shape":"S1v"}}}},"ReadPipeline":{"http":{"method":"GET","requestUri":"/2012-09-25/pipelines/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{"Pipeline":{"shape":"S2i"},"Warnings":{"shape":"S2k"}}}},"ReadPreset":{"http":{"method":"GET","requestUri":"/2012-09-25/presets/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{"Preset":{"shape":"S3j"}}}},"TestRole":{"http":{"requestUri":"/2012-09-25/roleTests","responseCode":200},"input":{"type":"structure","required":["Role","InputBucket","OutputBucket","Topics"],"members":{"Role":{},"InputBucket":{},"OutputBucket":{},"Topics":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"Success":{},"Messages":{"type":"list","member":{}}}}},"UpdatePipeline":{"http":{"method":"PUT","requestUri":"/2012-09-25/pipelines/{Id}","responseCode":200},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"},"Name":{},"InputBucket":{},"Role":{},"AwsKmsKeyArn":{},"Notifications":{"shape":"S27"},"ContentConfig":{"shape":"S29"},"ThumbnailConfig":{"shape":"S29"}}},"output":{"type":"structure","members":{"Pipeline":{"shape":"S2i"},"Warnings":{"shape":"S2k"}}}},"UpdatePipelineNotifications":{"http":{"requestUri":"/2012-09-25/pipelines/{Id}/notifications"},"input":{"type":"structure","required":["Id","Notifications"],"members":{"Id":{"location":"uri","locationName":"Id"},"Notifications":{"shape":"S27"}}},"output":{"type":"structure","members":{"Pipeline":{"shape":"S2i"}}}},"UpdatePipelineStatus":{"http":{"requestUri":"/2012-09-25/pipelines/{Id}/status"},"input":{"type":"structure","required":["Id","Status"],"members":{"Id":{"location":"uri","locationName":"Id"},"Status":{}}},"output":{"type":"structure","members":{"Pipeline":{"shape":"S2i"}}}}},"shapes":{"S5":{"type":"structure","members":{"Key":{},"FrameRate":{},"Resolution":{},"AspectRatio":{},"Interlaced":{},"Container":{},"Encryption":{"shape":"Sc"},"DetectedProperties":{"type":"structure","members":{"Width":{"type":"integer"},"Height":{"type":"integer"},"FrameRate":{},"FileSize":{"type":"long"},"DurationMillis":{"type":"long"}}}}},"Sc":{"type":"structure","members":{"Mode":{},"Key":{},"KeyMd5":{},"InitializationVector":{}}},"Sk":{"type":"structure","members":{"Key":{},"ThumbnailPattern":{},"ThumbnailEncryption":{"shape":"Sc"},"Rotate":{},"PresetId":{},"SegmentDuration":{},"Watermarks":{"shape":"Sn"},"AlbumArt":{"shape":"Sr"},"Composition":{"shape":"Sz"},"Captions":{"shape":"S13"},"Encryption":{"shape":"Sc"}}},"Sn":{"type":"list","member":{"type":"structure","members":{"PresetWatermarkId":{},"InputKey":{},"Encryption":{"shape":"Sc"}}}},"Sr":{"type":"structure","members":{"MergePolicy":{},"Artwork":{"type":"list","member":{"type":"structure","members":{"InputKey":{},"MaxWidth":{},"MaxHeight":{},"SizingPolicy":{},"PaddingPolicy":{},"AlbumArtFormat":{},"Encryption":{"shape":"Sc"}}}}}},"Sz":{"type":"list","member":{"type":"structure","members":{"TimeSpan":{"type":"structure","members":{"StartTime":{},"Duration":{}}}}}},"S13":{"type":"structure","members":{"MergePolicy":{},"CaptionSources":{"type":"list","member":{"type":"structure","members":{"Key":{},"Language":{},"TimeOffset":{},"Label":{},"Encryption":{"shape":"Sc"}}}},"CaptionFormats":{"type":"list","member":{"type":"structure","members":{"Format":{},"Pattern":{},"Encryption":{"shape":"Sc"}}}}}},"S1i":{"type":"list","member":{}},"S1j":{"type":"structure","members":{"Method":{},"Key":{},"KeyMd5":{},"InitializationVector":{},"LicenseAcquisitionUrl":{},"KeyStoragePolicy":{}}},"S1n":{"type":"structure","members":{"Format":{},"Key":{},"KeyMd5":{},"KeyId":{},"InitializationVector":{},"LicenseAcquisitionUrl":{}}},"S1s":{"type":"map","key":{},"value":{}},"S1v":{"type":"structure","members":{"Id":{},"Arn":{},"PipelineId":{},"Input":{"shape":"S5"},"Output":{"shape":"S1w"},"Outputs":{"type":"list","member":{"shape":"S1w"}},"OutputKeyPrefix":{},"Playlists":{"type":"list","member":{"type":"structure","members":{"Name":{},"Format":{},"OutputKeys":{"shape":"S1i"},"HlsContentProtection":{"shape":"S1j"},"PlayReadyDrm":{"shape":"S1n"},"Status":{},"StatusDetail":{}}}},"Status":{},"UserMetadata":{"shape":"S1s"},"Timing":{"type":"structure","members":{"SubmitTimeMillis":{"type":"long"},"StartTimeMillis":{"type":"long"},"FinishTimeMillis":{"type":"long"}}}}},"S1w":{"type":"structure","members":{"Id":{},"Key":{},"ThumbnailPattern":{},"ThumbnailEncryption":{"shape":"Sc"},"Rotate":{},"PresetId":{},"SegmentDuration":{},"Status":{},"StatusDetail":{},"Duration":{"type":"long"},"Width":{"type":"integer"},"Height":{"type":"integer"},"FrameRate":{},"FileSize":{"type":"long"},"DurationMillis":{"type":"long"},"Watermarks":{"shape":"Sn"},"AlbumArt":{"shape":"Sr"},"Composition":{"shape":"Sz"},"Captions":{"shape":"S13"},"Encryption":{"shape":"Sc"},"AppliedColorSpaceConversion":{}}},"S27":{"type":"structure","members":{"Progressing":{},"Completed":{},"Warning":{},"Error":{}}},"S29":{"type":"structure","members":{"Bucket":{},"StorageClass":{},"Permissions":{"type":"list","member":{"type":"structure","members":{"GranteeType":{},"Grantee":{},"Access":{"type":"list","member":{}}}}}}},"S2i":{"type":"structure","members":{"Id":{},"Arn":{},"Name":{},"Status":{},"InputBucket":{},"OutputBucket":{},"Role":{},"AwsKmsKeyArn":{},"Notifications":{"shape":"S27"},"ContentConfig":{"shape":"S29"},"ThumbnailConfig":{"shape":"S29"}}},"S2k":{"type":"list","member":{"type":"structure","members":{"Code":{},"Message":{}}}},"S2o":{"type":"structure","members":{"Codec":{},"CodecOptions":{"type":"map","key":{},"value":{}},"KeyframesMaxDist":{},"FixedGOP":{},"BitRate":{},"FrameRate":{},"MaxFrameRate":{},"Resolution":{},"AspectRatio":{},"MaxWidth":{},"MaxHeight":{},"DisplayAspectRatio":{},"SizingPolicy":{},"PaddingPolicy":{},"Watermarks":{"type":"list","member":{"type":"structure","members":{"Id":{},"MaxWidth":{},"MaxHeight":{},"SizingPolicy":{},"HorizontalAlign":{},"HorizontalOffset":{},"VerticalAlign":{},"VerticalOffset":{},"Opacity":{},"Target":{}}}}}},"S34":{"type":"structure","members":{"Codec":{},"SampleRate":{},"BitRate":{},"Channels":{},"AudioPackingMode":{},"CodecOptions":{"type":"structure","members":{"Profile":{},"BitDepth":{},"BitOrder":{},"Signed":{}}}}},"S3f":{"type":"structure","members":{"Format":{},"Interval":{},"Resolution":{},"AspectRatio":{},"MaxWidth":{},"MaxHeight":{},"SizingPolicy":{},"PaddingPolicy":{}}},"S3j":{"type":"structure","members":{"Id":{},"Arn":{},"Name":{},"Description":{},"Container":{},"Audio":{"shape":"S34"},"Video":{"shape":"S2o"},"Thumbnails":{"shape":"S3f"},"Type":{}}},"S3s":{"type":"list","member":{"shape":"S1v"}}},"paginators":{"ListJobsByPipeline":{"input_token":"PageToken","output_token":"NextPageToken","result_key":"Jobs"},"ListJobsByStatus":{"input_token":"PageToken","output_token":"NextPageToken","result_key":"Jobs"},"ListPipelines":{"input_token":"PageToken","output_token":"NextPageToken","result_key":"Pipelines"},"ListPresets":{"input_token":"PageToken","output_token":"NextPageToken","result_key":"Presets"}},"waiters":{"JobComplete":{"delay":30,"operation":"ReadJob","maxAttempts":120,"acceptors":[{"expected":"Complete","matcher":"path","state":"success","argument":"Job.Status"},{"expected":"Canceled","matcher":"path","state":"failure","argument":"Job.Status"},{"expected":"Error","matcher":"path","state":"failure","argument":"Job.Status"}]}}}; +AWS.apiLoader.services['elb'] = {}; +AWS.ELB = AWS.Service.defineService('elb', [ '2012-06-01' ]); + +AWS.apiLoader.services['elb']['2012-06-01'] = {"version":"2.0","metadata":{"apiVersion":"2012-06-01","endpointPrefix":"elasticloadbalancing","serviceFullName":"Elastic Load Balancing","signatureVersion":"v4","xmlNamespace":"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/","protocol":"query"},"operations":{"AddTags":{"input":{"type":"structure","required":["LoadBalancerNames","Tags"],"members":{"LoadBalancerNames":{"shape":"S2"},"Tags":{"shape":"S4"}}},"output":{"resultWrapper":"AddTagsResult","type":"structure","members":{}},"http":{}},"ApplySecurityGroupsToLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName","SecurityGroups"],"members":{"LoadBalancerName":{},"SecurityGroups":{"shape":"Sa"}}},"output":{"resultWrapper":"ApplySecurityGroupsToLoadBalancerResult","type":"structure","members":{"SecurityGroups":{"shape":"Sa"}}},"http":{}},"AttachLoadBalancerToSubnets":{"input":{"type":"structure","required":["LoadBalancerName","Subnets"],"members":{"LoadBalancerName":{},"Subnets":{"shape":"Se"}}},"output":{"resultWrapper":"AttachLoadBalancerToSubnetsResult","type":"structure","members":{"Subnets":{"shape":"Se"}}},"http":{}},"ConfigureHealthCheck":{"input":{"type":"structure","required":["LoadBalancerName","HealthCheck"],"members":{"LoadBalancerName":{},"HealthCheck":{"shape":"Si"}}},"output":{"resultWrapper":"ConfigureHealthCheckResult","type":"structure","members":{"HealthCheck":{"shape":"Si"}}},"http":{}},"CreateAppCookieStickinessPolicy":{"input":{"type":"structure","required":["LoadBalancerName","PolicyName","CookieName"],"members":{"LoadBalancerName":{},"PolicyName":{},"CookieName":{}}},"output":{"resultWrapper":"CreateAppCookieStickinessPolicyResult","type":"structure","members":{}},"http":{}},"CreateLBCookieStickinessPolicy":{"input":{"type":"structure","required":["LoadBalancerName","PolicyName"],"members":{"LoadBalancerName":{},"PolicyName":{},"CookieExpirationPeriod":{"type":"long"}}},"output":{"resultWrapper":"CreateLBCookieStickinessPolicyResult","type":"structure","members":{}},"http":{}},"CreateLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName","Listeners"],"members":{"LoadBalancerName":{},"Listeners":{"shape":"Sx"},"AvailabilityZones":{"shape":"S13"},"Subnets":{"shape":"Se"},"SecurityGroups":{"shape":"Sa"},"Scheme":{},"Tags":{"shape":"S4"}}},"output":{"resultWrapper":"CreateLoadBalancerResult","type":"structure","members":{"DNSName":{}}},"http":{}},"CreateLoadBalancerListeners":{"input":{"type":"structure","required":["LoadBalancerName","Listeners"],"members":{"LoadBalancerName":{},"Listeners":{"shape":"Sx"}}},"output":{"resultWrapper":"CreateLoadBalancerListenersResult","type":"structure","members":{}},"http":{}},"CreateLoadBalancerPolicy":{"input":{"type":"structure","required":["LoadBalancerName","PolicyName","PolicyTypeName"],"members":{"LoadBalancerName":{},"PolicyName":{},"PolicyTypeName":{},"PolicyAttributes":{"type":"list","member":{"type":"structure","members":{"AttributeName":{},"AttributeValue":{}}}}}},"output":{"resultWrapper":"CreateLoadBalancerPolicyResult","type":"structure","members":{}},"http":{}},"DeleteLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName"],"members":{"LoadBalancerName":{}}},"output":{"resultWrapper":"DeleteLoadBalancerResult","type":"structure","members":{}},"http":{}},"DeleteLoadBalancerListeners":{"input":{"type":"structure","required":["LoadBalancerName","LoadBalancerPorts"],"members":{"LoadBalancerName":{},"LoadBalancerPorts":{"type":"list","member":{"type":"integer"}}}},"output":{"resultWrapper":"DeleteLoadBalancerListenersResult","type":"structure","members":{}},"http":{}},"DeleteLoadBalancerPolicy":{"input":{"type":"structure","required":["LoadBalancerName","PolicyName"],"members":{"LoadBalancerName":{},"PolicyName":{}}},"output":{"resultWrapper":"DeleteLoadBalancerPolicyResult","type":"structure","members":{}},"http":{}},"DeregisterInstancesFromLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName","Instances"],"members":{"LoadBalancerName":{},"Instances":{"shape":"S1p"}}},"output":{"resultWrapper":"DeregisterInstancesFromLoadBalancerResult","type":"structure","members":{"Instances":{"shape":"S1p"}}},"http":{}},"DescribeInstanceHealth":{"input":{"type":"structure","required":["LoadBalancerName"],"members":{"LoadBalancerName":{},"Instances":{"shape":"S1p"}}},"output":{"resultWrapper":"DescribeInstanceHealthResult","type":"structure","members":{"InstanceStates":{"type":"list","member":{"type":"structure","members":{"InstanceId":{},"State":{},"ReasonCode":{},"Description":{}}}}}},"http":{}},"DescribeLoadBalancerAttributes":{"input":{"type":"structure","required":["LoadBalancerName"],"members":{"LoadBalancerName":{}}},"output":{"resultWrapper":"DescribeLoadBalancerAttributesResult","type":"structure","members":{"LoadBalancerAttributes":{"shape":"S22"}}},"http":{}},"DescribeLoadBalancerPolicies":{"input":{"type":"structure","members":{"LoadBalancerName":{},"PolicyNames":{"shape":"S2j"}}},"output":{"resultWrapper":"DescribeLoadBalancerPoliciesResult","type":"structure","members":{"PolicyDescriptions":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"PolicyTypeName":{},"PolicyAttributeDescriptions":{"type":"list","member":{"type":"structure","members":{"AttributeName":{},"AttributeValue":{}}}}}}}}},"http":{}},"DescribeLoadBalancerPolicyTypes":{"input":{"type":"structure","members":{"PolicyTypeNames":{"type":"list","member":{}}}},"output":{"resultWrapper":"DescribeLoadBalancerPolicyTypesResult","type":"structure","members":{"PolicyTypeDescriptions":{"type":"list","member":{"type":"structure","members":{"PolicyTypeName":{},"Description":{},"PolicyAttributeTypeDescriptions":{"type":"list","member":{"type":"structure","members":{"AttributeName":{},"AttributeType":{},"Description":{},"DefaultValue":{},"Cardinality":{}}}}}}}}},"http":{}},"DescribeLoadBalancers":{"input":{"type":"structure","members":{"LoadBalancerNames":{"shape":"S2"},"Marker":{},"PageSize":{"type":"integer"}}},"output":{"resultWrapper":"DescribeLoadBalancersResult","type":"structure","members":{"LoadBalancerDescriptions":{"type":"list","member":{"type":"structure","members":{"LoadBalancerName":{},"DNSName":{},"CanonicalHostedZoneName":{},"CanonicalHostedZoneNameID":{},"ListenerDescriptions":{"type":"list","member":{"type":"structure","members":{"Listener":{"shape":"Sy"},"PolicyNames":{"shape":"S2j"}}}},"Policies":{"type":"structure","members":{"AppCookieStickinessPolicies":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"CookieName":{}}}},"LBCookieStickinessPolicies":{"type":"list","member":{"type":"structure","members":{"PolicyName":{},"CookieExpirationPeriod":{"type":"long"}}}},"OtherPolicies":{"shape":"S2j"}}},"BackendServerDescriptions":{"type":"list","member":{"type":"structure","members":{"InstancePort":{"type":"integer"},"PolicyNames":{"shape":"S2j"}}}},"AvailabilityZones":{"shape":"S13"},"Subnets":{"shape":"Se"},"VPCId":{},"Instances":{"shape":"S1p"},"HealthCheck":{"shape":"Si"},"SourceSecurityGroup":{"type":"structure","members":{"OwnerAlias":{},"GroupName":{}}},"SecurityGroups":{"shape":"Sa"},"CreatedTime":{"type":"timestamp"},"Scheme":{}}}},"NextMarker":{}}},"http":{}},"DescribeTags":{"input":{"type":"structure","required":["LoadBalancerNames"],"members":{"LoadBalancerNames":{"type":"list","member":{}}}},"output":{"resultWrapper":"DescribeTagsResult","type":"structure","members":{"TagDescriptions":{"type":"list","member":{"type":"structure","members":{"LoadBalancerName":{},"Tags":{"shape":"S4"}}}}}},"http":{}},"DetachLoadBalancerFromSubnets":{"input":{"type":"structure","required":["LoadBalancerName","Subnets"],"members":{"LoadBalancerName":{},"Subnets":{"shape":"Se"}}},"output":{"resultWrapper":"DetachLoadBalancerFromSubnetsResult","type":"structure","members":{"Subnets":{"shape":"Se"}}},"http":{}},"DisableAvailabilityZonesForLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName","AvailabilityZones"],"members":{"LoadBalancerName":{},"AvailabilityZones":{"shape":"S13"}}},"output":{"resultWrapper":"DisableAvailabilityZonesForLoadBalancerResult","type":"structure","members":{"AvailabilityZones":{"shape":"S13"}}},"http":{}},"EnableAvailabilityZonesForLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName","AvailabilityZones"],"members":{"LoadBalancerName":{},"AvailabilityZones":{"shape":"S13"}}},"output":{"resultWrapper":"EnableAvailabilityZonesForLoadBalancerResult","type":"structure","members":{"AvailabilityZones":{"shape":"S13"}}},"http":{}},"ModifyLoadBalancerAttributes":{"input":{"type":"structure","required":["LoadBalancerName","LoadBalancerAttributes"],"members":{"LoadBalancerName":{},"LoadBalancerAttributes":{"shape":"S22"}}},"output":{"resultWrapper":"ModifyLoadBalancerAttributesResult","type":"structure","members":{"LoadBalancerName":{},"LoadBalancerAttributes":{"shape":"S22"}}},"http":{}},"RegisterInstancesWithLoadBalancer":{"input":{"type":"structure","required":["LoadBalancerName","Instances"],"members":{"LoadBalancerName":{},"Instances":{"shape":"S1p"}}},"output":{"resultWrapper":"RegisterInstancesWithLoadBalancerResult","type":"structure","members":{"Instances":{"shape":"S1p"}}},"http":{}},"RemoveTags":{"input":{"type":"structure","required":["LoadBalancerNames","Tags"],"members":{"LoadBalancerNames":{"shape":"S2"},"Tags":{"type":"list","member":{"type":"structure","members":{"Key":{}}}}}},"output":{"resultWrapper":"RemoveTagsResult","type":"structure","members":{}},"http":{}},"SetLoadBalancerListenerSSLCertificate":{"input":{"type":"structure","required":["LoadBalancerName","LoadBalancerPort","SSLCertificateId"],"members":{"LoadBalancerName":{},"LoadBalancerPort":{"type":"integer"},"SSLCertificateId":{}}},"output":{"resultWrapper":"SetLoadBalancerListenerSSLCertificateResult","type":"structure","members":{}},"http":{}},"SetLoadBalancerPoliciesForBackendServer":{"input":{"type":"structure","required":["LoadBalancerName","InstancePort","PolicyNames"],"members":{"LoadBalancerName":{},"InstancePort":{"type":"integer"},"PolicyNames":{"shape":"S2j"}}},"output":{"resultWrapper":"SetLoadBalancerPoliciesForBackendServerResult","type":"structure","members":{}},"http":{}},"SetLoadBalancerPoliciesOfListener":{"input":{"type":"structure","required":["LoadBalancerName","LoadBalancerPort","PolicyNames"],"members":{"LoadBalancerName":{},"LoadBalancerPort":{"type":"integer"},"PolicyNames":{"shape":"S2j"}}},"output":{"resultWrapper":"SetLoadBalancerPoliciesOfListenerResult","type":"structure","members":{}},"http":{}}},"shapes":{"S2":{"type":"list","member":{}},"S4":{"type":"list","member":{"type":"structure","required":["Key"],"members":{"Key":{},"Value":{}}}},"Sa":{"type":"list","member":{}},"Se":{"type":"list","member":{}},"Si":{"type":"structure","required":["Target","Interval","Timeout","UnhealthyThreshold","HealthyThreshold"],"members":{"Target":{},"Interval":{"type":"integer"},"Timeout":{"type":"integer"},"UnhealthyThreshold":{"type":"integer"},"HealthyThreshold":{"type":"integer"}}},"Sx":{"type":"list","member":{"shape":"Sy"}},"Sy":{"type":"structure","required":["Protocol","LoadBalancerPort","InstancePort"],"members":{"Protocol":{},"LoadBalancerPort":{"type":"integer"},"InstanceProtocol":{},"InstancePort":{"type":"integer"},"SSLCertificateId":{}}},"S13":{"type":"list","member":{}},"S1p":{"type":"list","member":{"type":"structure","members":{"InstanceId":{}}}},"S22":{"type":"structure","members":{"CrossZoneLoadBalancing":{"type":"structure","required":["Enabled"],"members":{"Enabled":{"type":"boolean"}}},"AccessLog":{"type":"structure","required":["Enabled"],"members":{"Enabled":{"type":"boolean"},"S3BucketName":{},"EmitInterval":{"type":"integer"},"S3BucketPrefix":{}}},"ConnectionDraining":{"type":"structure","required":["Enabled"],"members":{"Enabled":{"type":"boolean"},"Timeout":{"type":"integer"}}},"ConnectionSettings":{"type":"structure","required":["IdleTimeout"],"members":{"IdleTimeout":{"type":"integer"}}},"AdditionalAttributes":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}}}},"S2j":{"type":"list","member":{}}},"examples":{},"paginators":{"DescribeInstanceHealth":{"result_key":"InstanceStates"},"DescribeLoadBalancerPolicies":{"result_key":"PolicyDescriptions"},"DescribeLoadBalancerPolicyTypes":{"result_key":"PolicyTypeDescriptions"},"DescribeLoadBalancers":{"input_token":"Marker","output_token":"NextMarker","result_key":"LoadBalancerDescriptions"}},"waiters":{"InstanceInService":{"delay":15,"operation":"DescribeInstanceHealth","maxAttempts":40,"acceptors":[{"expected":"InService","matcher":"pathAll","state":"success","argument":"InstanceStates[].State"}]},"InstanceDeregistered":{"delay":15,"operation":"DescribeInstanceHealth","maxAttempts":40,"acceptors":[{"expected":"OutOfService","matcher":"pathAll","state":"success","argument":"InstanceStates[].State"},{"matcher":"error","expected":"InvalidInstance","state":"success"}]},"AnyInstanceInService":{"delay":15,"operation":"DescribeInstanceHealth","maxAttempts":40,"acceptors":[{"expected":"InService","matcher":"pathAny","state":"success","argument":"InstanceStates[].State"}]}}}; +AWS.apiLoader.services['firehose'] = {}; +AWS.Firehose = AWS.Service.defineService('firehose', [ '2015-08-04' ]); + +AWS.apiLoader.services['firehose']['2015-08-04'] = {"version":"2.0","metadata":{"apiVersion":"2015-08-04","endpointPrefix":"firehose","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"Firehose","serviceFullName":"Amazon Kinesis Firehose","signatureVersion":"v4","targetPrefix":"Firehose_20150804"},"operations":{"CreateDeliveryStream":{"input":{"type":"structure","required":["DeliveryStreamName"],"members":{"DeliveryStreamName":{},"S3DestinationConfiguration":{"shape":"S3"},"RedshiftDestinationConfiguration":{"type":"structure","required":["RoleARN","ClusterJDBCURL","CopyCommand","Username","Password","S3Configuration"],"members":{"RoleARN":{},"ClusterJDBCURL":{},"CopyCommand":{"shape":"Sl"},"Username":{"shape":"Sp"},"Password":{"shape":"Sq"},"RetryOptions":{"shape":"Sr"},"S3Configuration":{"shape":"S3"},"CloudWatchLoggingOptions":{"shape":"Sf"}}},"ElasticsearchDestinationConfiguration":{"type":"structure","required":["RoleARN","DomainARN","IndexName","TypeName","S3Configuration"],"members":{"RoleARN":{},"DomainARN":{},"IndexName":{},"TypeName":{},"IndexRotationPeriod":{},"BufferingHints":{"shape":"Sy"},"RetryOptions":{"shape":"S11"},"S3BackupMode":{},"S3Configuration":{"shape":"S3"},"CloudWatchLoggingOptions":{"shape":"Sf"}}}}},"output":{"type":"structure","members":{"DeliveryStreamARN":{}}},"http":{}},"DeleteDeliveryStream":{"input":{"type":"structure","required":["DeliveryStreamName"],"members":{"DeliveryStreamName":{}}},"output":{"type":"structure","members":{}},"http":{}},"DescribeDeliveryStream":{"input":{"type":"structure","required":["DeliveryStreamName"],"members":{"DeliveryStreamName":{},"Limit":{"type":"integer"},"ExclusiveStartDestinationId":{}}},"output":{"type":"structure","required":["DeliveryStreamDescription"],"members":{"DeliveryStreamDescription":{"type":"structure","required":["DeliveryStreamName","DeliveryStreamARN","DeliveryStreamStatus","VersionId","Destinations","HasMoreDestinations"],"members":{"DeliveryStreamName":{},"DeliveryStreamARN":{},"DeliveryStreamStatus":{},"VersionId":{},"CreateTimestamp":{"type":"timestamp"},"LastUpdateTimestamp":{"type":"timestamp"},"Destinations":{"type":"list","member":{"type":"structure","required":["DestinationId"],"members":{"DestinationId":{},"S3DestinationDescription":{"shape":"S1i"},"RedshiftDestinationDescription":{"type":"structure","required":["RoleARN","ClusterJDBCURL","CopyCommand","Username","S3DestinationDescription"],"members":{"RoleARN":{},"ClusterJDBCURL":{},"CopyCommand":{"shape":"Sl"},"Username":{"shape":"Sp"},"RetryOptions":{"shape":"Sr"},"S3DestinationDescription":{"shape":"S1i"},"CloudWatchLoggingOptions":{"shape":"Sf"}}},"ElasticsearchDestinationDescription":{"type":"structure","members":{"RoleARN":{},"DomainARN":{},"IndexName":{},"TypeName":{},"IndexRotationPeriod":{},"BufferingHints":{"shape":"Sy"},"RetryOptions":{"shape":"S11"},"S3BackupMode":{},"S3DestinationDescription":{"shape":"S1i"},"CloudWatchLoggingOptions":{"shape":"Sf"}}}}}},"HasMoreDestinations":{"type":"boolean"}}}}},"http":{}},"ListDeliveryStreams":{"input":{"type":"structure","members":{"Limit":{"type":"integer"},"ExclusiveStartDeliveryStreamName":{}}},"output":{"type":"structure","required":["DeliveryStreamNames","HasMoreDeliveryStreams"],"members":{"DeliveryStreamNames":{"type":"list","member":{}},"HasMoreDeliveryStreams":{"type":"boolean"}}},"http":{}},"PutRecord":{"input":{"type":"structure","required":["DeliveryStreamName","Record"],"members":{"DeliveryStreamName":{},"Record":{"shape":"S1q"}}},"output":{"type":"structure","required":["RecordId"],"members":{"RecordId":{}}},"http":{}},"PutRecordBatch":{"input":{"type":"structure","required":["DeliveryStreamName","Records"],"members":{"DeliveryStreamName":{},"Records":{"type":"list","member":{"shape":"S1q"}}}},"output":{"type":"structure","required":["FailedPutCount","RequestResponses"],"members":{"FailedPutCount":{"type":"integer"},"RequestResponses":{"type":"list","member":{"type":"structure","members":{"RecordId":{},"ErrorCode":{},"ErrorMessage":{}}}}}},"http":{}},"UpdateDestination":{"input":{"type":"structure","required":["DeliveryStreamName","CurrentDeliveryStreamVersionId","DestinationId"],"members":{"DeliveryStreamName":{},"CurrentDeliveryStreamVersionId":{},"DestinationId":{},"S3DestinationUpdate":{"shape":"S23"},"RedshiftDestinationUpdate":{"type":"structure","members":{"RoleARN":{},"ClusterJDBCURL":{},"CopyCommand":{"shape":"Sl"},"Username":{"shape":"Sp"},"Password":{"shape":"Sq"},"RetryOptions":{"shape":"Sr"},"S3Update":{"shape":"S23"},"CloudWatchLoggingOptions":{"shape":"Sf"}}},"ElasticsearchDestinationUpdate":{"type":"structure","members":{"RoleARN":{},"DomainARN":{},"IndexName":{},"TypeName":{},"IndexRotationPeriod":{},"BufferingHints":{"shape":"Sy"},"RetryOptions":{"shape":"S11"},"S3Update":{"shape":"S23"},"CloudWatchLoggingOptions":{"shape":"Sf"}}}}},"output":{"type":"structure","members":{}},"http":{}}},"shapes":{"S3":{"type":"structure","required":["RoleARN","BucketARN"],"members":{"RoleARN":{},"BucketARN":{},"Prefix":{},"BufferingHints":{"shape":"S7"},"CompressionFormat":{},"EncryptionConfiguration":{"shape":"Sb"},"CloudWatchLoggingOptions":{"shape":"Sf"}}},"S7":{"type":"structure","members":{"SizeInMBs":{"type":"integer"},"IntervalInSeconds":{"type":"integer"}}},"Sb":{"type":"structure","members":{"NoEncryptionConfig":{},"KMSEncryptionConfig":{"type":"structure","required":["AWSKMSKeyARN"],"members":{"AWSKMSKeyARN":{}}}}},"Sf":{"type":"structure","members":{"Enabled":{"type":"boolean"},"LogGroupName":{},"LogStreamName":{}}},"Sl":{"type":"structure","required":["DataTableName"],"members":{"DataTableName":{},"DataTableColumns":{},"CopyOptions":{}}},"Sp":{"type":"string","sensitive":true},"Sq":{"type":"string","sensitive":true},"Sr":{"type":"structure","members":{"DurationInSeconds":{"type":"integer"}}},"Sy":{"type":"structure","members":{"IntervalInSeconds":{"type":"integer"},"SizeInMBs":{"type":"integer"}}},"S11":{"type":"structure","members":{"DurationInSeconds":{"type":"integer"}}},"S1i":{"type":"structure","required":["RoleARN","BucketARN","BufferingHints","CompressionFormat","EncryptionConfiguration"],"members":{"RoleARN":{},"BucketARN":{},"Prefix":{},"BufferingHints":{"shape":"S7"},"CompressionFormat":{},"EncryptionConfiguration":{"shape":"Sb"},"CloudWatchLoggingOptions":{"shape":"Sf"}}},"S1q":{"type":"structure","required":["Data"],"members":{"Data":{"type":"blob"}}},"S23":{"type":"structure","members":{"RoleARN":{},"BucketARN":{},"Prefix":{},"BufferingHints":{"shape":"S7"},"CompressionFormat":{},"EncryptionConfiguration":{"shape":"Sb"},"CloudWatchLoggingOptions":{"shape":"Sf"}}}}}; +AWS.apiLoader.services['gamelift'] = {}; +AWS.GameLift = AWS.Service.defineService('gamelift', [ '2015-10-01' ]); + +AWS.apiLoader.services['gamelift']['2015-10-01'] = {"version":"2.0","metadata":{"apiVersion":"2015-10-01","endpointPrefix":"gamelift","jsonVersion":"1.1","serviceFullName":"Amazon GameLift","signatureVersion":"v4","targetPrefix":"GameLift","protocol":"json"},"operations":{"CreateAlias":{"input":{"type":"structure","required":["Name","RoutingStrategy"],"members":{"Name":{},"Description":{},"RoutingStrategy":{"shape":"S3"}}},"output":{"type":"structure","members":{"Alias":{"shape":"S8"}}},"http":{}},"CreateBuild":{"input":{"type":"structure","members":{"Name":{},"Version":{},"StorageLocation":{"shape":"Sc"}}},"output":{"type":"structure","members":{"Build":{"shape":"Sf"},"UploadCredentials":{"shape":"Sj"},"StorageLocation":{"shape":"Sc"}}},"http":{}},"CreateFleet":{"input":{"type":"structure","required":["Name","BuildId","ServerLaunchPath","EC2InstanceType"],"members":{"Name":{},"Description":{},"BuildId":{},"ServerLaunchPath":{},"ServerLaunchParameters":{},"LogPaths":{"shape":"Sl"},"EC2InstanceType":{},"EC2InboundPermissions":{"shape":"Sn"},"NewGameSessionProtectionPolicy":{}}},"output":{"type":"structure","members":{"FleetAttributes":{"shape":"Su"}}},"http":{}},"CreateGameSession":{"input":{"type":"structure","required":["MaximumPlayerSessionCount"],"members":{"FleetId":{},"AliasId":{},"MaximumPlayerSessionCount":{"type":"integer"},"Name":{},"GameProperties":{"shape":"Sy"}}},"output":{"type":"structure","members":{"GameSession":{"shape":"S13"}}},"http":{}},"CreatePlayerSession":{"input":{"type":"structure","required":["GameSessionId","PlayerId"],"members":{"GameSessionId":{},"PlayerId":{}}},"output":{"type":"structure","members":{"PlayerSession":{"shape":"S1a"}}},"http":{}},"CreatePlayerSessions":{"input":{"type":"structure","required":["GameSessionId","PlayerIds"],"members":{"GameSessionId":{},"PlayerIds":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"PlayerSessions":{"shape":"S1g"}}},"http":{}},"DeleteAlias":{"input":{"type":"structure","required":["AliasId"],"members":{"AliasId":{}}},"http":{}},"DeleteBuild":{"input":{"type":"structure","required":["BuildId"],"members":{"BuildId":{}}},"http":{}},"DeleteFleet":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{}}},"http":{}},"DeleteScalingPolicy":{"input":{"type":"structure","required":["Name","FleetId"],"members":{"Name":{},"FleetId":{}}},"http":{}},"DescribeAlias":{"input":{"type":"structure","required":["AliasId"],"members":{"AliasId":{}}},"output":{"type":"structure","members":{"Alias":{"shape":"S8"}}},"http":{}},"DescribeBuild":{"input":{"type":"structure","required":["BuildId"],"members":{"BuildId":{}}},"output":{"type":"structure","members":{"Build":{"shape":"Sf"}}},"http":{}},"DescribeEC2InstanceLimits":{"input":{"type":"structure","members":{"EC2InstanceType":{}}},"output":{"type":"structure","members":{"EC2InstanceLimits":{"type":"list","member":{"type":"structure","members":{"EC2InstanceType":{},"CurrentInstances":{"type":"integer"},"InstanceLimit":{"type":"integer"}}}}}},"http":{}},"DescribeFleetAttributes":{"input":{"type":"structure","members":{"FleetIds":{"shape":"S1u"},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"FleetAttributes":{"type":"list","member":{"shape":"Su"}},"NextToken":{}}},"http":{}},"DescribeFleetCapacity":{"input":{"type":"structure","members":{"FleetIds":{"shape":"S1u"},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"FleetCapacity":{"type":"list","member":{"type":"structure","members":{"FleetId":{},"InstanceType":{},"InstanceCounts":{"type":"structure","members":{"DESIRED":{"type":"integer"},"MINIMUM":{"type":"integer"},"MAXIMUM":{"type":"integer"},"PENDING":{"type":"integer"},"ACTIVE":{"type":"integer"},"IDLE":{"type":"integer"},"TERMINATING":{"type":"integer"}}}}}},"NextToken":{}}},"http":{}},"DescribeFleetEvents":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{},"StartTime":{"type":"timestamp"},"EndTime":{"type":"timestamp"},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"Events":{"type":"list","member":{"type":"structure","members":{"EventId":{},"ResourceId":{},"EventCode":{},"Message":{},"EventTime":{"type":"timestamp"}}}},"NextToken":{}}},"http":{}},"DescribeFleetPortSettings":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{}}},"output":{"type":"structure","members":{"InboundPermissions":{"shape":"Sn"}}},"http":{}},"DescribeFleetUtilization":{"input":{"type":"structure","members":{"FleetIds":{"shape":"S1u"},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"FleetUtilization":{"type":"list","member":{"type":"structure","members":{"FleetId":{},"ActiveGameSessionCount":{"type":"integer"},"CurrentPlayerSessionCount":{"type":"integer"},"MaximumPlayerSessionCount":{"type":"integer"}}}},"NextToken":{}}},"http":{}},"DescribeGameSessionDetails":{"input":{"type":"structure","members":{"FleetId":{},"GameSessionId":{},"AliasId":{},"StatusFilter":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"GameSessionDetails":{"type":"list","member":{"type":"structure","members":{"GameSession":{"shape":"S13"},"ProtectionPolicy":{}}}},"NextToken":{}}},"http":{}},"DescribeGameSessions":{"input":{"type":"structure","members":{"FleetId":{},"GameSessionId":{},"AliasId":{},"StatusFilter":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"GameSessions":{"type":"list","member":{"shape":"S13"}},"NextToken":{}}},"http":{}},"DescribePlayerSessions":{"input":{"type":"structure","members":{"GameSessionId":{},"PlayerId":{},"PlayerSessionId":{},"PlayerSessionStatusFilter":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"PlayerSessions":{"shape":"S1g"},"NextToken":{}}},"http":{}},"DescribeScalingPolicies":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{},"StatusFilter":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"ScalingPolicies":{"type":"list","member":{"type":"structure","members":{"FleetId":{},"Name":{},"Status":{},"ScalingAdjustment":{"type":"integer"},"ScalingAdjustmentType":{},"ComparisonOperator":{},"Threshold":{"type":"double"},"EvaluationPeriods":{"type":"integer"},"MetricName":{}}}},"NextToken":{}}},"http":{}},"GetGameSessionLogUrl":{"input":{"type":"structure","required":["GameSessionId"],"members":{"GameSessionId":{}}},"output":{"type":"structure","members":{"PreSignedUrl":{}}},"http":{}},"ListAliases":{"input":{"type":"structure","members":{"RoutingStrategyType":{},"Name":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"Aliases":{"type":"list","member":{"shape":"S8"}},"NextToken":{}}},"http":{}},"ListBuilds":{"input":{"type":"structure","members":{"Status":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"Builds":{"type":"list","member":{"shape":"Sf"}},"NextToken":{}}},"http":{}},"ListFleets":{"input":{"type":"structure","members":{"BuildId":{},"Limit":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"FleetIds":{"shape":"S1u"},"NextToken":{}}},"http":{}},"PutScalingPolicy":{"input":{"type":"structure","required":["Name","FleetId","ScalingAdjustment","ScalingAdjustmentType","Threshold","ComparisonOperator","EvaluationPeriods","MetricName"],"members":{"Name":{},"FleetId":{},"ScalingAdjustment":{"type":"integer"},"ScalingAdjustmentType":{},"Threshold":{"type":"double"},"ComparisonOperator":{},"EvaluationPeriods":{"type":"integer"},"MetricName":{}}},"output":{"type":"structure","members":{"Name":{}}},"http":{}},"RequestUploadCredentials":{"input":{"type":"structure","required":["BuildId"],"members":{"BuildId":{}}},"output":{"type":"structure","members":{"UploadCredentials":{"shape":"Sj"},"StorageLocation":{"shape":"Sc"}}},"http":{}},"ResolveAlias":{"input":{"type":"structure","required":["AliasId"],"members":{"AliasId":{}}},"output":{"type":"structure","members":{"FleetId":{}}},"http":{}},"UpdateAlias":{"input":{"type":"structure","required":["AliasId"],"members":{"AliasId":{},"Name":{},"Description":{},"RoutingStrategy":{"shape":"S3"}}},"output":{"type":"structure","members":{"Alias":{"shape":"S8"}}},"http":{}},"UpdateBuild":{"input":{"type":"structure","required":["BuildId"],"members":{"BuildId":{},"Name":{},"Version":{}}},"output":{"type":"structure","members":{"Build":{"shape":"Sf"}}},"http":{}},"UpdateFleetAttributes":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{},"Name":{},"Description":{},"NewGameSessionProtectionPolicy":{}}},"output":{"type":"structure","members":{"FleetId":{}}},"http":{}},"UpdateFleetCapacity":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{},"DesiredInstances":{"type":"integer"},"MinSize":{"type":"integer"},"MaxSize":{"type":"integer"}}},"output":{"type":"structure","members":{"FleetId":{}}},"http":{}},"UpdateFleetPortSettings":{"input":{"type":"structure","required":["FleetId"],"members":{"FleetId":{},"InboundPermissionAuthorizations":{"shape":"Sn"},"InboundPermissionRevocations":{"shape":"Sn"}}},"output":{"type":"structure","members":{"FleetId":{}}},"http":{}},"UpdateGameSession":{"input":{"type":"structure","required":["GameSessionId"],"members":{"GameSessionId":{},"MaximumPlayerSessionCount":{"type":"integer"},"Name":{},"PlayerSessionCreationPolicy":{},"ProtectionPolicy":{}}},"output":{"type":"structure","members":{"GameSession":{"shape":"S13"}}},"http":{}}},"shapes":{"S3":{"type":"structure","members":{"Type":{},"FleetId":{},"Message":{}}},"S8":{"type":"structure","members":{"AliasId":{},"Name":{},"Description":{},"RoutingStrategy":{"shape":"S3"},"CreationTime":{"type":"timestamp"},"LastUpdatedTime":{"type":"timestamp"}}},"Sc":{"type":"structure","members":{"Bucket":{},"Key":{},"RoleArn":{}}},"Sf":{"type":"structure","members":{"BuildId":{},"Name":{},"Version":{},"Status":{},"SizeOnDisk":{"type":"long"},"CreationTime":{"type":"timestamp"}}},"Sj":{"type":"structure","members":{"AccessKeyId":{},"SecretAccessKey":{},"SessionToken":{}},"sensitive":true},"Sl":{"type":"list","member":{}},"Sn":{"type":"list","member":{"type":"structure","required":["FromPort","ToPort","IpRange","Protocol"],"members":{"FromPort":{"type":"integer"},"ToPort":{"type":"integer"},"IpRange":{},"Protocol":{}}}},"Su":{"type":"structure","members":{"FleetId":{},"Description":{},"Name":{},"CreationTime":{"type":"timestamp"},"TerminationTime":{"type":"timestamp"},"Status":{},"BuildId":{},"ServerLaunchPath":{},"ServerLaunchParameters":{},"LogPaths":{"shape":"Sl"},"NewGameSessionProtectionPolicy":{}}},"Sy":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"S13":{"type":"structure","members":{"GameSessionId":{},"Name":{},"FleetId":{},"CreationTime":{"type":"timestamp"},"TerminationTime":{"type":"timestamp"},"CurrentPlayerSessionCount":{"type":"integer"},"MaximumPlayerSessionCount":{"type":"integer"},"Status":{},"GameProperties":{"shape":"Sy"},"IpAddress":{},"PlayerSessionCreationPolicy":{}}},"S1a":{"type":"structure","members":{"PlayerSessionId":{},"PlayerId":{},"GameSessionId":{},"FleetId":{},"CreationTime":{"type":"timestamp"},"TerminationTime":{"type":"timestamp"},"Status":{},"IpAddress":{}}},"S1g":{"type":"list","member":{"shape":"S1a"}},"S1u":{"type":"list","member":{}}},"examples":{}}; +AWS.apiLoader.services['inspector'] = {}; +AWS.Inspector = AWS.Service.defineService('inspector', [ '2016-02-16' ]); + +AWS.apiLoader.services['inspector']['2016-02-16'] = {"version":"2.0","metadata":{"apiVersion":"2016-02-16","endpointPrefix":"inspector","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Inspector","signatureVersion":"v4","targetPrefix":"InspectorService"},"operations":{"AddAttributesToFindings":{"input":{"type":"structure","required":["findingArns","attributes"],"members":{"findingArns":{"shape":"S2"},"attributes":{"shape":"S4"}}},"output":{"type":"structure","required":["failedItems"],"members":{"failedItems":{"shape":"S9"}}},"http":{}},"CreateAssessmentTarget":{"input":{"type":"structure","required":["assessmentTargetName","resourceGroupArn"],"members":{"assessmentTargetName":{},"resourceGroupArn":{}}},"output":{"type":"structure","required":["assessmentTargetArn"],"members":{"assessmentTargetArn":{}}},"http":{}},"CreateAssessmentTemplate":{"input":{"type":"structure","required":["assessmentTargetArn","assessmentTemplateName","durationInSeconds","rulesPackageArns"],"members":{"assessmentTargetArn":{},"assessmentTemplateName":{},"durationInSeconds":{"type":"integer"},"rulesPackageArns":{"shape":"Sj"},"userAttributesForFindings":{"shape":"S4"}}},"output":{"type":"structure","required":["assessmentTemplateArn"],"members":{"assessmentTemplateArn":{}}},"http":{}},"CreateResourceGroup":{"input":{"type":"structure","required":["resourceGroupTags"],"members":{"resourceGroupTags":{"shape":"Sm"}}},"output":{"type":"structure","required":["resourceGroupArn"],"members":{"resourceGroupArn":{}}},"http":{}},"DeleteAssessmentRun":{"input":{"type":"structure","required":["assessmentRunArn"],"members":{"assessmentRunArn":{}}},"http":{}},"DeleteAssessmentTarget":{"input":{"type":"structure","required":["assessmentTargetArn"],"members":{"assessmentTargetArn":{}}},"http":{}},"DeleteAssessmentTemplate":{"input":{"type":"structure","required":["assessmentTemplateArn"],"members":{"assessmentTemplateArn":{}}},"http":{}},"DescribeAssessmentRuns":{"input":{"type":"structure","required":["assessmentRunArns"],"members":{"assessmentRunArns":{"shape":"Sv"}}},"output":{"type":"structure","required":["assessmentRuns","failedItems"],"members":{"assessmentRuns":{"type":"list","member":{"type":"structure","required":["arn","name","assessmentTemplateArn","state","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt","stateChangedAt","dataCollected","stateChanges","notifications"],"members":{"arn":{},"name":{},"assessmentTemplateArn":{},"state":{},"durationInSeconds":{"type":"integer"},"rulesPackageArns":{"type":"list","member":{}},"userAttributesForFindings":{"shape":"S4"},"createdAt":{"type":"timestamp"},"startedAt":{"type":"timestamp"},"completedAt":{"type":"timestamp"},"stateChangedAt":{"type":"timestamp"},"dataCollected":{"type":"boolean"},"stateChanges":{"type":"list","member":{"type":"structure","required":["stateChangedAt","state"],"members":{"stateChangedAt":{"type":"timestamp"},"state":{}}}},"notifications":{"type":"list","member":{"type":"structure","required":["date","event","error"],"members":{"date":{"type":"timestamp"},"event":{},"message":{},"error":{"type":"boolean"},"snsTopicArn":{},"snsPublishStatusCode":{}}}}}}},"failedItems":{"shape":"S9"}}},"http":{}},"DescribeAssessmentTargets":{"input":{"type":"structure","required":["assessmentTargetArns"],"members":{"assessmentTargetArns":{"shape":"Sv"}}},"output":{"type":"structure","required":["assessmentTargets","failedItems"],"members":{"assessmentTargets":{"type":"list","member":{"type":"structure","required":["arn","name","resourceGroupArn","createdAt","updatedAt"],"members":{"arn":{},"name":{},"resourceGroupArn":{},"createdAt":{"type":"timestamp"},"updatedAt":{"type":"timestamp"}}}},"failedItems":{"shape":"S9"}}},"http":{}},"DescribeAssessmentTemplates":{"input":{"type":"structure","required":["assessmentTemplateArns"],"members":{"assessmentTemplateArns":{"shape":"Sv"}}},"output":{"type":"structure","required":["assessmentTemplates","failedItems"],"members":{"assessmentTemplates":{"type":"list","member":{"type":"structure","required":["arn","name","assessmentTargetArn","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt"],"members":{"arn":{},"name":{},"assessmentTargetArn":{},"durationInSeconds":{"type":"integer"},"rulesPackageArns":{"shape":"Sj"},"userAttributesForFindings":{"shape":"S4"},"createdAt":{"type":"timestamp"}}}},"failedItems":{"shape":"S9"}}},"http":{}},"DescribeCrossAccountAccessRole":{"output":{"type":"structure","required":["roleArn","valid","registeredAt"],"members":{"roleArn":{},"valid":{"type":"boolean"},"registeredAt":{"type":"timestamp"}}},"http":{}},"DescribeFindings":{"input":{"type":"structure","required":["findingArns"],"members":{"findingArns":{"shape":"Sv"},"locale":{}}},"output":{"type":"structure","required":["findings","failedItems"],"members":{"findings":{"type":"list","member":{"type":"structure","required":["arn","attributes","userAttributes","createdAt","updatedAt"],"members":{"arn":{},"schemaVersion":{"type":"integer"},"service":{},"serviceAttributes":{"type":"structure","required":["schemaVersion"],"members":{"schemaVersion":{"type":"integer"},"assessmentRunArn":{},"rulesPackageArn":{}}},"assetType":{},"assetAttributes":{"type":"structure","required":["schemaVersion"],"members":{"schemaVersion":{"type":"integer"},"agentId":{},"autoScalingGroup":{},"amiId":{},"hostname":{},"ipv4Addresses":{"type":"list","member":{}}}},"id":{},"title":{},"description":{},"recommendation":{},"severity":{},"numericSeverity":{"type":"double"},"confidence":{"type":"integer"},"indicatorOfCompromise":{"type":"boolean"},"attributes":{"shape":"S24"},"userAttributes":{"shape":"S4"},"createdAt":{"type":"timestamp"},"updatedAt":{"type":"timestamp"}}}},"failedItems":{"shape":"S9"}}},"http":{}},"DescribeResourceGroups":{"input":{"type":"structure","required":["resourceGroupArns"],"members":{"resourceGroupArns":{"shape":"Sv"}}},"output":{"type":"structure","required":["resourceGroups","failedItems"],"members":{"resourceGroups":{"type":"list","member":{"type":"structure","required":["arn","tags","createdAt"],"members":{"arn":{},"tags":{"shape":"Sm"},"createdAt":{"type":"timestamp"}}}},"failedItems":{"shape":"S9"}}},"http":{}},"DescribeRulesPackages":{"input":{"type":"structure","required":["rulesPackageArns"],"members":{"rulesPackageArns":{"shape":"Sv"},"locale":{}}},"output":{"type":"structure","required":["rulesPackages","failedItems"],"members":{"rulesPackages":{"type":"list","member":{"type":"structure","required":["arn","name","version","provider"],"members":{"arn":{},"name":{},"version":{},"provider":{},"description":{}}}},"failedItems":{"shape":"S9"}}},"http":{}},"GetTelemetryMetadata":{"input":{"type":"structure","required":["assessmentRunArn"],"members":{"assessmentRunArn":{}}},"output":{"type":"structure","required":["telemetryMetadata"],"members":{"telemetryMetadata":{"shape":"S2i"}}},"http":{}},"ListAssessmentRunAgents":{"input":{"type":"structure","required":["assessmentRunArn"],"members":{"assessmentRunArn":{},"filter":{"type":"structure","required":["agentHealths","agentHealthCodes"],"members":{"agentHealths":{"type":"list","member":{}},"agentHealthCodes":{"type":"list","member":{}}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["assessmentRunAgents"],"members":{"assessmentRunAgents":{"type":"list","member":{"type":"structure","required":["agentId","assessmentRunArn","agentHealth","agentHealthCode","telemetryMetadata"],"members":{"agentId":{},"assessmentRunArn":{},"agentHealth":{},"agentHealthCode":{},"agentHealthDetails":{},"autoScalingGroup":{},"telemetryMetadata":{"shape":"S2i"}}}},"nextToken":{}}},"http":{}},"ListAssessmentRuns":{"input":{"type":"structure","members":{"assessmentTemplateArns":{"shape":"S2y"},"filter":{"type":"structure","members":{"namePattern":{},"states":{"type":"list","member":{}},"durationRange":{"shape":"S32"},"rulesPackageArns":{"shape":"S33"},"startTimeRange":{"shape":"S34"},"completionTimeRange":{"shape":"S34"},"stateChangeTimeRange":{"shape":"S34"}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["assessmentRunArns"],"members":{"assessmentRunArns":{"shape":"S36"},"nextToken":{}}},"http":{}},"ListAssessmentTargets":{"input":{"type":"structure","members":{"filter":{"type":"structure","members":{"assessmentTargetNamePattern":{}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["assessmentTargetArns"],"members":{"assessmentTargetArns":{"shape":"S36"},"nextToken":{}}},"http":{}},"ListAssessmentTemplates":{"input":{"type":"structure","members":{"assessmentTargetArns":{"shape":"S2y"},"filter":{"type":"structure","members":{"namePattern":{},"durationRange":{"shape":"S32"},"rulesPackageArns":{"shape":"S33"}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["assessmentTemplateArns"],"members":{"assessmentTemplateArns":{"shape":"S36"},"nextToken":{}}},"http":{}},"ListEventSubscriptions":{"input":{"type":"structure","members":{"resourceArn":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["subscriptions"],"members":{"subscriptions":{"type":"list","member":{"type":"structure","required":["resourceArn","topicArn","eventSubscriptions"],"members":{"resourceArn":{},"topicArn":{},"eventSubscriptions":{"type":"list","member":{"type":"structure","required":["event","subscribedAt"],"members":{"event":{},"subscribedAt":{"type":"timestamp"}}}}}}},"nextToken":{}}},"http":{}},"ListFindings":{"input":{"type":"structure","members":{"assessmentRunArns":{"shape":"S2y"},"filter":{"type":"structure","members":{"agentIds":{"type":"list","member":{}},"autoScalingGroups":{"type":"list","member":{}},"ruleNames":{"type":"list","member":{}},"severities":{"type":"list","member":{}},"rulesPackageArns":{"shape":"S33"},"attributes":{"shape":"S24"},"userAttributes":{"shape":"S24"},"creationTimeRange":{"shape":"S34"}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["findingArns"],"members":{"findingArns":{"shape":"S36"},"nextToken":{}}},"http":{}},"ListRulesPackages":{"input":{"type":"structure","members":{"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["rulesPackageArns"],"members":{"rulesPackageArns":{"shape":"S36"},"nextToken":{}}},"http":{}},"ListTagsForResource":{"input":{"type":"structure","required":["resourceArn"],"members":{"resourceArn":{}}},"output":{"type":"structure","required":["tags"],"members":{"tags":{"shape":"S3w"}}},"http":{}},"PreviewAgents":{"input":{"type":"structure","required":["previewAgentsArn"],"members":{"previewAgentsArn":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","required":["agentPreviews"],"members":{"agentPreviews":{"type":"list","member":{"type":"structure","required":["agentId"],"members":{"agentId":{},"autoScalingGroup":{}}}},"nextToken":{}}},"http":{}},"RegisterCrossAccountAccessRole":{"input":{"type":"structure","required":["roleArn"],"members":{"roleArn":{}}},"http":{}},"RemoveAttributesFromFindings":{"input":{"type":"structure","required":["findingArns","attributeKeys"],"members":{"findingArns":{"shape":"S2"},"attributeKeys":{"type":"list","member":{}}}},"output":{"type":"structure","required":["failedItems"],"members":{"failedItems":{"shape":"S9"}}},"http":{}},"SetTagsForResource":{"input":{"type":"structure","required":["resourceArn"],"members":{"resourceArn":{},"tags":{"shape":"S3w"}}},"http":{}},"StartAssessmentRun":{"input":{"type":"structure","required":["assessmentTemplateArn"],"members":{"assessmentTemplateArn":{},"assessmentRunName":{}}},"output":{"type":"structure","required":["assessmentRunArn"],"members":{"assessmentRunArn":{}}},"http":{}},"StopAssessmentRun":{"input":{"type":"structure","required":["assessmentRunArn"],"members":{"assessmentRunArn":{}}},"http":{}},"SubscribeToEvent":{"input":{"type":"structure","required":["resourceArn","event","topicArn"],"members":{"resourceArn":{},"event":{},"topicArn":{}}},"http":{}},"UnsubscribeFromEvent":{"input":{"type":"structure","required":["resourceArn","event","topicArn"],"members":{"resourceArn":{},"event":{},"topicArn":{}}},"http":{}},"UpdateAssessmentTarget":{"input":{"type":"structure","required":["assessmentTargetArn","assessmentTargetName","resourceGroupArn"],"members":{"assessmentTargetArn":{},"assessmentTargetName":{},"resourceGroupArn":{}}},"http":{}}},"shapes":{"S2":{"type":"list","member":{}},"S4":{"type":"list","member":{"shape":"S5"}},"S5":{"type":"structure","required":["key"],"members":{"key":{},"value":{}}},"S9":{"type":"map","key":{},"value":{"type":"structure","required":["failureCode","retryable"],"members":{"failureCode":{},"retryable":{"type":"boolean"}}}},"Sj":{"type":"list","member":{}},"Sm":{"type":"list","member":{"type":"structure","required":["key"],"members":{"key":{},"value":{}}}},"Sv":{"type":"list","member":{}},"S24":{"type":"list","member":{"shape":"S5"}},"S2i":{"type":"list","member":{"type":"structure","required":["messageType","count"],"members":{"messageType":{},"count":{"type":"long"},"dataSize":{"type":"long"}}}},"S2y":{"type":"list","member":{}},"S32":{"type":"structure","members":{"minSeconds":{"type":"integer"},"maxSeconds":{"type":"integer"}}},"S33":{"type":"list","member":{}},"S34":{"type":"structure","members":{"beginDate":{"type":"timestamp"},"endDate":{"type":"timestamp"}}},"S36":{"type":"list","member":{}},"S3w":{"type":"list","member":{"type":"structure","required":["key"],"members":{"key":{},"value":{}}}}}}; +AWS.apiLoader.services['iotdata'] = {}; +AWS.IotData = AWS.Service.defineService('iotdata', [ '2015-05-28' ]); +require('./services/iotdata'); + +AWS.apiLoader.services['iotdata']['2015-05-28'] = {"version":"2.0","metadata":{"apiVersion":"2015-05-28","endpointPrefix":"data.iot","protocol":"rest-json","serviceFullName":"AWS IoT Data Plane","signatureVersion":"v4","signingName":"iotdata"},"operations":{"DeleteThingShadow":{"http":{"method":"DELETE","requestUri":"/things/{thingName}/shadow"},"input":{"type":"structure","required":["thingName"],"members":{"thingName":{"location":"uri","locationName":"thingName"}}},"output":{"type":"structure","required":["payload"],"members":{"payload":{"type":"blob"}},"payload":"payload"}},"GetThingShadow":{"http":{"method":"GET","requestUri":"/things/{thingName}/shadow"},"input":{"type":"structure","required":["thingName"],"members":{"thingName":{"location":"uri","locationName":"thingName"}}},"output":{"type":"structure","members":{"payload":{"type":"blob"}},"payload":"payload"}},"Publish":{"http":{"requestUri":"/topics/{topic}"},"input":{"type":"structure","required":["topic"],"members":{"topic":{"location":"uri","locationName":"topic"},"qos":{"location":"querystring","locationName":"qos","type":"integer"},"payload":{"type":"blob"}},"payload":"payload"}},"UpdateThingShadow":{"http":{"requestUri":"/things/{thingName}/shadow"},"input":{"type":"structure","required":["thingName","payload"],"members":{"thingName":{"location":"uri","locationName":"thingName"},"payload":{"type":"blob"}},"payload":"payload"},"output":{"type":"structure","members":{"payload":{"type":"blob"}},"payload":"payload"}}},"shapes":{}}; +AWS.apiLoader.services['kinesis'] = {}; +AWS.Kinesis = AWS.Service.defineService('kinesis', [ '2013-12-02' ]); + +AWS.apiLoader.services['kinesis']['2013-12-02'] = {"version":"2.0","metadata":{"apiVersion":"2013-12-02","endpointPrefix":"kinesis","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"Kinesis","serviceFullName":"Amazon Kinesis","signatureVersion":"v4","targetPrefix":"Kinesis_20131202"},"operations":{"AddTagsToStream":{"input":{"type":"structure","required":["StreamName","Tags"],"members":{"StreamName":{},"Tags":{"type":"map","key":{},"value":{}}}},"http":{}},"CreateStream":{"input":{"type":"structure","required":["StreamName","ShardCount"],"members":{"StreamName":{},"ShardCount":{"type":"integer"}}},"http":{}},"DecreaseStreamRetentionPeriod":{"input":{"type":"structure","required":["StreamName","RetentionPeriodHours"],"members":{"StreamName":{},"RetentionPeriodHours":{"type":"integer"}}},"http":{}},"DeleteStream":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{}}},"http":{}},"DescribeStream":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{},"Limit":{"type":"integer"},"ExclusiveStartShardId":{}}},"output":{"type":"structure","required":["StreamDescription"],"members":{"StreamDescription":{"type":"structure","required":["StreamName","StreamARN","StreamStatus","Shards","HasMoreShards","RetentionPeriodHours","EnhancedMonitoring"],"members":{"StreamName":{},"StreamARN":{},"StreamStatus":{},"Shards":{"type":"list","member":{"type":"structure","required":["ShardId","HashKeyRange","SequenceNumberRange"],"members":{"ShardId":{},"ParentShardId":{},"AdjacentParentShardId":{},"HashKeyRange":{"type":"structure","required":["StartingHashKey","EndingHashKey"],"members":{"StartingHashKey":{},"EndingHashKey":{}}},"SequenceNumberRange":{"type":"structure","required":["StartingSequenceNumber"],"members":{"StartingSequenceNumber":{},"EndingSequenceNumber":{}}}}}},"HasMoreShards":{"type":"boolean"},"RetentionPeriodHours":{"type":"integer"},"EnhancedMonitoring":{"type":"list","member":{"type":"structure","members":{"ShardLevelMetrics":{"shape":"Sr"}}}}}}}},"http":{}},"DisableEnhancedMonitoring":{"input":{"type":"structure","required":["StreamName","ShardLevelMetrics"],"members":{"StreamName":{},"ShardLevelMetrics":{"shape":"Sr"}}},"output":{"shape":"Su"},"http":{}},"EnableEnhancedMonitoring":{"input":{"type":"structure","required":["StreamName","ShardLevelMetrics"],"members":{"StreamName":{},"ShardLevelMetrics":{"shape":"Sr"}}},"output":{"shape":"Su"},"http":{}},"GetRecords":{"input":{"type":"structure","required":["ShardIterator"],"members":{"ShardIterator":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","required":["Records"],"members":{"Records":{"type":"list","member":{"type":"structure","required":["SequenceNumber","Data","PartitionKey"],"members":{"SequenceNumber":{},"ApproximateArrivalTimestamp":{"type":"timestamp"},"Data":{"type":"blob"},"PartitionKey":{}}}},"NextShardIterator":{},"MillisBehindLatest":{"type":"long"}}},"http":{}},"GetShardIterator":{"input":{"type":"structure","required":["StreamName","ShardId","ShardIteratorType"],"members":{"StreamName":{},"ShardId":{},"ShardIteratorType":{},"StartingSequenceNumber":{},"Timestamp":{"type":"timestamp"}}},"output":{"type":"structure","members":{"ShardIterator":{}}},"http":{}},"IncreaseStreamRetentionPeriod":{"input":{"type":"structure","required":["StreamName","RetentionPeriodHours"],"members":{"StreamName":{},"RetentionPeriodHours":{"type":"integer"}}},"http":{}},"ListStreams":{"input":{"type":"structure","members":{"Limit":{"type":"integer"},"ExclusiveStartStreamName":{}}},"output":{"type":"structure","required":["StreamNames","HasMoreStreams"],"members":{"StreamNames":{"type":"list","member":{}},"HasMoreStreams":{"type":"boolean"}}},"http":{}},"ListTagsForStream":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{},"ExclusiveStartTagKey":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","required":["Tags","HasMoreTags"],"members":{"Tags":{"type":"list","member":{"type":"structure","required":["Key"],"members":{"Key":{},"Value":{}}}},"HasMoreTags":{"type":"boolean"}}},"http":{}},"MergeShards":{"input":{"type":"structure","required":["StreamName","ShardToMerge","AdjacentShardToMerge"],"members":{"StreamName":{},"ShardToMerge":{},"AdjacentShardToMerge":{}}},"http":{}},"PutRecord":{"input":{"type":"structure","required":["StreamName","Data","PartitionKey"],"members":{"StreamName":{},"Data":{"type":"blob"},"PartitionKey":{},"ExplicitHashKey":{},"SequenceNumberForOrdering":{}}},"output":{"type":"structure","required":["ShardId","SequenceNumber"],"members":{"ShardId":{},"SequenceNumber":{}}},"http":{}},"PutRecords":{"input":{"type":"structure","required":["Records","StreamName"],"members":{"Records":{"type":"list","member":{"type":"structure","required":["Data","PartitionKey"],"members":{"Data":{"type":"blob"},"ExplicitHashKey":{},"PartitionKey":{}}}},"StreamName":{}}},"output":{"type":"structure","required":["Records"],"members":{"FailedRecordCount":{"type":"integer"},"Records":{"type":"list","member":{"type":"structure","members":{"SequenceNumber":{},"ShardId":{},"ErrorCode":{},"ErrorMessage":{}}}}}},"http":{}},"RemoveTagsFromStream":{"input":{"type":"structure","required":["StreamName","TagKeys"],"members":{"StreamName":{},"TagKeys":{"type":"list","member":{}}}},"http":{}},"SplitShard":{"input":{"type":"structure","required":["StreamName","ShardToSplit","NewStartingHashKey"],"members":{"StreamName":{},"ShardToSplit":{},"NewStartingHashKey":{}}},"http":{}}},"shapes":{"Sr":{"type":"list","member":{}},"Su":{"type":"structure","members":{"StreamName":{},"CurrentShardLevelMetrics":{"shape":"Sr"},"DesiredShardLevelMetrics":{"shape":"Sr"}}}},"paginators":{"DescribeStream":{"input_token":"ExclusiveStartShardId","limit_key":"Limit","more_results":"StreamDescription.HasMoreShards","output_token":"StreamDescription.Shards[-1].ShardId","result_key":"StreamDescription.Shards"},"ListStreams":{"input_token":"ExclusiveStartStreamName","limit_key":"Limit","more_results":"HasMoreStreams","output_token":"StreamNames[-1]","result_key":"StreamNames"}},"waiters":{"StreamExists":{"delay":10,"operation":"DescribeStream","maxAttempts":18,"acceptors":[{"expected":"ACTIVE","matcher":"path","state":"success","argument":"StreamDescription.StreamStatus"}]}}}; +AWS.apiLoader.services['kms'] = {}; +AWS.KMS = AWS.Service.defineService('kms', [ '2014-11-01' ]); + +AWS.apiLoader.services['kms']['2014-11-01'] = {"version":"2.0","metadata":{"apiVersion":"2014-11-01","endpointPrefix":"kms","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"KMS","serviceFullName":"AWS Key Management Service","signatureVersion":"v4","targetPrefix":"TrentService"},"operations":{"CancelKeyDeletion":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{}}},"output":{"type":"structure","members":{"KeyId":{}}},"http":{}},"CreateAlias":{"input":{"type":"structure","required":["AliasName","TargetKeyId"],"members":{"AliasName":{},"TargetKeyId":{}}},"http":{}},"CreateGrant":{"input":{"type":"structure","required":["KeyId","GranteePrincipal"],"members":{"KeyId":{},"GranteePrincipal":{},"RetiringPrincipal":{},"Operations":{"shape":"S8"},"Constraints":{"shape":"Sa"},"GrantTokens":{"shape":"Se"},"Name":{}}},"output":{"type":"structure","members":{"GrantToken":{},"GrantId":{}}},"http":{}},"CreateKey":{"input":{"type":"structure","members":{"Policy":{},"Description":{},"KeyUsage":{},"BypassPolicyLockoutSafetyCheck":{"type":"boolean"}}},"output":{"type":"structure","members":{"KeyMetadata":{"shape":"Sp"}}},"http":{}},"Decrypt":{"input":{"type":"structure","required":["CiphertextBlob"],"members":{"CiphertextBlob":{"type":"blob"},"EncryptionContext":{"shape":"Sb"},"GrantTokens":{"shape":"Se"}}},"output":{"type":"structure","members":{"KeyId":{},"Plaintext":{"shape":"Sx"}}},"http":{}},"DeleteAlias":{"input":{"type":"structure","required":["AliasName"],"members":{"AliasName":{}}},"http":{}},"DescribeKey":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{},"GrantTokens":{"shape":"Se"}}},"output":{"type":"structure","members":{"KeyMetadata":{"shape":"Sp"}}},"http":{}},"DisableKey":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{}}},"http":{}},"DisableKeyRotation":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{}}},"http":{}},"EnableKey":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{}}},"http":{}},"EnableKeyRotation":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{}}},"http":{}},"Encrypt":{"input":{"type":"structure","required":["KeyId","Plaintext"],"members":{"KeyId":{},"Plaintext":{"shape":"Sx"},"EncryptionContext":{"shape":"Sb"},"GrantTokens":{"shape":"Se"}}},"output":{"type":"structure","members":{"CiphertextBlob":{"type":"blob"},"KeyId":{}}},"http":{}},"GenerateDataKey":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{},"EncryptionContext":{"shape":"Sb"},"NumberOfBytes":{"type":"integer"},"KeySpec":{},"GrantTokens":{"shape":"Se"}}},"output":{"type":"structure","members":{"CiphertextBlob":{"type":"blob"},"Plaintext":{"shape":"Sx"},"KeyId":{}}},"http":{}},"GenerateDataKeyWithoutPlaintext":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{},"EncryptionContext":{"shape":"Sb"},"KeySpec":{},"NumberOfBytes":{"type":"integer"},"GrantTokens":{"shape":"Se"}}},"output":{"type":"structure","members":{"CiphertextBlob":{"type":"blob"},"KeyId":{}}},"http":{}},"GenerateRandom":{"input":{"type":"structure","members":{"NumberOfBytes":{"type":"integer"}}},"output":{"type":"structure","members":{"Plaintext":{"shape":"Sx"}}},"http":{}},"GetKeyPolicy":{"input":{"type":"structure","required":["KeyId","PolicyName"],"members":{"KeyId":{},"PolicyName":{}}},"output":{"type":"structure","members":{"Policy":{}}},"http":{}},"GetKeyRotationStatus":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{}}},"output":{"type":"structure","members":{"KeyRotationEnabled":{"type":"boolean"}}},"http":{}},"ListAliases":{"input":{"type":"structure","members":{"Limit":{"type":"integer"},"Marker":{}}},"output":{"type":"structure","members":{"Aliases":{"type":"list","member":{"type":"structure","members":{"AliasName":{},"AliasArn":{},"TargetKeyId":{}}}},"NextMarker":{},"Truncated":{"type":"boolean"}}},"http":{}},"ListGrants":{"input":{"type":"structure","required":["KeyId"],"members":{"Limit":{"type":"integer"},"Marker":{},"KeyId":{}}},"output":{"shape":"S1r"},"http":{}},"ListKeyPolicies":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{},"Limit":{"type":"integer"},"Marker":{}}},"output":{"type":"structure","members":{"PolicyNames":{"type":"list","member":{}},"NextMarker":{},"Truncated":{"type":"boolean"}}},"http":{}},"ListKeys":{"input":{"type":"structure","members":{"Limit":{"type":"integer"},"Marker":{}}},"output":{"type":"structure","members":{"Keys":{"type":"list","member":{"type":"structure","members":{"KeyId":{},"KeyArn":{}}}},"NextMarker":{},"Truncated":{"type":"boolean"}}},"http":{}},"ListRetirableGrants":{"input":{"type":"structure","required":["RetiringPrincipal"],"members":{"Limit":{"type":"integer"},"Marker":{},"RetiringPrincipal":{}}},"output":{"shape":"S1r"},"http":{}},"PutKeyPolicy":{"input":{"type":"structure","required":["KeyId","PolicyName","Policy"],"members":{"KeyId":{},"PolicyName":{},"Policy":{},"BypassPolicyLockoutSafetyCheck":{"type":"boolean"}}},"http":{}},"ReEncrypt":{"input":{"type":"structure","required":["CiphertextBlob","DestinationKeyId"],"members":{"CiphertextBlob":{"type":"blob"},"SourceEncryptionContext":{"shape":"Sb"},"DestinationKeyId":{},"DestinationEncryptionContext":{"shape":"Sb"},"GrantTokens":{"shape":"Se"}}},"output":{"type":"structure","members":{"CiphertextBlob":{"type":"blob"},"SourceKeyId":{},"KeyId":{}}},"http":{}},"RetireGrant":{"input":{"type":"structure","members":{"GrantToken":{},"KeyId":{},"GrantId":{}}},"http":{}},"RevokeGrant":{"input":{"type":"structure","required":["KeyId","GrantId"],"members":{"KeyId":{},"GrantId":{}}},"http":{}},"ScheduleKeyDeletion":{"input":{"type":"structure","required":["KeyId"],"members":{"KeyId":{},"PendingWindowInDays":{"type":"integer"}}},"output":{"type":"structure","members":{"KeyId":{},"DeletionDate":{"type":"timestamp"}}},"http":{}},"UpdateAlias":{"input":{"type":"structure","required":["AliasName","TargetKeyId"],"members":{"AliasName":{},"TargetKeyId":{}}},"http":{}},"UpdateKeyDescription":{"input":{"type":"structure","required":["KeyId","Description"],"members":{"KeyId":{},"Description":{}}},"http":{}}},"shapes":{"S8":{"type":"list","member":{}},"Sa":{"type":"structure","members":{"EncryptionContextSubset":{"shape":"Sb"},"EncryptionContextEquals":{"shape":"Sb"}}},"Sb":{"type":"map","key":{},"value":{}},"Se":{"type":"list","member":{}},"Sp":{"type":"structure","required":["KeyId"],"members":{"AWSAccountId":{},"KeyId":{},"Arn":{},"CreationDate":{"type":"timestamp"},"Enabled":{"type":"boolean"},"Description":{},"KeyUsage":{},"KeyState":{},"DeletionDate":{"type":"timestamp"}}},"Sx":{"type":"blob","sensitive":true},"S1r":{"type":"structure","members":{"Grants":{"type":"list","member":{"type":"structure","members":{"KeyId":{},"GrantId":{},"Name":{},"CreationDate":{"type":"timestamp"},"GranteePrincipal":{},"RetiringPrincipal":{},"IssuingAccount":{},"Operations":{"shape":"S8"},"Constraints":{"shape":"Sa"}}}},"NextMarker":{},"Truncated":{"type":"boolean"}}}},"paginators":{"ListAliases":{"limit_key":"Limit","input_token":"Marker","output_token":"NextMarker","more_results":"Truncated","result_key":"Aliases"},"ListGrants":{"limit_key":"Limit","input_token":"Marker","output_token":"NextMarker","more_results":"Truncated","result_key":"Grants"},"ListKeyPolicies":{"limit_key":"Limit","input_token":"Marker","output_token":"NextMarker","more_results":"Truncated","result_key":"PolicyNames"},"ListKeys":{"limit_key":"Limit","input_token":"Marker","output_token":"NextMarker","more_results":"Truncated","result_key":"Keys"}}}; +AWS.apiLoader.services['lambda'] = {}; +AWS.Lambda = AWS.Service.defineService('lambda', [ '2014-11-11', '2015-03-31' ]); + +AWS.apiLoader.services['lambda']['2015-03-31'] = {"version":"2.0","metadata":{"apiVersion":"2015-03-31","endpointPrefix":"lambda","protocol":"rest-json","serviceFullName":"AWS Lambda","signatureVersion":"v4"},"operations":{"AddPermission":{"http":{"requestUri":"/2015-03-31/functions/{FunctionName}/policy","responseCode":201},"input":{"type":"structure","required":["FunctionName","StatementId","Action","Principal"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"StatementId":{},"Action":{},"Principal":{},"SourceArn":{},"SourceAccount":{},"EventSourceToken":{},"Qualifier":{"location":"querystring","locationName":"Qualifier"}}},"output":{"type":"structure","members":{"Statement":{}}}},"CreateAlias":{"http":{"requestUri":"/2015-03-31/functions/{FunctionName}/aliases","responseCode":201},"input":{"type":"structure","required":["FunctionName","Name","FunctionVersion"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Name":{},"FunctionVersion":{},"Description":{}}},"output":{"shape":"Sg"}},"CreateEventSourceMapping":{"http":{"requestUri":"/2015-03-31/event-source-mappings/","responseCode":202},"input":{"type":"structure","required":["EventSourceArn","FunctionName","StartingPosition"],"members":{"EventSourceArn":{},"FunctionName":{},"Enabled":{"type":"boolean"},"BatchSize":{"type":"integer"},"StartingPosition":{}}},"output":{"shape":"Sm"}},"CreateFunction":{"http":{"requestUri":"/2015-03-31/functions","responseCode":201},"input":{"type":"structure","required":["FunctionName","Runtime","Role","Handler","Code"],"members":{"FunctionName":{},"Runtime":{},"Role":{},"Handler":{},"Code":{"type":"structure","members":{"ZipFile":{"type":"blob"},"S3Bucket":{},"S3Key":{},"S3ObjectVersion":{}}},"Description":{},"Timeout":{"type":"integer"},"MemorySize":{"type":"integer"},"Publish":{"type":"boolean"},"VpcConfig":{"shape":"S10"}}},"output":{"shape":"S15"}},"DeleteAlias":{"http":{"method":"DELETE","requestUri":"/2015-03-31/functions/{FunctionName}/aliases/{Name}","responseCode":204},"input":{"type":"structure","required":["FunctionName","Name"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Name":{"location":"uri","locationName":"Name"}}}},"DeleteEventSourceMapping":{"http":{"method":"DELETE","requestUri":"/2015-03-31/event-source-mappings/{UUID}","responseCode":202},"input":{"type":"structure","required":["UUID"],"members":{"UUID":{"location":"uri","locationName":"UUID"}}},"output":{"shape":"Sm"}},"DeleteFunction":{"http":{"method":"DELETE","requestUri":"/2015-03-31/functions/{FunctionName}","responseCode":204},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Qualifier":{"location":"querystring","locationName":"Qualifier"}}}},"GetAlias":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/{FunctionName}/aliases/{Name}","responseCode":200},"input":{"type":"structure","required":["FunctionName","Name"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Name":{"location":"uri","locationName":"Name"}}},"output":{"shape":"Sg"}},"GetEventSourceMapping":{"http":{"method":"GET","requestUri":"/2015-03-31/event-source-mappings/{UUID}","responseCode":200},"input":{"type":"structure","required":["UUID"],"members":{"UUID":{"location":"uri","locationName":"UUID"}}},"output":{"shape":"Sm"}},"GetFunction":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/{FunctionName}","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Qualifier":{"location":"querystring","locationName":"Qualifier"}}},"output":{"type":"structure","members":{"Configuration":{"shape":"S15"},"Code":{"type":"structure","members":{"RepositoryType":{},"Location":{}}}}}},"GetFunctionConfiguration":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/{FunctionName}/configuration","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Qualifier":{"location":"querystring","locationName":"Qualifier"}}},"output":{"shape":"S15"}},"GetPolicy":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/{FunctionName}/policy","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Qualifier":{"location":"querystring","locationName":"Qualifier"}}},"output":{"type":"structure","members":{"Policy":{}}}},"Invoke":{"http":{"requestUri":"/2015-03-31/functions/{FunctionName}/invocations"},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"InvocationType":{"location":"header","locationName":"X-Amz-Invocation-Type"},"LogType":{"location":"header","locationName":"X-Amz-Log-Type"},"ClientContext":{"location":"header","locationName":"X-Amz-Client-Context"},"Payload":{"type":"blob"},"Qualifier":{"location":"querystring","locationName":"Qualifier"}},"payload":"Payload"},"output":{"type":"structure","members":{"StatusCode":{"location":"statusCode","type":"integer"},"FunctionError":{"location":"header","locationName":"X-Amz-Function-Error"},"LogResult":{"location":"header","locationName":"X-Amz-Log-Result"},"Payload":{"type":"blob"}},"payload":"Payload"}},"InvokeAsync":{"http":{"requestUri":"/2014-11-13/functions/{FunctionName}/invoke-async/","responseCode":202},"input":{"type":"structure","required":["FunctionName","InvokeArgs"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"InvokeArgs":{"type":"blob","streaming":true}},"deprecated":true,"payload":"InvokeArgs"},"output":{"type":"structure","members":{"Status":{"location":"statusCode","type":"integer"}},"deprecated":true},"deprecated":true},"ListAliases":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/{FunctionName}/aliases","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"FunctionVersion":{"location":"querystring","locationName":"FunctionVersion"},"Marker":{"location":"querystring","locationName":"Marker"},"MaxItems":{"location":"querystring","locationName":"MaxItems","type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"Aliases":{"type":"list","member":{"shape":"Sg"}}}}},"ListEventSourceMappings":{"http":{"method":"GET","requestUri":"/2015-03-31/event-source-mappings/","responseCode":200},"input":{"type":"structure","members":{"EventSourceArn":{"location":"querystring","locationName":"EventSourceArn"},"FunctionName":{"location":"querystring","locationName":"FunctionName"},"Marker":{"location":"querystring","locationName":"Marker"},"MaxItems":{"location":"querystring","locationName":"MaxItems","type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"EventSourceMappings":{"type":"list","member":{"shape":"Sm"}}}}},"ListFunctions":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/","responseCode":200},"input":{"type":"structure","members":{"Marker":{"location":"querystring","locationName":"Marker"},"MaxItems":{"location":"querystring","locationName":"MaxItems","type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"Functions":{"shape":"S23"}}}},"ListVersionsByFunction":{"http":{"method":"GET","requestUri":"/2015-03-31/functions/{FunctionName}/versions","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Marker":{"location":"querystring","locationName":"Marker"},"MaxItems":{"location":"querystring","locationName":"MaxItems","type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"Versions":{"shape":"S23"}}}},"PublishVersion":{"http":{"requestUri":"/2015-03-31/functions/{FunctionName}/versions","responseCode":201},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"CodeSha256":{},"Description":{}}},"output":{"shape":"S15"}},"RemovePermission":{"http":{"method":"DELETE","requestUri":"/2015-03-31/functions/{FunctionName}/policy/{StatementId}","responseCode":204},"input":{"type":"structure","required":["FunctionName","StatementId"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"StatementId":{"location":"uri","locationName":"StatementId"},"Qualifier":{"location":"querystring","locationName":"Qualifier"}}}},"UpdateAlias":{"http":{"method":"PUT","requestUri":"/2015-03-31/functions/{FunctionName}/aliases/{Name}","responseCode":200},"input":{"type":"structure","required":["FunctionName","Name"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Name":{"location":"uri","locationName":"Name"},"FunctionVersion":{},"Description":{}}},"output":{"shape":"Sg"}},"UpdateEventSourceMapping":{"http":{"method":"PUT","requestUri":"/2015-03-31/event-source-mappings/{UUID}","responseCode":202},"input":{"type":"structure","required":["UUID"],"members":{"UUID":{"location":"uri","locationName":"UUID"},"FunctionName":{},"Enabled":{"type":"boolean"},"BatchSize":{"type":"integer"}}},"output":{"shape":"Sm"}},"UpdateFunctionCode":{"http":{"method":"PUT","requestUri":"/2015-03-31/functions/{FunctionName}/code","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"ZipFile":{"type":"blob"},"S3Bucket":{},"S3Key":{},"S3ObjectVersion":{},"Publish":{"type":"boolean"}}},"output":{"shape":"S15"}},"UpdateFunctionConfiguration":{"http":{"method":"PUT","requestUri":"/2015-03-31/functions/{FunctionName}/configuration","responseCode":200},"input":{"type":"structure","required":["FunctionName"],"members":{"FunctionName":{"location":"uri","locationName":"FunctionName"},"Role":{},"Handler":{},"Description":{},"Timeout":{"type":"integer"},"MemorySize":{"type":"integer"},"VpcConfig":{"shape":"S10"},"Runtime":{}}},"output":{"shape":"S15"}}},"shapes":{"Sg":{"type":"structure","members":{"AliasArn":{},"Name":{},"FunctionVersion":{},"Description":{}}},"Sm":{"type":"structure","members":{"UUID":{},"BatchSize":{"type":"integer"},"EventSourceArn":{},"FunctionArn":{},"LastModified":{"type":"timestamp"},"LastProcessingResult":{},"State":{},"StateTransitionReason":{}}},"S10":{"type":"structure","members":{"SubnetIds":{"shape":"S11"},"SecurityGroupIds":{"shape":"S13"}}},"S11":{"type":"list","member":{}},"S13":{"type":"list","member":{}},"S15":{"type":"structure","members":{"FunctionName":{},"FunctionArn":{},"Runtime":{},"Role":{},"Handler":{},"CodeSize":{"type":"long"},"Description":{},"Timeout":{"type":"integer"},"MemorySize":{"type":"integer"},"LastModified":{},"CodeSha256":{},"Version":{},"VpcConfig":{"type":"structure","members":{"SubnetIds":{"shape":"S11"},"SecurityGroupIds":{"shape":"S13"},"VpcId":{}}}}},"S23":{"type":"list","member":{"shape":"S15"}}},"paginators":{"ListEventSourceMappings":{"input_token":"Marker","output_token":"NextMarker","limit_key":"MaxItems","result_key":"EventSourceMappings"},"ListFunctions":{"input_token":"Marker","output_token":"NextMarker","limit_key":"MaxItems","result_key":"Functions"}}}; +AWS.apiLoader.services['machinelearning'] = {}; +AWS.MachineLearning = AWS.Service.defineService('machinelearning', [ '2014-12-12' ]); +require('./services/machinelearning'); + +AWS.apiLoader.services['machinelearning']['2014-12-12'] = {"version":"2.0","metadata":{"apiVersion":"2014-12-12","endpointPrefix":"machinelearning","jsonVersion":"1.1","serviceFullName":"Amazon Machine Learning","signatureVersion":"v4","targetPrefix":"AmazonML_20141212","protocol":"json"},"operations":{"AddTags":{"input":{"type":"structure","required":["Tags","ResourceId","ResourceType"],"members":{"Tags":{"shape":"S2"},"ResourceId":{},"ResourceType":{}}},"output":{"type":"structure","members":{"ResourceId":{},"ResourceType":{}}},"http":{}},"CreateBatchPrediction":{"input":{"type":"structure","required":["BatchPredictionId","MLModelId","BatchPredictionDataSourceId","OutputUri"],"members":{"BatchPredictionId":{},"BatchPredictionName":{},"MLModelId":{},"BatchPredictionDataSourceId":{},"OutputUri":{}}},"output":{"type":"structure","members":{"BatchPredictionId":{}}},"http":{}},"CreateDataSourceFromRDS":{"input":{"type":"structure","required":["DataSourceId","RDSData","RoleARN"],"members":{"DataSourceId":{},"DataSourceName":{},"RDSData":{"type":"structure","required":["DatabaseInformation","SelectSqlQuery","DatabaseCredentials","S3StagingLocation","ResourceRole","ServiceRole","SubnetId","SecurityGroupIds"],"members":{"DatabaseInformation":{"shape":"Sf"},"SelectSqlQuery":{},"DatabaseCredentials":{"type":"structure","required":["Username","Password"],"members":{"Username":{},"Password":{}}},"S3StagingLocation":{},"DataRearrangement":{},"DataSchema":{},"DataSchemaUri":{},"ResourceRole":{},"ServiceRole":{},"SubnetId":{},"SecurityGroupIds":{"type":"list","member":{}}}},"RoleARN":{},"ComputeStatistics":{"type":"boolean"}}},"output":{"type":"structure","members":{"DataSourceId":{}}},"http":{}},"CreateDataSourceFromRedshift":{"input":{"type":"structure","required":["DataSourceId","DataSpec","RoleARN"],"members":{"DataSourceId":{},"DataSourceName":{},"DataSpec":{"type":"structure","required":["DatabaseInformation","SelectSqlQuery","DatabaseCredentials","S3StagingLocation"],"members":{"DatabaseInformation":{"shape":"Sy"},"SelectSqlQuery":{},"DatabaseCredentials":{"type":"structure","required":["Username","Password"],"members":{"Username":{},"Password":{}}},"S3StagingLocation":{},"DataRearrangement":{},"DataSchema":{},"DataSchemaUri":{}}},"RoleARN":{},"ComputeStatistics":{"type":"boolean"}}},"output":{"type":"structure","members":{"DataSourceId":{}}},"http":{}},"CreateDataSourceFromS3":{"input":{"type":"structure","required":["DataSourceId","DataSpec"],"members":{"DataSourceId":{},"DataSourceName":{},"DataSpec":{"type":"structure","required":["DataLocationS3"],"members":{"DataLocationS3":{},"DataRearrangement":{},"DataSchema":{},"DataSchemaLocationS3":{}}},"ComputeStatistics":{"type":"boolean"}}},"output":{"type":"structure","members":{"DataSourceId":{}}},"http":{}},"CreateEvaluation":{"input":{"type":"structure","required":["EvaluationId","MLModelId","EvaluationDataSourceId"],"members":{"EvaluationId":{},"EvaluationName":{},"MLModelId":{},"EvaluationDataSourceId":{}}},"output":{"type":"structure","members":{"EvaluationId":{}}},"http":{}},"CreateMLModel":{"input":{"type":"structure","required":["MLModelId","MLModelType","TrainingDataSourceId"],"members":{"MLModelId":{},"MLModelName":{},"MLModelType":{},"Parameters":{"shape":"S1d"},"TrainingDataSourceId":{},"Recipe":{},"RecipeUri":{}}},"output":{"type":"structure","members":{"MLModelId":{}}},"http":{}},"CreateRealtimeEndpoint":{"input":{"type":"structure","required":["MLModelId"],"members":{"MLModelId":{}}},"output":{"type":"structure","members":{"MLModelId":{},"RealtimeEndpointInfo":{"shape":"S1j"}}},"http":{}},"DeleteBatchPrediction":{"input":{"type":"structure","required":["BatchPredictionId"],"members":{"BatchPredictionId":{}}},"output":{"type":"structure","members":{"BatchPredictionId":{}}},"http":{}},"DeleteDataSource":{"input":{"type":"structure","required":["DataSourceId"],"members":{"DataSourceId":{}}},"output":{"type":"structure","members":{"DataSourceId":{}}},"http":{}},"DeleteEvaluation":{"input":{"type":"structure","required":["EvaluationId"],"members":{"EvaluationId":{}}},"output":{"type":"structure","members":{"EvaluationId":{}}},"http":{}},"DeleteMLModel":{"input":{"type":"structure","required":["MLModelId"],"members":{"MLModelId":{}}},"output":{"type":"structure","members":{"MLModelId":{}}},"http":{}},"DeleteRealtimeEndpoint":{"input":{"type":"structure","required":["MLModelId"],"members":{"MLModelId":{}}},"output":{"type":"structure","members":{"MLModelId":{},"RealtimeEndpointInfo":{"shape":"S1j"}}},"http":{}},"DeleteTags":{"input":{"type":"structure","required":["TagKeys","ResourceId","ResourceType"],"members":{"TagKeys":{"type":"list","member":{}},"ResourceId":{},"ResourceType":{}}},"output":{"type":"structure","members":{"ResourceId":{},"ResourceType":{}}},"http":{}},"DescribeBatchPredictions":{"input":{"type":"structure","members":{"FilterVariable":{},"EQ":{},"GT":{},"LT":{},"GE":{},"LE":{},"NE":{},"Prefix":{},"SortOrder":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Results":{"type":"list","member":{"type":"structure","members":{"BatchPredictionId":{},"MLModelId":{},"BatchPredictionDataSourceId":{},"InputDataLocationS3":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"Name":{},"Status":{},"OutputUri":{},"Message":{}}}},"NextToken":{}}},"http":{}},"DescribeDataSources":{"input":{"type":"structure","members":{"FilterVariable":{},"EQ":{},"GT":{},"LT":{},"GE":{},"LE":{},"NE":{},"Prefix":{},"SortOrder":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Results":{"type":"list","member":{"type":"structure","members":{"DataSourceId":{},"DataLocationS3":{},"DataRearrangement":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"DataSizeInBytes":{"type":"long"},"NumberOfFiles":{"type":"long"},"Name":{},"Status":{},"Message":{},"RedshiftMetadata":{"shape":"S2i"},"RDSMetadata":{"shape":"S2j"},"RoleARN":{},"ComputeStatistics":{"type":"boolean"}}}},"NextToken":{}}},"http":{}},"DescribeEvaluations":{"input":{"type":"structure","members":{"FilterVariable":{},"EQ":{},"GT":{},"LT":{},"GE":{},"LE":{},"NE":{},"Prefix":{},"SortOrder":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Results":{"type":"list","member":{"type":"structure","members":{"EvaluationId":{},"MLModelId":{},"EvaluationDataSourceId":{},"InputDataLocationS3":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"Name":{},"Status":{},"PerformanceMetrics":{"shape":"S2q"},"Message":{}}}},"NextToken":{}}},"http":{}},"DescribeMLModels":{"input":{"type":"structure","members":{"FilterVariable":{},"EQ":{},"GT":{},"LT":{},"GE":{},"LE":{},"NE":{},"Prefix":{},"SortOrder":{},"NextToken":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Results":{"type":"list","member":{"type":"structure","members":{"MLModelId":{},"TrainingDataSourceId":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"Name":{},"Status":{},"SizeInBytes":{"type":"long"},"EndpointInfo":{"shape":"S1j"},"TrainingParameters":{"shape":"S1d"},"InputDataLocationS3":{},"Algorithm":{},"MLModelType":{},"ScoreThreshold":{"type":"float"},"ScoreThresholdLastUpdatedAt":{"type":"timestamp"},"Message":{}}}},"NextToken":{}}},"http":{}},"DescribeTags":{"input":{"type":"structure","required":["ResourceId","ResourceType"],"members":{"ResourceId":{},"ResourceType":{}}},"output":{"type":"structure","members":{"ResourceId":{},"ResourceType":{},"Tags":{"shape":"S2"}}},"http":{}},"GetBatchPrediction":{"input":{"type":"structure","required":["BatchPredictionId"],"members":{"BatchPredictionId":{}}},"output":{"type":"structure","members":{"BatchPredictionId":{},"MLModelId":{},"BatchPredictionDataSourceId":{},"InputDataLocationS3":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"Name":{},"Status":{},"OutputUri":{},"LogUri":{},"Message":{}}},"http":{}},"GetDataSource":{"input":{"type":"structure","required":["DataSourceId"],"members":{"DataSourceId":{},"Verbose":{"type":"boolean"}}},"output":{"type":"structure","members":{"DataSourceId":{},"DataLocationS3":{},"DataRearrangement":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"DataSizeInBytes":{"type":"long"},"NumberOfFiles":{"type":"long"},"Name":{},"Status":{},"LogUri":{},"Message":{},"RedshiftMetadata":{"shape":"S2i"},"RDSMetadata":{"shape":"S2j"},"RoleARN":{},"ComputeStatistics":{"type":"boolean"},"DataSourceSchema":{}}},"http":{}},"GetEvaluation":{"input":{"type":"structure","required":["EvaluationId"],"members":{"EvaluationId":{}}},"output":{"type":"structure","members":{"EvaluationId":{},"MLModelId":{},"EvaluationDataSourceId":{},"InputDataLocationS3":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"Name":{},"Status":{},"PerformanceMetrics":{"shape":"S2q"},"LogUri":{},"Message":{}}},"http":{}},"GetMLModel":{"input":{"type":"structure","required":["MLModelId"],"members":{"MLModelId":{},"Verbose":{"type":"boolean"}}},"output":{"type":"structure","members":{"MLModelId":{},"TrainingDataSourceId":{},"CreatedByIamUser":{},"CreatedAt":{"type":"timestamp"},"LastUpdatedAt":{"type":"timestamp"},"Name":{},"Status":{},"SizeInBytes":{"type":"long"},"EndpointInfo":{"shape":"S1j"},"TrainingParameters":{"shape":"S1d"},"InputDataLocationS3":{},"MLModelType":{},"ScoreThreshold":{"type":"float"},"ScoreThresholdLastUpdatedAt":{"type":"timestamp"},"LogUri":{},"Message":{},"Recipe":{},"Schema":{}}},"http":{}},"Predict":{"input":{"type":"structure","required":["MLModelId","Record","PredictEndpoint"],"members":{"MLModelId":{},"Record":{"type":"map","key":{},"value":{}},"PredictEndpoint":{}}},"output":{"type":"structure","members":{"Prediction":{"type":"structure","members":{"predictedLabel":{},"predictedValue":{"type":"float"},"predictedScores":{"type":"map","key":{},"value":{"type":"float"}},"details":{"type":"map","key":{},"value":{}}}}}},"http":{}},"UpdateBatchPrediction":{"input":{"type":"structure","required":["BatchPredictionId","BatchPredictionName"],"members":{"BatchPredictionId":{},"BatchPredictionName":{}}},"output":{"type":"structure","members":{"BatchPredictionId":{}}},"http":{}},"UpdateDataSource":{"input":{"type":"structure","required":["DataSourceId","DataSourceName"],"members":{"DataSourceId":{},"DataSourceName":{}}},"output":{"type":"structure","members":{"DataSourceId":{}}},"http":{}},"UpdateEvaluation":{"input":{"type":"structure","required":["EvaluationId","EvaluationName"],"members":{"EvaluationId":{},"EvaluationName":{}}},"output":{"type":"structure","members":{"EvaluationId":{}}},"http":{}},"UpdateMLModel":{"input":{"type":"structure","required":["MLModelId"],"members":{"MLModelId":{},"MLModelName":{},"ScoreThreshold":{"type":"float"}}},"output":{"type":"structure","members":{"MLModelId":{}}},"http":{}}},"shapes":{"S2":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}},"Sf":{"type":"structure","required":["InstanceIdentifier","DatabaseName"],"members":{"InstanceIdentifier":{},"DatabaseName":{}}},"Sy":{"type":"structure","required":["DatabaseName","ClusterIdentifier"],"members":{"DatabaseName":{},"ClusterIdentifier":{}}},"S1d":{"type":"map","key":{},"value":{}},"S1j":{"type":"structure","members":{"PeakRequestsPerSecond":{"type":"integer"},"CreatedAt":{"type":"timestamp"},"EndpointUrl":{},"EndpointStatus":{}}},"S2i":{"type":"structure","members":{"RedshiftDatabase":{"shape":"Sy"},"DatabaseUserName":{},"SelectSqlQuery":{}}},"S2j":{"type":"structure","members":{"Database":{"shape":"Sf"},"DatabaseUserName":{},"SelectSqlQuery":{},"ResourceRole":{},"ServiceRole":{},"DataPipelineId":{}}},"S2q":{"type":"structure","members":{"Properties":{"type":"map","key":{},"value":{}}}}},"examples":{},"paginators":{"DescribeBatchPredictions":{"limit_key":"Limit","output_token":"NextToken","input_token":"NextToken","result_key":"Results"},"DescribeDataSources":{"limit_key":"Limit","output_token":"NextToken","input_token":"NextToken","result_key":"Results"},"DescribeEvaluations":{"limit_key":"Limit","output_token":"NextToken","input_token":"NextToken","result_key":"Results"},"DescribeMLModels":{"limit_key":"Limit","output_token":"NextToken","input_token":"NextToken","result_key":"Results"}},"waiters":{"DataSourceAvailable":{"delay":30,"operation":"DescribeDataSources","maxAttempts":60,"acceptors":[{"expected":"COMPLETED","matcher":"pathAll","state":"success","argument":"Results[].Status"},{"expected":"FAILED","matcher":"pathAny","state":"failure","argument":"Results[].Status"}]},"MLModelAvailable":{"delay":30,"operation":"DescribeMLModels","maxAttempts":60,"acceptors":[{"expected":"COMPLETED","matcher":"pathAll","state":"success","argument":"Results[].Status"},{"expected":"FAILED","matcher":"pathAny","state":"failure","argument":"Results[].Status"}]},"EvaluationAvailable":{"delay":30,"operation":"DescribeEvaluations","maxAttempts":60,"acceptors":[{"expected":"COMPLETED","matcher":"pathAll","state":"success","argument":"Results[].Status"},{"expected":"FAILED","matcher":"pathAny","state":"failure","argument":"Results[].Status"}]},"BatchPredictionAvailable":{"delay":30,"operation":"DescribeBatchPredictions","maxAttempts":60,"acceptors":[{"expected":"COMPLETED","matcher":"pathAll","state":"success","argument":"Results[].Status"},{"expected":"FAILED","matcher":"pathAny","state":"failure","argument":"Results[].Status"}]}}}; +AWS.apiLoader.services['marketplacecommerceanalytics'] = {}; +AWS.MarketplaceCommerceAnalytics = AWS.Service.defineService('marketplacecommerceanalytics', [ '2015-07-01' ]); + +AWS.apiLoader.services['marketplacecommerceanalytics']['2015-07-01'] = {"version":"2.0","metadata":{"apiVersion":"2015-07-01","endpointPrefix":"marketplacecommerceanalytics","jsonVersion":"1.1","protocol":"json","serviceFullName":"AWS Marketplace Commerce Analytics","signatureVersion":"v4","signingName":"marketplacecommerceanalytics","targetPrefix":"MarketplaceCommerceAnalytics20150701"},"operations":{"GenerateDataSet":{"input":{"type":"structure","required":["dataSetType","dataSetPublicationDate","roleNameArn","destinationS3BucketName","snsTopicArn"],"members":{"dataSetType":{},"dataSetPublicationDate":{"type":"timestamp"},"roleNameArn":{},"destinationS3BucketName":{},"destinationS3Prefix":{},"snsTopicArn":{},"customerDefinedValues":{"type":"map","key":{},"value":{}}}},"output":{"type":"structure","members":{"dataSetRequestId":{}}},"http":{}}},"shapes":{}}; +AWS.apiLoader.services['mobileanalytics'] = {}; +AWS.MobileAnalytics = AWS.Service.defineService('mobileanalytics', [ '2014-06-05' ]); + +AWS.apiLoader.services['mobileanalytics']['2014-06-05'] = {"version":"2.0","metadata":{"apiVersion":"2014-06-05","endpointPrefix":"mobileanalytics","serviceFullName":"Amazon Mobile Analytics","signatureVersion":"v4","protocol":"rest-json"},"operations":{"PutEvents":{"http":{"requestUri":"/2014-06-05/events","responseCode":202},"input":{"type":"structure","required":["events","clientContext"],"members":{"events":{"type":"list","member":{"type":"structure","required":["eventType","timestamp"],"members":{"eventType":{},"timestamp":{},"session":{"type":"structure","members":{"id":{},"duration":{"type":"long"},"startTimestamp":{},"stopTimestamp":{}}},"version":{},"attributes":{"type":"map","key":{},"value":{}},"metrics":{"type":"map","key":{},"value":{"type":"double"}}}}},"clientContext":{"location":"header","locationName":"x-amz-Client-Context"},"clientContextEncoding":{"location":"header","locationName":"x-amz-Client-Context-Encoding"}}}}},"shapes":{}}; +AWS.apiLoader.services['opsworks'] = {}; +AWS.OpsWorks = AWS.Service.defineService('opsworks', [ '2013-02-18' ]); + +AWS.apiLoader.services['opsworks']['2013-02-18'] = {"version":"2.0","metadata":{"apiVersion":"2013-02-18","endpointPrefix":"opsworks","jsonVersion":"1.1","protocol":"json","serviceFullName":"AWS OpsWorks","signatureVersion":"v4","targetPrefix":"OpsWorks_20130218"},"operations":{"AssignInstance":{"input":{"type":"structure","required":["InstanceId","LayerIds"],"members":{"InstanceId":{},"LayerIds":{"shape":"S3"}}},"http":{}},"AssignVolume":{"input":{"type":"structure","required":["VolumeId"],"members":{"VolumeId":{},"InstanceId":{}}},"http":{}},"AssociateElasticIp":{"input":{"type":"structure","required":["ElasticIp"],"members":{"ElasticIp":{},"InstanceId":{}}},"http":{}},"AttachElasticLoadBalancer":{"input":{"type":"structure","required":["ElasticLoadBalancerName","LayerId"],"members":{"ElasticLoadBalancerName":{},"LayerId":{}}},"http":{}},"CloneStack":{"input":{"type":"structure","required":["SourceStackId","ServiceRoleArn"],"members":{"SourceStackId":{},"Name":{},"Region":{},"VpcId":{},"Attributes":{"shape":"S8"},"ServiceRoleArn":{},"DefaultInstanceProfileArn":{},"DefaultOs":{},"HostnameTheme":{},"DefaultAvailabilityZone":{},"DefaultSubnetId":{},"CustomJson":{},"ConfigurationManager":{"shape":"Sa"},"ChefConfiguration":{"shape":"Sb"},"UseCustomCookbooks":{"type":"boolean"},"UseOpsworksSecurityGroups":{"type":"boolean"},"CustomCookbooksSource":{"shape":"Sd"},"DefaultSshKeyName":{},"ClonePermissions":{"type":"boolean"},"CloneAppIds":{"shape":"S3"},"DefaultRootDeviceType":{},"AgentVersion":{}}},"output":{"type":"structure","members":{"StackId":{}}},"http":{}},"CreateApp":{"input":{"type":"structure","required":["StackId","Name","Type"],"members":{"StackId":{},"Shortname":{},"Name":{},"Description":{},"DataSources":{"shape":"Si"},"Type":{},"AppSource":{"shape":"Sd"},"Domains":{"shape":"S3"},"EnableSsl":{"type":"boolean"},"SslConfiguration":{"shape":"Sl"},"Attributes":{"shape":"Sm"},"Environment":{"shape":"So"}}},"output":{"type":"structure","members":{"AppId":{}}},"http":{}},"CreateDeployment":{"input":{"type":"structure","required":["StackId","Command"],"members":{"StackId":{},"AppId":{},"InstanceIds":{"shape":"S3"},"LayerIds":{"shape":"S3"},"Command":{"shape":"Ss"},"Comment":{},"CustomJson":{}}},"output":{"type":"structure","members":{"DeploymentId":{}}},"http":{}},"CreateInstance":{"input":{"type":"structure","required":["StackId","LayerIds","InstanceType"],"members":{"StackId":{},"LayerIds":{"shape":"S3"},"InstanceType":{},"AutoScalingType":{},"Hostname":{},"Os":{},"AmiId":{},"SshKeyName":{},"AvailabilityZone":{},"VirtualizationType":{},"SubnetId":{},"Architecture":{},"RootDeviceType":{},"BlockDeviceMappings":{"shape":"Sz"},"InstallUpdatesOnBoot":{"type":"boolean"},"EbsOptimized":{"type":"boolean"},"AgentVersion":{},"Tenancy":{}}},"output":{"type":"structure","members":{"InstanceId":{}}},"http":{}},"CreateLayer":{"input":{"type":"structure","required":["StackId","Type","Name","Shortname"],"members":{"StackId":{},"Type":{},"Name":{},"Shortname":{},"Attributes":{"shape":"S17"},"CustomInstanceProfileArn":{},"CustomJson":{},"CustomSecurityGroupIds":{"shape":"S3"},"Packages":{"shape":"S3"},"VolumeConfigurations":{"shape":"S19"},"EnableAutoHealing":{"type":"boolean"},"AutoAssignElasticIps":{"type":"boolean"},"AutoAssignPublicIps":{"type":"boolean"},"CustomRecipes":{"shape":"S1b"},"InstallUpdatesOnBoot":{"type":"boolean"},"UseEbsOptimizedInstances":{"type":"boolean"},"LifecycleEventConfiguration":{"shape":"S1c"}}},"output":{"type":"structure","members":{"LayerId":{}}},"http":{}},"CreateStack":{"input":{"type":"structure","required":["Name","Region","ServiceRoleArn","DefaultInstanceProfileArn"],"members":{"Name":{},"Region":{},"VpcId":{},"Attributes":{"shape":"S8"},"ServiceRoleArn":{},"DefaultInstanceProfileArn":{},"DefaultOs":{},"HostnameTheme":{},"DefaultAvailabilityZone":{},"DefaultSubnetId":{},"CustomJson":{},"ConfigurationManager":{"shape":"Sa"},"ChefConfiguration":{"shape":"Sb"},"UseCustomCookbooks":{"type":"boolean"},"UseOpsworksSecurityGroups":{"type":"boolean"},"CustomCookbooksSource":{"shape":"Sd"},"DefaultSshKeyName":{},"DefaultRootDeviceType":{},"AgentVersion":{}}},"output":{"type":"structure","members":{"StackId":{}}},"http":{}},"CreateUserProfile":{"input":{"type":"structure","required":["IamUserArn"],"members":{"IamUserArn":{},"SshUsername":{},"SshPublicKey":{},"AllowSelfManagement":{"type":"boolean"}}},"output":{"type":"structure","members":{"IamUserArn":{}}},"http":{}},"DeleteApp":{"input":{"type":"structure","required":["AppId"],"members":{"AppId":{}}},"http":{}},"DeleteInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{},"DeleteElasticIp":{"type":"boolean"},"DeleteVolumes":{"type":"boolean"}}},"http":{}},"DeleteLayer":{"input":{"type":"structure","required":["LayerId"],"members":{"LayerId":{}}},"http":{}},"DeleteStack":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{}}},"http":{}},"DeleteUserProfile":{"input":{"type":"structure","required":["IamUserArn"],"members":{"IamUserArn":{}}},"http":{}},"DeregisterEcsCluster":{"input":{"type":"structure","required":["EcsClusterArn"],"members":{"EcsClusterArn":{}}},"http":{}},"DeregisterElasticIp":{"input":{"type":"structure","required":["ElasticIp"],"members":{"ElasticIp":{}}},"http":{}},"DeregisterInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{}}},"http":{}},"DeregisterRdsDbInstance":{"input":{"type":"structure","required":["RdsDbInstanceArn"],"members":{"RdsDbInstanceArn":{}}},"http":{}},"DeregisterVolume":{"input":{"type":"structure","required":["VolumeId"],"members":{"VolumeId":{}}},"http":{}},"DescribeAgentVersions":{"input":{"type":"structure","members":{"StackId":{},"ConfigurationManager":{"shape":"Sa"}}},"output":{"type":"structure","members":{"AgentVersions":{"type":"list","member":{"type":"structure","members":{"Version":{},"ConfigurationManager":{"shape":"Sa"}}}}}},"http":{}},"DescribeApps":{"input":{"type":"structure","members":{"StackId":{},"AppIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Apps":{"type":"list","member":{"type":"structure","members":{"AppId":{},"StackId":{},"Shortname":{},"Name":{},"Description":{},"DataSources":{"shape":"Si"},"Type":{},"AppSource":{"shape":"Sd"},"Domains":{"shape":"S3"},"EnableSsl":{"type":"boolean"},"SslConfiguration":{"shape":"Sl"},"Attributes":{"shape":"Sm"},"CreatedAt":{},"Environment":{"shape":"So"}}}}}},"http":{}},"DescribeCommands":{"input":{"type":"structure","members":{"DeploymentId":{},"InstanceId":{},"CommandIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Commands":{"type":"list","member":{"type":"structure","members":{"CommandId":{},"InstanceId":{},"DeploymentId":{},"CreatedAt":{},"AcknowledgedAt":{},"CompletedAt":{},"Status":{},"ExitCode":{"type":"integer"},"LogUrl":{},"Type":{}}}}}},"http":{}},"DescribeDeployments":{"input":{"type":"structure","members":{"StackId":{},"AppId":{},"DeploymentIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Deployments":{"type":"list","member":{"type":"structure","members":{"DeploymentId":{},"StackId":{},"AppId":{},"CreatedAt":{},"CompletedAt":{},"Duration":{"type":"integer"},"IamUserArn":{},"Comment":{},"Command":{"shape":"Ss"},"Status":{},"CustomJson":{},"InstanceIds":{"shape":"S3"}}}}}},"http":{}},"DescribeEcsClusters":{"input":{"type":"structure","members":{"EcsClusterArns":{"shape":"S3"},"StackId":{},"NextToken":{},"MaxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"EcsClusters":{"type":"list","member":{"type":"structure","members":{"EcsClusterArn":{},"EcsClusterName":{},"StackId":{},"RegisteredAt":{}}}},"NextToken":{}}},"http":{}},"DescribeElasticIps":{"input":{"type":"structure","members":{"InstanceId":{},"StackId":{},"Ips":{"shape":"S3"}}},"output":{"type":"structure","members":{"ElasticIps":{"type":"list","member":{"type":"structure","members":{"Ip":{},"Name":{},"Domain":{},"Region":{},"InstanceId":{}}}}}},"http":{}},"DescribeElasticLoadBalancers":{"input":{"type":"structure","members":{"StackId":{},"LayerIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"ElasticLoadBalancers":{"type":"list","member":{"type":"structure","members":{"ElasticLoadBalancerName":{},"Region":{},"DnsName":{},"StackId":{},"LayerId":{},"VpcId":{},"AvailabilityZones":{"shape":"S3"},"SubnetIds":{"shape":"S3"},"Ec2InstanceIds":{"shape":"S3"}}}}}},"http":{}},"DescribeInstances":{"input":{"type":"structure","members":{"StackId":{},"LayerId":{},"InstanceIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Instances":{"type":"list","member":{"type":"structure","members":{"AgentVersion":{},"AmiId":{},"Architecture":{},"AutoScalingType":{},"AvailabilityZone":{},"BlockDeviceMappings":{"shape":"Sz"},"CreatedAt":{},"EbsOptimized":{"type":"boolean"},"Ec2InstanceId":{},"EcsClusterArn":{},"EcsContainerInstanceArn":{},"ElasticIp":{},"Hostname":{},"InfrastructureClass":{},"InstallUpdatesOnBoot":{"type":"boolean"},"InstanceId":{},"InstanceProfileArn":{},"InstanceType":{},"LastServiceErrorId":{},"LayerIds":{"shape":"S3"},"Os":{},"Platform":{},"PrivateDns":{},"PrivateIp":{},"PublicDns":{},"PublicIp":{},"RegisteredBy":{},"ReportedAgentVersion":{},"ReportedOs":{"type":"structure","members":{"Family":{},"Name":{},"Version":{}}},"RootDeviceType":{},"RootDeviceVolumeId":{},"SecurityGroupIds":{"shape":"S3"},"SshHostDsaKeyFingerprint":{},"SshHostRsaKeyFingerprint":{},"SshKeyName":{},"StackId":{},"Status":{},"SubnetId":{},"Tenancy":{},"VirtualizationType":{}}}}}},"http":{}},"DescribeLayers":{"input":{"type":"structure","members":{"StackId":{},"LayerIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Layers":{"type":"list","member":{"type":"structure","members":{"StackId":{},"LayerId":{},"Type":{},"Name":{},"Shortname":{},"Attributes":{"shape":"S17"},"CustomInstanceProfileArn":{},"CustomJson":{},"CustomSecurityGroupIds":{"shape":"S3"},"DefaultSecurityGroupNames":{"shape":"S3"},"Packages":{"shape":"S3"},"VolumeConfigurations":{"shape":"S19"},"EnableAutoHealing":{"type":"boolean"},"AutoAssignElasticIps":{"type":"boolean"},"AutoAssignPublicIps":{"type":"boolean"},"DefaultRecipes":{"shape":"S1b"},"CustomRecipes":{"shape":"S1b"},"CreatedAt":{},"InstallUpdatesOnBoot":{"type":"boolean"},"UseEbsOptimizedInstances":{"type":"boolean"},"LifecycleEventConfiguration":{"shape":"S1c"}}}}}},"http":{}},"DescribeLoadBasedAutoScaling":{"input":{"type":"structure","required":["LayerIds"],"members":{"LayerIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"LoadBasedAutoScalingConfigurations":{"type":"list","member":{"type":"structure","members":{"LayerId":{},"Enable":{"type":"boolean"},"UpScaling":{"shape":"S30"},"DownScaling":{"shape":"S30"}}}}}},"http":{}},"DescribeMyUserProfile":{"output":{"type":"structure","members":{"UserProfile":{"type":"structure","members":{"IamUserArn":{},"Name":{},"SshUsername":{},"SshPublicKey":{}}}}},"http":{}},"DescribePermissions":{"input":{"type":"structure","members":{"IamUserArn":{},"StackId":{}}},"output":{"type":"structure","members":{"Permissions":{"type":"list","member":{"type":"structure","members":{"StackId":{},"IamUserArn":{},"AllowSsh":{"type":"boolean"},"AllowSudo":{"type":"boolean"},"Level":{}}}}}},"http":{}},"DescribeRaidArrays":{"input":{"type":"structure","members":{"InstanceId":{},"StackId":{},"RaidArrayIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"RaidArrays":{"type":"list","member":{"type":"structure","members":{"RaidArrayId":{},"InstanceId":{},"Name":{},"RaidLevel":{"type":"integer"},"NumberOfDisks":{"type":"integer"},"Size":{"type":"integer"},"Device":{},"MountPoint":{},"AvailabilityZone":{},"CreatedAt":{},"StackId":{},"VolumeType":{},"Iops":{"type":"integer"}}}}}},"http":{}},"DescribeRdsDbInstances":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{},"RdsDbInstanceArns":{"shape":"S3"}}},"output":{"type":"structure","members":{"RdsDbInstances":{"type":"list","member":{"type":"structure","members":{"RdsDbInstanceArn":{},"DbInstanceIdentifier":{},"DbUser":{},"DbPassword":{},"Region":{},"Address":{},"Engine":{},"StackId":{},"MissingOnRds":{"type":"boolean"}}}}}},"http":{}},"DescribeServiceErrors":{"input":{"type":"structure","members":{"StackId":{},"InstanceId":{},"ServiceErrorIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"ServiceErrors":{"type":"list","member":{"type":"structure","members":{"ServiceErrorId":{},"StackId":{},"InstanceId":{},"Type":{},"Message":{},"CreatedAt":{}}}}}},"http":{}},"DescribeStackProvisioningParameters":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{}}},"output":{"type":"structure","members":{"AgentInstallerUrl":{},"Parameters":{"type":"map","key":{},"value":{}}}},"http":{}},"DescribeStackSummary":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{}}},"output":{"type":"structure","members":{"StackSummary":{"type":"structure","members":{"StackId":{},"Name":{},"Arn":{},"LayersCount":{"type":"integer"},"AppsCount":{"type":"integer"},"InstancesCount":{"type":"structure","members":{"Assigning":{"type":"integer"},"Booting":{"type":"integer"},"ConnectionLost":{"type":"integer"},"Deregistering":{"type":"integer"},"Online":{"type":"integer"},"Pending":{"type":"integer"},"Rebooting":{"type":"integer"},"Registered":{"type":"integer"},"Registering":{"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"},"Unassigning":{"type":"integer"}}}}}}},"http":{}},"DescribeStacks":{"input":{"type":"structure","members":{"StackIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Stacks":{"type":"list","member":{"type":"structure","members":{"StackId":{},"Name":{},"Arn":{},"Region":{},"VpcId":{},"Attributes":{"shape":"S8"},"ServiceRoleArn":{},"DefaultInstanceProfileArn":{},"DefaultOs":{},"HostnameTheme":{},"DefaultAvailabilityZone":{},"DefaultSubnetId":{},"CustomJson":{},"ConfigurationManager":{"shape":"Sa"},"ChefConfiguration":{"shape":"Sb"},"UseCustomCookbooks":{"type":"boolean"},"UseOpsworksSecurityGroups":{"type":"boolean"},"CustomCookbooksSource":{"shape":"Sd"},"DefaultSshKeyName":{},"CreatedAt":{},"DefaultRootDeviceType":{},"AgentVersion":{}}}}}},"http":{}},"DescribeTimeBasedAutoScaling":{"input":{"type":"structure","required":["InstanceIds"],"members":{"InstanceIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"TimeBasedAutoScalingConfigurations":{"type":"list","member":{"type":"structure","members":{"InstanceId":{},"AutoScalingSchedule":{"shape":"S40"}}}}}},"http":{}},"DescribeUserProfiles":{"input":{"type":"structure","members":{"IamUserArns":{"shape":"S3"}}},"output":{"type":"structure","members":{"UserProfiles":{"type":"list","member":{"type":"structure","members":{"IamUserArn":{},"Name":{},"SshUsername":{},"SshPublicKey":{},"AllowSelfManagement":{"type":"boolean"}}}}}},"http":{}},"DescribeVolumes":{"input":{"type":"structure","members":{"InstanceId":{},"StackId":{},"RaidArrayId":{},"VolumeIds":{"shape":"S3"}}},"output":{"type":"structure","members":{"Volumes":{"type":"list","member":{"type":"structure","members":{"VolumeId":{},"Ec2VolumeId":{},"Name":{},"RaidArrayId":{},"InstanceId":{},"Status":{},"Size":{"type":"integer"},"Device":{},"MountPoint":{},"Region":{},"AvailabilityZone":{},"VolumeType":{},"Iops":{"type":"integer"}}}}}},"http":{}},"DetachElasticLoadBalancer":{"input":{"type":"structure","required":["ElasticLoadBalancerName","LayerId"],"members":{"ElasticLoadBalancerName":{},"LayerId":{}}},"http":{}},"DisassociateElasticIp":{"input":{"type":"structure","required":["ElasticIp"],"members":{"ElasticIp":{}}},"http":{}},"GetHostnameSuggestion":{"input":{"type":"structure","required":["LayerId"],"members":{"LayerId":{}}},"output":{"type":"structure","members":{"LayerId":{},"Hostname":{}}},"http":{}},"GrantAccess":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{},"ValidForInMinutes":{"type":"integer"}}},"output":{"type":"structure","members":{"TemporaryCredential":{"type":"structure","members":{"Username":{},"Password":{},"ValidForInMinutes":{"type":"integer"},"InstanceId":{}}}}},"http":{}},"RebootInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{}}},"http":{}},"RegisterEcsCluster":{"input":{"type":"structure","required":["EcsClusterArn","StackId"],"members":{"EcsClusterArn":{},"StackId":{}}},"output":{"type":"structure","members":{"EcsClusterArn":{}}},"http":{}},"RegisterElasticIp":{"input":{"type":"structure","required":["ElasticIp","StackId"],"members":{"ElasticIp":{},"StackId":{}}},"output":{"type":"structure","members":{"ElasticIp":{}}},"http":{}},"RegisterInstance":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{},"Hostname":{},"PublicIp":{},"PrivateIp":{},"RsaPublicKey":{},"RsaPublicKeyFingerprint":{},"InstanceIdentity":{"type":"structure","members":{"Document":{},"Signature":{}}}}},"output":{"type":"structure","members":{"InstanceId":{}}},"http":{}},"RegisterRdsDbInstance":{"input":{"type":"structure","required":["StackId","RdsDbInstanceArn","DbUser","DbPassword"],"members":{"StackId":{},"RdsDbInstanceArn":{},"DbUser":{},"DbPassword":{}}},"http":{}},"RegisterVolume":{"input":{"type":"structure","required":["StackId"],"members":{"Ec2VolumeId":{},"StackId":{}}},"output":{"type":"structure","members":{"VolumeId":{}}},"http":{}},"SetLoadBasedAutoScaling":{"input":{"type":"structure","required":["LayerId"],"members":{"LayerId":{},"Enable":{"type":"boolean"},"UpScaling":{"shape":"S30"},"DownScaling":{"shape":"S30"}}},"http":{}},"SetPermission":{"input":{"type":"structure","required":["StackId","IamUserArn"],"members":{"StackId":{},"IamUserArn":{},"AllowSsh":{"type":"boolean"},"AllowSudo":{"type":"boolean"},"Level":{}}},"http":{}},"SetTimeBasedAutoScaling":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{},"AutoScalingSchedule":{"shape":"S40"}}},"http":{}},"StartInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{}}},"http":{}},"StartStack":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{}}},"http":{}},"StopInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{}}},"http":{}},"StopStack":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{}}},"http":{}},"UnassignInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{}}},"http":{}},"UnassignVolume":{"input":{"type":"structure","required":["VolumeId"],"members":{"VolumeId":{}}},"http":{}},"UpdateApp":{"input":{"type":"structure","required":["AppId"],"members":{"AppId":{},"Name":{},"Description":{},"DataSources":{"shape":"Si"},"Type":{},"AppSource":{"shape":"Sd"},"Domains":{"shape":"S3"},"EnableSsl":{"type":"boolean"},"SslConfiguration":{"shape":"Sl"},"Attributes":{"shape":"Sm"},"Environment":{"shape":"So"}}},"http":{}},"UpdateElasticIp":{"input":{"type":"structure","required":["ElasticIp"],"members":{"ElasticIp":{},"Name":{}}},"http":{}},"UpdateInstance":{"input":{"type":"structure","required":["InstanceId"],"members":{"InstanceId":{},"LayerIds":{"shape":"S3"},"InstanceType":{},"AutoScalingType":{},"Hostname":{},"Os":{},"AmiId":{},"SshKeyName":{},"Architecture":{},"InstallUpdatesOnBoot":{"type":"boolean"},"EbsOptimized":{"type":"boolean"},"AgentVersion":{}}},"http":{}},"UpdateLayer":{"input":{"type":"structure","required":["LayerId"],"members":{"LayerId":{},"Name":{},"Shortname":{},"Attributes":{"shape":"S17"},"CustomInstanceProfileArn":{},"CustomJson":{},"CustomSecurityGroupIds":{"shape":"S3"},"Packages":{"shape":"S3"},"VolumeConfigurations":{"shape":"S19"},"EnableAutoHealing":{"type":"boolean"},"AutoAssignElasticIps":{"type":"boolean"},"AutoAssignPublicIps":{"type":"boolean"},"CustomRecipes":{"shape":"S1b"},"InstallUpdatesOnBoot":{"type":"boolean"},"UseEbsOptimizedInstances":{"type":"boolean"},"LifecycleEventConfiguration":{"shape":"S1c"}}},"http":{}},"UpdateMyUserProfile":{"input":{"type":"structure","members":{"SshPublicKey":{}}},"http":{}},"UpdateRdsDbInstance":{"input":{"type":"structure","required":["RdsDbInstanceArn"],"members":{"RdsDbInstanceArn":{},"DbUser":{},"DbPassword":{}}},"http":{}},"UpdateStack":{"input":{"type":"structure","required":["StackId"],"members":{"StackId":{},"Name":{},"Attributes":{"shape":"S8"},"ServiceRoleArn":{},"DefaultInstanceProfileArn":{},"DefaultOs":{},"HostnameTheme":{},"DefaultAvailabilityZone":{},"DefaultSubnetId":{},"CustomJson":{},"ConfigurationManager":{"shape":"Sa"},"ChefConfiguration":{"shape":"Sb"},"UseCustomCookbooks":{"type":"boolean"},"CustomCookbooksSource":{"shape":"Sd"},"DefaultSshKeyName":{},"DefaultRootDeviceType":{},"UseOpsworksSecurityGroups":{"type":"boolean"},"AgentVersion":{}}},"http":{}},"UpdateUserProfile":{"input":{"type":"structure","required":["IamUserArn"],"members":{"IamUserArn":{},"SshUsername":{},"SshPublicKey":{},"AllowSelfManagement":{"type":"boolean"}}},"http":{}},"UpdateVolume":{"input":{"type":"structure","required":["VolumeId"],"members":{"VolumeId":{},"Name":{},"MountPoint":{}}},"http":{}}},"shapes":{"S3":{"type":"list","member":{}},"S8":{"type":"map","key":{},"value":{}},"Sa":{"type":"structure","members":{"Name":{},"Version":{}}},"Sb":{"type":"structure","members":{"ManageBerkshelf":{"type":"boolean"},"BerkshelfVersion":{}}},"Sd":{"type":"structure","members":{"Type":{},"Url":{},"Username":{},"Password":{},"SshKey":{},"Revision":{}}},"Si":{"type":"list","member":{"type":"structure","members":{"Type":{},"Arn":{},"DatabaseName":{}}}},"Sl":{"type":"structure","required":["Certificate","PrivateKey"],"members":{"Certificate":{},"PrivateKey":{},"Chain":{}}},"Sm":{"type":"map","key":{},"value":{}},"So":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{},"Secure":{"type":"boolean"}}}},"Ss":{"type":"structure","required":["Name"],"members":{"Name":{},"Args":{"type":"map","key":{},"value":{"shape":"S3"}}}},"Sz":{"type":"list","member":{"type":"structure","members":{"DeviceName":{},"NoDevice":{},"VirtualName":{},"Ebs":{"type":"structure","members":{"SnapshotId":{},"Iops":{"type":"integer"},"VolumeSize":{"type":"integer"},"VolumeType":{},"DeleteOnTermination":{"type":"boolean"}}}}}},"S17":{"type":"map","key":{},"value":{}},"S19":{"type":"list","member":{"type":"structure","required":["MountPoint","NumberOfDisks","Size"],"members":{"MountPoint":{},"RaidLevel":{"type":"integer"},"NumberOfDisks":{"type":"integer"},"Size":{"type":"integer"},"VolumeType":{},"Iops":{"type":"integer"}}}},"S1b":{"type":"structure","members":{"Setup":{"shape":"S3"},"Configure":{"shape":"S3"},"Deploy":{"shape":"S3"},"Undeploy":{"shape":"S3"},"Shutdown":{"shape":"S3"}}},"S1c":{"type":"structure","members":{"Shutdown":{"type":"structure","members":{"ExecutionTimeout":{"type":"integer"},"DelayUntilElbConnectionsDrained":{"type":"boolean"}}}}},"S30":{"type":"structure","members":{"InstanceCount":{"type":"integer"},"ThresholdsWaitTime":{"type":"integer"},"IgnoreMetricsTime":{"type":"integer"},"CpuThreshold":{"type":"double"},"MemoryThreshold":{"type":"double"},"LoadThreshold":{"type":"double"},"Alarms":{"shape":"S3"}}},"S40":{"type":"structure","members":{"Monday":{"shape":"S41"},"Tuesday":{"shape":"S41"},"Wednesday":{"shape":"S41"},"Thursday":{"shape":"S41"},"Friday":{"shape":"S41"},"Saturday":{"shape":"S41"},"Sunday":{"shape":"S41"}}},"S41":{"type":"map","key":{},"value":{}}},"paginators":{"DescribeApps":{"result_key":"Apps"},"DescribeCommands":{"result_key":"Commands"},"DescribeDeployments":{"result_key":"Deployments"},"DescribeEcsClusters":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"EcsClusters"},"DescribeElasticIps":{"result_key":"ElasticIps"},"DescribeElasticLoadBalancers":{"result_key":"ElasticLoadBalancers"},"DescribeInstances":{"result_key":"Instances"},"DescribeLayers":{"result_key":"Layers"},"DescribeLoadBasedAutoScaling":{"result_key":"LoadBasedAutoScalingConfigurations"},"DescribePermissions":{"result_key":"Permissions"},"DescribeRaidArrays":{"result_key":"RaidArrays"},"DescribeServiceErrors":{"result_key":"ServiceErrors"},"DescribeStacks":{"result_key":"Stacks"},"DescribeTimeBasedAutoScaling":{"result_key":"TimeBasedAutoScalingConfigurations"},"DescribeUserProfiles":{"result_key":"UserProfiles"},"DescribeVolumes":{"result_key":"Volumes"}},"waiters":{"AppExists":{"delay":1,"operation":"DescribeApps","maxAttempts":40,"acceptors":[{"expected":200,"matcher":"status","state":"success"},{"matcher":"status","expected":400,"state":"failure"}]},"DeploymentSuccessful":{"delay":15,"operation":"DescribeDeployments","maxAttempts":40,"description":"Wait until a deployment has completed successfully","acceptors":[{"expected":"successful","matcher":"pathAll","state":"success","argument":"Deployments[].Status"},{"expected":"failed","matcher":"pathAny","state":"failure","argument":"Deployments[].Status"}]},"InstanceOnline":{"delay":15,"operation":"DescribeInstances","maxAttempts":40,"description":"Wait until OpsWorks instance is online.","acceptors":[{"expected":"online","matcher":"pathAll","state":"success","argument":"Instances[].Status"},{"expected":"setup_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"shutting_down","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"start_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"stopped","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"stopping","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"terminating","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"terminated","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"stop_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"}]},"InstanceStopped":{"delay":15,"operation":"DescribeInstances","maxAttempts":40,"description":"Wait until OpsWorks instance is stopped.","acceptors":[{"expected":"stopped","matcher":"pathAll","state":"success","argument":"Instances[].Status"},{"expected":"booting","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"online","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"pending","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"rebooting","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"requested","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"running_setup","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"setup_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"start_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"stop_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"}]},"InstanceTerminated":{"delay":15,"operation":"DescribeInstances","maxAttempts":40,"description":"Wait until OpsWorks instance is terminated.","acceptors":[{"expected":"terminated","matcher":"pathAll","state":"success","argument":"Instances[].Status"},{"expected":"ResourceNotFoundException","matcher":"error","state":"success"},{"expected":"booting","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"online","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"pending","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"rebooting","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"requested","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"running_setup","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"setup_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"},{"expected":"start_failed","matcher":"pathAny","state":"failure","argument":"Instances[].Status"}]}}}; +AWS.apiLoader.services['rds'] = {}; +AWS.RDS = AWS.Service.defineService('rds', [ '2013-01-10', '2013-02-12', '2013-09-09', '2014-10-31' ]); + +AWS.apiLoader.services['rds']['2014-10-31'] = {"version":"2.0","metadata":{"apiVersion":"2014-10-31","endpointPrefix":"rds","protocol":"query","serviceAbbreviation":"Amazon RDS","serviceFullName":"Amazon Relational Database Service","signatureVersion":"v4","xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/"},"operations":{"AddSourceIdentifierToSubscription":{"input":{"type":"structure","required":["SubscriptionName","SourceIdentifier"],"members":{"SubscriptionName":{},"SourceIdentifier":{}}},"output":{"resultWrapper":"AddSourceIdentifierToSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S4"}}},"http":{}},"AddTagsToResource":{"input":{"type":"structure","required":["ResourceName","Tags"],"members":{"ResourceName":{},"Tags":{"shape":"S9"}}},"http":{}},"ApplyPendingMaintenanceAction":{"input":{"type":"structure","required":["ResourceIdentifier","ApplyAction","OptInType"],"members":{"ResourceIdentifier":{},"ApplyAction":{},"OptInType":{}}},"output":{"resultWrapper":"ApplyPendingMaintenanceActionResult","type":"structure","members":{"ResourcePendingMaintenanceActions":{"shape":"Sd"}}},"http":{}},"AuthorizeDBSecurityGroupIngress":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{},"CIDRIP":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}},"output":{"resultWrapper":"AuthorizeDBSecurityGroupIngressResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sj"}}},"http":{}},"CopyDBClusterSnapshot":{"input":{"type":"structure","required":["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],"members":{"SourceDBClusterSnapshotIdentifier":{},"TargetDBClusterSnapshotIdentifier":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CopyDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sq"}}},"http":{}},"CopyDBParameterGroup":{"input":{"type":"structure","required":["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],"members":{"SourceDBParameterGroupIdentifier":{},"TargetDBParameterGroupIdentifier":{},"TargetDBParameterGroupDescription":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CopyDBParameterGroupResult","type":"structure","members":{"DBParameterGroup":{"shape":"Sv"}}},"http":{}},"CopyDBSnapshot":{"input":{"type":"structure","required":["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],"members":{"SourceDBSnapshotIdentifier":{},"TargetDBSnapshotIdentifier":{},"KmsKeyId":{},"Tags":{"shape":"S9"},"CopyTags":{"type":"boolean"}}},"output":{"resultWrapper":"CopyDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"Sz"}}},"http":{}},"CopyOptionGroup":{"input":{"type":"structure","required":["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],"members":{"SourceOptionGroupIdentifier":{},"TargetOptionGroupIdentifier":{},"TargetOptionGroupDescription":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CopyOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S13"}}},"http":{}},"CreateDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword"],"members":{"AvailabilityZones":{"shape":"Sr"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1d"},"DBSubnetGroupName":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"MasterUsername":{},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"ReplicationSourceIdentifier":{},"Tags":{"shape":"S9"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{}}},"output":{"resultWrapper":"CreateDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1f"}}},"http":{}},"CreateDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],"members":{"DBClusterParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateDBClusterParameterGroupResult","type":"structure","members":{"DBClusterParameterGroup":{"shape":"S1m"}}},"http":{}},"CreateDBClusterSnapshot":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier","DBClusterIdentifier"],"members":{"DBClusterSnapshotIdentifier":{},"DBClusterIdentifier":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sq"}}},"http":{}},"CreateDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBInstanceClass","Engine"],"members":{"DBName":{},"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"Engine":{},"MasterUsername":{},"MasterUserPassword":{},"DBSecurityGroups":{"shape":"S1q"},"VpcSecurityGroupIds":{"shape":"S1d"},"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":{"shape":"S9"},"DBClusterIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"DomainIAMRoleName":{},"PromotionTier":{"type":"integer"}}},"output":{"resultWrapper":"CreateDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"CreateDBInstanceReadReplica":{"input":{"type":"structure","required":["DBInstanceIdentifier","SourceDBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"SourceDBInstanceIdentifier":{},"DBInstanceClass":{},"AvailabilityZone":{},"Port":{"type":"integer"},"AutoMinorVersionUpgrade":{"type":"boolean"},"Iops":{"type":"integer"},"OptionGroupName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"S9"},"DBSubnetGroupName":{},"StorageType":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{}}},"output":{"resultWrapper":"CreateDBInstanceReadReplicaResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"CreateDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName","DBParameterGroupFamily","Description"],"members":{"DBParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateDBParameterGroupResult","type":"structure","members":{"DBParameterGroup":{"shape":"Sv"}}},"http":{}},"CreateDBSecurityGroup":{"input":{"type":"structure","required":["DBSecurityGroupName","DBSecurityGroupDescription"],"members":{"DBSecurityGroupName":{},"DBSecurityGroupDescription":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateDBSecurityGroupResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sj"}}},"http":{}},"CreateDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier","DBInstanceIdentifier"],"members":{"DBSnapshotIdentifier":{},"DBInstanceIdentifier":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"Sz"}}},"http":{}},"CreateDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],"members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"SubnetIds":{"shape":"S2h"},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateDBSubnetGroupResult","type":"structure","members":{"DBSubnetGroup":{"shape":"S1w"}}},"http":{}},"CreateEventSubscription":{"input":{"type":"structure","required":["SubscriptionName","SnsTopicArn"],"members":{"SubscriptionName":{},"SnsTopicArn":{},"SourceType":{},"EventCategories":{"shape":"S6"},"SourceIds":{"shape":"S5"},"Enabled":{"type":"boolean"},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S4"}}},"http":{}},"CreateOptionGroup":{"input":{"type":"structure","required":["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],"members":{"OptionGroupName":{},"EngineName":{},"MajorEngineVersion":{},"OptionGroupDescription":{},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"CreateOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S13"}}},"http":{}},"DeleteDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"SkipFinalSnapshot":{"type":"boolean"},"FinalDBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1f"}}},"http":{}},"DeleteDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{}}},"http":{}},"DeleteDBClusterSnapshot":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier"],"members":{"DBClusterSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sq"}}},"http":{}},"DeleteDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"SkipFinalSnapshot":{"type":"boolean"},"FinalDBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"DeleteDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{}}},"http":{}},"DeleteDBSecurityGroup":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{}}},"http":{}},"DeleteDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"Sz"}}},"http":{}},"DeleteDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName"],"members":{"DBSubnetGroupName":{}}},"http":{}},"DeleteEventSubscription":{"input":{"type":"structure","required":["SubscriptionName"],"members":{"SubscriptionName":{}}},"output":{"resultWrapper":"DeleteEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S4"}}},"http":{}},"DeleteOptionGroup":{"input":{"type":"structure","required":["OptionGroupName"],"members":{"OptionGroupName":{}}},"http":{}},"DescribeAccountAttributes":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"DescribeAccountAttributesResult","type":"structure","members":{"AccountQuotas":{"type":"list","member":{"locationName":"AccountQuota","type":"structure","members":{"AccountQuotaName":{},"Used":{"type":"long"},"Max":{"type":"long"}},"wrapper":true}}}},"http":{}},"DescribeCertificates":{"input":{"type":"structure","members":{"CertificateIdentifier":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeCertificatesResult","type":"structure","members":{"Certificates":{"type":"list","member":{"locationName":"Certificate","type":"structure","members":{"CertificateIdentifier":{},"CertificateType":{},"Thumbprint":{},"ValidFrom":{"type":"timestamp"},"ValidTill":{"type":"timestamp"}},"wrapper":true}},"Marker":{}}},"http":{}},"DescribeDBClusterParameterGroups":{"input":{"type":"structure","members":{"DBClusterParameterGroupName":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClusterParameterGroupsResult","type":"structure","members":{"Marker":{},"DBClusterParameterGroups":{"type":"list","member":{"shape":"S1m","locationName":"DBClusterParameterGroup"}}}},"http":{}},"DescribeDBClusterParameters":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{},"Source":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClusterParametersResult","type":"structure","members":{"Parameters":{"shape":"S3j"},"Marker":{}}},"http":{}},"DescribeDBClusterSnapshotAttributes":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier"],"members":{"DBClusterSnapshotIdentifier":{}}},"output":{"resultWrapper":"DescribeDBClusterSnapshotAttributesResult","type":"structure","members":{"DBClusterSnapshotAttributesResult":{"shape":"S3o"}}},"http":{}},"DescribeDBClusterSnapshots":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"DBClusterSnapshotIdentifier":{},"SnapshotType":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{},"IncludeShared":{"type":"boolean"},"IncludePublic":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBClusterSnapshotsResult","type":"structure","members":{"Marker":{},"DBClusterSnapshots":{"type":"list","member":{"shape":"Sq","locationName":"DBClusterSnapshot"}}}},"http":{}},"DescribeDBClusters":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClustersResult","type":"structure","members":{"Marker":{},"DBClusters":{"type":"list","member":{"shape":"S1f","locationName":"DBCluster"}}}},"http":{}},"DescribeDBEngineVersions":{"input":{"type":"structure","members":{"Engine":{},"EngineVersion":{},"DBParameterGroupFamily":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{},"DefaultOnly":{"type":"boolean"},"ListSupportedCharacterSets":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBEngineVersionsResult","type":"structure","members":{"Marker":{},"DBEngineVersions":{"type":"list","member":{"locationName":"DBEngineVersion","type":"structure","members":{"Engine":{},"EngineVersion":{},"DBParameterGroupFamily":{},"DBEngineDescription":{},"DBEngineVersionDescription":{},"DefaultCharacterSet":{"shape":"S42"},"SupportedCharacterSets":{"type":"list","member":{"shape":"S42","locationName":"CharacterSet"}},"ValidUpgradeTarget":{"type":"list","member":{"locationName":"UpgradeTarget","type":"structure","members":{"Engine":{},"EngineVersion":{},"Description":{},"AutoUpgrade":{"type":"boolean"},"IsMajorVersionUpgrade":{"type":"boolean"}}}}}}}}},"http":{}},"DescribeDBInstances":{"input":{"type":"structure","members":{"DBInstanceIdentifier":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBInstancesResult","type":"structure","members":{"Marker":{},"DBInstances":{"type":"list","member":{"shape":"S1s","locationName":"DBInstance"}}}},"http":{}},"DescribeDBLogFiles":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"FilenameContains":{},"FileLastWritten":{"type":"long"},"FileSize":{"type":"long"},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBLogFilesResult","type":"structure","members":{"DescribeDBLogFiles":{"type":"list","member":{"locationName":"DescribeDBLogFilesDetails","type":"structure","members":{"LogFileName":{},"LastWritten":{"type":"long"},"Size":{"type":"long"}}}},"Marker":{}}},"http":{}},"DescribeDBParameterGroups":{"input":{"type":"structure","members":{"DBParameterGroupName":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBParameterGroupsResult","type":"structure","members":{"Marker":{},"DBParameterGroups":{"type":"list","member":{"shape":"Sv","locationName":"DBParameterGroup"}}}},"http":{}},"DescribeDBParameters":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{},"Source":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBParametersResult","type":"structure","members":{"Parameters":{"shape":"S3j"},"Marker":{}}},"http":{}},"DescribeDBSecurityGroups":{"input":{"type":"structure","members":{"DBSecurityGroupName":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBSecurityGroupsResult","type":"structure","members":{"Marker":{},"DBSecurityGroups":{"type":"list","member":{"shape":"Sj","locationName":"DBSecurityGroup"}}}},"http":{}},"DescribeDBSnapshotAttributes":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DescribeDBSnapshotAttributesResult","type":"structure","members":{"DBSnapshotAttributesResult":{"shape":"S4n"}}},"http":{}},"DescribeDBSnapshots":{"input":{"type":"structure","members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{},"SnapshotType":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{},"IncludeShared":{"type":"boolean"},"IncludePublic":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBSnapshotsResult","type":"structure","members":{"Marker":{},"DBSnapshots":{"type":"list","member":{"shape":"Sz","locationName":"DBSnapshot"}}}},"http":{}},"DescribeDBSubnetGroups":{"input":{"type":"structure","members":{"DBSubnetGroupName":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBSubnetGroupsResult","type":"structure","members":{"Marker":{},"DBSubnetGroups":{"type":"list","member":{"shape":"S1w","locationName":"DBSubnetGroup"}}}},"http":{}},"DescribeEngineDefaultClusterParameters":{"input":{"type":"structure","required":["DBParameterGroupFamily"],"members":{"DBParameterGroupFamily":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEngineDefaultClusterParametersResult","type":"structure","members":{"EngineDefaults":{"shape":"S4y"}}},"http":{}},"DescribeEngineDefaultParameters":{"input":{"type":"structure","required":["DBParameterGroupFamily"],"members":{"DBParameterGroupFamily":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEngineDefaultParametersResult","type":"structure","members":{"EngineDefaults":{"shape":"S4y"}}},"http":{}},"DescribeEventCategories":{"input":{"type":"structure","members":{"SourceType":{},"Filters":{"shape":"S38"}}},"output":{"resultWrapper":"DescribeEventCategoriesResult","type":"structure","members":{"EventCategoriesMapList":{"type":"list","member":{"locationName":"EventCategoriesMap","type":"structure","members":{"SourceType":{},"EventCategories":{"shape":"S6"}},"wrapper":true}}}},"http":{}},"DescribeEventSubscriptions":{"input":{"type":"structure","members":{"SubscriptionName":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEventSubscriptionsResult","type":"structure","members":{"Marker":{},"EventSubscriptionsList":{"type":"list","member":{"shape":"S4","locationName":"EventSubscription"}}}},"http":{}},"DescribeEvents":{"input":{"type":"structure","members":{"SourceIdentifier":{},"SourceType":{},"StartTime":{"type":"timestamp"},"EndTime":{"type":"timestamp"},"Duration":{"type":"integer"},"EventCategories":{"shape":"S6"},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEventsResult","type":"structure","members":{"Marker":{},"Events":{"type":"list","member":{"locationName":"Event","type":"structure","members":{"SourceIdentifier":{},"SourceType":{},"Message":{},"EventCategories":{"shape":"S6"},"Date":{"type":"timestamp"}}}}}},"http":{}},"DescribeOptionGroupOptions":{"input":{"type":"structure","required":["EngineName"],"members":{"EngineName":{},"MajorEngineVersion":{},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeOptionGroupOptionsResult","type":"structure","members":{"OptionGroupOptions":{"type":"list","member":{"locationName":"OptionGroupOption","type":"structure","members":{"Name":{},"Description":{},"EngineName":{},"MajorEngineVersion":{},"MinimumRequiredMinorEngineVersion":{},"PortRequired":{"type":"boolean"},"DefaultPort":{"type":"integer"},"OptionsDependedOn":{"type":"list","member":{"locationName":"OptionName"}},"Persistent":{"type":"boolean"},"Permanent":{"type":"boolean"},"OptionGroupOptionSettings":{"type":"list","member":{"locationName":"OptionGroupOptionSetting","type":"structure","members":{"SettingName":{},"SettingDescription":{},"DefaultValue":{},"ApplyType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"}}}}}}},"Marker":{}}},"http":{}},"DescribeOptionGroups":{"input":{"type":"structure","members":{"OptionGroupName":{},"Filters":{"shape":"S38"},"Marker":{},"MaxRecords":{"type":"integer"},"EngineName":{},"MajorEngineVersion":{}}},"output":{"resultWrapper":"DescribeOptionGroupsResult","type":"structure","members":{"OptionGroupsList":{"type":"list","member":{"shape":"S13","locationName":"OptionGroup"}},"Marker":{}}},"http":{}},"DescribeOrderableDBInstanceOptions":{"input":{"type":"structure","required":["Engine"],"members":{"Engine":{},"EngineVersion":{},"DBInstanceClass":{},"LicenseModel":{},"Vpc":{"type":"boolean"},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeOrderableDBInstanceOptionsResult","type":"structure","members":{"OrderableDBInstanceOptions":{"type":"list","member":{"locationName":"OrderableDBInstanceOption","type":"structure","members":{"Engine":{},"EngineVersion":{},"DBInstanceClass":{},"LicenseModel":{},"AvailabilityZones":{"type":"list","member":{"shape":"S1z","locationName":"AvailabilityZone"}},"MultiAZCapable":{"type":"boolean"},"ReadReplicaCapable":{"type":"boolean"},"Vpc":{"type":"boolean"},"SupportsStorageEncryption":{"type":"boolean"},"StorageType":{},"SupportsIops":{"type":"boolean"},"SupportsEnhancedMonitoring":{"type":"boolean"}},"wrapper":true}},"Marker":{}}},"http":{}},"DescribePendingMaintenanceActions":{"input":{"type":"structure","members":{"ResourceIdentifier":{},"Filters":{"shape":"S38"},"Marker":{},"MaxRecords":{"type":"integer"}}},"output":{"resultWrapper":"DescribePendingMaintenanceActionsResult","type":"structure","members":{"PendingMaintenanceActions":{"type":"list","member":{"shape":"Sd","locationName":"ResourcePendingMaintenanceActions"}},"Marker":{}}},"http":{}},"DescribeReservedDBInstances":{"input":{"type":"structure","members":{"ReservedDBInstanceId":{},"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeReservedDBInstancesResult","type":"structure","members":{"Marker":{},"ReservedDBInstances":{"type":"list","member":{"shape":"S5y","locationName":"ReservedDBInstance"}}}},"http":{}},"DescribeReservedDBInstancesOfferings":{"input":{"type":"structure","members":{"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"Filters":{"shape":"S38"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeReservedDBInstancesOfferingsResult","type":"structure","members":{"Marker":{},"ReservedDBInstancesOfferings":{"type":"list","member":{"locationName":"ReservedDBInstancesOffering","type":"structure","members":{"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{"type":"integer"},"FixedPrice":{"type":"double"},"UsagePrice":{"type":"double"},"CurrencyCode":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"RecurringCharges":{"shape":"S60"}},"wrapper":true}}}},"http":{}},"DownloadDBLogFilePortion":{"input":{"type":"structure","required":["DBInstanceIdentifier","LogFileName"],"members":{"DBInstanceIdentifier":{},"LogFileName":{},"Marker":{},"NumberOfLines":{"type":"integer"}}},"output":{"resultWrapper":"DownloadDBLogFilePortionResult","type":"structure","members":{"LogFileData":{},"Marker":{},"AdditionalDataPending":{"type":"boolean"}}},"http":{}},"FailoverDBCluster":{"input":{"type":"structure","members":{"DBClusterIdentifier":{}}},"output":{"resultWrapper":"FailoverDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1f"}}},"http":{}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceName"],"members":{"ResourceName":{},"Filters":{"shape":"S38"}}},"output":{"resultWrapper":"ListTagsForResourceResult","type":"structure","members":{"TagList":{"shape":"S9"}}},"http":{}},"ModifyDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"NewDBClusterIdentifier":{},"ApplyImmediately":{"type":"boolean"},"BackupRetentionPeriod":{"type":"integer"},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1d"},"Port":{"type":"integer"},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{}}},"output":{"resultWrapper":"ModifyDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1f"}}},"http":{}},"ModifyDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName","Parameters"],"members":{"DBClusterParameterGroupName":{},"Parameters":{"shape":"S3j"}}},"output":{"shape":"S6f","resultWrapper":"ModifyDBClusterParameterGroupResult"},"http":{}},"ModifyDBClusterSnapshotAttribute":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier","AttributeName"],"members":{"DBClusterSnapshotIdentifier":{},"AttributeName":{},"ValuesToAdd":{"shape":"S3r"},"ValuesToRemove":{"shape":"S3r"}}},"output":{"resultWrapper":"ModifyDBClusterSnapshotAttributeResult","type":"structure","members":{"DBClusterSnapshotAttributesResult":{"shape":"S3o"}}},"http":{}},"ModifyDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"DBSecurityGroups":{"shape":"S1q"},"VpcSecurityGroupIds":{"shape":"S1d"},"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":{},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"CACertificateIdentifier":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"DBPortNumber":{"type":"integer"},"PubliclyAccessible":{"type":"boolean"},"MonitoringRoleArn":{},"DomainIAMRoleName":{},"PromotionTier":{"type":"integer"}}},"output":{"resultWrapper":"ModifyDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"ModifyDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName","Parameters"],"members":{"DBParameterGroupName":{},"Parameters":{"shape":"S3j"}}},"output":{"shape":"S6l","resultWrapper":"ModifyDBParameterGroupResult"},"http":{}},"ModifyDBSnapshotAttribute":{"input":{"type":"structure","required":["DBSnapshotIdentifier","AttributeName"],"members":{"DBSnapshotIdentifier":{},"AttributeName":{},"ValuesToAdd":{"shape":"S3r"},"ValuesToRemove":{"shape":"S3r"}}},"output":{"resultWrapper":"ModifyDBSnapshotAttributeResult","type":"structure","members":{"DBSnapshotAttributesResult":{"shape":"S4n"}}},"http":{}},"ModifyDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName","SubnetIds"],"members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"SubnetIds":{"shape":"S2h"}}},"output":{"resultWrapper":"ModifyDBSubnetGroupResult","type":"structure","members":{"DBSubnetGroup":{"shape":"S1w"}}},"http":{}},"ModifyEventSubscription":{"input":{"type":"structure","required":["SubscriptionName"],"members":{"SubscriptionName":{},"SnsTopicArn":{},"SourceType":{},"EventCategories":{"shape":"S6"},"Enabled":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S4"}}},"http":{}},"ModifyOptionGroup":{"input":{"type":"structure","required":["OptionGroupName"],"members":{"OptionGroupName":{},"OptionsToInclude":{"type":"list","member":{"locationName":"OptionConfiguration","type":"structure","required":["OptionName"],"members":{"OptionName":{},"Port":{"type":"integer"},"DBSecurityGroupMemberships":{"shape":"S1q"},"VpcSecurityGroupMemberships":{"shape":"S1d"},"OptionSettings":{"type":"list","member":{"shape":"S17","locationName":"OptionSetting"}}}}},"OptionsToRemove":{"type":"list","member":{}},"ApplyImmediately":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S13"}}},"http":{}},"PromoteReadReplica":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{}}},"output":{"resultWrapper":"PromoteReadReplicaResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"PurchaseReservedDBInstancesOffering":{"input":{"type":"structure","required":["ReservedDBInstancesOfferingId"],"members":{"ReservedDBInstancesOfferingId":{},"ReservedDBInstanceId":{},"DBInstanceCount":{"type":"integer"},"Tags":{"shape":"S9"}}},"output":{"resultWrapper":"PurchaseReservedDBInstancesOfferingResult","type":"structure","members":{"ReservedDBInstance":{"shape":"S5y"}}},"http":{}},"RebootDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"ForceFailover":{"type":"boolean"}}},"output":{"resultWrapper":"RebootDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"RemoveSourceIdentifierFromSubscription":{"input":{"type":"structure","required":["SubscriptionName","SourceIdentifier"],"members":{"SubscriptionName":{},"SourceIdentifier":{}}},"output":{"resultWrapper":"RemoveSourceIdentifierFromSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S4"}}},"http":{}},"RemoveTagsFromResource":{"input":{"type":"structure","required":["ResourceName","TagKeys"],"members":{"ResourceName":{},"TagKeys":{"type":"list","member":{}}}},"http":{}},"ResetDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{},"ResetAllParameters":{"type":"boolean"},"Parameters":{"shape":"S3j"}}},"output":{"shape":"S6f","resultWrapper":"ResetDBClusterParameterGroupResult"},"http":{}},"ResetDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{},"ResetAllParameters":{"type":"boolean"},"Parameters":{"shape":"S3j"}}},"output":{"shape":"S6l","resultWrapper":"ResetDBParameterGroupResult"},"http":{}},"RestoreDBClusterFromSnapshot":{"input":{"type":"structure","required":["DBClusterIdentifier","SnapshotIdentifier","Engine"],"members":{"AvailabilityZones":{"shape":"Sr"},"DBClusterIdentifier":{},"SnapshotIdentifier":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"DBSubnetGroupName":{},"DatabaseName":{},"OptionGroupName":{},"VpcSecurityGroupIds":{"shape":"S1d"},"Tags":{"shape":"S9"},"KmsKeyId":{}}},"output":{"resultWrapper":"RestoreDBClusterFromSnapshotResult","type":"structure","members":{"DBCluster":{"shape":"S1f"}}},"http":{}},"RestoreDBClusterToPointInTime":{"input":{"type":"structure","required":["DBClusterIdentifier","SourceDBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"SourceDBClusterIdentifier":{},"RestoreToTime":{"type":"timestamp"},"UseLatestRestorableTime":{"type":"boolean"},"Port":{"type":"integer"},"DBSubnetGroupName":{},"OptionGroupName":{},"VpcSecurityGroupIds":{"shape":"S1d"},"Tags":{"shape":"S9"},"KmsKeyId":{}}},"output":{"resultWrapper":"RestoreDBClusterToPointInTimeResult","type":"structure","members":{"DBCluster":{"shape":"S1f"}}},"http":{}},"RestoreDBInstanceFromDBSnapshot":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBSnapshotIdentifier"],"members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{},"DBInstanceClass":{},"Port":{"type":"integer"},"AvailabilityZone":{},"DBSubnetGroupName":{},"MultiAZ":{"type":"boolean"},"PubliclyAccessible":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"DBName":{},"Engine":{},"Iops":{"type":"integer"},"OptionGroupName":{},"Tags":{"shape":"S9"},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"DomainIAMRoleName":{}}},"output":{"resultWrapper":"RestoreDBInstanceFromDBSnapshotResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"RestoreDBInstanceToPointInTime":{"input":{"type":"structure","required":["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],"members":{"SourceDBInstanceIdentifier":{},"TargetDBInstanceIdentifier":{},"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":{},"CopyTagsToSnapshot":{"type":"boolean"},"Tags":{"shape":"S9"},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"Domain":{},"DomainIAMRoleName":{}}},"output":{"resultWrapper":"RestoreDBInstanceToPointInTimeResult","type":"structure","members":{"DBInstance":{"shape":"S1s"}}},"http":{}},"RevokeDBSecurityGroupIngress":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{},"CIDRIP":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}},"output":{"resultWrapper":"RevokeDBSecurityGroupIngressResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sj"}}},"http":{}}},"shapes":{"S4":{"type":"structure","members":{"CustomerAwsId":{},"CustSubscriptionId":{},"SnsTopicArn":{},"Status":{},"SubscriptionCreationTime":{},"SourceType":{},"SourceIdsList":{"shape":"S5"},"EventCategoriesList":{"shape":"S6"},"Enabled":{"type":"boolean"}},"wrapper":true},"S5":{"type":"list","member":{"locationName":"SourceId"}},"S6":{"type":"list","member":{"locationName":"EventCategory"}},"S9":{"type":"list","member":{"locationName":"Tag","type":"structure","members":{"Key":{},"Value":{}}}},"Sd":{"type":"structure","members":{"ResourceIdentifier":{},"PendingMaintenanceActionDetails":{"type":"list","member":{"locationName":"PendingMaintenanceAction","type":"structure","members":{"Action":{},"AutoAppliedAfterDate":{"type":"timestamp"},"ForcedApplyDate":{"type":"timestamp"},"OptInStatus":{},"CurrentApplyDate":{"type":"timestamp"},"Description":{}}}}},"wrapper":true},"Sj":{"type":"structure","members":{"OwnerId":{},"DBSecurityGroupName":{},"DBSecurityGroupDescription":{},"VpcId":{},"EC2SecurityGroups":{"type":"list","member":{"locationName":"EC2SecurityGroup","type":"structure","members":{"Status":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}}},"IPRanges":{"type":"list","member":{"locationName":"IPRange","type":"structure","members":{"Status":{},"CIDRIP":{}}}}},"wrapper":true},"Sq":{"type":"structure","members":{"AvailabilityZones":{"shape":"Sr"},"DBClusterSnapshotIdentifier":{},"DBClusterIdentifier":{},"SnapshotCreateTime":{"type":"timestamp"},"Engine":{},"AllocatedStorage":{"type":"integer"},"Status":{},"Port":{"type":"integer"},"VpcId":{},"ClusterCreateTime":{"type":"timestamp"},"MasterUsername":{},"EngineVersion":{},"LicenseModel":{},"SnapshotType":{},"PercentProgress":{"type":"integer"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{}},"wrapper":true},"Sr":{"type":"list","member":{"locationName":"AvailabilityZone"}},"Sv":{"type":"structure","members":{"DBParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{}},"wrapper":true},"Sz":{"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":{},"SourceDBSnapshotIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"Encrypted":{"type":"boolean"},"KmsKeyId":{}},"wrapper":true},"S13":{"type":"structure","members":{"OptionGroupName":{},"OptionGroupDescription":{},"EngineName":{},"MajorEngineVersion":{},"Options":{"type":"list","member":{"locationName":"Option","type":"structure","members":{"OptionName":{},"OptionDescription":{},"Persistent":{"type":"boolean"},"Permanent":{"type":"boolean"},"Port":{"type":"integer"},"OptionSettings":{"type":"list","member":{"shape":"S17","locationName":"OptionSetting"}},"DBSecurityGroupMemberships":{"shape":"S18"},"VpcSecurityGroupMemberships":{"shape":"S1a"}}}},"AllowsVpcAndNonVpcInstanceMemberships":{"type":"boolean"},"VpcId":{}},"wrapper":true},"S17":{"type":"structure","members":{"Name":{},"Value":{},"DefaultValue":{},"Description":{},"ApplyType":{},"DataType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"},"IsCollection":{"type":"boolean"}}},"S18":{"type":"list","member":{"locationName":"DBSecurityGroup","type":"structure","members":{"DBSecurityGroupName":{},"Status":{}}}},"S1a":{"type":"list","member":{"locationName":"VpcSecurityGroupMembership","type":"structure","members":{"VpcSecurityGroupId":{},"Status":{}}}},"S1d":{"type":"list","member":{"locationName":"VpcSecurityGroupId"}},"S1f":{"type":"structure","members":{"AllocatedStorage":{"type":"integer"},"AvailabilityZones":{"shape":"Sr"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroup":{},"DBSubnetGroup":{},"Status":{},"PercentProgress":{},"EarliestRestorableTime":{"type":"timestamp"},"Endpoint":{},"Engine":{},"EngineVersion":{},"LatestRestorableTime":{"type":"timestamp"},"Port":{"type":"integer"},"MasterUsername":{},"DBClusterOptionGroupMemberships":{"type":"list","member":{"locationName":"DBClusterOptionGroup","type":"structure","members":{"DBClusterOptionGroupName":{},"Status":{}}}},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"DBClusterMembers":{"type":"list","member":{"locationName":"DBClusterMember","type":"structure","members":{"DBInstanceIdentifier":{},"IsClusterWriter":{"type":"boolean"},"DBClusterParameterGroupStatus":{},"PromotionTier":{"type":"integer"}},"wrapper":true}},"VpcSecurityGroups":{"shape":"S1a"},"HostedZoneId":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DbClusterResourceId":{}},"wrapper":true},"S1m":{"type":"structure","members":{"DBClusterParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{}},"wrapper":true},"S1q":{"type":"list","member":{"locationName":"DBSecurityGroupName"}},"S1s":{"type":"structure","members":{"DBInstanceIdentifier":{},"DBInstanceClass":{},"Engine":{},"DBInstanceStatus":{},"MasterUsername":{},"DBName":{},"Endpoint":{"type":"structure","members":{"Address":{},"Port":{"type":"integer"},"HostedZoneId":{}}},"AllocatedStorage":{"type":"integer"},"InstanceCreateTime":{"type":"timestamp"},"PreferredBackupWindow":{},"BackupRetentionPeriod":{"type":"integer"},"DBSecurityGroups":{"shape":"S18"},"VpcSecurityGroups":{"shape":"S1a"},"DBParameterGroups":{"type":"list","member":{"locationName":"DBParameterGroup","type":"structure","members":{"DBParameterGroupName":{},"ParameterApplyStatus":{}}}},"AvailabilityZone":{},"DBSubnetGroup":{"shape":"S1w"},"PreferredMaintenanceWindow":{},"PendingModifiedValues":{"type":"structure","members":{"DBInstanceClass":{},"AllocatedStorage":{"type":"integer"},"MasterUserPassword":{},"Port":{"type":"integer"},"BackupRetentionPeriod":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"Iops":{"type":"integer"},"DBInstanceIdentifier":{},"StorageType":{},"CACertificateIdentifier":{}}},"LatestRestorableTime":{"type":"timestamp"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"ReadReplicaSourceDBInstanceIdentifier":{},"ReadReplicaDBInstanceIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaDBInstanceIdentifier"}},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupMemberships":{"type":"list","member":{"locationName":"OptionGroupMembership","type":"structure","members":{"OptionGroupName":{},"Status":{}}}},"CharacterSetName":{},"SecondaryAvailabilityZone":{},"PubliclyAccessible":{"type":"boolean"},"StatusInfos":{"type":"list","member":{"locationName":"DBInstanceStatusInfo","type":"structure","members":{"StatusType":{},"Normal":{"type":"boolean"},"Status":{},"Message":{}}}},"StorageType":{},"TdeCredentialArn":{},"DbInstancePort":{"type":"integer"},"DBClusterIdentifier":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DbiResourceId":{},"CACertificateIdentifier":{},"DomainMemberships":{"type":"list","member":{"locationName":"DomainMembership","type":"structure","members":{"Domain":{},"Status":{},"FQDN":{},"IAMRoleName":{}}}},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"EnhancedMonitoringResourceArn":{},"MonitoringRoleArn":{},"PromotionTier":{"type":"integer"}},"wrapper":true},"S1w":{"type":"structure","members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"VpcId":{},"SubnetGroupStatus":{},"Subnets":{"type":"list","member":{"locationName":"Subnet","type":"structure","members":{"SubnetIdentifier":{},"SubnetAvailabilityZone":{"shape":"S1z"},"SubnetStatus":{}}}}},"wrapper":true},"S1z":{"type":"structure","members":{"Name":{}},"wrapper":true},"S2h":{"type":"list","member":{"locationName":"SubnetIdentifier"}},"S38":{"type":"list","member":{"locationName":"Filter","type":"structure","required":["Name","Values"],"members":{"Name":{},"Values":{"type":"list","member":{"locationName":"Value"}}}}},"S3j":{"type":"list","member":{"locationName":"Parameter","type":"structure","members":{"ParameterName":{},"ParameterValue":{},"Description":{},"Source":{},"ApplyType":{},"DataType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"},"MinimumEngineVersion":{},"ApplyMethod":{}}}},"S3o":{"type":"structure","members":{"DBClusterSnapshotIdentifier":{},"DBClusterSnapshotAttributes":{"type":"list","member":{"locationName":"DBClusterSnapshotAttribute","type":"structure","members":{"AttributeName":{},"AttributeValues":{"shape":"S3r"}}}}},"wrapper":true},"S3r":{"type":"list","member":{"locationName":"AttributeValue"}},"S42":{"type":"structure","members":{"CharacterSetName":{},"CharacterSetDescription":{}}},"S4n":{"type":"structure","members":{"DBSnapshotIdentifier":{},"DBSnapshotAttributes":{"type":"list","member":{"locationName":"DBSnapshotAttribute","type":"structure","members":{"AttributeName":{},"AttributeValues":{"shape":"S3r"}},"wrapper":true}}},"wrapper":true},"S4y":{"type":"structure","members":{"DBParameterGroupFamily":{},"Marker":{},"Parameters":{"shape":"S3j"}},"wrapper":true},"S5y":{"type":"structure","members":{"ReservedDBInstanceId":{},"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"StartTime":{"type":"timestamp"},"Duration":{"type":"integer"},"FixedPrice":{"type":"double"},"UsagePrice":{"type":"double"},"CurrencyCode":{},"DBInstanceCount":{"type":"integer"},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"State":{},"RecurringCharges":{"shape":"S60"}},"wrapper":true},"S60":{"type":"list","member":{"locationName":"RecurringCharge","type":"structure","members":{"RecurringChargeAmount":{"type":"double"},"RecurringChargeFrequency":{}},"wrapper":true}},"S6f":{"type":"structure","members":{"DBClusterParameterGroupName":{}}},"S6l":{"type":"structure","members":{"DBParameterGroupName":{}}}},"paginators":{"DescribeDBEngineVersions":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DBEngineVersions"},"DescribeDBInstances":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DBInstances"},"DescribeDBLogFiles":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DescribeDBLogFiles"},"DescribeDBParameterGroups":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DBParameterGroups"},"DescribeDBParameters":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"Parameters"},"DescribeDBSecurityGroups":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DBSecurityGroups"},"DescribeDBSnapshots":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DBSnapshots"},"DescribeDBSubnetGroups":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"DBSubnetGroups"},"DescribeEngineDefaultParameters":{"input_token":"Marker","output_token":"EngineDefaults.Marker","limit_key":"MaxRecords","result_key":"EngineDefaults.Parameters"},"DescribeEventSubscriptions":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"EventSubscriptionsList"},"DescribeEvents":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"Events"},"DescribeOptionGroupOptions":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"OptionGroupOptions"},"DescribeOptionGroups":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"OptionGroupsList"},"DescribeOrderableDBInstanceOptions":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"OrderableDBInstanceOptions"},"DescribeReservedDBInstances":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"ReservedDBInstances"},"DescribeReservedDBInstancesOfferings":{"input_token":"Marker","output_token":"Marker","limit_key":"MaxRecords","result_key":"ReservedDBInstancesOfferings"},"DownloadDBLogFilePortion":{"input_token":"Marker","output_token":"Marker","limit_key":"NumberOfLines","more_results":"AdditionalDataPending","result_key":"LogFileData"},"ListTagsForResource":{"result_key":"TagList"}},"waiters":{"DBInstanceAvailable":{"delay":30,"operation":"DescribeDBInstances","maxAttempts":60,"acceptors":[{"expected":"available","matcher":"pathAll","state":"success","argument":"DBInstances[].DBInstanceStatus"},{"expected":"deleted","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"deleting","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"failed","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"incompatible-restore","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"incompatible-parameters","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"incompatible-parameters","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"incompatible-restore","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"}]},"DBInstanceDeleted":{"delay":30,"operation":"DescribeDBInstances","maxAttempts":60,"acceptors":[{"expected":"deleted","matcher":"pathAll","state":"success","argument":"DBInstances[].DBInstanceStatus"},{"expected":"DBInstanceNotFound","matcher":"error","state":"success"},{"expected":"creating","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"modifying","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"rebooting","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"},{"expected":"resetting-master-credentials","matcher":"pathAny","state":"failure","argument":"DBInstances[].DBInstanceStatus"}]}}}; +AWS.apiLoader.services['route53'] = {}; +AWS.Route53 = AWS.Service.defineService('route53', [ '2013-04-01' ]); +require('./services/route53'); + +AWS.apiLoader.services['route53']['2013-04-01'] = {"version":"2.0","metadata":{"apiVersion":"2013-04-01","endpointPrefix":"route53","globalEndpoint":"route53.amazonaws.com","protocol":"rest-xml","serviceAbbreviation":"Route 53","serviceFullName":"Amazon Route 53","signatureVersion":"v4"},"operations":{"AssociateVPCWithHostedZone":{"http":{"requestUri":"/2013-04-01/hostedzone/{Id}/associatevpc"},"input":{"locationName":"AssociateVPCWithHostedZoneRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["HostedZoneId","VPC"],"members":{"HostedZoneId":{"location":"uri","locationName":"Id"},"VPC":{"shape":"S3"},"Comment":{}}},"output":{"type":"structure","required":["ChangeInfo"],"members":{"ChangeInfo":{"shape":"S8"}}}},"ChangeResourceRecordSets":{"http":{"requestUri":"/2013-04-01/hostedzone/{Id}/rrset/"},"input":{"locationName":"ChangeResourceRecordSetsRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["HostedZoneId","ChangeBatch"],"members":{"HostedZoneId":{"location":"uri","locationName":"Id"},"ChangeBatch":{"type":"structure","required":["Changes"],"members":{"Comment":{},"Changes":{"shape":"Se"}}}}},"output":{"type":"structure","required":["ChangeInfo"],"members":{"ChangeInfo":{"shape":"S8"}}}},"ChangeTagsForResource":{"http":{"requestUri":"/2013-04-01/tags/{ResourceType}/{ResourceId}"},"input":{"locationName":"ChangeTagsForResourceRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["ResourceType","ResourceId"],"members":{"ResourceType":{"location":"uri","locationName":"ResourceType"},"ResourceId":{"location":"uri","locationName":"ResourceId"},"AddTags":{"shape":"S14"},"RemoveTagKeys":{"type":"list","member":{"locationName":"Key"}}}},"output":{"type":"structure","members":{}}},"CreateHealthCheck":{"http":{"requestUri":"/2013-04-01/healthcheck","responseCode":201},"input":{"locationName":"CreateHealthCheckRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["CallerReference","HealthCheckConfig"],"members":{"CallerReference":{},"HealthCheckConfig":{"shape":"S1c"}}},"output":{"type":"structure","required":["HealthCheck","Location"],"members":{"HealthCheck":{"shape":"S1x"},"Location":{"location":"header","locationName":"Location"}}}},"CreateHostedZone":{"http":{"requestUri":"/2013-04-01/hostedzone","responseCode":201},"input":{"locationName":"CreateHostedZoneRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["Name","CallerReference"],"members":{"Name":{},"VPC":{"shape":"S3"},"CallerReference":{},"HostedZoneConfig":{"shape":"S2d"},"DelegationSetId":{}}},"output":{"type":"structure","required":["HostedZone","ChangeInfo","DelegationSet","Location"],"members":{"HostedZone":{"shape":"S2g"},"ChangeInfo":{"shape":"S8"},"DelegationSet":{"shape":"S2i"},"VPC":{"shape":"S3"},"Location":{"location":"header","locationName":"Location"}}}},"CreateReusableDelegationSet":{"http":{"requestUri":"/2013-04-01/delegationset","responseCode":201},"input":{"locationName":"CreateReusableDelegationSetRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["CallerReference"],"members":{"CallerReference":{},"HostedZoneId":{}}},"output":{"type":"structure","required":["DelegationSet","Location"],"members":{"DelegationSet":{"shape":"S2i"},"Location":{"location":"header","locationName":"Location"}}}},"CreateTrafficPolicy":{"http":{"requestUri":"/2013-04-01/trafficpolicy","responseCode":201},"input":{"locationName":"CreateTrafficPolicyRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["Name","Document"],"members":{"Name":{},"Document":{},"Comment":{}}},"output":{"type":"structure","required":["TrafficPolicy","Location"],"members":{"TrafficPolicy":{"shape":"S2r"},"Location":{"location":"header","locationName":"Location"}}}},"CreateTrafficPolicyInstance":{"http":{"requestUri":"/2013-04-01/trafficpolicyinstance","responseCode":201},"input":{"locationName":"CreateTrafficPolicyInstanceRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["HostedZoneId","Name","TTL","TrafficPolicyId","TrafficPolicyVersion"],"members":{"HostedZoneId":{},"Name":{},"TTL":{"type":"long"},"TrafficPolicyId":{},"TrafficPolicyVersion":{"type":"integer"}}},"output":{"type":"structure","required":["TrafficPolicyInstance","Location"],"members":{"TrafficPolicyInstance":{"shape":"S2w"},"Location":{"location":"header","locationName":"Location"}}}},"CreateTrafficPolicyVersion":{"http":{"requestUri":"/2013-04-01/trafficpolicy/{Id}","responseCode":201},"input":{"locationName":"CreateTrafficPolicyVersionRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["Id","Document"],"members":{"Id":{"location":"uri","locationName":"Id"},"Document":{},"Comment":{}}},"output":{"type":"structure","required":["TrafficPolicy","Location"],"members":{"TrafficPolicy":{"shape":"S2r"},"Location":{"location":"header","locationName":"Location"}}}},"DeleteHealthCheck":{"http":{"method":"DELETE","requestUri":"/2013-04-01/healthcheck/{HealthCheckId}"},"input":{"type":"structure","required":["HealthCheckId"],"members":{"HealthCheckId":{"location":"uri","locationName":"HealthCheckId"}}},"output":{"type":"structure","members":{}}},"DeleteHostedZone":{"http":{"method":"DELETE","requestUri":"/2013-04-01/hostedzone/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","required":["ChangeInfo"],"members":{"ChangeInfo":{"shape":"S8"}}}},"DeleteReusableDelegationSet":{"http":{"method":"DELETE","requestUri":"/2013-04-01/delegationset/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{}}},"DeleteTrafficPolicy":{"http":{"method":"DELETE","requestUri":"/2013-04-01/trafficpolicy/{Id}/{Version}"},"input":{"type":"structure","required":["Id","Version"],"members":{"Id":{"location":"uri","locationName":"Id"},"Version":{"location":"uri","locationName":"Version","type":"integer"}}},"output":{"type":"structure","members":{}}},"DeleteTrafficPolicyInstance":{"http":{"method":"DELETE","requestUri":"/2013-04-01/trafficpolicyinstance/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","members":{}}},"DisassociateVPCFromHostedZone":{"http":{"requestUri":"/2013-04-01/hostedzone/{Id}/disassociatevpc"},"input":{"locationName":"DisassociateVPCFromHostedZoneRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["HostedZoneId","VPC"],"members":{"HostedZoneId":{"location":"uri","locationName":"Id"},"VPC":{"shape":"S3"},"Comment":{}}},"output":{"type":"structure","required":["ChangeInfo"],"members":{"ChangeInfo":{"shape":"S8"}}}},"GetChange":{"http":{"method":"GET","requestUri":"/2013-04-01/change/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","required":["ChangeInfo"],"members":{"ChangeInfo":{"shape":"S8"}}}},"GetChangeDetails":{"http":{"method":"GET","requestUri":"/2013-04-01/changedetails/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}},"deprecated":true},"output":{"type":"structure","required":["ChangeBatchRecord"],"members":{"ChangeBatchRecord":{"shape":"S3i"}},"deprecated":true},"deprecated":true},"GetCheckerIpRanges":{"http":{"method":"GET","requestUri":"/2013-04-01/checkeripranges"},"input":{"type":"structure","members":{}},"output":{"type":"structure","required":["CheckerIpRanges"],"members":{"CheckerIpRanges":{"type":"list","member":{}}}}},"GetGeoLocation":{"http":{"method":"GET","requestUri":"/2013-04-01/geolocation"},"input":{"type":"structure","members":{"ContinentCode":{"location":"querystring","locationName":"continentcode"},"CountryCode":{"location":"querystring","locationName":"countrycode"},"SubdivisionCode":{"location":"querystring","locationName":"subdivisioncode"}}},"output":{"type":"structure","required":["GeoLocationDetails"],"members":{"GeoLocationDetails":{"shape":"S3q"}}}},"GetHealthCheck":{"http":{"method":"GET","requestUri":"/2013-04-01/healthcheck/{HealthCheckId}"},"input":{"type":"structure","required":["HealthCheckId"],"members":{"HealthCheckId":{"location":"uri","locationName":"HealthCheckId"}}},"output":{"type":"structure","required":["HealthCheck"],"members":{"HealthCheck":{"shape":"S1x"}}}},"GetHealthCheckCount":{"http":{"method":"GET","requestUri":"/2013-04-01/healthcheckcount"},"input":{"type":"structure","members":{}},"output":{"type":"structure","required":["HealthCheckCount"],"members":{"HealthCheckCount":{"type":"long"}}}},"GetHealthCheckLastFailureReason":{"http":{"method":"GET","requestUri":"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason"},"input":{"type":"structure","required":["HealthCheckId"],"members":{"HealthCheckId":{"location":"uri","locationName":"HealthCheckId"}}},"output":{"type":"structure","required":["HealthCheckObservations"],"members":{"HealthCheckObservations":{"shape":"S41"}}}},"GetHealthCheckStatus":{"http":{"method":"GET","requestUri":"/2013-04-01/healthcheck/{HealthCheckId}/status"},"input":{"type":"structure","required":["HealthCheckId"],"members":{"HealthCheckId":{"location":"uri","locationName":"HealthCheckId"}}},"output":{"type":"structure","required":["HealthCheckObservations"],"members":{"HealthCheckObservations":{"shape":"S41"}}}},"GetHostedZone":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzone/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","required":["HostedZone"],"members":{"HostedZone":{"shape":"S2g"},"DelegationSet":{"shape":"S2i"},"VPCs":{"type":"list","member":{"shape":"S3","locationName":"VPC"}}}}},"GetHostedZoneCount":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzonecount"},"input":{"type":"structure","members":{}},"output":{"type":"structure","required":["HostedZoneCount"],"members":{"HostedZoneCount":{"type":"long"}}}},"GetReusableDelegationSet":{"http":{"method":"GET","requestUri":"/2013-04-01/delegationset/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","required":["DelegationSet"],"members":{"DelegationSet":{"shape":"S2i"}}}},"GetTrafficPolicy":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicy/{Id}/{Version}"},"input":{"type":"structure","required":["Id","Version"],"members":{"Id":{"location":"uri","locationName":"Id"},"Version":{"location":"uri","locationName":"Version","type":"integer"}}},"output":{"type":"structure","required":["TrafficPolicy"],"members":{"TrafficPolicy":{"shape":"S2r"}}}},"GetTrafficPolicyInstance":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicyinstance/{Id}"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"}}},"output":{"type":"structure","required":["TrafficPolicyInstance"],"members":{"TrafficPolicyInstance":{"shape":"S2w"}}}},"GetTrafficPolicyInstanceCount":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicyinstancecount"},"input":{"type":"structure","members":{}},"output":{"type":"structure","required":["TrafficPolicyInstanceCount"],"members":{"TrafficPolicyInstanceCount":{"type":"integer"}}}},"ListChangeBatchesByHostedZone":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzone/{Id}/changes"},"input":{"type":"structure","required":["HostedZoneId","StartDate","EndDate"],"members":{"HostedZoneId":{"location":"uri","locationName":"Id"},"StartDate":{"shape":"S4n","location":"querystring","locationName":"startDate"},"EndDate":{"shape":"S4n","location":"querystring","locationName":"endDate"},"MaxItems":{"location":"querystring","locationName":"maxItems"},"Marker":{"location":"querystring","locationName":"marker"}},"deprecated":true},"output":{"type":"structure","required":["MaxItems","Marker","ChangeBatchRecords"],"members":{"MaxItems":{},"Marker":{},"IsTruncated":{"type":"boolean"},"ChangeBatchRecords":{"shape":"S4s"},"NextMarker":{}},"deprecated":true},"deprecated":true},"ListChangeBatchesByRRSet":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzone/{Id}/rrsChanges"},"input":{"type":"structure","required":["HostedZoneId","Name","Type","StartDate","EndDate"],"members":{"HostedZoneId":{"location":"uri","locationName":"Id"},"Name":{"location":"querystring","locationName":"rrSet_name"},"Type":{"location":"querystring","locationName":"type"},"SetIdentifier":{"location":"querystring","locationName":"identifier"},"StartDate":{"shape":"S4n","location":"querystring","locationName":"startDate"},"EndDate":{"shape":"S4n","location":"querystring","locationName":"endDate"},"MaxItems":{"location":"querystring","locationName":"maxItems"},"Marker":{"location":"querystring","locationName":"marker"}},"deprecated":true},"output":{"type":"structure","required":["MaxItems","Marker","ChangeBatchRecords"],"members":{"MaxItems":{},"Marker":{},"IsTruncated":{"type":"boolean"},"ChangeBatchRecords":{"shape":"S4s"},"NextMarker":{}},"deprecated":true},"deprecated":true},"ListGeoLocations":{"http":{"method":"GET","requestUri":"/2013-04-01/geolocations"},"input":{"type":"structure","members":{"StartContinentCode":{"location":"querystring","locationName":"startcontinentcode"},"StartCountryCode":{"location":"querystring","locationName":"startcountrycode"},"StartSubdivisionCode":{"location":"querystring","locationName":"startsubdivisioncode"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["GeoLocationDetailsList","IsTruncated","MaxItems"],"members":{"GeoLocationDetailsList":{"type":"list","member":{"shape":"S3q","locationName":"GeoLocationDetails"}},"IsTruncated":{"type":"boolean"},"NextContinentCode":{},"NextCountryCode":{},"NextSubdivisionCode":{},"MaxItems":{}}}},"ListHealthChecks":{"http":{"method":"GET","requestUri":"/2013-04-01/healthcheck"},"input":{"type":"structure","members":{"Marker":{"location":"querystring","locationName":"marker"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["HealthChecks","Marker","IsTruncated","MaxItems"],"members":{"HealthChecks":{"type":"list","member":{"shape":"S1x","locationName":"HealthCheck"}},"Marker":{},"IsTruncated":{"type":"boolean"},"NextMarker":{},"MaxItems":{}}}},"ListHostedZones":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzone"},"input":{"type":"structure","members":{"Marker":{"location":"querystring","locationName":"marker"},"MaxItems":{"location":"querystring","locationName":"maxitems"},"DelegationSetId":{"location":"querystring","locationName":"delegationsetid"}}},"output":{"type":"structure","required":["HostedZones","Marker","IsTruncated","MaxItems"],"members":{"HostedZones":{"shape":"S53"},"Marker":{},"IsTruncated":{"type":"boolean"},"NextMarker":{},"MaxItems":{}}}},"ListHostedZonesByName":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzonesbyname"},"input":{"type":"structure","members":{"DNSName":{"location":"querystring","locationName":"dnsname"},"HostedZoneId":{"location":"querystring","locationName":"hostedzoneid"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["HostedZones","IsTruncated","MaxItems"],"members":{"HostedZones":{"shape":"S53"},"DNSName":{},"HostedZoneId":{},"IsTruncated":{"type":"boolean"},"NextDNSName":{},"NextHostedZoneId":{},"MaxItems":{}}}},"ListResourceRecordSets":{"http":{"method":"GET","requestUri":"/2013-04-01/hostedzone/{Id}/rrset"},"input":{"type":"structure","required":["HostedZoneId"],"members":{"HostedZoneId":{"location":"uri","locationName":"Id"},"StartRecordName":{"location":"querystring","locationName":"name"},"StartRecordType":{"location":"querystring","locationName":"type"},"StartRecordIdentifier":{"location":"querystring","locationName":"identifier"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["ResourceRecordSets","IsTruncated","MaxItems"],"members":{"ResourceRecordSets":{"type":"list","member":{"shape":"Sh","locationName":"ResourceRecordSet"}},"IsTruncated":{"type":"boolean"},"NextRecordName":{},"NextRecordType":{},"NextRecordIdentifier":{},"MaxItems":{}}}},"ListReusableDelegationSets":{"http":{"method":"GET","requestUri":"/2013-04-01/delegationset"},"input":{"type":"structure","members":{"Marker":{"location":"querystring","locationName":"marker"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["DelegationSets","Marker","IsTruncated","MaxItems"],"members":{"DelegationSets":{"type":"list","member":{"shape":"S2i","locationName":"DelegationSet"}},"Marker":{},"IsTruncated":{"type":"boolean"},"NextMarker":{},"MaxItems":{}}}},"ListTagsForResource":{"http":{"method":"GET","requestUri":"/2013-04-01/tags/{ResourceType}/{ResourceId}"},"input":{"type":"structure","required":["ResourceType","ResourceId"],"members":{"ResourceType":{"location":"uri","locationName":"ResourceType"},"ResourceId":{"location":"uri","locationName":"ResourceId"}}},"output":{"type":"structure","required":["ResourceTagSet"],"members":{"ResourceTagSet":{"shape":"S5e"}}}},"ListTagsForResources":{"http":{"requestUri":"/2013-04-01/tags/{ResourceType}"},"input":{"locationName":"ListTagsForResourcesRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["ResourceType","ResourceIds"],"members":{"ResourceType":{"location":"uri","locationName":"ResourceType"},"ResourceIds":{"type":"list","member":{"locationName":"ResourceId"}}}},"output":{"type":"structure","required":["ResourceTagSets"],"members":{"ResourceTagSets":{"type":"list","member":{"shape":"S5e","locationName":"ResourceTagSet"}}}}},"ListTrafficPolicies":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicies"},"input":{"type":"structure","members":{"TrafficPolicyIdMarker":{"location":"querystring","locationName":"trafficpolicyid"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["TrafficPolicySummaries","IsTruncated","TrafficPolicyIdMarker","MaxItems"],"members":{"TrafficPolicySummaries":{"type":"list","member":{"locationName":"TrafficPolicySummary","type":"structure","required":["Id","Name","Type","LatestVersion","TrafficPolicyCount"],"members":{"Id":{},"Name":{},"Type":{},"LatestVersion":{"type":"integer"},"TrafficPolicyCount":{"type":"integer"}}}},"IsTruncated":{"type":"boolean"},"TrafficPolicyIdMarker":{},"MaxItems":{}}}},"ListTrafficPolicyInstances":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicyinstances"},"input":{"type":"structure","members":{"HostedZoneIdMarker":{"location":"querystring","locationName":"hostedzoneid"},"TrafficPolicyInstanceNameMarker":{"location":"querystring","locationName":"trafficpolicyinstancename"},"TrafficPolicyInstanceTypeMarker":{"location":"querystring","locationName":"trafficpolicyinstancetype"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["TrafficPolicyInstances","IsTruncated","MaxItems"],"members":{"TrafficPolicyInstances":{"shape":"S5p"},"HostedZoneIdMarker":{},"TrafficPolicyInstanceNameMarker":{},"TrafficPolicyInstanceTypeMarker":{},"IsTruncated":{"type":"boolean"},"MaxItems":{}}}},"ListTrafficPolicyInstancesByHostedZone":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicyinstances/hostedzone"},"input":{"type":"structure","required":["HostedZoneId"],"members":{"HostedZoneId":{"location":"querystring","locationName":"id"},"TrafficPolicyInstanceNameMarker":{"location":"querystring","locationName":"trafficpolicyinstancename"},"TrafficPolicyInstanceTypeMarker":{"location":"querystring","locationName":"trafficpolicyinstancetype"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["TrafficPolicyInstances","IsTruncated","MaxItems"],"members":{"TrafficPolicyInstances":{"shape":"S5p"},"TrafficPolicyInstanceNameMarker":{},"TrafficPolicyInstanceTypeMarker":{},"IsTruncated":{"type":"boolean"},"MaxItems":{}}}},"ListTrafficPolicyInstancesByPolicy":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicyinstances/trafficpolicy"},"input":{"type":"structure","required":["TrafficPolicyId","TrafficPolicyVersion"],"members":{"TrafficPolicyId":{"location":"querystring","locationName":"id"},"TrafficPolicyVersion":{"location":"querystring","locationName":"version","type":"integer"},"HostedZoneIdMarker":{"location":"querystring","locationName":"hostedzoneid"},"TrafficPolicyInstanceNameMarker":{"location":"querystring","locationName":"trafficpolicyinstancename"},"TrafficPolicyInstanceTypeMarker":{"location":"querystring","locationName":"trafficpolicyinstancetype"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["TrafficPolicyInstances","IsTruncated","MaxItems"],"members":{"TrafficPolicyInstances":{"shape":"S5p"},"HostedZoneIdMarker":{},"TrafficPolicyInstanceNameMarker":{},"TrafficPolicyInstanceTypeMarker":{},"IsTruncated":{"type":"boolean"},"MaxItems":{}}}},"ListTrafficPolicyVersions":{"http":{"method":"GET","requestUri":"/2013-04-01/trafficpolicies/{Id}/versions"},"input":{"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"},"TrafficPolicyVersionMarker":{"location":"querystring","locationName":"trafficpolicyversion"},"MaxItems":{"location":"querystring","locationName":"maxitems"}}},"output":{"type":"structure","required":["TrafficPolicies","IsTruncated","TrafficPolicyVersionMarker","MaxItems"],"members":{"TrafficPolicies":{"type":"list","member":{"shape":"S2r","locationName":"TrafficPolicy"}},"IsTruncated":{"type":"boolean"},"TrafficPolicyVersionMarker":{},"MaxItems":{}}}},"UpdateHealthCheck":{"http":{"requestUri":"/2013-04-01/healthcheck/{HealthCheckId}"},"input":{"locationName":"UpdateHealthCheckRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["HealthCheckId"],"members":{"HealthCheckId":{"location":"uri","locationName":"HealthCheckId"},"HealthCheckVersion":{"type":"long"},"IPAddress":{},"Port":{"type":"integer"},"ResourcePath":{},"FullyQualifiedDomainName":{},"SearchString":{},"FailureThreshold":{"type":"integer"},"Inverted":{"type":"boolean"},"HealthThreshold":{"type":"integer"},"ChildHealthChecks":{"shape":"S1o"},"EnableSNI":{"type":"boolean"},"Regions":{"shape":"S1q"},"AlarmIdentifier":{"shape":"S1s"},"InsufficientDataHealthStatus":{}}},"output":{"type":"structure","required":["HealthCheck"],"members":{"HealthCheck":{"shape":"S1x"}}}},"UpdateHostedZoneComment":{"http":{"requestUri":"/2013-04-01/hostedzone/{Id}"},"input":{"locationName":"UpdateHostedZoneCommentRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["Id"],"members":{"Id":{"location":"uri","locationName":"Id"},"Comment":{}}},"output":{"type":"structure","required":["HostedZone"],"members":{"HostedZone":{"shape":"S2g"}}}},"UpdateTrafficPolicyComment":{"http":{"requestUri":"/2013-04-01/trafficpolicy/{Id}/{Version}"},"input":{"locationName":"UpdateTrafficPolicyCommentRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["Id","Version","Comment"],"members":{"Id":{"location":"uri","locationName":"Id"},"Version":{"location":"uri","locationName":"Version","type":"integer"},"Comment":{}}},"output":{"type":"structure","required":["TrafficPolicy"],"members":{"TrafficPolicy":{"shape":"S2r"}}}},"UpdateTrafficPolicyInstance":{"http":{"requestUri":"/2013-04-01/trafficpolicyinstance/{Id}"},"input":{"locationName":"UpdateTrafficPolicyInstanceRequest","xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"},"type":"structure","required":["Id","TTL","TrafficPolicyId","TrafficPolicyVersion"],"members":{"Id":{"location":"uri","locationName":"Id"},"TTL":{"type":"long"},"TrafficPolicyId":{},"TrafficPolicyVersion":{"type":"integer"}}},"output":{"type":"structure","required":["TrafficPolicyInstance"],"members":{"TrafficPolicyInstance":{"shape":"S2w"}}}}},"shapes":{"S3":{"type":"structure","members":{"VPCRegion":{},"VPCId":{}}},"S8":{"type":"structure","required":["Id","Status","SubmittedAt"],"members":{"Id":{},"Status":{},"SubmittedAt":{"type":"timestamp"},"Comment":{}}},"Se":{"type":"list","member":{"locationName":"Change","type":"structure","required":["Action","ResourceRecordSet"],"members":{"Action":{},"ResourceRecordSet":{"shape":"Sh"}}}},"Sh":{"type":"structure","required":["Name","Type"],"members":{"Name":{},"Type":{},"SetIdentifier":{},"Weight":{"type":"long"},"Region":{},"GeoLocation":{"type":"structure","members":{"ContinentCode":{},"CountryCode":{},"SubdivisionCode":{}}},"Failover":{},"TTL":{"type":"long"},"ResourceRecords":{"type":"list","member":{"locationName":"ResourceRecord","type":"structure","required":["Value"],"members":{"Value":{}}}},"AliasTarget":{"type":"structure","required":["HostedZoneId","DNSName","EvaluateTargetHealth"],"members":{"HostedZoneId":{},"DNSName":{},"EvaluateTargetHealth":{"type":"boolean"}}},"HealthCheckId":{},"TrafficPolicyInstanceId":{}}},"S14":{"type":"list","member":{"locationName":"Tag","type":"structure","members":{"Key":{},"Value":{}}}},"S1c":{"type":"structure","required":["Type"],"members":{"IPAddress":{},"Port":{"type":"integer"},"Type":{},"ResourcePath":{},"FullyQualifiedDomainName":{},"SearchString":{},"RequestInterval":{"type":"integer"},"FailureThreshold":{"type":"integer"},"MeasureLatency":{"type":"boolean"},"Inverted":{"type":"boolean"},"HealthThreshold":{"type":"integer"},"ChildHealthChecks":{"shape":"S1o"},"EnableSNI":{"type":"boolean"},"Regions":{"shape":"S1q"},"AlarmIdentifier":{"shape":"S1s"},"InsufficientDataHealthStatus":{}}},"S1o":{"type":"list","member":{"locationName":"ChildHealthCheck"}},"S1q":{"type":"list","member":{"locationName":"Region"}},"S1s":{"type":"structure","required":["Region","Name"],"members":{"Region":{},"Name":{}}},"S1x":{"type":"structure","required":["Id","CallerReference","HealthCheckConfig","HealthCheckVersion"],"members":{"Id":{},"CallerReference":{},"HealthCheckConfig":{"shape":"S1c"},"HealthCheckVersion":{"type":"long"},"CloudWatchAlarmConfiguration":{"type":"structure","required":["EvaluationPeriods","Threshold","ComparisonOperator","Period","MetricName","Namespace","Statistic"],"members":{"EvaluationPeriods":{"type":"integer"},"Threshold":{"type":"double"},"ComparisonOperator":{},"Period":{"type":"integer"},"MetricName":{},"Namespace":{},"Statistic":{},"Dimensions":{"type":"list","member":{"locationName":"Dimension","type":"structure","required":["Name","Value"],"members":{"Name":{},"Value":{}}}}}}}},"S2d":{"type":"structure","members":{"Comment":{},"PrivateZone":{"type":"boolean"}}},"S2g":{"type":"structure","required":["Id","Name","CallerReference"],"members":{"Id":{},"Name":{},"CallerReference":{},"Config":{"shape":"S2d"},"ResourceRecordSetCount":{"type":"long"}}},"S2i":{"type":"structure","required":["NameServers"],"members":{"Id":{},"CallerReference":{},"NameServers":{"type":"list","member":{"locationName":"NameServer"}}}},"S2r":{"type":"structure","required":["Id","Version","Name","Type","Document"],"members":{"Id":{},"Version":{"type":"integer"},"Name":{},"Type":{},"Document":{},"Comment":{}}},"S2w":{"type":"structure","required":["Id","HostedZoneId","Name","TTL","State","Message","TrafficPolicyId","TrafficPolicyVersion","TrafficPolicyType"],"members":{"Id":{},"HostedZoneId":{},"Name":{},"TTL":{"type":"long"},"State":{},"Message":{},"TrafficPolicyId":{},"TrafficPolicyVersion":{"type":"integer"},"TrafficPolicyType":{}}},"S3i":{"type":"structure","required":["Id","Status"],"members":{"Id":{},"SubmittedAt":{"type":"timestamp"},"Status":{},"Comment":{},"Submitter":{},"Changes":{"shape":"Se"}},"deprecated":true},"S3q":{"type":"structure","members":{"ContinentCode":{},"ContinentName":{},"CountryCode":{},"CountryName":{},"SubdivisionCode":{},"SubdivisionName":{}}},"S41":{"type":"list","member":{"locationName":"HealthCheckObservation","type":"structure","members":{"Region":{},"IPAddress":{},"StatusReport":{"type":"structure","members":{"Status":{},"CheckedTime":{"type":"timestamp"}}}}}},"S4n":{"type":"string","deprecated":true},"S4s":{"type":"list","member":{"shape":"S3i","locationName":"ChangeBatchRecord"},"deprecated":true},"S53":{"type":"list","member":{"shape":"S2g","locationName":"HostedZone"}},"S5e":{"type":"structure","members":{"ResourceType":{},"ResourceId":{},"Tags":{"shape":"S14"}}},"S5p":{"type":"list","member":{"shape":"S2w","locationName":"TrafficPolicyInstance"}}},"paginators":{"ListHealthChecks":{"input_token":"Marker","output_token":"NextMarker","more_results":"IsTruncated","limit_key":"MaxItems","result_key":"HealthChecks"},"ListHostedZones":{"input_token":"Marker","output_token":"NextMarker","more_results":"IsTruncated","limit_key":"MaxItems","result_key":"HostedZones"},"ListResourceRecordSets":{"more_results":"IsTruncated","limit_key":"MaxItems","result_key":"ResourceRecordSets","input_token":["StartRecordName","StartRecordType","StartRecordIdentifier"],"output_token":["NextRecordName","NextRecordType","NextRecordIdentifier"]}},"waiters":{"ResourceRecordSetsChanged":{"delay":30,"maxAttempts":60,"operation":"GetChange","acceptors":[{"matcher":"path","expected":"INSYNC","argument":"ChangeInfo.Status","state":"success"}]}}}; +AWS.apiLoader.services['route53domains'] = {}; +AWS.Route53Domains = AWS.Service.defineService('route53domains', [ '2014-05-15' ]); + +AWS.apiLoader.services['route53domains']['2014-05-15'] = {"version":"2.0","metadata":{"apiVersion":"2014-05-15","endpointPrefix":"route53domains","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Route 53 Domains","signatureVersion":"v4","targetPrefix":"Route53Domains_v20140515"},"operations":{"CheckDomainAvailability":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"IdnLangCode":{}}},"output":{"type":"structure","required":["Availability"],"members":{"Availability":{}}},"http":{}},"DeleteTagsForDomain":{"input":{"type":"structure","required":["DomainName","TagsToDelete"],"members":{"DomainName":{},"TagsToDelete":{"type":"list","member":{}}}},"output":{"type":"structure","members":{}},"http":{}},"DisableDomainAutoRenew":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","members":{}},"http":{}},"DisableDomainTransferLock":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"EnableDomainAutoRenew":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","members":{}},"http":{}},"EnableDomainTransferLock":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"GetContactReachabilityStatus":{"input":{"type":"structure","members":{"domainName":{}}},"output":{"type":"structure","members":{"domainName":{},"status":{}}},"http":{}},"GetDomainDetail":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["DomainName","Nameservers","AdminContact","RegistrantContact","TechContact"],"members":{"DomainName":{},"Nameservers":{"shape":"So"},"AutoRenew":{"type":"boolean"},"AdminContact":{"shape":"Su"},"RegistrantContact":{"shape":"Su"},"TechContact":{"shape":"Su"},"AdminPrivacy":{"type":"boolean"},"RegistrantPrivacy":{"type":"boolean"},"TechPrivacy":{"type":"boolean"},"RegistrarName":{},"WhoIsServer":{},"RegistrarUrl":{},"AbuseContactEmail":{},"AbuseContactPhone":{},"RegistryDomainId":{},"CreationDate":{"type":"timestamp"},"UpdatedDate":{"type":"timestamp"},"ExpirationDate":{"type":"timestamp"},"Reseller":{},"DnsSec":{},"StatusList":{"type":"list","member":{}}}},"http":{}},"GetOperationDetail":{"input":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"output":{"type":"structure","members":{"OperationId":{},"Status":{},"Message":{},"DomainName":{},"Type":{},"SubmittedDate":{"type":"timestamp"}}},"http":{}},"ListDomains":{"input":{"type":"structure","members":{"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"type":"structure","required":["Domains"],"members":{"Domains":{"type":"list","member":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"AutoRenew":{"type":"boolean"},"TransferLock":{"type":"boolean"},"Expiry":{"type":"timestamp"}}}},"NextPageMarker":{}}},"http":{}},"ListOperations":{"input":{"type":"structure","members":{"Marker":{},"MaxItems":{"type":"integer"}}},"output":{"type":"structure","required":["Operations"],"members":{"Operations":{"type":"list","member":{"type":"structure","required":["OperationId","Status","Type","SubmittedDate"],"members":{"OperationId":{},"Status":{},"Type":{},"SubmittedDate":{"type":"timestamp"}}}},"NextPageMarker":{}}},"http":{}},"ListTagsForDomain":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["TagList"],"members":{"TagList":{"shape":"S1y"}}},"http":{}},"RegisterDomain":{"input":{"type":"structure","required":["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],"members":{"DomainName":{},"IdnLangCode":{},"DurationInYears":{"type":"integer"},"AutoRenew":{"type":"boolean"},"AdminContact":{"shape":"Su"},"RegistrantContact":{"shape":"Su"},"TechContact":{"shape":"Su"},"PrivacyProtectAdminContact":{"type":"boolean"},"PrivacyProtectRegistrantContact":{"type":"boolean"},"PrivacyProtectTechContact":{"type":"boolean"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"ResendContactReachabilityEmail":{"input":{"type":"structure","members":{"domainName":{}}},"output":{"type":"structure","members":{"domainName":{},"emailAddress":{},"isAlreadyVerified":{"type":"boolean"}}},"http":{}},"RetrieveDomainAuthCode":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["AuthCode"],"members":{"AuthCode":{"shape":"S28"}}},"http":{}},"TransferDomain":{"input":{"type":"structure","required":["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],"members":{"DomainName":{},"IdnLangCode":{},"DurationInYears":{"type":"integer"},"Nameservers":{"shape":"So"},"AuthCode":{"shape":"S28"},"AutoRenew":{"type":"boolean"},"AdminContact":{"shape":"Su"},"RegistrantContact":{"shape":"Su"},"TechContact":{"shape":"Su"},"PrivacyProtectAdminContact":{"type":"boolean"},"PrivacyProtectRegistrantContact":{"type":"boolean"},"PrivacyProtectTechContact":{"type":"boolean"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"UpdateDomainContact":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"AdminContact":{"shape":"Su"},"RegistrantContact":{"shape":"Su"},"TechContact":{"shape":"Su"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"UpdateDomainContactPrivacy":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"AdminPrivacy":{"type":"boolean"},"RegistrantPrivacy":{"type":"boolean"},"TechPrivacy":{"type":"boolean"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"UpdateDomainNameservers":{"input":{"type":"structure","required":["DomainName","Nameservers"],"members":{"DomainName":{},"FIAuthKey":{},"Nameservers":{"shape":"So"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"UpdateTagsForDomain":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"TagsToUpdate":{"shape":"S1y"}}},"output":{"type":"structure","members":{}},"http":{}}},"shapes":{"So":{"type":"list","member":{"type":"structure","required":["Name"],"members":{"Name":{},"GlueIps":{"type":"list","member":{}}}}},"Su":{"type":"structure","members":{"FirstName":{},"LastName":{},"ContactType":{},"OrganizationName":{},"AddressLine1":{},"AddressLine2":{},"City":{},"State":{},"CountryCode":{},"ZipCode":{},"PhoneNumber":{},"Email":{},"Fax":{},"ExtraParams":{"type":"list","member":{"type":"structure","required":["Name","Value"],"members":{"Name":{},"Value":{}}}}},"sensitive":true},"S1y":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}},"S28":{"type":"string","sensitive":true}},"paginators":{"ListDomains":{"limit_key":"MaxItems","input_token":"Marker","output_token":"NextPageMarker","result_key":"Domains"},"ListOperations":{"limit_key":"MaxItems","input_token":"Marker","output_token":"NextPageMarker","result_key":"Operations"}}}; +AWS.apiLoader.services['s3'] = {}; +AWS.S3 = AWS.Service.defineService('s3', [ '2006-03-01' ]); +require('./services/s3'); + +AWS.apiLoader.services['s3']['2006-03-01'] = {"version":"2.0","metadata":{"apiVersion":"2006-03-01","checksumFormat":"md5","endpointPrefix":"s3","globalEndpoint":"s3.amazonaws.com","protocol":"rest-xml","serviceAbbreviation":"Amazon S3","serviceFullName":"Amazon Simple Storage Service","signatureVersion":"s3","timestampFormat":"rfc822"},"operations":{"AbortMultipartUpload":{"http":{"method":"DELETE","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"UploadId":{"location":"querystring","locationName":"uploadId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"CompleteMultipartUpload":{"http":{"requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"MultipartUpload":{"locationName":"CompleteMultipartUpload","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"Parts":{"locationName":"Part","type":"list","member":{"type":"structure","members":{"ETag":{},"PartNumber":{"type":"integer"}}},"flattened":true}}},"UploadId":{"location":"querystring","locationName":"uploadId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"MultipartUpload"},"output":{"type":"structure","members":{"Location":{},"Bucket":{},"Key":{},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"ETag":{},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"CopyObject":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","CopySource","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Bucket":{"location":"uri","locationName":"Bucket"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentType":{"location":"header","locationName":"Content-Type"},"CopySource":{"location":"header","locationName":"x-amz-copy-source"},"CopySourceIfMatch":{"location":"header","locationName":"x-amz-copy-source-if-match"},"CopySourceIfModifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-modified-since","type":"timestamp"},"CopySourceIfNoneMatch":{"location":"header","locationName":"x-amz-copy-source-if-none-match"},"CopySourceIfUnmodifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-unmodified-since","type":"timestamp"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"MetadataDirective":{"location":"header","locationName":"x-amz-metadata-directive"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"CopySourceSSECustomerAlgorithm":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-algorithm"},"CopySourceSSECustomerKey":{"shape":"S1b","location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key"},"CopySourceSSECustomerKeyMD5":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"CopyObjectResult":{"type":"structure","members":{"ETag":{},"LastModified":{"type":"timestamp"}}},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"CopySourceVersionId":{"location":"header","locationName":"x-amz-copy-source-version-id"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}},"payload":"CopyObjectResult"},"alias":"PutObjectCopy"},"CreateBucket":{"http":{"method":"PUT","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Bucket":{"location":"uri","locationName":"Bucket"},"CreateBucketConfiguration":{"locationName":"CreateBucketConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"LocationConstraint":{}}},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWrite":{"location":"header","locationName":"x-amz-grant-write"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"}},"payload":"CreateBucketConfiguration"},"output":{"type":"structure","members":{"Location":{"location":"header","locationName":"Location"}}},"alias":"PutBucket"},"CreateMultipartUpload":{"http":{"requestUri":"/{Bucket}/{Key+}?uploads"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Bucket":{"location":"uri","locationName":"Bucket"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"AbortDate":{"location":"header","locationName":"x-amz-abort-date","type":"timestamp"},"AbortRuleId":{"location":"header","locationName":"x-amz-abort-rule-id"},"Bucket":{"locationName":"Bucket"},"Key":{},"UploadId":{},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}},"alias":"InitiateMultipartUpload"},"DeleteBucket":{"http":{"method":"DELETE","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketCors":{"http":{"method":"DELETE","requestUri":"/{Bucket}?cors"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketLifecycle":{"http":{"method":"DELETE","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketPolicy":{"http":{"method":"DELETE","requestUri":"/{Bucket}?policy"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketReplication":{"http":{"method":"DELETE","requestUri":"/{Bucket}?replication"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketTagging":{"http":{"method":"DELETE","requestUri":"/{Bucket}?tagging"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketWebsite":{"http":{"method":"DELETE","requestUri":"/{Bucket}?website"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteObject":{"http":{"method":"DELETE","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"MFA":{"location":"header","locationName":"x-amz-mfa"},"VersionId":{"location":"querystring","locationName":"versionId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"DeleteMarker":{"location":"header","locationName":"x-amz-delete-marker","type":"boolean"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"DeleteObjects":{"http":{"requestUri":"/{Bucket}?delete"},"input":{"type":"structure","required":["Bucket","Delete"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delete":{"locationName":"Delete","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Objects"],"members":{"Objects":{"locationName":"Object","type":"list","member":{"type":"structure","required":["Key"],"members":{"Key":{},"VersionId":{}}},"flattened":true},"Quiet":{"type":"boolean"}}},"MFA":{"location":"header","locationName":"x-amz-mfa"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"Delete"},"output":{"type":"structure","members":{"Deleted":{"type":"list","member":{"type":"structure","members":{"Key":{},"VersionId":{},"DeleteMarker":{"type":"boolean"},"DeleteMarkerVersionId":{}}},"flattened":true},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"Errors":{"locationName":"Error","type":"list","member":{"type":"structure","members":{"Key":{},"VersionId":{},"Code":{},"Message":{}}},"flattened":true}}},"alias":"DeleteMultipleObjects"},"GetBucketAccelerateConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?accelerate"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Status":{}}}},"GetBucketAcl":{"http":{"method":"GET","requestUri":"/{Bucket}?acl"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Owner":{"shape":"S2k"},"Grants":{"shape":"S2n","locationName":"AccessControlList"}}}},"GetBucketCors":{"http":{"method":"GET","requestUri":"/{Bucket}?cors"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"CORSRules":{"shape":"S2w","locationName":"CORSRule"}}}},"GetBucketLifecycle":{"http":{"method":"GET","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Rules":{"shape":"S39","locationName":"Rule"}}},"deprecated":true},"GetBucketLifecycleConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Rules":{"shape":"S3p","locationName":"Rule"}}}},"GetBucketLocation":{"http":{"method":"GET","requestUri":"/{Bucket}?location"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"LocationConstraint":{}}}},"GetBucketLogging":{"http":{"method":"GET","requestUri":"/{Bucket}?logging"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"LoggingEnabled":{"shape":"S3x"}}}},"GetBucketNotification":{"http":{"method":"GET","requestUri":"/{Bucket}?notification"},"input":{"shape":"S43"},"output":{"shape":"S44"},"deprecated":true},"GetBucketNotificationConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?notification"},"input":{"shape":"S43"},"output":{"shape":"S4f"}},"GetBucketPolicy":{"http":{"method":"GET","requestUri":"/{Bucket}?policy"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Policy":{}},"payload":"Policy"}},"GetBucketReplication":{"http":{"method":"GET","requestUri":"/{Bucket}?replication"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"ReplicationConfiguration":{"shape":"S4y"}},"payload":"ReplicationConfiguration"}},"GetBucketRequestPayment":{"http":{"method":"GET","requestUri":"/{Bucket}?requestPayment"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Payer":{}}}},"GetBucketTagging":{"http":{"method":"GET","requestUri":"/{Bucket}?tagging"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","required":["TagSet"],"members":{"TagSet":{"shape":"S59"}}}},"GetBucketVersioning":{"http":{"method":"GET","requestUri":"/{Bucket}?versioning"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Status":{},"MFADelete":{"locationName":"MfaDelete"}}}},"GetBucketWebsite":{"http":{"method":"GET","requestUri":"/{Bucket}?website"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"RedirectAllRequestsTo":{"shape":"S5i"},"IndexDocument":{"shape":"S5l"},"ErrorDocument":{"shape":"S5n"},"RoutingRules":{"shape":"S5o"}}}},"GetObject":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"IfMatch":{"location":"header","locationName":"If-Match"},"IfModifiedSince":{"location":"header","locationName":"If-Modified-Since","type":"timestamp"},"IfNoneMatch":{"location":"header","locationName":"If-None-Match"},"IfUnmodifiedSince":{"location":"header","locationName":"If-Unmodified-Since","type":"timestamp"},"Key":{"location":"uri","locationName":"Key"},"Range":{"location":"header","locationName":"Range"},"ResponseCacheControl":{"location":"querystring","locationName":"response-cache-control"},"ResponseContentDisposition":{"location":"querystring","locationName":"response-content-disposition"},"ResponseContentEncoding":{"location":"querystring","locationName":"response-content-encoding"},"ResponseContentLanguage":{"location":"querystring","locationName":"response-content-language"},"ResponseContentType":{"location":"querystring","locationName":"response-content-type"},"ResponseExpires":{"location":"querystring","locationName":"response-expires","type":"timestamp"},"VersionId":{"location":"querystring","locationName":"versionId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"Body":{"streaming":true,"type":"blob"},"DeleteMarker":{"location":"header","locationName":"x-amz-delete-marker","type":"boolean"},"AcceptRanges":{"location":"header","locationName":"accept-ranges"},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"Restore":{"location":"header","locationName":"x-amz-restore"},"LastModified":{"location":"header","locationName":"Last-Modified","type":"timestamp"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ETag":{"location":"header","locationName":"ETag"},"MissingMeta":{"location":"header","locationName":"x-amz-missing-meta","type":"integer"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentRange":{"location":"header","locationName":"Content-Range"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"ReplicationStatus":{"location":"header","locationName":"x-amz-replication-status"}},"payload":"Body"}},"GetObjectAcl":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?acl"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"Owner":{"shape":"S2k"},"Grants":{"shape":"S2n","locationName":"AccessControlList"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"GetObjectTorrent":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?torrent"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"Body":{"streaming":true,"type":"blob"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}},"payload":"Body"}},"HeadBucket":{"http":{"method":"HEAD","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"HeadObject":{"http":{"method":"HEAD","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"IfMatch":{"location":"header","locationName":"If-Match"},"IfModifiedSince":{"location":"header","locationName":"If-Modified-Since","type":"timestamp"},"IfNoneMatch":{"location":"header","locationName":"If-None-Match"},"IfUnmodifiedSince":{"location":"header","locationName":"If-Unmodified-Since","type":"timestamp"},"Key":{"location":"uri","locationName":"Key"},"Range":{"location":"header","locationName":"Range"},"VersionId":{"location":"querystring","locationName":"versionId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"DeleteMarker":{"location":"header","locationName":"x-amz-delete-marker","type":"boolean"},"AcceptRanges":{"location":"header","locationName":"accept-ranges"},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"Restore":{"location":"header","locationName":"x-amz-restore"},"LastModified":{"location":"header","locationName":"Last-Modified","type":"timestamp"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ETag":{"location":"header","locationName":"ETag"},"MissingMeta":{"location":"header","locationName":"x-amz-missing-meta","type":"integer"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"ReplicationStatus":{"location":"header","locationName":"x-amz-replication-status"}}}},"ListBuckets":{"http":{"method":"GET"},"output":{"type":"structure","members":{"Buckets":{"type":"list","member":{"locationName":"Bucket","type":"structure","members":{"Name":{},"CreationDate":{"type":"timestamp"}}}},"Owner":{"shape":"S2k"}}},"alias":"GetService"},"ListMultipartUploads":{"http":{"method":"GET","requestUri":"/{Bucket}?uploads"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"KeyMarker":{"location":"querystring","locationName":"key-marker"},"MaxUploads":{"location":"querystring","locationName":"max-uploads","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"UploadIdMarker":{"location":"querystring","locationName":"upload-id-marker"}}},"output":{"type":"structure","members":{"Bucket":{},"KeyMarker":{},"UploadIdMarker":{},"NextKeyMarker":{},"Prefix":{},"Delimiter":{},"NextUploadIdMarker":{},"MaxUploads":{"type":"integer"},"IsTruncated":{"type":"boolean"},"Uploads":{"locationName":"Upload","type":"list","member":{"type":"structure","members":{"UploadId":{},"Key":{},"Initiated":{"type":"timestamp"},"StorageClass":{},"Owner":{"shape":"S2k"},"Initiator":{"shape":"S75"}}},"flattened":true},"CommonPrefixes":{"shape":"S76"},"EncodingType":{}}}},"ListObjectVersions":{"http":{"method":"GET","requestUri":"/{Bucket}?versions"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"KeyMarker":{"location":"querystring","locationName":"key-marker"},"MaxKeys":{"location":"querystring","locationName":"max-keys","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"VersionIdMarker":{"location":"querystring","locationName":"version-id-marker"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"KeyMarker":{},"VersionIdMarker":{},"NextKeyMarker":{},"NextVersionIdMarker":{},"Versions":{"locationName":"Version","type":"list","member":{"type":"structure","members":{"ETag":{},"Size":{"type":"integer"},"StorageClass":{},"Key":{},"VersionId":{},"IsLatest":{"type":"boolean"},"LastModified":{"type":"timestamp"},"Owner":{"shape":"S2k"}}},"flattened":true},"DeleteMarkers":{"locationName":"DeleteMarker","type":"list","member":{"type":"structure","members":{"Owner":{"shape":"S2k"},"Key":{},"VersionId":{},"IsLatest":{"type":"boolean"},"LastModified":{"type":"timestamp"}}},"flattened":true},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"S76"},"EncodingType":{}}},"alias":"GetBucketObjectVersions"},"ListObjects":{"http":{"method":"GET","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"Marker":{"location":"querystring","locationName":"marker"},"MaxKeys":{"location":"querystring","locationName":"max-keys","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"Marker":{},"NextMarker":{},"Contents":{"shape":"S7o"},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"S76"},"EncodingType":{}}},"alias":"GetBucket"},"ListObjectsV2":{"http":{"method":"GET","requestUri":"/{Bucket}?list-type=2"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"MaxKeys":{"location":"querystring","locationName":"max-keys","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"ContinuationToken":{"location":"querystring","locationName":"continuation-token"},"FetchOwner":{"location":"querystring","locationName":"fetch-owner","type":"boolean"},"StartAfter":{"location":"querystring","locationName":"start-after"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"Contents":{"shape":"S7o"},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"S76"},"EncodingType":{},"KeyCount":{"type":"integer"},"ContinuationToken":{},"NextContinuationToken":{},"StartAfter":{}}}},"ListParts":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"MaxParts":{"location":"querystring","locationName":"max-parts","type":"integer"},"PartNumberMarker":{"location":"querystring","locationName":"part-number-marker","type":"integer"},"UploadId":{"location":"querystring","locationName":"uploadId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"AbortDate":{"location":"header","locationName":"x-amz-abort-date","type":"timestamp"},"AbortRuleId":{"location":"header","locationName":"x-amz-abort-rule-id"},"Bucket":{},"Key":{},"UploadId":{},"PartNumberMarker":{"type":"integer"},"NextPartNumberMarker":{"type":"integer"},"MaxParts":{"type":"integer"},"IsTruncated":{"type":"boolean"},"Parts":{"locationName":"Part","type":"list","member":{"type":"structure","members":{"PartNumber":{"type":"integer"},"LastModified":{"type":"timestamp"},"ETag":{},"Size":{"type":"integer"}}},"flattened":true},"Initiator":{"shape":"S75"},"Owner":{"shape":"S2k"},"StorageClass":{},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutBucketAccelerateConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?accelerate"},"input":{"type":"structure","required":["Bucket","AccelerateConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"AccelerateConfiguration":{"locationName":"AccelerateConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"Status":{}}}},"payload":"AccelerateConfiguration"}},"PutBucketAcl":{"http":{"method":"PUT","requestUri":"/{Bucket}?acl"},"input":{"type":"structure","required":["Bucket"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"AccessControlPolicy":{"shape":"S88","locationName":"AccessControlPolicy","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWrite":{"location":"header","locationName":"x-amz-grant-write"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"}},"payload":"AccessControlPolicy"}},"PutBucketCors":{"http":{"method":"PUT","requestUri":"/{Bucket}?cors"},"input":{"type":"structure","required":["Bucket","CORSConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"CORSConfiguration":{"locationName":"CORSConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["CORSRules"],"members":{"CORSRules":{"shape":"S2w","locationName":"CORSRule"}}},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"CORSConfiguration"}},"PutBucketLifecycle":{"http":{"method":"PUT","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"LifecycleConfiguration":{"locationName":"LifecycleConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Rules"],"members":{"Rules":{"shape":"S39","locationName":"Rule"}}}},"payload":"LifecycleConfiguration"},"deprecated":true},"PutBucketLifecycleConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"LifecycleConfiguration":{"locationName":"LifecycleConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Rules"],"members":{"Rules":{"shape":"S3p","locationName":"Rule"}}}},"payload":"LifecycleConfiguration"}},"PutBucketLogging":{"http":{"method":"PUT","requestUri":"/{Bucket}?logging"},"input":{"type":"structure","required":["Bucket","BucketLoggingStatus"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"BucketLoggingStatus":{"locationName":"BucketLoggingStatus","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"LoggingEnabled":{"shape":"S3x"}}},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"BucketLoggingStatus"}},"PutBucketNotification":{"http":{"method":"PUT","requestUri":"/{Bucket}?notification"},"input":{"type":"structure","required":["Bucket","NotificationConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"NotificationConfiguration":{"shape":"S44","locationName":"NotificationConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"NotificationConfiguration"},"deprecated":true},"PutBucketNotificationConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?notification"},"input":{"type":"structure","required":["Bucket","NotificationConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"NotificationConfiguration":{"shape":"S4f","locationName":"NotificationConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"NotificationConfiguration"}},"PutBucketPolicy":{"http":{"method":"PUT","requestUri":"/{Bucket}?policy"},"input":{"type":"structure","required":["Bucket","Policy"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"Policy":{}},"payload":"Policy"}},"PutBucketReplication":{"http":{"method":"PUT","requestUri":"/{Bucket}?replication"},"input":{"type":"structure","required":["Bucket","ReplicationConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"ReplicationConfiguration":{"shape":"S4y","locationName":"ReplicationConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"ReplicationConfiguration"}},"PutBucketRequestPayment":{"http":{"method":"PUT","requestUri":"/{Bucket}?requestPayment"},"input":{"type":"structure","required":["Bucket","RequestPaymentConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"RequestPaymentConfiguration":{"locationName":"RequestPaymentConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Payer"],"members":{"Payer":{}}}},"payload":"RequestPaymentConfiguration"}},"PutBucketTagging":{"http":{"method":"PUT","requestUri":"/{Bucket}?tagging"},"input":{"type":"structure","required":["Bucket","Tagging"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"Tagging":{"locationName":"Tagging","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["TagSet"],"members":{"TagSet":{"shape":"S59"}}}},"payload":"Tagging"}},"PutBucketVersioning":{"http":{"method":"PUT","requestUri":"/{Bucket}?versioning"},"input":{"type":"structure","required":["Bucket","VersioningConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"MFA":{"location":"header","locationName":"x-amz-mfa"},"VersioningConfiguration":{"locationName":"VersioningConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"MFADelete":{"locationName":"MfaDelete"},"Status":{}}}},"payload":"VersioningConfiguration"}},"PutBucketWebsite":{"http":{"method":"PUT","requestUri":"/{Bucket}?website"},"input":{"type":"structure","required":["Bucket","WebsiteConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"WebsiteConfiguration":{"locationName":"WebsiteConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"ErrorDocument":{"shape":"S5n"},"IndexDocument":{"shape":"S5l"},"RedirectAllRequestsTo":{"shape":"S5i"},"RoutingRules":{"shape":"S5o"}}}},"payload":"WebsiteConfiguration"}},"PutObject":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Body":{"streaming":true,"type":"blob"},"Bucket":{"location":"uri","locationName":"Bucket"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"Body"},"output":{"type":"structure","members":{"Expiration":{"location":"header","locationName":"x-amz-expiration"},"ETag":{"location":"header","locationName":"ETag"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutObjectAcl":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}?acl"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"AccessControlPolicy":{"shape":"S88","locationName":"AccessControlPolicy","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWrite":{"location":"header","locationName":"x-amz-grant-write"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"VersionId":{"location":"querystring","locationName":"versionId"}},"payload":"AccessControlPolicy"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"RestoreObject":{"http":{"requestUri":"/{Bucket}/{Key+}?restore"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"RestoreRequest":{"locationName":"RestoreRequest","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Days"],"members":{"Days":{"type":"integer"}}},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"RestoreRequest"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}},"alias":"PostObjectRestore"},"UploadPart":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","PartNumber","UploadId"],"members":{"Body":{"streaming":true,"type":"blob"},"Bucket":{"location":"uri","locationName":"Bucket"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"Key":{"location":"uri","locationName":"Key"},"PartNumber":{"location":"querystring","locationName":"partNumber","type":"integer"},"UploadId":{"location":"querystring","locationName":"uploadId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"Body"},"output":{"type":"structure","members":{"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"ETag":{"location":"header","locationName":"ETag"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"UploadPartCopy":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","CopySource","Key","PartNumber","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"CopySource":{"location":"header","locationName":"x-amz-copy-source"},"CopySourceIfMatch":{"location":"header","locationName":"x-amz-copy-source-if-match"},"CopySourceIfModifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-modified-since","type":"timestamp"},"CopySourceIfNoneMatch":{"location":"header","locationName":"x-amz-copy-source-if-none-match"},"CopySourceIfUnmodifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-unmodified-since","type":"timestamp"},"CopySourceRange":{"location":"header","locationName":"x-amz-copy-source-range"},"Key":{"location":"uri","locationName":"Key"},"PartNumber":{"location":"querystring","locationName":"partNumber","type":"integer"},"UploadId":{"location":"querystring","locationName":"uploadId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S18","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"CopySourceSSECustomerAlgorithm":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-algorithm"},"CopySourceSSECustomerKey":{"shape":"S1b","location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key"},"CopySourceSSECustomerKeyMD5":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"CopySourceVersionId":{"location":"header","locationName":"x-amz-copy-source-version-id"},"CopyPartResult":{"type":"structure","members":{"ETag":{},"LastModified":{"type":"timestamp"}}},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}},"payload":"CopyPartResult"}}},"shapes":{"Sj":{"type":"string","sensitive":true},"S11":{"type":"map","key":{},"value":{}},"S18":{"type":"blob","sensitive":true},"S1b":{"type":"blob","sensitive":true},"S2k":{"type":"structure","members":{"DisplayName":{},"ID":{}}},"S2n":{"type":"list","member":{"locationName":"Grant","type":"structure","members":{"Grantee":{"shape":"S2p"},"Permission":{}}}},"S2p":{"type":"structure","required":["Type"],"members":{"DisplayName":{},"EmailAddress":{},"ID":{},"Type":{"locationName":"xsi:type","xmlAttribute":true},"URI":{}},"xmlNamespace":{"prefix":"xsi","uri":"http://www.w3.org/2001/XMLSchema-instance"}},"S2w":{"type":"list","member":{"type":"structure","required":["AllowedMethods","AllowedOrigins"],"members":{"AllowedHeaders":{"locationName":"AllowedHeader","type":"list","member":{},"flattened":true},"AllowedMethods":{"locationName":"AllowedMethod","type":"list","member":{},"flattened":true},"AllowedOrigins":{"locationName":"AllowedOrigin","type":"list","member":{},"flattened":true},"ExposeHeaders":{"locationName":"ExposeHeader","type":"list","member":{},"flattened":true},"MaxAgeSeconds":{"type":"integer"}}},"flattened":true},"S39":{"type":"list","member":{"type":"structure","required":["Prefix","Status"],"members":{"Expiration":{"shape":"S3b"},"ID":{},"Prefix":{},"Status":{},"Transition":{"shape":"S3h"},"NoncurrentVersionTransition":{"shape":"S3j"},"NoncurrentVersionExpiration":{"shape":"S3k"},"AbortIncompleteMultipartUpload":{"shape":"S3l"}}},"flattened":true},"S3b":{"type":"structure","members":{"Date":{"shape":"S3c"},"Days":{"type":"integer"},"ExpiredObjectDeleteMarker":{"type":"boolean"}}},"S3c":{"type":"timestamp","timestampFormat":"iso8601"},"S3h":{"type":"structure","members":{"Date":{"shape":"S3c"},"Days":{"type":"integer"},"StorageClass":{}}},"S3j":{"type":"structure","members":{"NoncurrentDays":{"type":"integer"},"StorageClass":{}}},"S3k":{"type":"structure","members":{"NoncurrentDays":{"type":"integer"}}},"S3l":{"type":"structure","members":{"DaysAfterInitiation":{"type":"integer"}}},"S3p":{"type":"list","member":{"type":"structure","required":["Prefix","Status"],"members":{"Expiration":{"shape":"S3b"},"ID":{},"Prefix":{},"Status":{},"Transitions":{"locationName":"Transition","type":"list","member":{"shape":"S3h"},"flattened":true},"NoncurrentVersionTransitions":{"locationName":"NoncurrentVersionTransition","type":"list","member":{"shape":"S3j"},"flattened":true},"NoncurrentVersionExpiration":{"shape":"S3k"},"AbortIncompleteMultipartUpload":{"shape":"S3l"}}},"flattened":true},"S3x":{"type":"structure","members":{"TargetBucket":{},"TargetGrants":{"type":"list","member":{"locationName":"Grant","type":"structure","members":{"Grantee":{"shape":"S2p"},"Permission":{}}}},"TargetPrefix":{}}},"S43":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"S44":{"type":"structure","members":{"TopicConfiguration":{"type":"structure","members":{"Id":{},"Events":{"shape":"S47","locationName":"Event"},"Event":{"deprecated":true},"Topic":{}}},"QueueConfiguration":{"type":"structure","members":{"Id":{},"Event":{"deprecated":true},"Events":{"shape":"S47","locationName":"Event"},"Queue":{}}},"CloudFunctionConfiguration":{"type":"structure","members":{"Id":{},"Event":{"deprecated":true},"Events":{"shape":"S47","locationName":"Event"},"CloudFunction":{},"InvocationRole":{}}}}},"S47":{"type":"list","member":{},"flattened":true},"S4f":{"type":"structure","members":{"TopicConfigurations":{"locationName":"TopicConfiguration","type":"list","member":{"type":"structure","required":["TopicArn","Events"],"members":{"Id":{},"TopicArn":{"locationName":"Topic"},"Events":{"shape":"S47","locationName":"Event"},"Filter":{"shape":"S4i"}}},"flattened":true},"QueueConfigurations":{"locationName":"QueueConfiguration","type":"list","member":{"type":"structure","required":["QueueArn","Events"],"members":{"Id":{},"QueueArn":{"locationName":"Queue"},"Events":{"shape":"S47","locationName":"Event"},"Filter":{"shape":"S4i"}}},"flattened":true},"LambdaFunctionConfigurations":{"locationName":"CloudFunctionConfiguration","type":"list","member":{"type":"structure","required":["LambdaFunctionArn","Events"],"members":{"Id":{},"LambdaFunctionArn":{"locationName":"CloudFunction"},"Events":{"shape":"S47","locationName":"Event"},"Filter":{"shape":"S4i"}}},"flattened":true}}},"S4i":{"type":"structure","members":{"Key":{"locationName":"S3Key","type":"structure","members":{"FilterRules":{"locationName":"FilterRule","type":"list","member":{"type":"structure","members":{"Name":{},"Value":{}}},"flattened":true}}}}},"S4y":{"type":"structure","required":["Role","Rules"],"members":{"Role":{},"Rules":{"locationName":"Rule","type":"list","member":{"type":"structure","required":["Prefix","Status","Destination"],"members":{"ID":{},"Prefix":{},"Status":{},"Destination":{"type":"structure","required":["Bucket"],"members":{"Bucket":{},"StorageClass":{}}}}},"flattened":true}}},"S59":{"type":"list","member":{"locationName":"Tag","type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"S5i":{"type":"structure","required":["HostName"],"members":{"HostName":{},"Protocol":{}}},"S5l":{"type":"structure","required":["Suffix"],"members":{"Suffix":{}}},"S5n":{"type":"structure","required":["Key"],"members":{"Key":{}}},"S5o":{"type":"list","member":{"locationName":"RoutingRule","type":"structure","required":["Redirect"],"members":{"Condition":{"type":"structure","members":{"HttpErrorCodeReturnedEquals":{},"KeyPrefixEquals":{}}},"Redirect":{"type":"structure","members":{"HostName":{},"HttpRedirectCode":{},"Protocol":{},"ReplaceKeyPrefixWith":{},"ReplaceKeyWith":{}}}}}},"S75":{"type":"structure","members":{"ID":{},"DisplayName":{}}},"S76":{"type":"list","member":{"type":"structure","members":{"Prefix":{}}},"flattened":true},"S7o":{"type":"list","member":{"type":"structure","members":{"Key":{},"LastModified":{"type":"timestamp"},"ETag":{},"Size":{"type":"integer"},"StorageClass":{},"Owner":{"shape":"S2k"}}},"flattened":true},"S88":{"type":"structure","members":{"Grants":{"shape":"S2n","locationName":"AccessControlList"},"Owner":{"shape":"S2k"}}}},"paginators":{"ListBuckets":{"result_key":"Buckets"},"ListMultipartUploads":{"limit_key":"MaxUploads","more_results":"IsTruncated","output_token":["NextKeyMarker","NextUploadIdMarker"],"input_token":["KeyMarker","UploadIdMarker"],"result_key":["Uploads","CommonPrefixes"]},"ListObjectVersions":{"more_results":"IsTruncated","limit_key":"MaxKeys","output_token":["NextKeyMarker","NextVersionIdMarker"],"input_token":["KeyMarker","VersionIdMarker"],"result_key":["Versions","DeleteMarkers","CommonPrefixes"]},"ListObjects":{"more_results":"IsTruncated","limit_key":"MaxKeys","output_token":"NextMarker || Contents[-1].Key","input_token":"Marker","result_key":["Contents","CommonPrefixes"]},"ListObjectsV2":{"limit_key":"MaxKeys","output_token":"NextContinuationToken","input_token":"ContinuationToken","result_key":["Contents","CommonPrefixes"]},"ListParts":{"more_results":"IsTruncated","limit_key":"MaxParts","output_token":"NextPartNumberMarker","input_token":"PartNumberMarker","result_key":"Parts"}},"waiters":{"BucketExists":{"delay":5,"operation":"HeadBucket","maxAttempts":20,"acceptors":[{"expected":200,"matcher":"status","state":"success"},{"expected":301,"matcher":"status","state":"success"},{"expected":403,"matcher":"status","state":"success"},{"expected":404,"matcher":"status","state":"retry"}]},"BucketNotExists":{"delay":5,"operation":"HeadBucket","maxAttempts":20,"acceptors":[{"expected":404,"matcher":"status","state":"success"}]},"ObjectExists":{"delay":5,"operation":"HeadObject","maxAttempts":20,"acceptors":[{"expected":200,"matcher":"status","state":"success"},{"expected":404,"matcher":"status","state":"retry"}]},"ObjectNotExists":{"delay":5,"operation":"HeadObject","maxAttempts":20,"acceptors":[{"expected":404,"matcher":"status","state":"success"}]}}}; +AWS.apiLoader.services['ses'] = {}; +AWS.SES = AWS.Service.defineService('ses', [ '2010-12-01' ]); + +AWS.apiLoader.services['ses']['2010-12-01'] = {"version":"2.0","metadata":{"apiVersion":"2010-12-01","endpointPrefix":"email","protocol":"query","serviceAbbreviation":"Amazon SES","serviceFullName":"Amazon Simple Email Service","signatureVersion":"v4","signingName":"ses","xmlNamespace":"http://ses.amazonaws.com/doc/2010-12-01/"},"operations":{"CloneReceiptRuleSet":{"input":{"type":"structure","required":["RuleSetName","OriginalRuleSetName"],"members":{"RuleSetName":{},"OriginalRuleSetName":{}}},"output":{"resultWrapper":"CloneReceiptRuleSetResult","type":"structure","members":{}},"http":{}},"CreateReceiptFilter":{"input":{"type":"structure","required":["Filter"],"members":{"Filter":{"shape":"S5"}}},"output":{"resultWrapper":"CreateReceiptFilterResult","type":"structure","members":{}},"http":{}},"CreateReceiptRule":{"input":{"type":"structure","required":["RuleSetName","Rule"],"members":{"RuleSetName":{},"After":{},"Rule":{"shape":"Sd"}}},"output":{"resultWrapper":"CreateReceiptRuleResult","type":"structure","members":{}},"http":{}},"CreateReceiptRuleSet":{"input":{"type":"structure","required":["RuleSetName"],"members":{"RuleSetName":{}}},"output":{"resultWrapper":"CreateReceiptRuleSetResult","type":"structure","members":{}},"http":{}},"DeleteIdentity":{"input":{"type":"structure","required":["Identity"],"members":{"Identity":{}}},"output":{"resultWrapper":"DeleteIdentityResult","type":"structure","members":{}},"http":{}},"DeleteIdentityPolicy":{"input":{"type":"structure","required":["Identity","PolicyName"],"members":{"Identity":{},"PolicyName":{}}},"output":{"resultWrapper":"DeleteIdentityPolicyResult","type":"structure","members":{}},"http":{}},"DeleteReceiptFilter":{"input":{"type":"structure","required":["FilterName"],"members":{"FilterName":{}}},"output":{"resultWrapper":"DeleteReceiptFilterResult","type":"structure","members":{}},"http":{}},"DeleteReceiptRule":{"input":{"type":"structure","required":["RuleSetName","RuleName"],"members":{"RuleSetName":{},"RuleName":{}}},"output":{"resultWrapper":"DeleteReceiptRuleResult","type":"structure","members":{}},"http":{}},"DeleteReceiptRuleSet":{"input":{"type":"structure","required":["RuleSetName"],"members":{"RuleSetName":{}}},"output":{"resultWrapper":"DeleteReceiptRuleSetResult","type":"structure","members":{}},"http":{}},"DeleteVerifiedEmailAddress":{"input":{"type":"structure","required":["EmailAddress"],"members":{"EmailAddress":{}}},"http":{}},"DescribeActiveReceiptRuleSet":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"DescribeActiveReceiptRuleSetResult","type":"structure","members":{"Metadata":{"shape":"S1l"},"Rules":{"shape":"S1n"}}},"http":{}},"DescribeReceiptRule":{"input":{"type":"structure","required":["RuleSetName","RuleName"],"members":{"RuleSetName":{},"RuleName":{}}},"output":{"resultWrapper":"DescribeReceiptRuleResult","type":"structure","members":{"Rule":{"shape":"Sd"}}},"http":{}},"DescribeReceiptRuleSet":{"input":{"type":"structure","required":["RuleSetName"],"members":{"RuleSetName":{}}},"output":{"resultWrapper":"DescribeReceiptRuleSetResult","type":"structure","members":{"Metadata":{"shape":"S1l"},"Rules":{"shape":"S1n"}}},"http":{}},"GetIdentityDkimAttributes":{"input":{"type":"structure","required":["Identities"],"members":{"Identities":{"shape":"S1t"}}},"output":{"resultWrapper":"GetIdentityDkimAttributesResult","type":"structure","required":["DkimAttributes"],"members":{"DkimAttributes":{"type":"map","key":{},"value":{"type":"structure","required":["DkimEnabled","DkimVerificationStatus"],"members":{"DkimEnabled":{"type":"boolean"},"DkimVerificationStatus":{},"DkimTokens":{"shape":"S1y"}}}}}},"http":{}},"GetIdentityMailFromDomainAttributes":{"input":{"type":"structure","required":["Identities"],"members":{"Identities":{"shape":"S1t"}}},"output":{"resultWrapper":"GetIdentityMailFromDomainAttributesResult","type":"structure","required":["MailFromDomainAttributes"],"members":{"MailFromDomainAttributes":{"type":"map","key":{},"value":{"type":"structure","required":["MailFromDomain","MailFromDomainStatus","BehaviorOnMXFailure"],"members":{"MailFromDomain":{},"MailFromDomainStatus":{},"BehaviorOnMXFailure":{}}}}}},"http":{}},"GetIdentityNotificationAttributes":{"input":{"type":"structure","required":["Identities"],"members":{"Identities":{"shape":"S1t"}}},"output":{"resultWrapper":"GetIdentityNotificationAttributesResult","type":"structure","required":["NotificationAttributes"],"members":{"NotificationAttributes":{"type":"map","key":{},"value":{"type":"structure","required":["BounceTopic","ComplaintTopic","DeliveryTopic","ForwardingEnabled"],"members":{"BounceTopic":{},"ComplaintTopic":{},"DeliveryTopic":{},"ForwardingEnabled":{"type":"boolean"}}}}}},"http":{}},"GetIdentityPolicies":{"input":{"type":"structure","required":["Identity","PolicyNames"],"members":{"Identity":{},"PolicyNames":{"shape":"S2d"}}},"output":{"resultWrapper":"GetIdentityPoliciesResult","type":"structure","required":["Policies"],"members":{"Policies":{"type":"map","key":{},"value":{}}}},"http":{}},"GetIdentityVerificationAttributes":{"input":{"type":"structure","required":["Identities"],"members":{"Identities":{"shape":"S1t"}}},"output":{"resultWrapper":"GetIdentityVerificationAttributesResult","type":"structure","required":["VerificationAttributes"],"members":{"VerificationAttributes":{"type":"map","key":{},"value":{"type":"structure","required":["VerificationStatus"],"members":{"VerificationStatus":{},"VerificationToken":{}}}}}},"http":{}},"GetSendQuota":{"output":{"resultWrapper":"GetSendQuotaResult","type":"structure","members":{"Max24HourSend":{"type":"double"},"MaxSendRate":{"type":"double"},"SentLast24Hours":{"type":"double"}}},"http":{}},"GetSendStatistics":{"output":{"resultWrapper":"GetSendStatisticsResult","type":"structure","members":{"SendDataPoints":{"type":"list","member":{"type":"structure","members":{"Timestamp":{"type":"timestamp"},"DeliveryAttempts":{"type":"long"},"Bounces":{"type":"long"},"Complaints":{"type":"long"},"Rejects":{"type":"long"}}}}}},"http":{}},"ListIdentities":{"input":{"type":"structure","members":{"IdentityType":{},"NextToken":{},"MaxItems":{"type":"integer"}}},"output":{"resultWrapper":"ListIdentitiesResult","type":"structure","required":["Identities"],"members":{"Identities":{"shape":"S1t"},"NextToken":{}}},"http":{}},"ListIdentityPolicies":{"input":{"type":"structure","required":["Identity"],"members":{"Identity":{}}},"output":{"resultWrapper":"ListIdentityPoliciesResult","type":"structure","required":["PolicyNames"],"members":{"PolicyNames":{"shape":"S2d"}}},"http":{}},"ListReceiptFilters":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"ListReceiptFiltersResult","type":"structure","members":{"Filters":{"type":"list","member":{"shape":"S5"}}}},"http":{}},"ListReceiptRuleSets":{"input":{"type":"structure","members":{"NextToken":{}}},"output":{"resultWrapper":"ListReceiptRuleSetsResult","type":"structure","members":{"RuleSets":{"type":"list","member":{"shape":"S1l"}},"NextToken":{}}},"http":{}},"ListVerifiedEmailAddresses":{"output":{"resultWrapper":"ListVerifiedEmailAddressesResult","type":"structure","members":{"VerifiedEmailAddresses":{"shape":"S37"}}},"http":{}},"PutIdentityPolicy":{"input":{"type":"structure","required":["Identity","PolicyName","Policy"],"members":{"Identity":{},"PolicyName":{},"Policy":{}}},"output":{"resultWrapper":"PutIdentityPolicyResult","type":"structure","members":{}},"http":{}},"ReorderReceiptRuleSet":{"input":{"type":"structure","required":["RuleSetName","RuleNames"],"members":{"RuleSetName":{},"RuleNames":{"type":"list","member":{}}}},"output":{"resultWrapper":"ReorderReceiptRuleSetResult","type":"structure","members":{}},"http":{}},"SendBounce":{"input":{"type":"structure","required":["OriginalMessageId","BounceSender","BouncedRecipientInfoList"],"members":{"OriginalMessageId":{},"BounceSender":{},"Explanation":{},"MessageDsn":{"type":"structure","required":["ReportingMta"],"members":{"ReportingMta":{},"ArrivalDate":{"type":"timestamp"},"ExtensionFields":{"shape":"S3j"}}},"BouncedRecipientInfoList":{"type":"list","member":{"type":"structure","required":["Recipient"],"members":{"Recipient":{},"RecipientArn":{},"BounceType":{},"RecipientDsnFields":{"type":"structure","required":["Action","Status"],"members":{"FinalRecipient":{},"Action":{},"RemoteMta":{},"Status":{},"DiagnosticCode":{},"LastAttemptDate":{"type":"timestamp"},"ExtensionFields":{"shape":"S3j"}}}}}},"BounceSenderArn":{}}},"output":{"resultWrapper":"SendBounceResult","type":"structure","members":{"MessageId":{}}},"http":{}},"SendEmail":{"input":{"type":"structure","required":["Source","Destination","Message"],"members":{"Source":{},"Destination":{"type":"structure","members":{"ToAddresses":{"shape":"S37"},"CcAddresses":{"shape":"S37"},"BccAddresses":{"shape":"S37"}}},"Message":{"type":"structure","required":["Subject","Body"],"members":{"Subject":{"shape":"S40"},"Body":{"type":"structure","members":{"Text":{"shape":"S40"},"Html":{"shape":"S40"}}}}},"ReplyToAddresses":{"shape":"S37"},"ReturnPath":{},"SourceArn":{},"ReturnPathArn":{}}},"output":{"resultWrapper":"SendEmailResult","type":"structure","required":["MessageId"],"members":{"MessageId":{}}},"http":{}},"SendRawEmail":{"input":{"type":"structure","required":["RawMessage"],"members":{"Source":{},"Destinations":{"shape":"S37"},"RawMessage":{"type":"structure","required":["Data"],"members":{"Data":{"type":"blob"}}},"FromArn":{},"SourceArn":{},"ReturnPathArn":{}}},"output":{"resultWrapper":"SendRawEmailResult","type":"structure","required":["MessageId"],"members":{"MessageId":{}}},"http":{}},"SetActiveReceiptRuleSet":{"input":{"type":"structure","members":{"RuleSetName":{}}},"output":{"resultWrapper":"SetActiveReceiptRuleSetResult","type":"structure","members":{}},"http":{}},"SetIdentityDkimEnabled":{"input":{"type":"structure","required":["Identity","DkimEnabled"],"members":{"Identity":{},"DkimEnabled":{"type":"boolean"}}},"output":{"resultWrapper":"SetIdentityDkimEnabledResult","type":"structure","members":{}},"http":{}},"SetIdentityFeedbackForwardingEnabled":{"input":{"type":"structure","required":["Identity","ForwardingEnabled"],"members":{"Identity":{},"ForwardingEnabled":{"type":"boolean"}}},"output":{"resultWrapper":"SetIdentityFeedbackForwardingEnabledResult","type":"structure","members":{}},"http":{}},"SetIdentityMailFromDomain":{"input":{"type":"structure","required":["Identity"],"members":{"Identity":{},"MailFromDomain":{},"BehaviorOnMXFailure":{}}},"output":{"resultWrapper":"SetIdentityMailFromDomainResult","type":"structure","members":{}},"http":{}},"SetIdentityNotificationTopic":{"input":{"type":"structure","required":["Identity","NotificationType"],"members":{"Identity":{},"NotificationType":{},"SnsTopic":{}}},"output":{"resultWrapper":"SetIdentityNotificationTopicResult","type":"structure","members":{}},"http":{}},"SetReceiptRulePosition":{"input":{"type":"structure","required":["RuleSetName","RuleName"],"members":{"RuleSetName":{},"RuleName":{},"After":{}}},"output":{"resultWrapper":"SetReceiptRulePositionResult","type":"structure","members":{}},"http":{}},"UpdateReceiptRule":{"input":{"type":"structure","required":["RuleSetName","Rule"],"members":{"RuleSetName":{},"Rule":{"shape":"Sd"}}},"output":{"resultWrapper":"UpdateReceiptRuleResult","type":"structure","members":{}},"http":{}},"VerifyDomainDkim":{"input":{"type":"structure","required":["Domain"],"members":{"Domain":{}}},"output":{"resultWrapper":"VerifyDomainDkimResult","type":"structure","required":["DkimTokens"],"members":{"DkimTokens":{"shape":"S1y"}}},"http":{}},"VerifyDomainIdentity":{"input":{"type":"structure","required":["Domain"],"members":{"Domain":{}}},"output":{"resultWrapper":"VerifyDomainIdentityResult","type":"structure","required":["VerificationToken"],"members":{"VerificationToken":{}}},"http":{}},"VerifyEmailAddress":{"input":{"type":"structure","required":["EmailAddress"],"members":{"EmailAddress":{}}},"http":{}},"VerifyEmailIdentity":{"input":{"type":"structure","required":["EmailAddress"],"members":{"EmailAddress":{}}},"output":{"resultWrapper":"VerifyEmailIdentityResult","type":"structure","members":{}},"http":{}}},"shapes":{"S5":{"type":"structure","required":["Name","IpFilter"],"members":{"Name":{},"IpFilter":{"type":"structure","required":["Policy","Cidr"],"members":{"Policy":{},"Cidr":{}}}}},"Sd":{"type":"structure","required":["Name"],"members":{"Name":{},"Enabled":{"type":"boolean"},"TlsPolicy":{},"Recipients":{"type":"list","member":{}},"Actions":{"type":"list","member":{"type":"structure","members":{"S3Action":{"type":"structure","required":["BucketName"],"members":{"TopicArn":{},"BucketName":{},"ObjectKeyPrefix":{},"KmsKeyArn":{}}},"BounceAction":{"type":"structure","required":["SmtpReplyCode","Message","Sender"],"members":{"TopicArn":{},"SmtpReplyCode":{},"StatusCode":{},"Message":{},"Sender":{}}},"WorkmailAction":{"type":"structure","required":["OrganizationArn"],"members":{"TopicArn":{},"OrganizationArn":{}}},"LambdaAction":{"type":"structure","required":["FunctionArn"],"members":{"TopicArn":{},"FunctionArn":{},"InvocationType":{}}},"StopAction":{"type":"structure","required":["Scope"],"members":{"Scope":{},"TopicArn":{}}},"AddHeaderAction":{"type":"structure","required":["HeaderName","HeaderValue"],"members":{"HeaderName":{},"HeaderValue":{}}},"SNSAction":{"type":"structure","required":["TopicArn"],"members":{"TopicArn":{},"Encoding":{}}}}}},"ScanEnabled":{"type":"boolean"}}},"S1l":{"type":"structure","members":{"Name":{},"CreatedTimestamp":{"type":"timestamp"}}},"S1n":{"type":"list","member":{"shape":"Sd"}},"S1t":{"type":"list","member":{}},"S1y":{"type":"list","member":{}},"S2d":{"type":"list","member":{}},"S37":{"type":"list","member":{}},"S3j":{"type":"list","member":{"type":"structure","required":["Name","Value"],"members":{"Name":{},"Value":{}}}},"S40":{"type":"structure","required":["Data"],"members":{"Data":{},"Charset":{}}}},"paginators":{"ListIdentities":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxItems","result_key":"Identities"},"ListVerifiedEmailAddresses":{"result_key":"VerifiedEmailAddresses"}},"waiters":{"IdentityExists":{"delay":3,"operation":"GetIdentityVerificationAttributes","maxAttempts":20,"acceptors":[{"expected":"Success","matcher":"pathAll","state":"success","argument":"VerificationAttributes.*.VerificationStatus"}]}}}; +AWS.apiLoader.services['sns'] = {}; +AWS.SNS = AWS.Service.defineService('sns', [ '2010-03-31' ]); + +AWS.apiLoader.services['sns']['2010-03-31'] = {"metadata":{"apiVersion":"2010-03-31","endpointPrefix":"sns","serviceAbbreviation":"Amazon SNS","serviceFullName":"Amazon Simple Notification Service","signatureVersion":"v4","xmlNamespace":"http://sns.amazonaws.com/doc/2010-03-31/","protocol":"query"},"operations":{"AddPermission":{"input":{"type":"structure","required":["TopicArn","Label","AWSAccountId","ActionName"],"members":{"TopicArn":{},"Label":{},"AWSAccountId":{"type":"list","member":{}},"ActionName":{"type":"list","member":{}}}},"http":{}},"ConfirmSubscription":{"input":{"type":"structure","required":["TopicArn","Token"],"members":{"TopicArn":{},"Token":{},"AuthenticateOnUnsubscribe":{}}},"output":{"resultWrapper":"ConfirmSubscriptionResult","type":"structure","members":{"SubscriptionArn":{}}},"http":{}},"CreatePlatformApplication":{"input":{"type":"structure","required":["Name","Platform","Attributes"],"members":{"Name":{},"Platform":{},"Attributes":{"shape":"Sf"}}},"output":{"resultWrapper":"CreatePlatformApplicationResult","type":"structure","members":{"PlatformApplicationArn":{}}},"http":{}},"CreatePlatformEndpoint":{"input":{"type":"structure","required":["PlatformApplicationArn","Token"],"members":{"PlatformApplicationArn":{},"Token":{},"CustomUserData":{},"Attributes":{"shape":"Sf"}}},"output":{"resultWrapper":"CreatePlatformEndpointResult","type":"structure","members":{"EndpointArn":{}}},"http":{}},"CreateTopic":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"resultWrapper":"CreateTopicResult","type":"structure","members":{"TopicArn":{}}},"http":{}},"DeleteEndpoint":{"input":{"type":"structure","required":["EndpointArn"],"members":{"EndpointArn":{}}},"http":{}},"DeletePlatformApplication":{"input":{"type":"structure","required":["PlatformApplicationArn"],"members":{"PlatformApplicationArn":{}}},"http":{}},"DeleteTopic":{"input":{"type":"structure","required":["TopicArn"],"members":{"TopicArn":{}}},"http":{}},"GetEndpointAttributes":{"input":{"type":"structure","required":["EndpointArn"],"members":{"EndpointArn":{}}},"output":{"resultWrapper":"GetEndpointAttributesResult","type":"structure","members":{"Attributes":{"shape":"Sf"}}},"http":{}},"GetPlatformApplicationAttributes":{"input":{"type":"structure","required":["PlatformApplicationArn"],"members":{"PlatformApplicationArn":{}}},"output":{"resultWrapper":"GetPlatformApplicationAttributesResult","type":"structure","members":{"Attributes":{"shape":"Sf"}}},"http":{}},"GetSubscriptionAttributes":{"input":{"type":"structure","required":["SubscriptionArn"],"members":{"SubscriptionArn":{}}},"output":{"resultWrapper":"GetSubscriptionAttributesResult","type":"structure","members":{"Attributes":{"type":"map","key":{},"value":{}}}},"http":{}},"GetTopicAttributes":{"input":{"type":"structure","required":["TopicArn"],"members":{"TopicArn":{}}},"output":{"resultWrapper":"GetTopicAttributesResult","type":"structure","members":{"Attributes":{"type":"map","key":{},"value":{}}}},"http":{}},"ListEndpointsByPlatformApplication":{"input":{"type":"structure","required":["PlatformApplicationArn"],"members":{"PlatformApplicationArn":{},"NextToken":{}}},"output":{"resultWrapper":"ListEndpointsByPlatformApplicationResult","type":"structure","members":{"Endpoints":{"type":"list","member":{"type":"structure","members":{"EndpointArn":{},"Attributes":{"shape":"Sf"}}}},"NextToken":{}}},"http":{}},"ListPlatformApplications":{"input":{"type":"structure","members":{"NextToken":{}}},"output":{"resultWrapper":"ListPlatformApplicationsResult","type":"structure","members":{"PlatformApplications":{"type":"list","member":{"type":"structure","members":{"PlatformApplicationArn":{},"Attributes":{"shape":"Sf"}}}},"NextToken":{}}},"http":{}},"ListSubscriptions":{"input":{"type":"structure","members":{"NextToken":{}}},"output":{"resultWrapper":"ListSubscriptionsResult","type":"structure","members":{"Subscriptions":{"shape":"S1c"},"NextToken":{}}},"http":{}},"ListSubscriptionsByTopic":{"input":{"type":"structure","required":["TopicArn"],"members":{"TopicArn":{},"NextToken":{}}},"output":{"resultWrapper":"ListSubscriptionsByTopicResult","type":"structure","members":{"Subscriptions":{"shape":"S1c"},"NextToken":{}}},"http":{}},"ListTopics":{"input":{"type":"structure","members":{"NextToken":{}}},"output":{"resultWrapper":"ListTopicsResult","type":"structure","members":{"Topics":{"type":"list","member":{"type":"structure","members":{"TopicArn":{}}}},"NextToken":{}}},"http":{}},"Publish":{"input":{"type":"structure","required":["Message"],"members":{"TopicArn":{},"TargetArn":{},"Message":{},"Subject":{},"MessageStructure":{},"MessageAttributes":{"type":"map","key":{"locationName":"Name"},"value":{"locationName":"Value","type":"structure","required":["DataType"],"members":{"DataType":{},"StringValue":{},"BinaryValue":{"type":"blob"}}}}}},"output":{"resultWrapper":"PublishResult","type":"structure","members":{"MessageId":{}}},"http":{}},"RemovePermission":{"input":{"type":"structure","required":["TopicArn","Label"],"members":{"TopicArn":{},"Label":{}}},"http":{}},"SetEndpointAttributes":{"input":{"type":"structure","required":["EndpointArn","Attributes"],"members":{"EndpointArn":{},"Attributes":{"shape":"Sf"}}},"http":{}},"SetPlatformApplicationAttributes":{"input":{"type":"structure","required":["PlatformApplicationArn","Attributes"],"members":{"PlatformApplicationArn":{},"Attributes":{"shape":"Sf"}}},"http":{}},"SetSubscriptionAttributes":{"input":{"type":"structure","required":["SubscriptionArn","AttributeName"],"members":{"SubscriptionArn":{},"AttributeName":{},"AttributeValue":{}}},"http":{}},"SetTopicAttributes":{"input":{"type":"structure","required":["TopicArn","AttributeName"],"members":{"TopicArn":{},"AttributeName":{},"AttributeValue":{}}},"http":{}},"Subscribe":{"input":{"type":"structure","required":["TopicArn","Protocol"],"members":{"TopicArn":{},"Protocol":{},"Endpoint":{}}},"output":{"resultWrapper":"SubscribeResult","type":"structure","members":{"SubscriptionArn":{}}},"http":{}},"Unsubscribe":{"input":{"type":"structure","required":["SubscriptionArn"],"members":{"SubscriptionArn":{}}},"http":{}}},"shapes":{"Sf":{"type":"map","key":{},"value":{}},"S1c":{"type":"list","member":{"type":"structure","members":{"SubscriptionArn":{},"Owner":{},"Protocol":{},"Endpoint":{},"TopicArn":{}}}}},"paginators":{"ListEndpointsByPlatformApplication":{"input_token":"NextToken","output_token":"NextToken","result_key":"Endpoints"},"ListPlatformApplications":{"input_token":"NextToken","output_token":"NextToken","result_key":"PlatformApplications"},"ListSubscriptions":{"input_token":"NextToken","output_token":"NextToken","result_key":"Subscriptions"},"ListSubscriptionsByTopic":{"input_token":"NextToken","output_token":"NextToken","result_key":"Subscriptions"},"ListTopics":{"input_token":"NextToken","output_token":"NextToken","result_key":"Topics"}}}; +AWS.apiLoader.services['sqs'] = {}; +AWS.SQS = AWS.Service.defineService('sqs', [ '2012-11-05' ]); +require('./services/sqs'); + +AWS.apiLoader.services['sqs']['2012-11-05'] = {"version":"2.0","metadata":{"apiVersion":"2012-11-05","endpointPrefix":"sqs","protocol":"query","serviceAbbreviation":"Amazon SQS","serviceFullName":"Amazon Simple Queue Service","signatureVersion":"v4","xmlNamespace":"http://queue.amazonaws.com/doc/2012-11-05/"},"operations":{"AddPermission":{"input":{"type":"structure","required":["QueueUrl","Label","AWSAccountIds","Actions"],"members":{"QueueUrl":{},"Label":{},"AWSAccountIds":{"type":"list","member":{"locationName":"AWSAccountId"},"flattened":true},"Actions":{"type":"list","member":{"locationName":"ActionName"},"flattened":true}}},"http":{}},"ChangeMessageVisibility":{"input":{"type":"structure","required":["QueueUrl","ReceiptHandle","VisibilityTimeout"],"members":{"QueueUrl":{},"ReceiptHandle":{},"VisibilityTimeout":{"type":"integer"}}},"http":{}},"ChangeMessageVisibilityBatch":{"input":{"type":"structure","required":["QueueUrl","Entries"],"members":{"QueueUrl":{},"Entries":{"type":"list","member":{"locationName":"ChangeMessageVisibilityBatchRequestEntry","type":"structure","required":["Id","ReceiptHandle"],"members":{"Id":{},"ReceiptHandle":{},"VisibilityTimeout":{"type":"integer"}}},"flattened":true}}},"output":{"resultWrapper":"ChangeMessageVisibilityBatchResult","type":"structure","required":["Successful","Failed"],"members":{"Successful":{"type":"list","member":{"locationName":"ChangeMessageVisibilityBatchResultEntry","type":"structure","required":["Id"],"members":{"Id":{}}},"flattened":true},"Failed":{"shape":"Sd"}}},"http":{}},"CreateQueue":{"input":{"type":"structure","required":["QueueName"],"members":{"QueueName":{},"Attributes":{"shape":"Sh","locationName":"Attribute"}}},"output":{"resultWrapper":"CreateQueueResult","type":"structure","members":{"QueueUrl":{}}},"http":{}},"DeleteMessage":{"input":{"type":"structure","required":["QueueUrl","ReceiptHandle"],"members":{"QueueUrl":{},"ReceiptHandle":{}}},"http":{}},"DeleteMessageBatch":{"input":{"type":"structure","required":["QueueUrl","Entries"],"members":{"QueueUrl":{},"Entries":{"type":"list","member":{"locationName":"DeleteMessageBatchRequestEntry","type":"structure","required":["Id","ReceiptHandle"],"members":{"Id":{},"ReceiptHandle":{}}},"flattened":true}}},"output":{"resultWrapper":"DeleteMessageBatchResult","type":"structure","required":["Successful","Failed"],"members":{"Successful":{"type":"list","member":{"locationName":"DeleteMessageBatchResultEntry","type":"structure","required":["Id"],"members":{"Id":{}}},"flattened":true},"Failed":{"shape":"Sd"}}},"http":{}},"DeleteQueue":{"input":{"type":"structure","required":["QueueUrl"],"members":{"QueueUrl":{}}},"http":{}},"GetQueueAttributes":{"input":{"type":"structure","required":["QueueUrl"],"members":{"QueueUrl":{},"AttributeNames":{"shape":"St"}}},"output":{"resultWrapper":"GetQueueAttributesResult","type":"structure","members":{"Attributes":{"shape":"Sh","locationName":"Attribute"}}},"http":{}},"GetQueueUrl":{"input":{"type":"structure","required":["QueueName"],"members":{"QueueName":{},"QueueOwnerAWSAccountId":{}}},"output":{"resultWrapper":"GetQueueUrlResult","type":"structure","members":{"QueueUrl":{}}},"http":{}},"ListDeadLetterSourceQueues":{"input":{"type":"structure","required":["QueueUrl"],"members":{"QueueUrl":{}}},"output":{"resultWrapper":"ListDeadLetterSourceQueuesResult","type":"structure","required":["queueUrls"],"members":{"queueUrls":{"shape":"Sz"}}},"http":{}},"ListQueues":{"input":{"type":"structure","members":{"QueueNamePrefix":{}}},"output":{"resultWrapper":"ListQueuesResult","type":"structure","members":{"QueueUrls":{"shape":"Sz"}}},"http":{}},"PurgeQueue":{"input":{"type":"structure","required":["QueueUrl"],"members":{"QueueUrl":{}}},"http":{}},"ReceiveMessage":{"input":{"type":"structure","required":["QueueUrl"],"members":{"QueueUrl":{},"AttributeNames":{"shape":"St"},"MessageAttributeNames":{"type":"list","member":{"locationName":"MessageAttributeName"},"flattened":true},"MaxNumberOfMessages":{"type":"integer"},"VisibilityTimeout":{"type":"integer"},"WaitTimeSeconds":{"type":"integer"}}},"output":{"resultWrapper":"ReceiveMessageResult","type":"structure","members":{"Messages":{"type":"list","member":{"locationName":"Message","type":"structure","members":{"MessageId":{},"ReceiptHandle":{},"MD5OfBody":{},"Body":{},"Attributes":{"shape":"Sh","locationName":"Attribute"},"MD5OfMessageAttributes":{},"MessageAttributes":{"shape":"S19","locationName":"MessageAttribute"}}},"flattened":true}}},"http":{}},"RemovePermission":{"input":{"type":"structure","required":["QueueUrl","Label"],"members":{"QueueUrl":{},"Label":{}}},"http":{}},"SendMessage":{"input":{"type":"structure","required":["QueueUrl","MessageBody"],"members":{"QueueUrl":{},"MessageBody":{},"DelaySeconds":{"type":"integer"},"MessageAttributes":{"shape":"S19","locationName":"MessageAttribute"}}},"output":{"resultWrapper":"SendMessageResult","type":"structure","members":{"MD5OfMessageBody":{},"MD5OfMessageAttributes":{},"MessageId":{}}},"http":{}},"SendMessageBatch":{"input":{"type":"structure","required":["QueueUrl","Entries"],"members":{"QueueUrl":{},"Entries":{"type":"list","member":{"locationName":"SendMessageBatchRequestEntry","type":"structure","required":["Id","MessageBody"],"members":{"Id":{},"MessageBody":{},"DelaySeconds":{"type":"integer"},"MessageAttributes":{"shape":"S19","locationName":"MessageAttribute"}}},"flattened":true}}},"output":{"resultWrapper":"SendMessageBatchResult","type":"structure","required":["Successful","Failed"],"members":{"Successful":{"type":"list","member":{"locationName":"SendMessageBatchResultEntry","type":"structure","required":["Id","MessageId","MD5OfMessageBody"],"members":{"Id":{},"MessageId":{},"MD5OfMessageBody":{},"MD5OfMessageAttributes":{}}},"flattened":true},"Failed":{"shape":"Sd"}}},"http":{}},"SetQueueAttributes":{"input":{"type":"structure","required":["QueueUrl","Attributes"],"members":{"QueueUrl":{},"Attributes":{"shape":"Sh","locationName":"Attribute"}}},"http":{}}},"shapes":{"Sd":{"type":"list","member":{"locationName":"BatchResultErrorEntry","type":"structure","required":["Id","SenderFault","Code"],"members":{"Id":{},"SenderFault":{"type":"boolean"},"Code":{},"Message":{}}},"flattened":true},"Sh":{"type":"map","key":{"locationName":"Name"},"value":{"locationName":"Value"},"flattened":true,"locationName":"Attribute"},"St":{"type":"list","member":{"locationName":"AttributeName"},"flattened":true},"Sz":{"type":"list","member":{"locationName":"QueueUrl"},"flattened":true},"S19":{"type":"map","key":{"locationName":"Name"},"value":{"locationName":"Value","type":"structure","required":["DataType"],"members":{"StringValue":{},"BinaryValue":{"type":"blob"},"StringListValues":{"flattened":true,"locationName":"StringListValue","type":"list","member":{"locationName":"StringListValue"}},"BinaryListValues":{"flattened":true,"locationName":"BinaryListValue","type":"list","member":{"locationName":"BinaryListValue","type":"blob"}},"DataType":{}}},"flattened":true}},"paginators":{"ListQueues":{"result_key":"QueueUrls"}}}; +AWS.apiLoader.services['ssm'] = {}; +AWS.SSM = AWS.Service.defineService('ssm', [ '2014-11-06' ]); + +AWS.apiLoader.services['ssm']['2014-11-06'] = {"version":"2.0","metadata":{"apiVersion":"2014-11-06","endpointPrefix":"ssm","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"Amazon SSM","serviceFullName":"Amazon Simple Systems Management Service","signatureVersion":"v4","targetPrefix":"AmazonSSM"},"operations":{"CancelCommand":{"input":{"type":"structure","required":["CommandId"],"members":{"CommandId":{},"InstanceIds":{"shape":"S3"}}},"output":{"type":"structure","members":{}},"http":{}},"CreateAssociation":{"input":{"type":"structure","required":["Name","InstanceId"],"members":{"Name":{},"InstanceId":{},"Parameters":{"shape":"S8"}}},"output":{"type":"structure","members":{"AssociationDescription":{"shape":"Sd"}}},"http":{}},"CreateAssociationBatch":{"input":{"type":"structure","required":["Entries"],"members":{"Entries":{"type":"list","member":{"shape":"Sl","locationName":"entries"}}}},"output":{"type":"structure","members":{"Successful":{"type":"list","member":{"shape":"Sd","locationName":"AssociationDescription"}},"Failed":{"type":"list","member":{"locationName":"FailedCreateAssociationEntry","type":"structure","members":{"Entry":{"shape":"Sl"},"Message":{},"Fault":{}}}}}},"http":{}},"CreateDocument":{"input":{"type":"structure","required":["Content","Name"],"members":{"Content":{},"Name":{}}},"output":{"type":"structure","members":{"DocumentDescription":{"shape":"Sv"}}},"http":{}},"DeleteAssociation":{"input":{"type":"structure","required":["Name","InstanceId"],"members":{"Name":{},"InstanceId":{}}},"output":{"type":"structure","members":{}},"http":{}},"DeleteDocument":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{}},"http":{}},"DescribeAssociation":{"input":{"type":"structure","required":["Name","InstanceId"],"members":{"Name":{},"InstanceId":{}}},"output":{"type":"structure","members":{"AssociationDescription":{"shape":"Sd"}}},"http":{}},"DescribeDocument":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{"Document":{"shape":"Sv"}}},"http":{}},"DescribeDocumentPermission":{"input":{"type":"structure","required":["Name","PermissionType"],"members":{"Name":{},"PermissionType":{}}},"output":{"type":"structure","members":{"AccountIds":{"shape":"S1m"}}},"http":{}},"DescribeInstanceInformation":{"input":{"type":"structure","members":{"InstanceInformationFilterList":{"type":"list","member":{"locationName":"InstanceInformationFilter","type":"structure","required":["key","valueSet"],"members":{"key":{},"valueSet":{"type":"list","member":{"locationName":"InstanceInformationFilterValue"}}}}},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"InstanceInformationList":{"type":"list","member":{"locationName":"InstanceInformation","type":"structure","members":{"InstanceId":{},"PingStatus":{},"LastPingDateTime":{"type":"timestamp"},"AgentVersion":{},"IsLatestVersion":{"type":"boolean"},"PlatformType":{},"PlatformName":{},"PlatformVersion":{}}}},"NextToken":{}}},"http":{}},"GetDocument":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{"Name":{},"Content":{}}},"http":{}},"ListAssociations":{"input":{"type":"structure","required":["AssociationFilterList"],"members":{"AssociationFilterList":{"type":"list","member":{"locationName":"AssociationFilter","type":"structure","required":["key","value"],"members":{"key":{},"value":{}}}},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"Associations":{"type":"list","member":{"locationName":"Association","type":"structure","members":{"Name":{},"InstanceId":{}}}},"NextToken":{}}},"http":{}},"ListCommandInvocations":{"input":{"type":"structure","members":{"CommandId":{},"InstanceId":{},"MaxResults":{"type":"integer"},"NextToken":{},"Filters":{"shape":"S2g"},"Details":{"type":"boolean"}}},"output":{"type":"structure","members":{"CommandInvocations":{"type":"list","member":{"type":"structure","members":{"CommandId":{},"InstanceId":{},"Comment":{},"DocumentName":{},"RequestedDateTime":{"type":"timestamp"},"Status":{},"TraceOutput":{},"CommandPlugins":{"type":"list","member":{"type":"structure","members":{"Name":{},"Status":{},"ResponseCode":{"type":"integer"},"ResponseStartDateTime":{"type":"timestamp"},"ResponseFinishDateTime":{"type":"timestamp"},"Output":{},"OutputS3BucketName":{},"OutputS3KeyPrefix":{}}}}}}},"NextToken":{}}},"http":{}},"ListCommands":{"input":{"type":"structure","members":{"CommandId":{},"InstanceId":{},"MaxResults":{"type":"integer"},"NextToken":{},"Filters":{"shape":"S2g"}}},"output":{"type":"structure","members":{"Commands":{"type":"list","member":{"shape":"S31"}},"NextToken":{}}},"http":{}},"ListDocuments":{"input":{"type":"structure","members":{"DocumentFilterList":{"type":"list","member":{"locationName":"DocumentFilter","type":"structure","required":["key","value"],"members":{"key":{},"value":{}}}},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"DocumentIdentifiers":{"type":"list","member":{"locationName":"DocumentIdentifier","type":"structure","members":{"Name":{},"Owner":{},"PlatformTypes":{"shape":"S19"}}}},"NextToken":{}}},"http":{}},"ModifyDocumentPermission":{"input":{"type":"structure","required":["Name","PermissionType"],"members":{"Name":{},"PermissionType":{},"AccountIdsToAdd":{"shape":"S1m"},"AccountIdsToRemove":{"shape":"S1m"}}},"output":{"type":"structure","members":{}},"http":{}},"SendCommand":{"input":{"type":"structure","required":["InstanceIds","DocumentName"],"members":{"InstanceIds":{"shape":"S3"},"DocumentName":{},"DocumentHash":{},"DocumentHashType":{},"TimeoutSeconds":{"type":"integer"},"Comment":{},"Parameters":{"shape":"S8"},"OutputS3BucketName":{},"OutputS3KeyPrefix":{}}},"output":{"type":"structure","members":{"Command":{"shape":"S31"}}},"http":{}},"UpdateAssociationStatus":{"input":{"type":"structure","required":["Name","InstanceId","AssociationStatus"],"members":{"Name":{},"InstanceId":{},"AssociationStatus":{"shape":"Sf"}}},"output":{"type":"structure","members":{"AssociationDescription":{"shape":"Sd"}}},"http":{}}},"shapes":{"S3":{"type":"list","member":{}},"S8":{"type":"map","key":{},"value":{"type":"list","member":{}}},"Sd":{"type":"structure","members":{"Name":{},"InstanceId":{},"Date":{"type":"timestamp"},"Status":{"shape":"Sf"},"Parameters":{"shape":"S8"}}},"Sf":{"type":"structure","required":["Date","Name","Message"],"members":{"Date":{"type":"timestamp"},"Name":{},"Message":{},"AdditionalInfo":{}}},"Sl":{"type":"structure","members":{"Name":{},"InstanceId":{},"Parameters":{"shape":"S8"}}},"Sv":{"type":"structure","members":{"Sha1":{},"Hash":{},"HashType":{},"Name":{},"Owner":{},"CreatedDate":{"type":"timestamp"},"Status":{},"Description":{},"Parameters":{"type":"list","member":{"locationName":"DocumentParameter","type":"structure","members":{"Name":{},"Type":{},"Description":{},"DefaultValue":{}}}},"PlatformTypes":{"shape":"S19"}}},"S19":{"type":"list","member":{"locationName":"PlatformType"}},"S1m":{"type":"list","member":{"locationName":"AccountId"}},"S2g":{"type":"list","member":{"type":"structure","required":["key","value"],"members":{"key":{},"value":{}}}},"S31":{"type":"structure","members":{"CommandId":{},"DocumentName":{},"Comment":{},"ExpiresAfter":{"type":"timestamp"},"Parameters":{"shape":"S8"},"InstanceIds":{"shape":"S3"},"RequestedDateTime":{"type":"timestamp"},"Status":{},"OutputS3BucketName":{},"OutputS3KeyPrefix":{}}}},"paginators":{"ListAssociations":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"Associations"},"ListCommandInvocations":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"CommandInvocations"},"ListCommands":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"Commands"},"ListDocuments":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults","result_key":"DocumentIdentifiers"}}}; +AWS.apiLoader.services['storagegateway'] = {}; +AWS.StorageGateway = AWS.Service.defineService('storagegateway', [ '2013-06-30' ]); + +AWS.apiLoader.services['storagegateway']['2013-06-30'] = {"version":"2.0","metadata":{"apiVersion":"2013-06-30","endpointPrefix":"storagegateway","jsonVersion":"1.1","protocol":"json","serviceFullName":"AWS Storage Gateway","signatureVersion":"v4","targetPrefix":"StorageGateway_20130630"},"operations":{"ActivateGateway":{"input":{"type":"structure","required":["ActivationKey","GatewayName","GatewayTimezone","GatewayRegion"],"members":{"ActivationKey":{},"GatewayName":{},"GatewayTimezone":{},"GatewayRegion":{},"GatewayType":{},"TapeDriveType":{},"MediumChangerType":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"AddCache":{"input":{"type":"structure","required":["GatewayARN","DiskIds"],"members":{"GatewayARN":{},"DiskIds":{"shape":"Sc"}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"AddTagsToResource":{"input":{"type":"structure","required":["ResourceARN","Tags"],"members":{"ResourceARN":{},"Tags":{"shape":"Sh"}}},"output":{"type":"structure","members":{"ResourceARN":{}}},"http":{}},"AddUploadBuffer":{"input":{"type":"structure","required":["GatewayARN","DiskIds"],"members":{"GatewayARN":{},"DiskIds":{"shape":"Sc"}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"AddWorkingStorage":{"input":{"type":"structure","required":["GatewayARN","DiskIds"],"members":{"GatewayARN":{},"DiskIds":{"shape":"Sc"}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"CancelArchival":{"input":{"type":"structure","required":["GatewayARN","TapeARN"],"members":{"GatewayARN":{},"TapeARN":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"CancelRetrieval":{"input":{"type":"structure","required":["GatewayARN","TapeARN"],"members":{"GatewayARN":{},"TapeARN":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"CreateCachediSCSIVolume":{"input":{"type":"structure","required":["GatewayARN","VolumeSizeInBytes","TargetName","NetworkInterfaceId","ClientToken"],"members":{"GatewayARN":{},"VolumeSizeInBytes":{"type":"long"},"SnapshotId":{},"TargetName":{},"NetworkInterfaceId":{},"ClientToken":{}}},"output":{"type":"structure","members":{"VolumeARN":{},"TargetARN":{}}},"http":{}},"CreateSnapshot":{"input":{"type":"structure","required":["VolumeARN","SnapshotDescription"],"members":{"VolumeARN":{},"SnapshotDescription":{}}},"output":{"type":"structure","members":{"VolumeARN":{},"SnapshotId":{}}},"http":{}},"CreateSnapshotFromVolumeRecoveryPoint":{"input":{"type":"structure","required":["VolumeARN","SnapshotDescription"],"members":{"VolumeARN":{},"SnapshotDescription":{}}},"output":{"type":"structure","members":{"SnapshotId":{},"VolumeARN":{},"VolumeRecoveryPointTime":{}}},"http":{}},"CreateStorediSCSIVolume":{"input":{"type":"structure","required":["GatewayARN","DiskId","PreserveExistingData","TargetName","NetworkInterfaceId"],"members":{"GatewayARN":{},"DiskId":{},"SnapshotId":{},"PreserveExistingData":{"type":"boolean"},"TargetName":{},"NetworkInterfaceId":{}}},"output":{"type":"structure","members":{"VolumeARN":{},"VolumeSizeInBytes":{"type":"long"},"TargetARN":{}}},"http":{}},"CreateTapeWithBarcode":{"input":{"type":"structure","required":["GatewayARN","TapeSizeInBytes","TapeBarcode"],"members":{"GatewayARN":{},"TapeSizeInBytes":{"type":"long"},"TapeBarcode":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"CreateTapes":{"input":{"type":"structure","required":["GatewayARN","TapeSizeInBytes","ClientToken","NumTapesToCreate","TapeBarcodePrefix"],"members":{"GatewayARN":{},"TapeSizeInBytes":{"type":"long"},"ClientToken":{},"NumTapesToCreate":{"type":"integer"},"TapeBarcodePrefix":{}}},"output":{"type":"structure","members":{"TapeARNs":{"shape":"S1l"}}},"http":{}},"DeleteBandwidthRateLimit":{"input":{"type":"structure","required":["GatewayARN","BandwidthType"],"members":{"GatewayARN":{},"BandwidthType":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"DeleteChapCredentials":{"input":{"type":"structure","required":["TargetARN","InitiatorName"],"members":{"TargetARN":{},"InitiatorName":{}}},"output":{"type":"structure","members":{"TargetARN":{},"InitiatorName":{}}},"http":{}},"DeleteGateway":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"DeleteSnapshotSchedule":{"input":{"type":"structure","required":["VolumeARN"],"members":{"VolumeARN":{}}},"output":{"type":"structure","members":{"VolumeARN":{}}},"http":{}},"DeleteTape":{"input":{"type":"structure","required":["GatewayARN","TapeARN"],"members":{"GatewayARN":{},"TapeARN":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"DeleteTapeArchive":{"input":{"type":"structure","required":["TapeARN"],"members":{"TapeARN":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"DeleteVolume":{"input":{"type":"structure","required":["VolumeARN"],"members":{"VolumeARN":{}}},"output":{"type":"structure","members":{"VolumeARN":{}}},"http":{}},"DescribeBandwidthRateLimit":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"AverageUploadRateLimitInBitsPerSec":{"type":"long"},"AverageDownloadRateLimitInBitsPerSec":{"type":"long"}}},"http":{}},"DescribeCache":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"DiskIds":{"shape":"Sc"},"CacheAllocatedInBytes":{"type":"long"},"CacheUsedPercentage":{"type":"double"},"CacheDirtyPercentage":{"type":"double"},"CacheHitPercentage":{"type":"double"},"CacheMissPercentage":{"type":"double"}}},"http":{}},"DescribeCachediSCSIVolumes":{"input":{"type":"structure","required":["VolumeARNs"],"members":{"VolumeARNs":{"shape":"S2a"}}},"output":{"type":"structure","members":{"CachediSCSIVolumes":{"type":"list","member":{"type":"structure","members":{"VolumeARN":{},"VolumeId":{},"VolumeType":{},"VolumeStatus":{},"VolumeSizeInBytes":{"type":"long"},"VolumeProgress":{"type":"double"},"SourceSnapshotId":{},"VolumeiSCSIAttributes":{"shape":"S2i"}}}}}},"http":{}},"DescribeChapCredentials":{"input":{"type":"structure","required":["TargetARN"],"members":{"TargetARN":{}}},"output":{"type":"structure","members":{"ChapCredentials":{"type":"list","member":{"type":"structure","members":{"TargetARN":{},"SecretToAuthenticateInitiator":{},"InitiatorName":{},"SecretToAuthenticateTarget":{}}}}}},"http":{}},"DescribeGatewayInformation":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"GatewayId":{},"GatewayName":{},"GatewayTimezone":{},"GatewayState":{},"GatewayNetworkInterfaces":{"type":"list","member":{"type":"structure","members":{"Ipv4Address":{},"MacAddress":{},"Ipv6Address":{}}}},"GatewayType":{},"NextUpdateAvailabilityDate":{},"LastSoftwareUpdate":{}}},"http":{}},"DescribeMaintenanceStartTime":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"HourOfDay":{"type":"integer"},"MinuteOfHour":{"type":"integer"},"DayOfWeek":{"type":"integer"},"Timezone":{}}},"http":{}},"DescribeSnapshotSchedule":{"input":{"type":"structure","required":["VolumeARN"],"members":{"VolumeARN":{}}},"output":{"type":"structure","members":{"VolumeARN":{},"StartAt":{"type":"integer"},"RecurrenceInHours":{"type":"integer"},"Description":{},"Timezone":{}}},"http":{}},"DescribeStorediSCSIVolumes":{"input":{"type":"structure","required":["VolumeARNs"],"members":{"VolumeARNs":{"shape":"S2a"}}},"output":{"type":"structure","members":{"StorediSCSIVolumes":{"type":"list","member":{"type":"structure","members":{"VolumeARN":{},"VolumeId":{},"VolumeType":{},"VolumeStatus":{},"VolumeSizeInBytes":{"type":"long"},"VolumeProgress":{"type":"double"},"VolumeDiskId":{},"SourceSnapshotId":{},"PreservedExistingData":{"type":"boolean"},"VolumeiSCSIAttributes":{"shape":"S2i"}}}}}},"http":{}},"DescribeTapeArchives":{"input":{"type":"structure","members":{"TapeARNs":{"shape":"S1l"},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"TapeArchives":{"type":"list","member":{"type":"structure","members":{"TapeARN":{},"TapeBarcode":{},"TapeSizeInBytes":{"type":"long"},"CompletionTime":{"type":"timestamp"},"RetrievedTo":{},"TapeStatus":{}}}},"Marker":{}}},"http":{}},"DescribeTapeRecoveryPoints":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"GatewayARN":{},"TapeRecoveryPointInfos":{"type":"list","member":{"type":"structure","members":{"TapeARN":{},"TapeRecoveryPointTime":{"type":"timestamp"},"TapeSizeInBytes":{"type":"long"},"TapeStatus":{}}}},"Marker":{}}},"http":{}},"DescribeTapes":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{},"TapeARNs":{"shape":"S1l"},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Tapes":{"type":"list","member":{"type":"structure","members":{"TapeARN":{},"TapeBarcode":{},"TapeSizeInBytes":{"type":"long"},"TapeStatus":{},"VTLDevice":{},"Progress":{"type":"double"}}}},"Marker":{}}},"http":{}},"DescribeUploadBuffer":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"DiskIds":{"shape":"Sc"},"UploadBufferUsedInBytes":{"type":"long"},"UploadBufferAllocatedInBytes":{"type":"long"}}},"http":{}},"DescribeVTLDevices":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{},"VTLDeviceARNs":{"type":"list","member":{}},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"GatewayARN":{},"VTLDevices":{"type":"list","member":{"type":"structure","members":{"VTLDeviceARN":{},"VTLDeviceType":{},"VTLDeviceVendor":{},"VTLDeviceProductIdentifier":{},"DeviceiSCSIAttributes":{"type":"structure","members":{"TargetARN":{},"NetworkInterfaceId":{},"NetworkInterfacePort":{"type":"integer"},"ChapEnabled":{"type":"boolean"}}}}}},"Marker":{}}},"http":{}},"DescribeWorkingStorage":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"DiskIds":{"shape":"Sc"},"WorkingStorageUsedInBytes":{"type":"long"},"WorkingStorageAllocatedInBytes":{"type":"long"}}},"http":{}},"DisableGateway":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"ListGateways":{"input":{"type":"structure","members":{"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"Gateways":{"type":"list","member":{"type":"structure","members":{"GatewayId":{},"GatewayARN":{},"GatewayType":{},"GatewayOperationalState":{},"GatewayName":{}}}},"Marker":{}}},"http":{}},"ListLocalDisks":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"Disks":{"type":"list","member":{"type":"structure","members":{"DiskId":{},"DiskPath":{},"DiskNode":{},"DiskStatus":{},"DiskSizeInBytes":{"type":"long"},"DiskAllocationType":{},"DiskAllocationResource":{}}}}}},"http":{}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceARN"],"members":{"ResourceARN":{},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"ResourceARN":{},"Marker":{},"Tags":{"shape":"Sh"}}},"http":{}},"ListTapes":{"input":{"type":"structure","members":{"TapeARNs":{"shape":"S1l"},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"TapeInfos":{"type":"list","member":{"type":"structure","members":{"TapeARN":{},"TapeBarcode":{},"TapeSizeInBytes":{"type":"long"},"TapeStatus":{},"GatewayARN":{}}}},"Marker":{}}},"http":{}},"ListVolumeInitiators":{"input":{"type":"structure","required":["VolumeARN"],"members":{"VolumeARN":{}}},"output":{"type":"structure","members":{"Initiators":{"type":"list","member":{}}}},"http":{}},"ListVolumeRecoveryPoints":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"VolumeRecoveryPointInfos":{"type":"list","member":{"type":"structure","members":{"VolumeARN":{},"VolumeSizeInBytes":{"type":"long"},"VolumeUsageInBytes":{"type":"long"},"VolumeRecoveryPointTime":{}}}}}},"http":{}},"ListVolumes":{"input":{"type":"structure","members":{"GatewayARN":{},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"GatewayARN":{},"Marker":{},"VolumeInfos":{"type":"list","member":{"type":"structure","members":{"VolumeARN":{},"VolumeId":{},"GatewayARN":{},"GatewayId":{},"VolumeType":{},"VolumeSizeInBytes":{"type":"long"}}}}}},"http":{}},"RemoveTagsFromResource":{"input":{"type":"structure","required":["ResourceARN","TagKeys"],"members":{"ResourceARN":{},"TagKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"ResourceARN":{}}},"http":{}},"ResetCache":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"RetrieveTapeArchive":{"input":{"type":"structure","required":["TapeARN","GatewayARN"],"members":{"TapeARN":{},"GatewayARN":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"RetrieveTapeRecoveryPoint":{"input":{"type":"structure","required":["TapeARN","GatewayARN"],"members":{"TapeARN":{},"GatewayARN":{}}},"output":{"type":"structure","members":{"TapeARN":{}}},"http":{}},"SetLocalConsolePassword":{"input":{"type":"structure","required":["GatewayARN","LocalConsolePassword"],"members":{"GatewayARN":{},"LocalConsolePassword":{"type":"string","sensitive":true}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"ShutdownGateway":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"StartGateway":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"UpdateBandwidthRateLimit":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{},"AverageUploadRateLimitInBitsPerSec":{"type":"long"},"AverageDownloadRateLimitInBitsPerSec":{"type":"long"}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"UpdateChapCredentials":{"input":{"type":"structure","required":["TargetARN","SecretToAuthenticateInitiator","InitiatorName"],"members":{"TargetARN":{},"SecretToAuthenticateInitiator":{},"InitiatorName":{},"SecretToAuthenticateTarget":{}}},"output":{"type":"structure","members":{"TargetARN":{},"InitiatorName":{}}},"http":{}},"UpdateGatewayInformation":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{},"GatewayName":{},"GatewayTimezone":{}}},"output":{"type":"structure","members":{"GatewayARN":{},"GatewayName":{}}},"http":{}},"UpdateGatewaySoftwareNow":{"input":{"type":"structure","required":["GatewayARN"],"members":{"GatewayARN":{}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"UpdateMaintenanceStartTime":{"input":{"type":"structure","required":["GatewayARN","HourOfDay","MinuteOfHour","DayOfWeek"],"members":{"GatewayARN":{},"HourOfDay":{"type":"integer"},"MinuteOfHour":{"type":"integer"},"DayOfWeek":{"type":"integer"}}},"output":{"type":"structure","members":{"GatewayARN":{}}},"http":{}},"UpdateSnapshotSchedule":{"input":{"type":"structure","required":["VolumeARN","StartAt","RecurrenceInHours"],"members":{"VolumeARN":{},"StartAt":{"type":"integer"},"RecurrenceInHours":{"type":"integer"},"Description":{}}},"output":{"type":"structure","members":{"VolumeARN":{}}},"http":{}},"UpdateVTLDeviceType":{"input":{"type":"structure","required":["VTLDeviceARN","DeviceType"],"members":{"VTLDeviceARN":{},"DeviceType":{}}},"output":{"type":"structure","members":{"VTLDeviceARN":{}}},"http":{}}},"shapes":{"Sc":{"type":"list","member":{}},"Sh":{"type":"list","member":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"S1l":{"type":"list","member":{}},"S2a":{"type":"list","member":{}},"S2i":{"type":"structure","members":{"TargetARN":{},"NetworkInterfaceId":{},"NetworkInterfacePort":{"type":"integer"},"LunNumber":{"type":"integer"},"ChapEnabled":{"type":"boolean"}}}},"paginators":{"DescribeCachediSCSIVolumes":{"result_key":"CachediSCSIVolumes"},"DescribeStorediSCSIVolumes":{"result_key":"StorediSCSIVolumes"},"DescribeTapeArchives":{"input_token":"Marker","limit_key":"Limit","output_token":"Marker","result_key":"TapeArchives"},"DescribeTapeRecoveryPoints":{"input_token":"Marker","limit_key":"Limit","output_token":"Marker","result_key":"TapeRecoveryPointInfos"},"DescribeTapes":{"input_token":"Marker","limit_key":"Limit","output_token":"Marker","result_key":"Tapes"},"DescribeVTLDevices":{"input_token":"Marker","limit_key":"Limit","output_token":"Marker","result_key":"VTLDevices"},"ListGateways":{"input_token":"Marker","limit_key":"Limit","output_token":"Marker","result_key":"Gateways"},"ListLocalDisks":{"result_key":"Disks"},"ListVolumeRecoveryPoints":{"result_key":"VolumeRecoveryPointInfos"},"ListVolumes":{"input_token":"Marker","limit_key":"Limit","output_token":"Marker","result_key":"VolumeInfos"}}}; +AWS.apiLoader.services['sts'] = {}; +AWS.STS = AWS.Service.defineService('sts', [ '2011-06-15' ]); +require('./services/sts'); + +AWS.apiLoader.services['sts']['2011-06-15'] = {"version":"2.0","metadata":{"apiVersion":"2011-06-15","endpointPrefix":"sts","globalEndpoint":"sts.amazonaws.com","protocol":"query","serviceAbbreviation":"AWS STS","serviceFullName":"AWS Security Token Service","signatureVersion":"v4","xmlNamespace":"https://sts.amazonaws.com/doc/2011-06-15/"},"operations":{"AssumeRole":{"input":{"type":"structure","required":["RoleArn","RoleSessionName"],"members":{"RoleArn":{},"RoleSessionName":{},"Policy":{},"DurationSeconds":{"type":"integer"},"ExternalId":{},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"AssumeRoleResult","type":"structure","members":{"Credentials":{"shape":"Sa"},"AssumedRoleUser":{"shape":"Sf"},"PackedPolicySize":{"type":"integer"}}},"http":{}},"AssumeRoleWithSAML":{"input":{"type":"structure","required":["RoleArn","PrincipalArn","SAMLAssertion"],"members":{"RoleArn":{},"PrincipalArn":{},"SAMLAssertion":{},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithSAMLResult","type":"structure","members":{"Credentials":{"shape":"Sa"},"AssumedRoleUser":{"shape":"Sf"},"PackedPolicySize":{"type":"integer"},"Subject":{},"SubjectType":{},"Issuer":{},"Audience":{},"NameQualifier":{}}},"http":{}},"AssumeRoleWithWebIdentity":{"input":{"type":"structure","required":["RoleArn","RoleSessionName","WebIdentityToken"],"members":{"RoleArn":{},"RoleSessionName":{},"WebIdentityToken":{},"ProviderId":{},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithWebIdentityResult","type":"structure","members":{"Credentials":{"shape":"Sa"},"SubjectFromWebIdentityToken":{},"AssumedRoleUser":{"shape":"Sf"},"PackedPolicySize":{"type":"integer"},"Provider":{},"Audience":{}}},"http":{}},"DecodeAuthorizationMessage":{"input":{"type":"structure","required":["EncodedMessage"],"members":{"EncodedMessage":{}}},"output":{"resultWrapper":"DecodeAuthorizationMessageResult","type":"structure","members":{"DecodedMessage":{}}},"http":{}},"GetCallerIdentity":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"GetCallerIdentityResult","type":"structure","members":{"UserId":{},"Account":{},"Arn":{}}},"http":{}},"GetFederationToken":{"input":{"type":"structure","required":["Name"],"members":{"Name":{},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"GetFederationTokenResult","type":"structure","members":{"Credentials":{"shape":"Sa"},"FederatedUser":{"type":"structure","required":["FederatedUserId","Arn"],"members":{"FederatedUserId":{},"Arn":{}}},"PackedPolicySize":{"type":"integer"}}},"http":{}},"GetSessionToken":{"input":{"type":"structure","members":{"DurationSeconds":{"type":"integer"},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"GetSessionTokenResult","type":"structure","members":{"Credentials":{"shape":"Sa"}}},"http":{}}},"shapes":{"Sa":{"type":"structure","required":["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],"members":{"AccessKeyId":{},"SecretAccessKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}},"Sf":{"type":"structure","required":["AssumedRoleId","Arn"],"members":{"AssumedRoleId":{},"Arn":{}}}}}; +AWS.apiLoader.services['waf'] = {}; +AWS.WAF = AWS.Service.defineService('waf', [ '2015-08-24' ]); + +AWS.apiLoader.services['waf']['2015-08-24'] = {"version":"2.0","metadata":{"apiVersion":"2015-08-24","endpointPrefix":"waf","jsonVersion":"1.1","protocol":"json","serviceAbbreviation":"WAF","serviceFullName":"AWS WAF","signatureVersion":"v4","targetPrefix":"AWSWAF_20150824"},"operations":{"CreateByteMatchSet":{"input":{"type":"structure","required":["Name","ChangeToken"],"members":{"Name":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ByteMatchSet":{"shape":"S5"},"ChangeToken":{}}},"http":{}},"CreateIPSet":{"input":{"type":"structure","required":["Name","ChangeToken"],"members":{"Name":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"IPSet":{"shape":"Sh"},"ChangeToken":{}}},"http":{}},"CreateRule":{"input":{"type":"structure","required":["Name","MetricName","ChangeToken"],"members":{"Name":{},"MetricName":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"Rule":{"shape":"Sp"},"ChangeToken":{}}},"http":{}},"CreateSizeConstraintSet":{"input":{"type":"structure","required":["Name","ChangeToken"],"members":{"Name":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"SizeConstraintSet":{"shape":"Sw"},"ChangeToken":{}}},"http":{}},"CreateSqlInjectionMatchSet":{"input":{"type":"structure","required":["Name","ChangeToken"],"members":{"Name":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"SqlInjectionMatchSet":{"shape":"S13"},"ChangeToken":{}}},"http":{}},"CreateWebACL":{"input":{"type":"structure","required":["Name","MetricName","DefaultAction","ChangeToken"],"members":{"Name":{},"MetricName":{},"DefaultAction":{"shape":"S17"},"ChangeToken":{}}},"output":{"type":"structure","members":{"WebACL":{"shape":"S1a"},"ChangeToken":{}}},"http":{}},"CreateXssMatchSet":{"input":{"type":"structure","required":["Name","ChangeToken"],"members":{"Name":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"XssMatchSet":{"shape":"S1g"},"ChangeToken":{}}},"http":{}},"DeleteByteMatchSet":{"input":{"type":"structure","required":["ByteMatchSetId","ChangeToken"],"members":{"ByteMatchSetId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"DeleteIPSet":{"input":{"type":"structure","required":["IPSetId","ChangeToken"],"members":{"IPSetId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"DeleteRule":{"input":{"type":"structure","required":["RuleId","ChangeToken"],"members":{"RuleId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"DeleteSizeConstraintSet":{"input":{"type":"structure","required":["SizeConstraintSetId","ChangeToken"],"members":{"SizeConstraintSetId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"DeleteSqlInjectionMatchSet":{"input":{"type":"structure","required":["SqlInjectionMatchSetId","ChangeToken"],"members":{"SqlInjectionMatchSetId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"DeleteWebACL":{"input":{"type":"structure","required":["WebACLId","ChangeToken"],"members":{"WebACLId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"DeleteXssMatchSet":{"input":{"type":"structure","required":["XssMatchSetId","ChangeToken"],"members":{"XssMatchSetId":{},"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"GetByteMatchSet":{"input":{"type":"structure","required":["ByteMatchSetId"],"members":{"ByteMatchSetId":{}}},"output":{"type":"structure","members":{"ByteMatchSet":{"shape":"S5"}}},"http":{}},"GetChangeToken":{"input":{"type":"structure","members":{}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"GetChangeTokenStatus":{"input":{"type":"structure","required":["ChangeToken"],"members":{"ChangeToken":{}}},"output":{"type":"structure","members":{"ChangeTokenStatus":{}}},"http":{}},"GetIPSet":{"input":{"type":"structure","required":["IPSetId"],"members":{"IPSetId":{}}},"output":{"type":"structure","members":{"IPSet":{"shape":"Sh"}}},"http":{}},"GetRule":{"input":{"type":"structure","required":["RuleId"],"members":{"RuleId":{}}},"output":{"type":"structure","members":{"Rule":{"shape":"Sp"}}},"http":{}},"GetSampledRequests":{"input":{"type":"structure","required":["WebAclId","RuleId","TimeWindow","MaxItems"],"members":{"WebAclId":{},"RuleId":{},"TimeWindow":{"shape":"S29"},"MaxItems":{"type":"long"}}},"output":{"type":"structure","members":{"SampledRequests":{"type":"list","member":{"type":"structure","required":["Request","Weight"],"members":{"Request":{"type":"structure","members":{"ClientIP":{},"Country":{},"URI":{},"Method":{},"HTTPVersion":{},"Headers":{"type":"list","member":{"type":"structure","members":{"Name":{},"Value":{}}}}}},"Weight":{"type":"long"},"Timestamp":{"type":"timestamp"},"Action":{}}}},"PopulationSize":{"type":"long"},"TimeWindow":{"shape":"S29"}}},"http":{}},"GetSizeConstraintSet":{"input":{"type":"structure","required":["SizeConstraintSetId"],"members":{"SizeConstraintSetId":{}}},"output":{"type":"structure","members":{"SizeConstraintSet":{"shape":"Sw"}}},"http":{}},"GetSqlInjectionMatchSet":{"input":{"type":"structure","required":["SqlInjectionMatchSetId"],"members":{"SqlInjectionMatchSetId":{}}},"output":{"type":"structure","members":{"SqlInjectionMatchSet":{"shape":"S13"}}},"http":{}},"GetWebACL":{"input":{"type":"structure","required":["WebACLId"],"members":{"WebACLId":{}}},"output":{"type":"structure","members":{"WebACL":{"shape":"S1a"}}},"http":{}},"GetXssMatchSet":{"input":{"type":"structure","required":["XssMatchSetId"],"members":{"XssMatchSetId":{}}},"output":{"type":"structure","members":{"XssMatchSet":{"shape":"S1g"}}},"http":{}},"ListByteMatchSets":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"ByteMatchSets":{"type":"list","member":{"type":"structure","required":["ByteMatchSetId","Name"],"members":{"ByteMatchSetId":{},"Name":{}}}}}},"http":{}},"ListIPSets":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"IPSets":{"type":"list","member":{"type":"structure","required":["IPSetId","Name"],"members":{"IPSetId":{},"Name":{}}}}}},"http":{}},"ListRules":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"Rules":{"type":"list","member":{"type":"structure","required":["RuleId","Name"],"members":{"RuleId":{},"Name":{}}}}}},"http":{}},"ListSizeConstraintSets":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"SizeConstraintSets":{"type":"list","member":{"type":"structure","required":["SizeConstraintSetId","Name"],"members":{"SizeConstraintSetId":{},"Name":{}}}}}},"http":{}},"ListSqlInjectionMatchSets":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"SqlInjectionMatchSets":{"type":"list","member":{"type":"structure","required":["SqlInjectionMatchSetId","Name"],"members":{"SqlInjectionMatchSetId":{},"Name":{}}}}}},"http":{}},"ListWebACLs":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"WebACLs":{"type":"list","member":{"type":"structure","required":["WebACLId","Name"],"members":{"WebACLId":{},"Name":{}}}}}},"http":{}},"ListXssMatchSets":{"input":{"type":"structure","required":["Limit"],"members":{"NextMarker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"NextMarker":{},"XssMatchSets":{"type":"list","member":{"type":"structure","required":["XssMatchSetId","Name"],"members":{"XssMatchSetId":{},"Name":{}}}}}},"http":{}},"UpdateByteMatchSet":{"input":{"type":"structure","required":["ByteMatchSetId","ChangeToken","Updates"],"members":{"ByteMatchSetId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","ByteMatchTuple"],"members":{"Action":{},"ByteMatchTuple":{"shape":"S8"}}}}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"UpdateIPSet":{"input":{"type":"structure","required":["IPSetId","ChangeToken","Updates"],"members":{"IPSetId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","IPSetDescriptor"],"members":{"Action":{},"IPSetDescriptor":{"shape":"Sj"}}}}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"UpdateRule":{"input":{"type":"structure","required":["RuleId","ChangeToken","Updates"],"members":{"RuleId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","Predicate"],"members":{"Action":{},"Predicate":{"shape":"Sr"}}}}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"UpdateSizeConstraintSet":{"input":{"type":"structure","required":["SizeConstraintSetId","ChangeToken","Updates"],"members":{"SizeConstraintSetId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","SizeConstraint"],"members":{"Action":{},"SizeConstraint":{"shape":"Sy"}}}}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"UpdateSqlInjectionMatchSet":{"input":{"type":"structure","required":["SqlInjectionMatchSetId","ChangeToken","Updates"],"members":{"SqlInjectionMatchSetId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","SqlInjectionMatchTuple"],"members":{"Action":{},"SqlInjectionMatchTuple":{"shape":"S15"}}}}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"UpdateWebACL":{"input":{"type":"structure","required":["WebACLId","ChangeToken"],"members":{"WebACLId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","ActivatedRule"],"members":{"Action":{},"ActivatedRule":{"shape":"S1c"}}}},"DefaultAction":{"shape":"S17"}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}},"UpdateXssMatchSet":{"input":{"type":"structure","required":["XssMatchSetId","ChangeToken","Updates"],"members":{"XssMatchSetId":{},"ChangeToken":{},"Updates":{"type":"list","member":{"type":"structure","required":["Action","XssMatchTuple"],"members":{"Action":{},"XssMatchTuple":{"shape":"S1i"}}}}}},"output":{"type":"structure","members":{"ChangeToken":{}}},"http":{}}},"shapes":{"S5":{"type":"structure","required":["ByteMatchSetId","ByteMatchTuples"],"members":{"ByteMatchSetId":{},"Name":{},"ByteMatchTuples":{"type":"list","member":{"shape":"S8"}}}},"S8":{"type":"structure","required":["FieldToMatch","TargetString","TextTransformation","PositionalConstraint"],"members":{"FieldToMatch":{"shape":"S9"},"TargetString":{"type":"blob"},"TextTransformation":{},"PositionalConstraint":{}}},"S9":{"type":"structure","required":["Type"],"members":{"Type":{},"Data":{}}},"Sh":{"type":"structure","required":["IPSetId","IPSetDescriptors"],"members":{"IPSetId":{},"Name":{},"IPSetDescriptors":{"type":"list","member":{"shape":"Sj"}}}},"Sj":{"type":"structure","required":["Type","Value"],"members":{"Type":{},"Value":{}}},"Sp":{"type":"structure","required":["RuleId","Predicates"],"members":{"RuleId":{},"Name":{},"MetricName":{},"Predicates":{"type":"list","member":{"shape":"Sr"}}}},"Sr":{"type":"structure","required":["Negated","Type","DataId"],"members":{"Negated":{"type":"boolean"},"Type":{},"DataId":{}}},"Sw":{"type":"structure","required":["SizeConstraintSetId","SizeConstraints"],"members":{"SizeConstraintSetId":{},"Name":{},"SizeConstraints":{"type":"list","member":{"shape":"Sy"}}}},"Sy":{"type":"structure","required":["FieldToMatch","TextTransformation","ComparisonOperator","Size"],"members":{"FieldToMatch":{"shape":"S9"},"TextTransformation":{},"ComparisonOperator":{},"Size":{"type":"long"}}},"S13":{"type":"structure","required":["SqlInjectionMatchSetId","SqlInjectionMatchTuples"],"members":{"SqlInjectionMatchSetId":{},"Name":{},"SqlInjectionMatchTuples":{"type":"list","member":{"shape":"S15"}}}},"S15":{"type":"structure","required":["FieldToMatch","TextTransformation"],"members":{"FieldToMatch":{"shape":"S9"},"TextTransformation":{}}},"S17":{"type":"structure","required":["Type"],"members":{"Type":{}}},"S1a":{"type":"structure","required":["WebACLId","DefaultAction","Rules"],"members":{"WebACLId":{},"Name":{},"MetricName":{},"DefaultAction":{"shape":"S17"},"Rules":{"type":"list","member":{"shape":"S1c"}}}},"S1c":{"type":"structure","required":["Priority","RuleId","Action"],"members":{"Priority":{"type":"integer"},"RuleId":{},"Action":{"shape":"S17"}}},"S1g":{"type":"structure","required":["XssMatchSetId","XssMatchTuples"],"members":{"XssMatchSetId":{},"Name":{},"XssMatchTuples":{"type":"list","member":{"shape":"S1i"}}}},"S1i":{"type":"structure","required":["FieldToMatch","TextTransformation"],"members":{"FieldToMatch":{"shape":"S9"},"TextTransformation":{}}},"S29":{"type":"structure","required":["StartTime","EndTime"],"members":{"StartTime":{"type":"timestamp"},"EndTime":{"type":"timestamp"}}}}}; + +},{"./core":4,"./http/xhr":18,"./services/apigateway":42,"./services/cloudfront":43,"./services/cognitoidentity":44,"./services/dynamodb":45,"./services/ec2":46,"./services/iotdata":47,"./services/machinelearning":48,"./services/route53":49,"./services/s3":50,"./services/sqs":51,"./services/sts":52,"./xml/browser_parser":62}],2:[function(require,module,exports){ +var crypto = require('crypto'), + url = require('url'), + AWS = require('../core'), + base64Encode = AWS.util.base64.encode, + inherit = AWS.util.inherit; + +var queryEncode = function (string) { + var replacements = { + '+': '-', + '=': '_', + '/': '~' + }; + return string.replace(/[\+=\/]/g, function (match) { + return replacements[match]; + }); +}; + +var signPolicy = function (policy, privateKey) { + var sign = crypto.createSign('RSA-SHA1'); + sign.write(policy); + return queryEncode(sign.sign(privateKey, 'base64')) +}; + +var signWithCannedPolicy = function (url, expires, keyPairId, privateKey) { + var policy = JSON.stringify({ + Statement: [ + { + Resource: url, + Condition: { DateLessThan: { 'AWS:EpochTime': expires } } + } + ] + }); + + return { + Expires: expires, + 'Key-Pair-Id': keyPairId, + Signature: signPolicy(policy.toString(), privateKey) + }; +}; + +var signWithCustomPolicy = function (policy, keyPairId, privateKey) { + policy = policy.replace(/\s/mg, policy); + + return { + Policy: queryEncode(base64Encode(policy)), + 'Key-Pair-Id': keyPairId, + Signature: signPolicy(policy, privateKey) + } +}; + +var determineScheme = function (url) { + var parts = url.split('://'); + if (parts.length < 2) { + throw new Error('Invalid URL.'); + } + + return parts[0].replace('*', ''); +}; + +var getRtmpUrl = function (rtmpUrl) { + var parsed = url.parse(rtmpUrl); + return parsed.path.replace(/^\//, '') + parsed.hash; +}; + +var getResource = function (url) { + switch (determineScheme(url)) { + case 'http': + case 'https': + return url; + case 'rtmp': + return getRtmpUrl(url); + default: + throw new Error('Invalid URI scheme. Scheme must be one of' + + ' http, https, or rtmp'); + } +}; + +var handleError = function (err, callback) { + if (!callback || typeof callback !== 'function') { + throw err; + } + + callback(err); +}; + +var handleSuccess = function (result, callback) { + if (!callback || typeof callback !== 'function') { + return result; + } + + callback(null, result); +}; + +AWS.CloudFront.Signer = inherit({ + + constructor: function Signer(keyPairId, privateKey) { + if (keyPairId === void 0 || privateKey === void 0) { + throw new Error('A key pair ID and private key are required'); + } + + this.keyPairId = keyPairId; + this.privateKey = privateKey; + }, + + + getSignedCookie: function (options, cb) { + var signatureHash = 'policy' in options + ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) + : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey); + + var cookieHash = {}; + for (var key in signatureHash) { + if (signatureHash.hasOwnProperty(key)) { + cookieHash['CloudFront-' + key] = signatureHash[key]; + } + } + + return handleSuccess(cookieHash, cb); + }, + + + getSignedUrl: function (options, cb) { + try { + var resource = getResource(options.url); + } catch (err) { + return handleError(err, cb); + } + + var parsedUrl = url.parse(options.url, true), + signatureHash = options.hasOwnProperty('policy') + ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) + : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey); + + parsedUrl.search = null; + for (var key in signatureHash) { + if (signatureHash.hasOwnProperty(key)) { + parsedUrl.query[key] = signatureHash[key]; + } + } + + try { + var signedUrl = determineScheme(options.url) === 'rtmp' + ? getRtmpUrl(url.format(parsedUrl)) + : url.format(parsedUrl); + } catch (err) { + return handleError(err, cb); + } + + return handleSuccess(signedUrl, cb); + } +}); + +module.exports = AWS.CloudFront.Signer; + +},{"../core":4,"crypto":69,"url":81}],3:[function(require,module,exports){ +var AWS = require('./core'); +require('./credentials'); +require('./credentials/credential_provider_chain'); + + +AWS.Config = AWS.util.inherit({ + + + + 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); + }); + }, + + + + + 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')); + } + }, + + + + + 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) || + AWS.Service.hasService(key)) { + this.set(key, value); + } + }); + }, + + + 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; + }, + + + clear: function clear() { + + AWS.util.each.call(this, this.keys, function (key) { + delete this[key]; + }); + + this.set('credentials', undefined); + this.set('credentialProvider', undefined); + }, + + + 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 if (property === 'httpOptions' && this[property]) { + this[property] = AWS.util.merge(this[property], value); + } else { + this[property] = value; + } + }, + + + keys: { + credentials: null, + credentialProvider: null, + region: null, + logger: null, + apiVersions: {}, + apiVersion: null, + endpoint: undefined, + httpOptions: { + timeout: 120000 + }, + maxRetries: undefined, + maxRedirects: 10, + paramValidation: true, + sslEnabled: true, + s3ForcePathStyle: false, + s3BucketEndpoint: false, + computeChecksums: true, + convertResponseTypes: true, + correctClockSkew: false, + customUserAgent: null, + dynamoDbCrc32: true, + systemClockOffset: 0, + signatureVersion: null, + signatureCache: true, + retryDelayOptions: { + base: 100 + }, + useAccelerateEndpoint: false + }, + + + extractCredentials: function extractCredentials(options) { + if (options.accessKeyId && options.secretAccessKey) { + options = AWS.util.copy(options); + options.credentials = new AWS.Credentials(options); + } + return options; + }, + + + setPromisesDependency: function setPromisesDependency(dep) { + AWS.util.addPromisesToRequests(AWS.Request, dep); + } +}); + + +AWS.config = new AWS.Config(); + +},{"./core":4,"./credentials":5,"./credentials/credential_provider_chain":7}],4:[function(require,module,exports){ + +var AWS = { util: require('./util') }; + + +var _hidden = {}; _hidden.toString(); // hack to parse macro + +module.exports = AWS; + +AWS.util.update(AWS, { + + + VERSION: '2.3.19', + + + Signers: {}, + + + Protocol: { + Json: require('./protocol/json'), + Query: require('./protocol/query'), + Rest: require('./protocol/rest'), + RestJson: require('./protocol/rest_json'), + RestXml: require('./protocol/rest_xml') + }, + + + XML: { + Builder: require('./xml/builder'), + Parser: null // conditionally set based on environment + }, + + + JSON: { + Builder: require('./json/builder'), + Parser: require('./json/parser') + }, + + + Model: { + Api: require('./model/api'), + Operation: require('./model/operation'), + Shape: require('./model/shape'), + Paginator: require('./model/paginator'), + ResourceWaiter: require('./model/resource_waiter') + }, + + util: require('./util'), + + + apiLoader: function() { throw new Error('No API loader set'); } +}); + +require('./service'); + +require('./credentials'); +require('./credentials/credential_provider_chain'); +require('./credentials/temporary_credentials'); +require('./credentials/web_identity_credentials'); +require('./credentials/cognito_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'); + + +AWS.events = new AWS.SequentialExecutor(); + +},{"./config":3,"./credentials":5,"./credentials/cognito_identity_credentials":6,"./credentials/credential_provider_chain":7,"./credentials/saml_credentials":8,"./credentials/temporary_credentials":9,"./credentials/web_identity_credentials":10,"./event_listeners":16,"./http":17,"./json/builder":19,"./json/parser":20,"./model/api":21,"./model/operation":23,"./model/paginator":24,"./model/resource_waiter":25,"./model/shape":26,"./param_validator":27,"./protocol/json":28,"./protocol/query":29,"./protocol/rest":30,"./protocol/rest_json":31,"./protocol/rest_xml":32,"./request":36,"./resource_waiter":37,"./response":38,"./sequential_executor":40,"./service":41,"./signers/request_signer":54,"./util":61,"./xml/builder":63}],5:[function(require,module,exports){ +var AWS = require('./core'); + + +AWS.Credentials = AWS.util.inherit({ + + constructor: function Credentials() { + 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]; + } + }, + + + expiryWindow: 15, + + + 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; + } + }, + + + 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(); + } + }, + + + refresh: function refresh(callback) { + this.expired = false; + callback(); + } +}); + +},{"./core":4}],6:[function(require,module,exports){ +var AWS = require('../core'); + + +AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { + + localStorageKey: { + id: 'aws.cognito.identity-id.', + providers: 'aws.cognito.identity-providers.' + }, + + + constructor: function CognitoIdentityCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + this.data = null; + this.identityId = null; + this.loadCachedId(); + }, + + + refresh: function refresh(callback) { + var self = this; + self.createClients(); + self.data = null; + self.identityId = null; + self.getId(function(err) { + if (!err) { + if (!self.params.RoleArn) { + self.getCredentialsForIdentity(callback); + } else { + self.getCredentialsFromSTS(callback); + } + } else { + self.clearCachedId(); + callback(err); + } + }); + }, + + + clearCachedId: function clearCache() { + this.identityId = null; + delete this.params.IdentityId; + + var poolId = this.params.IdentityPoolId; + var loginId = this.params.LoginId || ''; + delete this.storage[this.localStorageKey.id + poolId + loginId]; + delete this.storage[this.localStorageKey.providers + poolId + loginId]; + }, + + + getId: function getId(callback) { + var self = this; + if (typeof self.params.IdentityId === 'string') { + return callback(null, self.params.IdentityId); + } + + self.cognito.getId(function(err, data) { + if (!err && data.IdentityId) { + self.params.IdentityId = data.IdentityId; + callback(null, data.IdentityId); + } else { + callback(err); + } + }); + }, + + + + loadCredentials: function loadCredentials(data, credentials) { + if (!data || !credentials) return; + credentials.expired = false; + credentials.accessKeyId = data.Credentials.AccessKeyId; + credentials.secretAccessKey = data.Credentials.SecretKey; + credentials.sessionToken = data.Credentials.SessionToken; + credentials.expireTime = data.Credentials.Expiration; + }, + + + getCredentialsForIdentity: function getCredentialsForIdentity(callback) { + var self = this; + self.cognito.getCredentialsForIdentity(function(err, data) { + if (!err) { + self.cacheId(data); + self.data = data; + self.loadCredentials(self.data, self); + } else { + self.clearCachedId(); + } + callback(err); + }); + }, + + + getCredentialsFromSTS: function getCredentialsFromSTS(callback) { + var self = this; + self.cognito.getOpenIdToken(function(err, data) { + if (!err) { + self.cacheId(data); + self.params.WebIdentityToken = data.Token; + self.webIdentityCredentials.refresh(function(webErr) { + if (!webErr) { + self.data = self.webIdentityCredentials.data; + self.sts.credentialsFrom(self.data, self); + } else { + self.clearCachedId(); + } + callback(webErr); + }); + } else { + self.clearCachedId(); + callback(err); + } + }); + }, + + + loadCachedId: function loadCachedId() { + var self = this; + + if (AWS.util.isBrowser() && !self.params.IdentityId) { + var id = self.getStorage('id'); + if (id && self.params.Logins) { + var actualProviders = Object.keys(self.params.Logins); + var cachedProviders = + (self.getStorage('providers') || '').split(','); + + var intersect = cachedProviders.filter(function(n) { + return actualProviders.indexOf(n) !== -1; + }); + if (intersect.length !== 0) { + self.params.IdentityId = id; + } + } else if (id) { + self.params.IdentityId = id; + } + } + }, + + + createClients: function() { + this.webIdentityCredentials = this.webIdentityCredentials || + new AWS.WebIdentityCredentials(this.params); + this.cognito = this.cognito || + new AWS.CognitoIdentity({params: this.params}); + this.sts = this.sts || new AWS.STS(); + }, + + + cacheId: function cacheId(data) { + this.identityId = data.IdentityId; + this.params.IdentityId = this.identityId; + + if (AWS.util.isBrowser()) { + this.setStorage('id', data.IdentityId); + + if (this.params.Logins) { + this.setStorage('providers', Object.keys(this.params.Logins).join(',')); + } + } + }, + + + getStorage: function getStorage(key) { + return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')]; + }, + + + setStorage: function setStorage(key, val) { + try { + this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val; + } catch (_) {} + }, + + + storage: (function() { + try { + return AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ? + window.localStorage : {}; + } catch (_) { + return {}; + } + })() +}); + +},{"../core":4}],7:[function(require,module,exports){ +var AWS = require('../core'); + + +AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { + + + constructor: function CredentialProviderChain(providers) { + if (providers) { + this.providers = providers; + } else { + this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); + } + }, + + + 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(getErr) { + resolveNext(getErr, getErr ? null : creds); + }); + } else { + resolveNext(null, creds); + } + } + + resolveNext(); + return this; + } + +}); + + +AWS.CredentialProviderChain.defaultProviders = []; + +},{"../core":4}],8:[function(require,module,exports){ +var AWS = require('../core'); + + +AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { + + constructor: function SAMLCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + }, + + + refresh: function refresh(callback) { + var self = this; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithSAML(function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + + createClients: function() { + this.service = this.service || new AWS.STS({params: this.params}); + } + +}); + +},{"../core":4}],9:[function(require,module,exports){ +var AWS = require('../core'); + + +AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { + + constructor: function TemporaryCredentials(params) { + AWS.Credentials.call(this); + this.loadMasterCredentials(); + this.expired = true; + + this.params = params || {}; + if (this.params.RoleArn) { + this.params.RoleSessionName = + this.params.RoleSessionName || 'temporary-credentials'; + } + }, + + + refresh: function refresh(callback) { + var self = this; + self.createClients(); + 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, function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + + loadMasterCredentials: function loadMasterCredentials() { + this.masterCredentials = AWS.config.credentials; + while (this.masterCredentials.masterCredentials) { + this.masterCredentials = this.masterCredentials.masterCredentials; + } + }, + + + createClients: function() { + this.service = this.service || new AWS.STS({params: this.params}); + } + +}); + +},{"../core":4}],10:[function(require,module,exports){ +var AWS = require('../core'); + + +AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { + + constructor: function WebIdentityCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; + this.data = null; + }, + + + refresh: function refresh(callback) { + var self = this; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithWebIdentity(function (err, data) { + self.data = null; + if (!err) { + self.data = data; + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + + createClients: function() { + this.service = this.service || new AWS.STS({params: this.params}); + } + +}); + +},{"../core":4}],11:[function(require,module,exports){ +var util = require('../core').util; +var typeOf = require('./types').typeOf; +var DynamoDBSet = require('./set'); + +function convertInput(data) { + if (typeOf(data) === 'Object') { + var map = {M: {}}; + for (var key in data) { + map['M'][key] = convertInput(data[key]); + } + return map; + } else if (typeOf(data) === 'Array') { + var list = {L: []}; + for (var i = 0; i < data.length; i++) { + list['L'].push(convertInput(data[i])); + } + return list; + } else if (typeOf(data) === 'Set') { + return formatSet(data); + } else if (typeOf(data) === 'String') { + return { 'S': data }; + } else if (typeOf(data) === 'Number') { + return { 'N': data.toString() }; + } else if (typeOf(data) === 'Binary') { + return { 'B': data }; + } else if (typeOf(data) === 'Boolean') { + return {'BOOL': data}; + } else if (typeOf(data) === 'null') { + return {'NULL': true}; + } +} + +function formatSet(data) { + var map = {}; + switch (data.type) { + case 'String': map['SS'] = data.values; break; + case 'Binary': map['BS'] = data.values; break; + case 'Number': map['NS'] = data.values.map(function (value) { + return value.toString(); + }); + } + return map; +} + +function convertOutput(data) { + var list, map, i; + for (var type in data) { + var values = data[type]; + if (type === 'M') { + map = {}; + for (var key in values) { + map[key] = convertOutput(values[key]); + } + return map; + } else if (type === 'L') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(convertOutput(values[i])); + } + return list; + } else if (type === 'SS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(values[i] + ''); + } + return new DynamoDBSet(list); + } else if (type === 'NS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(Number(values[i])); + } + return new DynamoDBSet(list); + } else if (type === 'BS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(new util.Buffer(values[i])); + } + return new DynamoDBSet(list); + } else if (type === 'S') { + return values + ''; + } else if (type === 'N') { + return Number(values); + } else if (type === 'B') { + return new util.Buffer(values); + } else if (type === 'BOOL') { + return (values === 'true' || values === 'TRUE' || values === true); + } else if (type === 'NULL') { + return null; + } + } +} + +module.exports = { + input: convertInput, + output: convertOutput +}; + +},{"../core":4,"./set":13,"./types":15}],12:[function(require,module,exports){ +var AWS = require('../core'); +var Translator = require('./translator'); +var DynamoDBSet = require('./set'); + + +AWS.DynamoDB.DocumentClient = AWS.util.inherit({ + + + operations: { + batchGetItem: 'batchGet', + batchWriteItem: 'batchWrite', + putItem: 'put', + getItem: 'get', + deleteItem: 'delete', + updateItem: 'update', + scan: 'scan', + query: 'query' + }, + + + constructor: function DocumentClient(options) { + var self = this; + self.options = options || {}; + self.configure(self.options); + }, + + + configure: function configure(options) { + var self = this; + self.service = options.service; + self.bindServiceObject(options); + self.attrValue = + self.service.api.operations.putItem.input.members.Item.value.shape; + }, + + + bindServiceObject: function bindServiceObject(options) { + var self = this; + options = options || {}; + + if (!self.service) { + self.service = new AWS.DynamoDB(options); + } else { + var config = AWS.util.copy(self.service.config); + self.service = new self.service.constructor.__super__(config); + self.service.config.params = + AWS.util.merge(self.service.config.params || {}, options.params); + } + }, + + + batchGet: function(params, callback) { + var self = this; + var request = self.service.batchGetItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + batchWrite: function(params, callback) { + var self = this; + var request = self.service.batchWriteItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + delete: function(params, callback) { + var self = this; + var request = self.service.deleteItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + get: function(params, callback) { + var self = this; + var request = self.service.getItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + put: function put(params, callback) { + var self = this; + var request = self.service.putItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + update: function(params, callback) { + var self = this; + var request = self.service.updateItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + scan: function(params, callback) { + var self = this; + var request = self.service.scan(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + query: function(params, callback) { + var self = this; + var request = self.service.query(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + + createSet: function(list, options) { + options = options || {}; + return new DynamoDBSet(list, options); + }, + + + getTranslator: function() { + return new Translator({attrValue: this.attrValue}); + }, + + + setupRequest: function setupRequest(request) { + var self = this; + var translator = self.getTranslator(); + var operation = request.operation; + var inputShape = request.service.api.operations[operation].input; + request._events.validate.unshift(function(req) { + req.rawParams = AWS.util.copy(req.params); + req.params = translator.translateInput(req.rawParams, inputShape); + }); + }, + + + setupResponse: function setupResponse(request) { + var self = this; + var translator = self.getTranslator(); + var outputShape = self.service.api.operations[request.operation].output; + request.on('extractData', function(response) { + response.data = translator.translateOutput(response.data, outputShape); + }); + + var response = request.response; + response.nextPage = function(cb) { + var resp = this; + var req = resp.request; + var config; + var service = req.service; + var operation = req.operation; + try { + config = service.paginationConfig(operation, true); + } catch (e) { resp.error = e; } + + if (!resp.hasNextPage()) { + if (cb) cb(resp.error, null); + else if (resp.error) throw resp.error; + return null; + } + + var params = AWS.util.copy(req.rawParams); + if (!resp.nextPageTokens) { + return cb ? cb(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]] = resp.nextPageTokens[i]; + } + return self[operation](params, cb); + } + }; + } + +}); + +module.exports = AWS.DynamoDB.DocumentClient; + +},{"../core":4,"./set":13,"./translator":14}],13:[function(require,module,exports){ +var util = require('../core').util; +var typeOf = require('./types').typeOf; + +var DynamoDBSet = util.inherit({ + + constructor: function Set(list, options) { + options = options || {}; + this.initialize(list, options.validate); + }, + + initialize: function(list, validate) { + var self = this; + self.values = [].concat(list); + self.detectType(); + if (validate) { + self.validate(); + } + }, + + detectType: function() { + var self = this; + var value = self.values[0]; + if (typeOf(value) === 'String') { + self.type = 'String'; + } else if (typeOf(value) === 'Number') { + self.type = 'Number'; + } else if (typeOf(value) === 'Binary') { + self.type = 'Binary'; + } else { + throw util.error(new Error(), { + code: 'InvalidSetType', + message: 'Sets can contain string, number, or binary values' + }); + } + }, + + validate: function() { + var self = this; + var length = self.values.length; + var values = self.values; + for (var i = 0; i < length; i++) { + if (typeOf(values[i]) !== self.type) { + throw util.error(new Error(), { + code: 'InvalidType', + message: self.type + ' Set contains ' + typeOf(values[i]) + ' value' + }); + } + } + } + +}); + +module.exports = DynamoDBSet; + +},{"../core":4,"./types":15}],14:[function(require,module,exports){ +var util = require('../core').util; +var convert = require('./converter'); + +var Translator = function(options) { + options = options || {}; + this.attrValue = options.attrValue; +}; + +Translator.prototype.translateInput = function(value, shape) { + this.mode = 'input'; + return this.translate(value, shape); +}; + +Translator.prototype.translateOutput = function(value, shape) { + this.mode = 'output'; + return this.translate(value, shape); +}; + +Translator.prototype.translate = function(value, shape) { + var self = this; + if (!shape || value === undefined) return undefined; + + if (shape.shape === self.attrValue) { + return convert[self.mode](value); + } + switch (shape.type) { + case 'structure': return self.translateStructure(value, shape); + case 'map': return self.translateMap(value, shape); + case 'list': return self.translateList(value, shape); + default: return self.translateScalar(value, shape); + } +}; + +Translator.prototype.translateStructure = function(structure, shape) { + var self = this; + if (structure == null) return undefined; + + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + var result = self.translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; +}; + +Translator.prototype.translateList = function(list, shape) { + var self = this; + if (list == null) return undefined; + + var out = []; + util.arrayEach(list, function(value) { + var result = self.translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; +}; + +Translator.prototype.translateMap = function(map, shape) { + var self = this; + if (map == null) return undefined; + + var out = {}; + util.each(map, function(key, value) { + var result = self.translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; +}; + +Translator.prototype.translateScalar = function(value, shape) { + return shape.toType(value); +}; + +module.exports = Translator; + +},{"../core":4,"./converter":11}],15:[function(require,module,exports){ +var util = require('../core').util; + +function typeOf(data) { + if (data === null && typeof data === 'object') { + return 'null'; + } else if (data !== undefined && isBinary(data)) { + return 'Binary'; + } else if (data !== undefined && data.constructor) { + return util.typeName(data.constructor); + } else { + return 'undefined'; + } +} + +function isBinary(data) { + var types = [ + 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView', + 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', + 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', + 'Float32Array', 'Float64Array' + ]; + if (util.isNode()) { + var Stream = util.nodeRequire('stream').Stream; + if (util.Buffer.isBuffer(data) || data instanceof Stream) + return true; + } else { + for (var i = 0; i < types.length; i++) { + if (data !== undefined && data.constructor) { + if (util.isType(data, types[i])) return true; + if (util.typeName(data.constructor) === types[i]) return true; + } + } + } + return false; +} + +module.exports = { + typeOf: typeOf, + isBinary: isBinary +}; + +},{"../core":4}],16:[function(require,module,exports){ +var AWS = require('./core'); +var SequentialExecutor = require('./sequential_executor'); + + +AWS.EventListeners = { + + Core: {} /* doc hack */ +}; + +AWS.EventListeners = { + Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) { + addAsync('VALIDATE_CREDENTIALS', 'validate', + function VALIDATE_CREDENTIALS(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + req.service.config.getCredentials(function(err) { + if (err) { + req.response.error = AWS.util.error(err, + {code: 'CredentialsError', message: 'Missing credentials in config'}); + } + done(); + }); + }); + + add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { + if (!req.service.config.region && !req.service.isGlobalEndpoint) { + req.response.error = AWS.util.error(new Error(), + {code: 'ConfigError', message: 'Missing region in config'}); + } + }); + + add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { + var rules = req.service.api.operations[req.operation].input; + var validation = req.service.config.paramValidation; + new AWS.ParamValidator(validation).validate(rules, req.params); + }); + + addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { + req.haltHandlersOnError(); + if (!req.service.api.signatureVersion) return done(); // none + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + var body = req.httpRequest.body || ''; + AWS.util.computeSha256(body, function(err, sha) { + if (err) { + done(err); + } + else { + req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; + done(); + } + }); + } else { + done(); + } + }); + + 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; + }); + + add('RESTART', 'restart', function RESTART() { + var err = this.response.error; + if (!err || !err.retryable) return; + + this.httpRequest = new AWS.HttpRequest( + this.service.endpoint, + this.service.region + ); + + if (this.response.retryCount < this.service.config.maxRetries) { + this.response.retryCount++; + } else { + this.response.error = null; + } + }); + + 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, + req.service.config.signatureCache); + + delete req.httpRequest.headers['Authorization']; + delete req.httpRequest.headers['Date']; + delete req.httpRequest.headers['X-Amz-Date']; + + 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.httpResponse.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(value) { + resp.request.emit('httpUploadProgress', [value, resp]); + }); + + httpResp.on('receiveProgress', function onReceiveProgress(value) { + resp.request.emit('httpDownloadProgress', [value, 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 || {}; + try { + var stream = http.handleRequest(resp.request.httpRequest, httpOptions, + callback, error); + progress(stream); + } catch (err) { + error(err); + } + } + + 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; + var dateHeader = headers.date || headers.Date; + if (dateHeader) { + var serverTime = Date.parse(dateHeader); + if (resp.request.service.config.correctClockSkew + && AWS.util.isClockSkewed(serverTime)) { + AWS.util.applyClockOffset(serverTime); + } + } + }); + + 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) { + 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) { + if (!resp.error) return; + switch (resp.error.code) { + case 'RequestExpired': // EC2 only + case 'ExpiredTokenException': + case 'ExpiredToken': + resp.error.retryable = true; + resp.request.service.config.credentials.expired = true; + } + }); + + add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { + var err = resp.error; + if (!err) return; + if (typeof err.code === 'string' && typeof err.message === 'string') { + if (err.code.match(/Signature/) && err.message.match(/expired/)) { + resp.error.retryable = true; + } + } + }); + + add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { + if (!resp.error) return; + if (this.service.clockSkewError(resp.error) + && this.service.config.correctClockSkew + && AWS.config.isClockSkewed) { + resp.error.retryable = 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']); + this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; + 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; + } else if (resp.retryCount < resp.maxRetries) { + resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; + } + } + }); + + addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { + var delay, willRetry = false; + + if (resp.error) { + delay = resp.error.retryDelay || 0; + if (resp.error.retryable && resp.retryCount < resp.maxRetries) { + resp.retryCount++; + willRetry = true; + } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.redirectCount++; + willRetry = true; + } + } + + if (willRetry) { + resp.error = null; + setTimeout(done, delay); + } else { + done(); + } + }); + }), + + CorePost: new SequentialExecutor().addNamedListeners(function(add) { + add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); + add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); + + add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { + if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { + var message = 'Inaccessible host: `' + err.hostname + + '\'. This service may not be available in the `' + err.region + + '\' region.'; + this.response.error = AWS.util.error(new Error(message), { + code: 'UnknownEndpoint', + region: err.region, + hostname: err.hostname, + retryable: true, + originalError: err + }); + } + }); + }), + + Logger: new 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, null); + + 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 += ' ' + AWS.util.string.lowerFirst(req.operation); + message += '(' + 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 SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/json'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Rest: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/rest'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestJson: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/rest_json'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestXml: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/rest_xml'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Query: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/query'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }) +}; + +},{"./core":4,"./protocol/json":28,"./protocol/query":29,"./protocol/rest":30,"./protocol/rest_json":31,"./protocol/rest_xml":32,"./sequential_executor":40,"util":83}],17:[function(require,module,exports){ +var AWS = require('./core'); +var inherit = AWS.util.inherit; + + +AWS.Endpoint = inherit({ + + + 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)); + + if (this.port) { + this.port = parseInt(this.port, 10); + } else { + this.port = this.protocol === 'https:' ? 443 : 80; + } + } + +}); + + +AWS.HttpRequest = inherit({ + + + constructor: function HttpRequest(endpoint, region, customUserAgent) { + endpoint = new AWS.Endpoint(endpoint); + this.method = 'POST'; + this.path = endpoint.path || '/'; + this.headers = {}; + this.body = ''; + this.endpoint = endpoint; + this.region = region; + this.setUserAgent(customUserAgent); + }, + + + setUserAgent: function setUserAgent(customUserAgent) { + var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; + var customSuffix = ''; + if (typeof customUserAgent === 'string' && customUserAgent) { + customSuffix += ' ' + customUserAgent; + } + this.headers[prefix + 'User-Agent'] = AWS.util.userAgent() + customSuffix; + }, + + + pathname: function pathname() { + return this.path.split('?', 1)[0]; + }, + + + search: function search() { + var query = this.path.split('?', 2)[1]; + if (query) { + query = AWS.util.queryStringParse(query); + return AWS.util.queryParamsToString(query); + } + return ''; + } + +}); + + +AWS.HttpResponse = inherit({ + + + constructor: function HttpResponse() { + this.statusCode = undefined; + this.headers = {}; + this.body = undefined; + this.streaming = false; + this.stream = null; + }, + + + createUnbufferedStream: function createUnbufferedStream() { + this.streaming = true; + return this.stream; + } +}); + + +AWS.HttpClient = inherit({}); + + +AWS.HttpClient.getInstance = function getInstance() { + if (this.singleton === undefined) { + this.singleton = new this(); + } + return this.singleton; +}; + +},{"./core":4}],18:[function(require,module,exports){ +var AWS = require('../core'); +var EventEmitter = require('events').EventEmitter; +require('../http'); + + +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(), headersEmitted = false; + httpRequest.stream = xhr; + + xhr.addEventListener('readystatechange', function() { + try { + if (xhr.status === 0) return; // 0 code is invalid + } catch (e) { return; } + + if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) { + try { xhr.responseType = 'arraybuffer'; } catch (e) {} + emitter.statusCode = xhr.status; + emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders()); + emitter.emit('headers', emitter.statusCode, emitter.headers); + headersEmitted = true; + } + 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, httpOptions.xhrAsync !== false); + AWS.util.each(httpRequest.headers, function (key, value) { + if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { + xhr.setRequestHeader(key, value); + } + }); + + if (httpOptions.timeout && httpOptions.xhrAsync !== false) { + xhr.timeout = httpOptions.timeout; + } + + if (httpOptions.xhrWithCredentials) { + xhr.withCredentials = true; + } + + try { + xhr.send(httpRequest.body); + } catch (err) { + if (httpRequest.body && typeof httpRequest.body.buffer === 'object') { + xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly + } else { + throw err; + } + } + + 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.toLowerCase()] = 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'); + } +}); + + +AWS.HttpClient.prototype = AWS.XHRClient.prototype; + + +AWS.HttpClient.streamsApiVersion = 1; + +},{"../core":4,"../http":17,"events":74}],19:[function(require,module,exports){ +var util = require('../util'); + +function JsonBuilder() { } + +JsonBuilder.prototype.build = function(value, shape) { + return JSON.stringify(translate(value, shape)); +}; + +function translate(value, shape) { + if (!shape || value === undefined || value === null) return undefined; + + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } +} + +function translateStructure(structure, shape) { + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + if (memberShape.location !== 'body') return; + var locationName = memberShape.isLocationName ? memberShape.name : name; + var result = translate(value, memberShape); + if (result !== undefined) struct[locationName] = result; + } + }); + return struct; +} + +function translateList(list, shape) { + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result !== undefined) out.push(result); + }); + return out; +} + +function translateMap(map, shape) { + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result !== undefined) out[key] = result; + }); + return out; +} + +function translateScalar(value, shape) { + return shape.toWireFormat(value); +} + +module.exports = JsonBuilder; + +},{"../util":61}],20:[function(require,module,exports){ +var util = require('../util'); + +function JsonParser() { } + +JsonParser.prototype.parse = function(value, shape) { + return translate(JSON.parse(value), shape); +}; + +function translate(value, shape) { + if (!shape || value === undefined) return undefined; + + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } +} + +function translateStructure(structure, shape) { + if (structure == null) return undefined; + + var struct = {}; + var shapeMembers = shape.members; + util.each(shapeMembers, function(name, memberShape) { + var locationName = memberShape.isLocationName ? memberShape.name : name; + if (structure.hasOwnProperty(locationName)) { + var value = structure[locationName]; + var result = translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; +} + +function translateList(list, shape) { + if (list == null) return undefined; + + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; +} + +function translateMap(map, shape) { + if (map == null) return undefined; + + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; +} + +function translateScalar(value, shape) { + return shape.toType(value); +} + +module.exports = JsonParser; + +},{"../util":61}],21:[function(require,module,exports){ +var Collection = require('./collection'); +var Operation = require('./operation'); +var Shape = require('./shape'); +var Paginator = require('./paginator'); +var ResourceWaiter = require('./resource_waiter'); + +var util = require('../util'); +var property = util.property; +var memoizedProperty = util.memoizedProperty; + +function Api(api, options) { + api = api || {}; + options = options || {}; + options.api = this; + + api.metadata = api.metadata || {}; + + property(this, 'isApi', true, false); + property(this, 'apiVersion', api.metadata.apiVersion); + property(this, 'endpointPrefix', api.metadata.endpointPrefix); + property(this, 'signingName', api.metadata.signingName); + property(this, 'globalEndpoint', api.metadata.globalEndpoint); + property(this, 'signatureVersion', api.metadata.signatureVersion); + property(this, 'jsonVersion', api.metadata.jsonVersion); + property(this, 'targetPrefix', api.metadata.targetPrefix); + property(this, 'protocol', api.metadata.protocol); + property(this, 'timestampFormat', api.metadata.timestampFormat); + property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); + property(this, 'abbreviation', api.metadata.serviceAbbreviation); + property(this, 'fullName', api.metadata.serviceFullName); + + memoizedProperty(this, 'className', function() { + var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; + if (!name) return null; + + name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); + if (name === 'ElasticLoadBalancing') name = 'ELB'; + return name; + }); + + property(this, 'operations', new Collection(api.operations, options, function(name, operation) { + return new Operation(name, operation, options); + }, util.string.lowerFirst)); + + property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { + return Shape.create(shape, options); + })); + + property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { + return new Paginator(name, paginator, options); + })); + + property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { + return new ResourceWaiter(name, waiter, options); + }, util.string.lowerFirst)); + + if (options.documentation) { + property(this, 'documentation', api.documentation); + property(this, 'documentationUrl', api.documentationUrl); + } +} + +module.exports = Api; + +},{"../util":61,"./collection":22,"./operation":23,"./paginator":24,"./resource_waiter":25,"./shape":26}],22:[function(require,module,exports){ +var memoizedProperty = require('../util').memoizedProperty; + +function memoize(name, value, fn, nameTr) { + memoizedProperty(this, nameTr(name), function() { + return fn(name, value); + }); +} + +function Collection(iterable, options, fn, nameTr) { + nameTr = nameTr || String; + var self = this; + + for (var id in iterable) { + if (iterable.hasOwnProperty(id)) { + memoize.call(self, id, iterable[id], fn, nameTr); + } + } +} + +module.exports = Collection; + +},{"../util":61}],23:[function(require,module,exports){ +var Shape = require('./shape'); + +var util = require('../util'); +var property = util.property; +var memoizedProperty = util.memoizedProperty; + +function Operation(name, operation, options) { + options = options || {}; + + property(this, 'name', operation.name || name); + property(this, 'api', options.api, false); + + operation.http = operation.http || {}; + property(this, 'httpMethod', operation.http.method || 'POST'); + property(this, 'httpPath', operation.http.requestUri || '/'); + property(this, 'authtype', operation.authtype || ''); + + memoizedProperty(this, 'input', function() { + if (!operation.input) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.input, options); + }); + + memoizedProperty(this, 'output', function() { + if (!operation.output) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.output, options); + }); + + memoizedProperty(this, 'errors', function() { + var list = []; + if (!operation.errors) return null; + + for (var i = 0; i < operation.errors.length; i++) { + list.push(Shape.create(operation.errors[i], options)); + } + + return list; + }); + + memoizedProperty(this, 'paginator', function() { + return options.api.paginators[name]; + }); + + if (options.documentation) { + property(this, 'documentation', operation.documentation); + property(this, 'documentationUrl', operation.documentationUrl); + } +} + +module.exports = Operation; + +},{"../util":61,"./shape":26}],24:[function(require,module,exports){ +var property = require('../util').property; + +function Paginator(name, paginator) { + property(this, 'inputToken', paginator.input_token); + property(this, 'limitKey', paginator.limit_key); + property(this, 'moreResults', paginator.more_results); + property(this, 'outputToken', paginator.output_token); + property(this, 'resultKey', paginator.result_key); +} + +module.exports = Paginator; + +},{"../util":61}],25:[function(require,module,exports){ +var util = require('../util'); +var property = util.property; + +function ResourceWaiter(name, waiter, options) { + options = options || {}; + property(this, 'name', name); + property(this, 'api', options.api, false); + + if (waiter.operation) { + property(this, 'operation', util.string.lowerFirst(waiter.operation)); + } + + var self = this; + var keys = [ + 'type', + 'description', + 'delay', + 'maxAttempts', + 'acceptors' + ]; + + keys.forEach(function(key) { + var value = waiter[key]; + if (value) { + property(self, key, value); + } + }); +} + +module.exports = ResourceWaiter; + +},{"../util":61}],26:[function(require,module,exports){ +var Collection = require('./collection'); + +var util = require('../util'); + +function property(obj, name, value) { + if (value !== null && value !== undefined) { + util.property.apply(this, arguments); + } +} + +function memoizedProperty(obj, name) { + if (!obj.constructor.prototype[name]) { + util.memoizedProperty.apply(this, arguments); + } +} + +function Shape(shape, options, memberName) { + options = options || {}; + + property(this, 'shape', shape.shape); + property(this, 'api', options.api, false); + property(this, 'type', shape.type); + property(this, 'enum', shape.enum); + property(this, 'min', shape.min); + property(this, 'max', shape.max); + property(this, 'pattern', shape.pattern); + property(this, 'location', shape.location || this.location || 'body'); + property(this, 'name', this.name || shape.xmlName || shape.queryName || + shape.locationName || memberName); + property(this, 'isStreaming', shape.streaming || this.isStreaming || false); + property(this, 'isComposite', shape.isComposite || false); + property(this, 'isShape', true, false); + property(this, 'isQueryName', shape.queryName ? true : false, false); + property(this, 'isLocationName', shape.locationName ? true : false, false); + + if (options.documentation) { + property(this, 'documentation', shape.documentation); + property(this, 'documentationUrl', shape.documentationUrl); + } + + if (shape.xmlAttribute) { + property(this, 'isXmlAttribute', shape.xmlAttribute || false); + } + + property(this, 'defaultValue', null); + this.toWireFormat = function(value) { + if (value === null || value === undefined) return ''; + return value; + }; + this.toType = function(value) { return value; }; +} + + +Shape.normalizedTypes = { + character: 'string', + double: 'float', + long: 'integer', + short: 'integer', + biginteger: 'integer', + bigdecimal: 'float', + blob: 'binary' +}; + + +Shape.types = { + 'structure': StructureShape, + 'list': ListShape, + 'map': MapShape, + 'boolean': BooleanShape, + 'timestamp': TimestampShape, + 'float': FloatShape, + 'integer': IntegerShape, + 'string': StringShape, + 'base64': Base64Shape, + 'binary': BinaryShape +}; + +Shape.resolve = function resolve(shape, options) { + if (shape.shape) { + var refShape = options.api.shapes[shape.shape]; + if (!refShape) { + throw new Error('Cannot find shape reference: ' + shape.shape); + } + + return refShape; + } else { + return null; + } +}; + +Shape.create = function create(shape, options, memberName) { + if (shape.isShape) return shape; + + var refShape = Shape.resolve(shape, options); + if (refShape) { + var filteredKeys = Object.keys(shape); + if (!options.documentation) { + filteredKeys = filteredKeys.filter(function(name) { + return !name.match(/documentation/); + }); + } + if (filteredKeys === ['shape']) { // no inline customizations + return refShape; + } + + var InlineShape = function() { + refShape.constructor.call(this, shape, options, memberName); + }; + InlineShape.prototype = refShape; + return new InlineShape(); + } else { + if (!shape.type) { + if (shape.members) shape.type = 'structure'; + else if (shape.member) shape.type = 'list'; + else if (shape.key) shape.type = 'map'; + else shape.type = 'string'; + } + + var origType = shape.type; + if (Shape.normalizedTypes[shape.type]) { + shape.type = Shape.normalizedTypes[shape.type]; + } + + if (Shape.types[shape.type]) { + return new Shape.types[shape.type](shape, options, memberName); + } else { + throw new Error('Unrecognized shape type: ' + origType); + } + } +}; + +function CompositeShape(shape) { + Shape.apply(this, arguments); + property(this, 'isComposite', true); + + if (shape.flattened) { + property(this, 'flattened', shape.flattened || false); + } +} + +function StructureShape(shape, options) { + var requiredMap = null, firstInit = !this.isShape; + + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'members', {}); + property(this, 'memberNames', []); + property(this, 'required', []); + property(this, 'isRequired', function() { return false; }); + } + + if (shape.members) { + property(this, 'members', new Collection(shape.members, options, function(name, member) { + return Shape.create(member, options, name); + })); + memoizedProperty(this, 'memberNames', function() { + return shape.xmlOrder || Object.keys(shape.members); + }); + } + + if (shape.required) { + property(this, 'required', shape.required); + property(this, 'isRequired', function(name) { + if (!requiredMap) { + requiredMap = {}; + for (var i = 0; i < shape.required.length; i++) { + requiredMap[shape.required[i]] = true; + } + } + + return requiredMap[name]; + }, false, true); + } + + property(this, 'resultWrapper', shape.resultWrapper || null); + + if (shape.payload) { + property(this, 'payload', shape.payload); + } + + if (typeof shape.xmlNamespace === 'string') { + property(this, 'xmlNamespaceUri', shape.xmlNamespace); + } else if (typeof shape.xmlNamespace === 'object') { + property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix); + property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri); + } +} + +function ListShape(shape, options) { + var self = this, firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return []; }); + } + + if (shape.member) { + memoizedProperty(this, 'member', function() { + return Shape.create(shape.member, options); + }); + } + + if (this.flattened) { + var oldName = this.name; + memoizedProperty(this, 'name', function() { + return self.member.name || oldName; + }); + } +} + +function MapShape(shape, options) { + var firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'key', Shape.create({type: 'string'}, options)); + property(this, 'value', Shape.create({type: 'string'}, options)); + } + + if (shape.key) { + memoizedProperty(this, 'key', function() { + return Shape.create(shape.key, options); + }); + } + if (shape.value) { + memoizedProperty(this, 'value', function() { + return Shape.create(shape.value, options); + }); + } +} + +function TimestampShape(shape) { + var self = this; + Shape.apply(this, arguments); + + if (this.location === 'header') { + property(this, 'timestampFormat', 'rfc822'); + } else if (shape.timestampFormat) { + property(this, 'timestampFormat', shape.timestampFormat); + } else if (this.api) { + if (this.api.timestampFormat) { + property(this, 'timestampFormat', this.api.timestampFormat); + } else { + switch (this.api.protocol) { + case 'json': + case 'rest-json': + property(this, 'timestampFormat', 'unixTimestamp'); + break; + case 'rest-xml': + case 'query': + case 'ec2': + property(this, 'timestampFormat', 'iso8601'); + break; + } + } + } + + this.toType = function(value) { + if (value === null || value === undefined) return null; + if (typeof value.toUTCString === 'function') return value; + return typeof value === 'string' || typeof value === 'number' ? + util.date.parseTimestamp(value) : null; + }; + + this.toWireFormat = function(value) { + return util.date.format(value, self.timestampFormat); + }; +} + +function StringShape() { + Shape.apply(this, arguments); + + if (this.api) { + switch (this.api.protocol) { + case 'rest-xml': + case 'query': + case 'ec2': + this.toType = function(value) { return value || ''; }; + } + } +} + +function FloatShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseFloat(value); + }; + this.toWireFormat = this.toType; +} + +function IntegerShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseInt(value, 10); + }; + this.toWireFormat = this.toType; +} + +function BinaryShape() { + Shape.apply(this, arguments); + this.toType = util.base64.decode; + this.toWireFormat = util.base64.encode; +} + +function Base64Shape() { + BinaryShape.apply(this, arguments); +} + +function BooleanShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (typeof value === 'boolean') return value; + if (value === null || value === undefined) return null; + return value === 'true'; + }; +} + + +Shape.shapes = { + StructureShape: StructureShape, + ListShape: ListShape, + MapShape: MapShape, + StringShape: StringShape, + BooleanShape: BooleanShape, + Base64Shape: Base64Shape +}; + +module.exports = Shape; + +},{"../util":61,"./collection":22}],27:[function(require,module,exports){ +var AWS = require('./core'); + + +AWS.ParamValidator = AWS.util.inherit({ + + constructor: function ParamValidator(validation) { + if (validation === true || validation === undefined) { + validation = {'min': true}; + } + this.validation = validation; + }, + + validate: function validate(shape, params, context) { + this.errors = []; + this.validateMember(shape, params || {}, context || 'params'); + + if (this.errors.length > 1) { + var msg = this.errors.join('\n* '); + msg = 'There were ' + this.errors.length + + ' validation errors:\n* ' + msg; + throw AWS.util.error(new Error(msg), + {code: 'MultipleValidationErrors', errors: this.errors}); + } else if (this.errors.length === 1) { + throw this.errors[0]; + } else { + return true; + } + }, + + fail: function fail(code, message) { + this.errors.push(AWS.util.error(new Error(message), {code: code})); + }, + + validateStructure: function validateStructure(shape, params, context) { + this.validateType(params, context, ['object'], 'structure'); + + var paramName; + for (var i = 0; shape.required && i < shape.required.length; i++) { + paramName = shape.required[i]; + var value = params[paramName]; + if (value === undefined || value === null) { + this.fail('MissingRequiredParameter', + 'Missing required key \'' + paramName + '\' in ' + context); + } + } + + for (paramName in params) { + if (!params.hasOwnProperty(paramName)) continue; + + var paramValue = params[paramName], + memberShape = shape.members[paramName]; + + if (memberShape !== undefined) { + var memberContext = [context, paramName].join('.'); + this.validateMember(memberShape, paramValue, memberContext); + } else { + this.fail('UnexpectedParameter', + 'Unexpected key \'' + paramName + '\' found in ' + context); + } + } + + return true; + }, + + validateMember: function validateMember(shape, param, context) { + switch (shape.type) { + case 'structure': + return this.validateStructure(shape, param, context); + case 'list': + return this.validateList(shape, param, context); + case 'map': + return this.validateMap(shape, param, context); + default: + return this.validateScalar(shape, param, context); + } + }, + + validateList: function validateList(shape, params, context) { + if (this.validateType(params, context, [Array])) { + this.validateRange(shape, params.length, context, 'list member count'); + for (var i = 0; i < params.length; i++) { + this.validateMember(shape.member, params[i], context + '[' + i + ']'); + } + } + }, + + validateMap: function validateMap(shape, params, context) { + if (this.validateType(params, context, ['object'], 'map')) { + var mapCount = 0; + for (var param in params) { + if (!params.hasOwnProperty(param)) continue; + this.validateMember(shape.key, param, + context + '[key=\'' + param + '\']') + this.validateMember(shape.value, params[param], + context + '[\'' + param + '\']'); + mapCount++; + } + this.validateRange(shape, mapCount, context, 'map member count'); + } + }, + + validateScalar: function validateScalar(shape, value, context) { + switch (shape.type) { + case null: + case undefined: + case 'string': + return this.validateString(shape, value, context); + case 'base64': + case 'binary': + return this.validatePayload(value, context); + case 'integer': + case 'float': + return this.validateNumber(shape, value, context); + case 'boolean': + return this.validateType(value, context, ['boolean']); + case 'timestamp': + return this.validateType(value, context, [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 ' + + shape.type + ' for ' + context); + } + }, + + validateString: function validateString(shape, value, context) { + if (this.validateType(value, context, ['string'])) { + this.validateEnum(shape, value, context); + this.validateRange(shape, value.length, context, 'string length'); + this.validatePattern(shape, value, context); + } + }, + + validatePattern: function validatePattern(shape, value, context) { + if (this.validation['pattern'] && shape['pattern'] !== undefined) { + if (!(new RegExp(shape['pattern'])).test(value)) { + this.fail('PatternMatchError', 'Provided value "' + value + '" ' + + 'does not match regex pattern /' + shape['pattern'] + '/ for ' + + context); + } + } + }, + + validateRange: function validateRange(shape, value, context, descriptor) { + if (this.validation['min']) { + if (shape['min'] !== undefined && value < shape['min']) { + this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' + + shape['min'] + ', but found ' + value + ' for ' + context); + } + } + if (this.validation['max']) { + if (shape['max'] !== undefined && value > shape['max']) { + this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' + + shape['max'] + ', but found ' + value + ' for ' + context); + } + } + }, + + validateEnum: function validateRange(shape, value, context) { + if (this.validation['enum'] && shape['enum'] !== undefined) { + if (shape['enum'].indexOf(value) === -1) { + this.fail('EnumError', 'Found string value of ' + value + ', but ' + + 'expected ' + shape['enum'].join('|') + ' for ' + context); + } + } + }, + + validateType: function validateType(value, context, acceptedTypes, type) { + if (value === null || value === undefined) return false; + + var foundInvalidType = false; + for (var i = 0; i < acceptedTypes.length; i++) { + if (typeof acceptedTypes[i] === 'string') { + if (typeof value === acceptedTypes[i]) return true; + } else if (acceptedTypes[i] instanceof RegExp) { + if ((value || '').toString().match(acceptedTypes[i])) return true; + } else { + if (value instanceof acceptedTypes[i]) return true; + if (AWS.util.isType(value, acceptedTypes[i])) return true; + 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); + return false; + }, + + validateNumber: function validateNumber(shape, value, context) { + if (value === null || value === undefined) return; + if (typeof value === 'string') { + var castedValue = parseFloat(value); + if (castedValue.toString() === value) value = castedValue; + } + if (this.validateType(value, context, ['number'])) { + this.validateRange(shape, value, context, 'numeric value'); + } + }, + + validatePayload: function validatePayload(value, context) { + 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'); + } +}); + +},{"./core":4}],28:[function(require,module,exports){ +var util = require('../util'); +var JsonBuilder = require('../json/builder'); +var JsonParser = require('../json/parser'); + +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 input = api.operations[req.operation].input; + var builder = new JsonBuilder(); + + if (version === 1) version = '1.0'; + httpRequest.body = builder.build(req.params || {}, input); + httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; + httpRequest.headers['X-Amz-Target'] = target; +} + +function extractError(resp) { + var error = {}; + var httpResponse = resp.httpResponse; + + error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; + if (typeof error.code === 'string') { + error.code = error.code.split(':')[0]; + } + + 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(); + } + if (error.code === 'RequestEntityTooLarge') { + error.message = 'Request body must be less than 1 MB'; + } else { + error.message = (e.message || e.Message || null); + } + } else { + error.statusCode = httpResponse.statusCode; + error.message = httpResponse.statusCode.toString(); + } + + resp.error = util.error(new Error(), error); +} + +function extractData(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + if (resp.request.service.config.convertResponseTypes === false) { + resp.data = JSON.parse(body); + } else { + var operation = resp.request.service.api.operations[resp.request.operation]; + var shape = operation.output || {}; + var parser = new JsonParser(); + resp.data = parser.parse(body, shape); + } +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; + +},{"../json/builder":19,"../json/parser":20,"../util":61}],29:[function(require,module,exports){ +var AWS = require('../core'); +var util = require('../util'); +var QueryParamSerializer = require('../query/query_param_serializer'); +var Shape = require('../model/shape'); + +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 + }; + + var builder = new QueryParamSerializer(); + builder.serialize(req.params, operation.input, function(name, value) { + httpRequest.params[name] = value; + }); + httpRequest.body = util.queryParamsToString(httpRequest.params); +} + +function extractError(resp) { + var data, body = resp.httpResponse.body.toString(); + if (body.match('= 0 ? '&' : '?'); + var parts = []; + util.arrayEach(Object.keys(queryString).sort(), function(key) { + if (!Array.isArray(queryString[key])) { + queryString[key] = [queryString[key]]; + } + for (var i = 0; i < queryString[key].length; i++) { + parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); + } + }); + uri += parts.join('&'); + } + + req.httpRequest.path = uri; +} + +function populateHeaders(req) { + var operation = req.service.api.operations[req.operation]; + util.each(operation.input.members, function (name, member) { + var value = req.params[name]; + if (value === null || value === undefined) return; + + if (member.location === 'headers' && member.type === 'map') { + util.each(value, function(key, memberValue) { + req.httpRequest.headers[member.name + key] = memberValue; + }); + } else if (member.location === 'header') { + value = member.toWireFormat(value).toString(); + req.httpRequest.headers[member.name] = value; + } + }); +} + +function buildRequest(req) { + populateMethod(req); + populateURI(req); + populateHeaders(req); +} + +function extractError() { +} + +function extractData(resp) { + var req = resp.request; + var data = {}; + var r = resp.httpResponse; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + var headers = {}; + util.each(r.headers, function (k, v) { + headers[k.toLowerCase()] = v; + }); + + util.each(output.members, function(name, member) { + var header = (member.name || name).toLowerCase(); + if (member.location === 'headers' && member.type === 'map') { + data[name] = {}; + var location = member.isLocationName ? member.name : ''; + var pattern = new RegExp('^' + location + '(.+)', 'i'); + util.each(r.headers, function (k, v) { + var result = k.match(pattern); + if (result !== null) { + data[name][result[1]] = v; + } + }); + } else if (member.location === 'header') { + if (headers[header] !== undefined) { + data[name] = headers[header]; + } + } else if (member.location === 'statusCode') { + data[name] = parseInt(r.statusCode, 10); + } + }); + + resp.data = data; +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; + +},{"../util":61}],31:[function(require,module,exports){ +var util = require('../util'); +var Rest = require('./rest'); +var Json = require('./json'); +var JsonBuilder = require('../json/builder'); +var JsonParser = require('../json/parser'); + +function populateBody(req) { + var builder = new JsonBuilder(); + var input = req.service.api.operations[req.operation].input; + + if (input.payload) { + var params = {}; + var payloadShape = input.members[input.payload]; + params = req.params[input.payload]; + if (params === undefined) return; + + if (payloadShape.type === 'structure') { + req.httpRequest.body = builder.build(params, payloadShape); + } else { // non-JSON payload + req.httpRequest.body = params; + } + } else { + req.httpRequest.body = builder.build(req.params, input); + } +} + +function buildRequest(req) { + Rest.buildRequest(req); + + if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } +} + +function extractError(resp) { + Json.extractError(resp); +} + +function extractData(resp) { + Rest.extractData(resp); + + var req = resp.request; + var rules = req.service.api.operations[req.operation].output || {}; + if (rules.payload) { + var payloadMember = rules.members[rules.payload]; + var body = resp.httpResponse.body; + if (payloadMember.isStreaming) { + resp.data[rules.payload] = body; + } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') { + var parser = new JsonParser(); + resp.data[rules.payload] = parser.parse(body, payloadMember); + } else { + resp.data[rules.payload] = body.toString(); + } + } else { + var data = resp.data; + Json.extractData(resp); + resp.data = util.merge(data, resp.data); + } +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; + +},{"../json/builder":19,"../json/parser":20,"../util":61,"./json":28,"./rest":30}],32:[function(require,module,exports){ +var AWS = require('../core'); +var util = require('../util'); +var Rest = require('./rest'); + +function populateBody(req) { + var input = req.service.api.operations[req.operation].input; + var builder = new AWS.XML.Builder(); + var params = req.params; + + var payload = input.payload; + if (payload) { + var payloadMember = input.members[payload]; + params = params[payload]; + if (params === undefined) return; + + if (payloadMember.type === 'structure') { + var rootElement = payloadMember.name; + req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); + } else { // non-xml payload + req.httpRequest.body = params; + } + } else { + req.httpRequest.body = builder.toXML(params, input, input.name || + input.shape || util.string.upperFirst(req.operation) + 'Request'); + } +} + +function buildRequest(req) { + Rest.buildRequest(req); + + if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } +} + +function extractError(resp) { + 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 = util.error(new Error(), { + code: data.Code, + message: data.Message + }); + } else { + resp.error = util.error(new Error(), { + code: resp.httpResponse.statusCode, + message: null + }); + } +} + +function extractData(resp) { + Rest.extractData(resp); + + var parser; + var req = resp.request; + var body = resp.httpResponse.body; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + var payload = output.payload; + if (payload) { + var payloadMember = output.members[payload]; + if (payloadMember.isStreaming) { + resp.data[payload] = body; + } else if (payloadMember.type === 'structure') { + parser = new AWS.XML.Parser(); + resp.data[payload] = parser.parse(body.toString(), payloadMember); + } else { + resp.data[payload] = body.toString(); + } + } else if (body.length > 0) { + parser = new AWS.XML.Parser(); + var data = parser.parse(body.toString(), output); + util.update(resp.data, data); + } +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; + +},{"../core":4,"../util":61,"./rest":30}],33:[function(require,module,exports){ +var util = require('../util'); + +function QueryParamSerializer() { +} + +QueryParamSerializer.prototype.serialize = function(params, shape, fn) { + serializeStructure('', params, shape, fn); +}; + +function ucfirst(shape) { + if (shape.isQueryName || shape.api.protocol !== 'ec2') { + return shape.name; + } else { + return shape.name[0].toUpperCase() + shape.name.substr(1); + } +} + +function serializeStructure(prefix, struct, rules, fn) { + util.each(rules.members, function(name, member) { + var value = struct[name]; + if (value === null || value === undefined) return; + + var memberName = ucfirst(member); + memberName = prefix ? prefix + '.' + memberName : memberName; + serializeMember(memberName, value, member, fn); + }); +} + +function serializeMap(name, map, rules, fn) { + var i = 1; + util.each(map, function (key, value) { + var prefix = rules.flattened ? '.' : '.entry.'; + var position = prefix + (i++) + '.'; + var keyName = position + (rules.key.name || 'key'); + var valueName = position + (rules.value.name || 'value'); + serializeMember(name + keyName, key, rules.key, fn); + serializeMember(name + valueName, value, rules.value, fn); + }); +} + +function serializeList(name, list, rules, fn) { + var memberRules = rules.member || {}; + + if (list.length === 0) { + fn.call(this, name, null); + return; + } + + util.arrayEach(list, function (v, n) { + var suffix = '.' + (n + 1); + if (rules.api.protocol === 'ec2') { + suffix = suffix + ''; // make linter happy + } else if (rules.flattened) { + if (memberRules.name) { + var parts = name.split('.'); + parts.pop(); + parts.push(ucfirst(memberRules)); + name = parts.join('.'); + } + } else { + suffix = '.member' + suffix; + } + serializeMember(name + suffix, v, memberRules, fn); + }); +} + +function serializeMember(name, value, rules, fn) { + if (value === null || value === undefined) return; + if (rules.type === 'structure') { + serializeStructure(name, value, rules, fn); + } else if (rules.type === 'list') { + serializeList(name, value, rules, fn); + } else if (rules.type === 'map') { + serializeMap(name, value, rules, fn); + } else { + fn(name, rules.toWireFormat(value).toString()); + } +} + +module.exports = QueryParamSerializer; + +},{"../util":61}],34:[function(require,module,exports){ +module.exports={ + "rules": { + "*/*": { + "endpoint": "{service}.{region}.amazonaws.com" + }, + "cn-*/*": { + "endpoint": "{service}.{region}.amazonaws.com.cn" + }, + "*/cloudfront": "globalSSL", + "*/iam": "globalSSL", + "*/sts": "globalSSL", + "*/importexport": { + "endpoint": "{service}.amazonaws.com", + "signatureVersion": "v2", + "globalEndpoint": true + }, + "*/route53": { + "endpoint": "https://{service}.amazonaws.com", + "signatureVersion": "v3https", + "globalEndpoint": true + }, + "*/waf": "globalSSL", + "us-gov-*/iam": "globalGovCloud", + "us-gov-*/sts": { + "endpoint": "{service}.{region}.amazonaws.com" + }, + "us-gov-west-1/s3": "s3dash", + "us-west-1/s3": "s3dash", + "us-west-2/s3": "s3dash", + "eu-west-1/s3": "s3dash", + "ap-southeast-1/s3": "s3dash", + "ap-southeast-2/s3": "s3dash", + "ap-northeast-1/s3": "s3dash", + "sa-east-1/s3": "s3dash", + "us-east-1/s3": { + "endpoint": "{service}.amazonaws.com", + "signatureVersion": "s3" + }, + "us-east-1/sdb": { + "endpoint": "{service}.amazonaws.com", + "signatureVersion": "v2" + }, + "*/sdb": { + "endpoint": "{service}.{region}.amazonaws.com", + "signatureVersion": "v2" + } + }, + + "patterns": { + "globalSSL": { + "endpoint": "https://{service}.amazonaws.com", + "globalEndpoint": true + }, + "globalGovCloud": { + "endpoint": "{service}.us-gov.amazonaws.com" + }, + "s3dash": { + "endpoint": "{service}-{region}.amazonaws.com", + "signatureVersion": "s3" + } + } +} + +},{}],35:[function(require,module,exports){ +var util = require('./util'); +var regionConfig = require('./region_config.json'); + +function generateRegionPrefix(region) { + if (!region) return null; + + var parts = region.split('-'); + if (parts.length < 3) return null; + return parts.slice(0, parts.length - 2).join('-') + '-*'; +} + +function derivedKeys(service) { + var region = service.config.region; + var regionPrefix = generateRegionPrefix(region); + var endpointPrefix = service.api.endpointPrefix; + + return [ + [region, endpointPrefix], + [regionPrefix, endpointPrefix], + [region, '*'], + [regionPrefix, '*'], + ['*', endpointPrefix], + ['*', '*'] + ].map(function(item) { + return item[0] && item[1] ? item.join('/') : null; + }); +} + +function applyConfig(service, config) { + util.each(config, function(key, value) { + if (key === 'globalEndpoint') return; + if (service.config[key] === undefined || service.config[key] === null) { + service.config[key] = value; + } + }); +} + +function configureEndpoint(service) { + var keys = derivedKeys(service); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!key) continue; + + if (regionConfig.rules.hasOwnProperty(key)) { + var config = regionConfig.rules[key]; + if (typeof config === 'string') { + config = regionConfig.patterns[config]; + } + + service.isGlobalEndpoint = !!config.globalEndpoint; + + if (!config.signatureVersion) config.signatureVersion = 'v4'; + + applyConfig(service, config); + return; + } + } +} + +module.exports = configureEndpoint; + +},{"./region_config.json":34,"./util":61}],36:[function(require,module,exports){ +(function (process){ +var AWS = require('./core'); +var AcceptorStateMachine = require('./state_machine'); +var inherit = AWS.util.inherit; +var domain = AWS.util.nodeRequire('domain'); +var jmespath = require('jmespath'); + + +var hardErrorStates = {success: 1, error: 1, complete: 1}; + +function isTerminalState(machine) { + return hardErrorStates.hasOwnProperty(machine._asm.currentState); +} + +var fsm = new AcceptorStateMachine(); +fsm.setupStates = function() { + var transition = function(_, done) { + var self = this; + self._haltHandlersOnError = false; + + self.emit(self._asm.currentState, function(err) { + if (err) { + if (isTerminalState(self)) { + if (domain && self.domain instanceof domain.Domain) { + err.domainEmitter = self; + err.domain = self.domain; + err.domainThrown = false; + self.domain.emit('error', err); + } else { + throw err; + } + } else { + self.response.error = err; + done(err); + } + } else { + done(self.response.error); + } + }); + + }; + + this.addState('validate', 'build', 'error', transition); + 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('restart', 'build', 'error', transition); + this.addState('success', 'complete', 'complete', transition); + this.addState('error', 'complete', 'complete', transition); + this.addState('complete', null, null, transition); +}; +fsm.setupStates(); + + +AWS.Request = inherit({ + + + constructor: function Request(service, operation, params) { + var endpoint = service.endpoint; + var region = service.config.region; + var customUserAgent = service.config.customUserAgent; + + if (service.isGlobalEndpoint) region = 'us-east-1'; + + this.domain = domain && domain.active; + this.service = service; + this.operation = operation; + this.params = params || {}; + this.httpRequest = new AWS.HttpRequest(endpoint, region, customUserAgent); + this.startTime = AWS.util.date.getDate(); + + this.response = new AWS.Response(this); + this._asm = new AcceptorStateMachine(fsm.states, 'validate'); + this._haltHandlersOnError = false; + + AWS.SequentialExecutor.call(this); + this.emit = this.emitEvent; + }, + + + + + send: function send(callback) { + if (callback) { + this.on('complete', function (resp) { + callback.call(resp, resp.error, resp.data); + }); + } + this.runTo(); + + return this.response; + }, + + + + + build: function build(callback) { + return this.runTo('send', callback); + }, + + + runTo: function runTo(state, done) { + this._asm.runTo(state, done, this); + return this; + }, + + + 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; + }, + + + eachPage: function eachPage(callback) { + callback = AWS.util.fn.makeAsync(callback, 3); + + function wrappedCallback(response) { + callback.call(response, response.error, response.data, function (result) { + if (result === false) return; + + if (response.hasNextPage()) { + response.nextPage().on('complete', wrappedCallback).send(); + } else { + callback.call(response, null, null, AWS.util.fn.noop); + } + }); + } + + this.on('complete', wrappedCallback).send(); + }, + + + eachItem: function eachItem(callback) { + var self = this; + function wrappedCallback(err, data) { + if (err) return callback(err, null); + if (data === null) return callback(null, null); + + var config = self.service.paginationConfig(self.operation); + var resultKey = config.resultKey; + if (Array.isArray(resultKey)) resultKey = resultKey[0]; + var items = jmespath.search(data, resultKey); + AWS.util.arrayEach(items, function(item) { callback(null, item); }); + } + + this.eachPage(wrappedCallback); + }, + + + isPageable: function isPageable() { + return this.service.paginationConfig(this.operation) ? true : false; + }, + + + createReadStream: function createReadStream() { + var streams = AWS.util.nodeRequire('stream'); + var req = this; + var stream = null; + + if (AWS.HttpClient.streamsApiVersion === 2) { + stream = new streams.PassThrough(); + req.send(); + } else { + stream = new streams.Stream(); + stream.readable = true; + + stream.sent = false; + stream.on('newListener', function(event) { + if (!stream.sent && event === 'data') { + stream.sent = true; + process.nextTick(function() { req.send(); }); + } + }); + } + + this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { + if (statusCode < 300) { + req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); + req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); + req.on('httpError', function streamHttpError(error) { + resp.error = error; + resp.error.retryable = false; + }); + + var httpStream = resp.httpResponse.createUnbufferedStream(); + if (AWS.HttpClient.streamsApiVersion === 2) { + httpStream.pipe(stream); + } else { + httpStream.on('data', function(arg) { + stream.emit('data', arg); + }); + httpStream.on('end', function() { + stream.emit('end'); + }); + } + + httpStream.on('error', function(err) { + stream.emit('error', err); + }); + } + }); + + this.on('error', function(err) { + stream.emit('error', err); + }); + + return stream; + }, + + + emitEvent: function emit(eventName, args, done) { + if (typeof args === 'function') { done = args; args = null; } + if (!done) done = function() { }; + 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); + }); + }, + + + eventParameters: function eventParameters(eventName) { + switch (eventName) { + case 'restart': + case 'validate': + case 'sign': + case 'build': + case 'afterValidate': + case 'afterBuild': + return [this]; + case 'error': + return [this.response.error, this.response]; + default: + return [this.response]; + } + }, + + + presign: function presign(expires, callback) { + if (!callback && typeof expires === 'function') { + callback = expires; + expires = null; + } + return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); + }, + + + toUnauthenticated: function toUnauthenticated() { + this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); + this.removeListener('sign', AWS.EventListeners.Core.SIGN); + return this; + }, + + + toGet: function toGet() { + if (this.service.api.protocol === 'query' || + this.service.api.protocol === 'ec2') { + this.removeListener('build', this.buildAsGet); + this.addListener('build', this.buildAsGet); + } + return this; + }, + + + buildAsGet: function buildAsGet(request) { + request.httpRequest.method = 'GET'; + request.httpRequest.path = request.service.endpoint.path + + '?' + request.httpRequest.body; + request.httpRequest.body = ''; + + delete request.httpRequest.headers['Content-Length']; + delete request.httpRequest.headers['Content-Type']; + }, + + + haltHandlersOnError: function haltHandlersOnError() { + this._haltHandlersOnError = true; + } +}); + +AWS.util.addPromisesToRequests(AWS.Request); + +AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); + +}).call(this,require('_process')) +},{"./core":4,"./state_machine":60,"_process":76,"jmespath":84}],37:[function(require,module,exports){ + + +var AWS = require('./core'); +var inherit = AWS.util.inherit; +var jmespath = require('jmespath'); + + +function CHECK_ACCEPTORS(resp) { + var waiter = resp.request._waiter; + var acceptors = waiter.config.acceptors; + var acceptorMatched = false; + var state = 'retry'; + + acceptors.forEach(function(acceptor) { + if (!acceptorMatched) { + var matcher = waiter.matchers[acceptor.matcher]; + if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { + acceptorMatched = true; + state = acceptor.state; + } + } + }); + + if (!acceptorMatched && resp.error) state = 'failure'; + + if (state === 'success') { + waiter.setSuccess(resp); + } else { + waiter.setError(resp, state === 'retry'); + } +} + + +AWS.ResourceWaiter = inherit({ + + constructor: function constructor(service, state) { + this.service = service; + this.state = state; + this.loadWaiterConfig(this.state); + }, + + service: null, + + state: null, + + config: null, + + matchers: { + path: function(resp, expected, argument) { + var result = jmespath.search(resp.data, argument); + return jmespath.strictDeepEqual(result,expected); + }, + + pathAll: function(resp, expected, argument) { + var results = jmespath.search(resp.data, argument); + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + if (!numResults) return false; + for (var ind = 0 ; ind < numResults; ind++) { + if (!jmespath.strictDeepEqual(results[ind], expected)) { + return false; + } + } + return true; + }, + + pathAny: function(resp, expected, argument) { + var results = jmespath.search(resp.data, argument); + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + for (var ind = 0 ; ind < numResults; ind++) { + if (jmespath.strictDeepEqual(results[ind], expected)) { + return true; + } + } + return false; + }, + + status: function(resp, expected) { + var statusCode = resp.httpResponse.statusCode; + return (typeof statusCode === 'number') && (statusCode === expected); + }, + + error: function(resp, expected) { + if (typeof expected === 'string' && resp.error) { + return expected === resp.error.code; + } + return expected === !!resp.error; + } + }, + + listeners: 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.delay || 0) * 1000; + } + }); + + add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); + + add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); + }), + + + wait: function wait(params, callback) { + if (typeof params === 'function') { + callback = params; params = undefined; + } + + var request = this.service.makeRequest(this.config.operation, params); + request._waiter = this; + request.response.maxRetries = this.config.maxAttempts; + request.addListeners(this.listeners); + + if (callback) request.send(callback); + return request; + }, + + setSuccess: function setSuccess(resp) { + resp.error = null; + resp.data = resp.data || {}; + resp.request.removeAllListeners('extractData'); + }, + + 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 + }); + }, + + + loadWaiterConfig: function loadWaiterConfig(state) { + if (!this.service.api.waiters[state]) { + throw new AWS.util.error(new Error(), { + code: 'StateNotFoundError', + message: 'State ' + state + ' not found.' + }); + } + + this.config = this.service.api.waiters[state]; + } +}); + +},{"./core":4,"jmespath":84}],38:[function(require,module,exports){ +var AWS = require('./core'); +var inherit = AWS.util.inherit; +var jmespath = require('jmespath'); + + +AWS.Response = inherit({ + + + 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; + } + }, + + + 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); + } + }, + + + hasNextPage: function hasNextPage() { + this.cacheNextPageTokens(); + if (this.nextPageTokens) return true; + if (this.nextPageTokens === undefined) return undefined; + else return false; + }, + + + 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 (!jmespath.search(this.data, config.moreResults)) { + return this.nextPageTokens; + } + } + + var exprs = config.outputToken; + if (typeof exprs === 'string') exprs = [exprs]; + AWS.util.arrayEach.call(this, exprs, function (expr) { + var output = jmespath.search(this.data, expr); + if (output) { + this.nextPageTokens = this.nextPageTokens || []; + this.nextPageTokens.push(output); + } + }); + + return this.nextPageTokens; + } + +}); + +},{"./core":4,"jmespath":84}],39:[function(require,module,exports){ +(function (Buffer){ +var AWS = require('../core'); +var byteLength = AWS.util.string.byteLength; + + +AWS.S3.ManagedUpload = AWS.util.inherit({ + + constructor: function ManagedUpload(options) { + var self = this; + AWS.SequentialExecutor.call(self); + self.body = null; + self.sliceFn = null; + self.callback = null; + self.parts = {}; + self.completeInfo = []; + self.fillQueue = function() { + self.callback(new Error('Unsupported body payload ' + typeof self.body)); + }; + + self.configure(options); + }, + + + configure: function configure(options) { + options = options || {}; + this.partSize = this.minPartSize; + + if (options.queueSize) this.queueSize = options.queueSize; + if (options.partSize) this.partSize = options.partSize; + if (options.leavePartsOnError) this.leavePartsOnError = true; + + if (this.partSize < this.minPartSize) { + throw new Error('partSize must be greater than ' + + this.minPartSize); + } + + this.service = options.service; + this.bindServiceObject(options.params); + this.validateBody(); + this.adjustTotalBytes(); + }, + + + leavePartsOnError: false, + + + queueSize: 4, + + + partSize: null, + + + minPartSize: 1024 * 1024 * 5, + + + maxTotalParts: 10000, + + + send: function(callback) { + var self = this; + self.failed = false; + self.callback = callback || function(err) { if (err) throw err; }; + + var runFill = true; + if (self.sliceFn) { + self.fillQueue = self.fillBuffer; + } else if (AWS.util.isNode()) { + var Stream = AWS.util.nodeRequire('stream').Stream; + if (self.body instanceof Stream) { + runFill = false; + self.fillQueue = self.fillStream; + self.partBuffers = []; + self.body. + on('readable', function() { self.fillQueue(); }). + on('end', function() { + self.isDoneChunking = true; + self.numParts = self.totalPartNumbers; + self.fillQueue.call(self); + }); + } + } + + if (runFill) self.fillQueue.call(self); + }, + + + abort: function() { + this.cleanup(AWS.util.error(new Error('Request aborted by user'), { + code: 'RequestAbortedError', retryable: false + })); + }, + + + validateBody: function validateBody() { + var self = this; + self.body = self.service.config.params.Body; + if (!self.body) throw new Error('params.Body is required'); + if (typeof self.body === 'string') { + self.body = new AWS.util.Buffer(self.body); + } + self.sliceFn = AWS.util.arraySliceFn(self.body); + }, + + + bindServiceObject: function bindServiceObject(params) { + params = params || {}; + var self = this; + + if (!self.service) { + self.service = new AWS.S3({params: params}); + } else { + var config = AWS.util.copy(self.service.config); + self.service = new self.service.constructor.__super__(config); + self.service.config.params = + AWS.util.merge(self.service.config.params || {}, params); + } + }, + + + adjustTotalBytes: function adjustTotalBytes() { + var self = this; + try { // try to get totalBytes + self.totalBytes = byteLength(self.body); + } catch (e) { } + + if (self.totalBytes) { + var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts); + if (newPartSize > self.partSize) self.partSize = newPartSize; + } else { + self.totalBytes = undefined; + } + }, + + + isDoneChunking: false, + + + partPos: 0, + + + totalChunkedBytes: 0, + + + totalUploadedBytes: 0, + + + totalBytes: undefined, + + + numParts: 0, + + + totalPartNumbers: 0, + + + activeParts: 0, + + + doneParts: 0, + + + parts: null, + + + completeInfo: null, + + + failed: false, + + + multipartReq: null, + + + partBuffers: null, + + + partBufferLength: 0, + + + fillBuffer: function fillBuffer() { + var self = this; + var bodyLen = byteLength(self.body); + + if (bodyLen === 0) { + self.isDoneChunking = true; + self.numParts = 1; + self.nextChunk(self.body); + return; + } + + while (self.activeParts < self.queueSize && self.partPos < bodyLen) { + var endPos = Math.min(self.partPos + self.partSize, bodyLen); + var buf = self.sliceFn.call(self.body, self.partPos, endPos); + self.partPos += self.partSize; + + if (byteLength(buf) < self.partSize || self.partPos === bodyLen) { + self.isDoneChunking = true; + self.numParts = self.totalPartNumbers + 1; + } + self.nextChunk(buf); + } + }, + + + fillStream: function fillStream() { + var self = this; + if (self.activeParts >= self.queueSize) return; + + var buf = self.body.read(self.partSize - self.partBufferLength) || + self.body.read(); + if (buf) { + self.partBuffers.push(buf); + self.partBufferLength += buf.length; + self.totalChunkedBytes += buf.length; + } + + if (self.partBufferLength >= self.partSize) { + var pbuf = self.partBuffers.length === 1 ? + self.partBuffers[0] : Buffer.concat(self.partBuffers); + self.partBuffers = []; + self.partBufferLength = 0; + + if (pbuf.length > self.partSize) { + var rest = pbuf.slice(self.partSize); + self.partBuffers.push(rest); + self.partBufferLength += rest.length; + pbuf = pbuf.slice(0, self.partSize); + } + + self.nextChunk(pbuf); + } + + if (self.isDoneChunking && !self.isDoneSending) { + pbuf = self.partBuffers.length === 1 ? + self.partBuffers[0] : Buffer.concat(self.partBuffers); + self.partBuffers = []; + self.partBufferLength = 0; + self.totalBytes = self.totalChunkedBytes; + self.isDoneSending = true; + + if (self.numParts === 0 || pbuf.length > 0) { + self.numParts++; + self.nextChunk(pbuf); + } + } + + self.body.read(0); + }, + + + nextChunk: function nextChunk(chunk) { + var self = this; + if (self.failed) return null; + + var partNumber = ++self.totalPartNumbers; + if (self.isDoneChunking && partNumber === 1) { + var req = self.service.putObject({Body: chunk}); + req._managedUpload = self; + req.on('httpUploadProgress', self.progress).send(self.finishSinglePart); + return null; + } else if (self.service.config.params.ContentMD5) { + var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), { + code: 'InvalidDigest', retryable: false + }); + + self.cleanup(err); + return null; + } + + if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) { + return null; // Already uploaded this part. + } + + self.activeParts++; + if (!self.service.config.params.UploadId) { + + if (!self.multipartReq) { // create multipart + self.multipartReq = self.service.createMultipartUpload(); + self.multipartReq.on('success', function(resp) { + self.service.config.params.UploadId = resp.data.UploadId; + self.multipartReq = null; + }); + self.queueChunks(chunk, partNumber); + self.multipartReq.on('error', function(err) { + self.cleanup(err); + }); + self.multipartReq.send(); + } else { + self.queueChunks(chunk, partNumber); + } + } else { // multipart is created, just send + self.uploadPart(chunk, partNumber); + } + }, + + + uploadPart: function uploadPart(chunk, partNumber) { + var self = this; + + var partParams = { + Body: chunk, + ContentLength: AWS.util.string.byteLength(chunk), + PartNumber: partNumber + }; + + var partInfo = {ETag: null, PartNumber: partNumber}; + self.completeInfo[partNumber] = partInfo; + + var req = self.service.uploadPart(partParams); + self.parts[partNumber] = req; + req._lastUploadedBytes = 0; + req._managedUpload = self; + req.on('httpUploadProgress', self.progress); + req.send(function(err, data) { + delete self.parts[partParams.PartNumber]; + self.activeParts--; + + if (!err && (!data || !data.ETag)) { + var message = 'No access to ETag property on response.'; + if (AWS.util.isBrowser()) { + message += ' Check CORS configuration to expose ETag header.'; + } + + err = AWS.util.error(new Error(message), { + code: 'ETagMissing', retryable: false + }); + } + if (err) return self.cleanup(err); + + partInfo.ETag = data.ETag; + self.doneParts++; + if (self.isDoneChunking && self.doneParts === self.numParts) { + self.finishMultiPart(); + } else { + self.fillQueue.call(self); + } + }); + }, + + + queueChunks: function queueChunks(chunk, partNumber) { + var self = this; + self.multipartReq.on('success', function() { + self.uploadPart(chunk, partNumber); + }); + }, + + + cleanup: function cleanup(err) { + var self = this; + if (self.failed) return; + + if (typeof self.body.removeAllListeners === 'function' && + typeof self.body.resume === 'function') { + self.body.removeAllListeners('readable'); + self.body.removeAllListeners('end'); + self.body.resume(); + } + + if (self.service.config.params.UploadId && !self.leavePartsOnError) { + self.service.abortMultipartUpload().send(); + } + + AWS.util.each(self.parts, function(partNumber, part) { + part.removeAllListeners('complete'); + part.abort(); + }); + + self.activeParts = 0; + self.partPos = 0; + self.numParts = 0; + self.totalPartNumbers = 0; + self.parts = {}; + self.failed = true; + self.callback(err); + }, + + + finishMultiPart: function finishMultiPart() { + var self = this; + var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } }; + self.service.completeMultipartUpload(completeParams, function(err, data) { + if (err) return self.cleanup(err); + else self.callback(err, data); + }); + }, + + + finishSinglePart: function finishSinglePart(err, data) { + var upload = this.request._managedUpload; + var httpReq = this.request.httpRequest; + var endpoint = httpReq.endpoint; + if (err) return upload.callback(err); + data.Location = + [endpoint.protocol, '//', endpoint.host, httpReq.path].join(''); + data.key = this.request.params.Key; // will stay undocumented + data.Key = this.request.params.Key; + data.Bucket = this.request.params.Bucket; + upload.callback(err, data); + }, + + + progress: function progress(info) { + var upload = this._managedUpload; + if (this.operation === 'putObject') { + info.part = 1; + info.key = this.params.Key; + } else { + upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes; + this._lastUploadedBytes = info.loaded; + info = { + loaded: upload.totalUploadedBytes, + total: upload.totalBytes, + part: this.params.PartNumber, + key: this.params.Key + }; + } + upload.emit('httpUploadProgress', [info]); + } +}); + +AWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor); +module.exports = AWS.S3.ManagedUpload; + +}).call(this,require("buffer").Buffer) +},{"../core":4,"buffer":64}],40:[function(require,module,exports){ +var AWS = require('./core'); + + +AWS.SequentialExecutor = AWS.util.inherit({ + + constructor: function SequentialExecutor() { + this._events = {}; + }, + + + 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; + }, + + + 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; + }, + + + emit: function emit(eventName, eventArgs, doneCallback) { + if (!doneCallback) doneCallback = function() { }; + var listeners = this.listeners(eventName); + var count = listeners.length; + this.callListeners(listeners, eventArgs, doneCallback); + return count > 0; + }, + + + callListeners: function callListeners(listeners, args, doneCallback, prevError) { + var self = this; + var error = prevError || null; + + function callNextListener(err) { + if (err) { + error = AWS.util.error(error || new Error(), err); + if (self._haltHandlersOnError) { + return doneCallback.call(self, error); + } + } + self.callListeners(listeners, args, doneCallback, error); + } + + while (listeners.length > 0) { + var listener = listeners.shift(); + if (listener._isAsync) { // asynchronous listener + listener.apply(self, args.concat([callNextListener])); + return; // stop here, callNextListener will continue + } else { // synchronous listener + try { + listener.apply(self, args); + } catch (err) { + error = AWS.util.error(error || new Error(), err); + } + if (error && self._haltHandlersOnError) { + doneCallback.call(self, error); + return; + } + } + } + doneCallback.call(self, error); + }, + + + addListeners: function addListeners(listeners) { + var self = this; + + 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; + }, + + + addNamedListener: function addNamedListener(name, eventName, callback) { + this[name] = callback; + this.addListener(eventName, callback); + return this; + }, + + + addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) { + callback._isAsync = true; + return this.addNamedListener(name, eventName, callback); + }, + + + addNamedListeners: function addNamedListeners(callback) { + var self = this; + callback( + function() { + self.addNamedListener.apply(self, arguments); + }, + function() { + self.addNamedAsyncListener.apply(self, arguments); + } + ); + return this; + } +}); + + +AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; + +module.exports = AWS.SequentialExecutor; + +},{"./core":4}],41:[function(require,module,exports){ +var AWS = require('./core'); +var Api = require('./model/api'); +var regionConfig = require('./region_config'); +var inherit = AWS.util.inherit; + + +AWS.Service = inherit({ + + 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); + }, + + + initialize: function initialize(config) { + var svcConfig = AWS.config[this.serviceIdentifier]; + + this.config = new AWS.Config(AWS.config); + if (svcConfig) this.config.update(svcConfig, true); + if (config) this.config.update(config, true); + + this.validateService(); + if (!this.config.endpoint) regionConfig(this); + + this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); + this.setEndpoint(this.config.endpoint); + }, + + + validateService: function validateService() { + }, + + + 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); + } + }, + + + 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]; + }, + + + 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--) { + 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: {}, + + + defaultRetryCount: 3, + + + 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; + }, + + + makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = {}; + } + + var request = this.makeRequest(operation, params).toUnauthenticated(); + return callback ? request.send(callback) : request; + }, + + + waitFor: function waitFor(state, params, callback) { + var waiter = new AWS.ResourceWaiter(this, state); + return waiter.wait(params, callback); + }, + + + 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]); + } + + 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); + }, + + + setupRequestListeners: function setupRequestListeners() { + }, + + + getSignerClass: function getSignerClass() { + var version; + if (this.config.signatureVersion) { + version = this.config.signatureVersion; + } else { + version = this.api.signatureVersion; + } + return AWS.Signers.RequestSigner.getVersion(version); + }, + + + serviceInterface: function serviceInterface() { + switch (this.api.protocol) { + case 'ec2': return AWS.EventListeners.Query; + 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.protocol) { + throw new Error('Invalid service `protocol\' ' + + this.api.protocol + ' in API config'); + } + }, + + + successfulResponse: function successfulResponse(resp) { + return resp.httpResponse.statusCode < 300; + }, + + + numRetries: function numRetries() { + if (this.config.maxRetries !== undefined) { + return this.config.maxRetries; + } else { + return this.defaultRetryCount; + } + }, + + + retryDelays: function retryDelays(retryCount) { + var retryDelayOptions = this.config.retryDelayOptions || {}; + var customBackoff = retryDelayOptions.customBackoff || null; + if (typeof customBackoff === 'function') { + return customBackoff(retryCount); + } + var base = retryDelayOptions.base || 30; + var delay = Math.random() * (Math.pow(2, retryCount) * base); + return delay; + }, + + + 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; + }, + + + networkingError: function networkingError(error) { + return error.code === 'NetworkingError'; + }, + + + expiredCredentialsError: function expiredCredentialsError(error) { + return (error.code === 'ExpiredTokenException'); + }, + + + clockSkewError: function clockSkewError(error) { + switch (error.code) { + case 'RequestTimeTooSkewed': + case 'RequestExpired': + case 'InvalidSignatureException': + case 'SignatureDoesNotMatch': + case 'AuthFailure': + case 'RequestInTheFuture': + return true; + default: return false; + } + }, + + + throttledError: function throttledError(error) { + switch (error.code) { + case 'ProvisionedThroughputExceededException': + case 'Throttling': + case 'ThrottlingException': + case 'RequestLimitExceeded': + case 'RequestThrottled': + return true; + default: + return false; + } + }, + + + endpointFromTemplate: function endpointFromTemplate(endpoint) { + if (typeof endpoint !== 'string') return endpoint; + + var e = endpoint; + e = e.replace(/\{service\}/g, this.api.endpointPrefix); + e = e.replace(/\{region\}/g, this.config.region); + e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); + return e; + }, + + + setEndpoint: function setEndpoint(endpoint) { + this.endpoint = new AWS.Endpoint(endpoint, this.config); + }, + + + paginationConfig: function paginationConfig(operation, throwException) { + var paginator = this.api.operations[operation].paginator; + if (!paginator) { + if (throwException) { + var e = new Error(); + throw AWS.util.error(e, 'No pagination configuration for ' + operation); + } + return null; + } + + return paginator; + } +}); + +AWS.util.update(AWS.Service, { + + + defineMethods: function defineMethods(svc) { + AWS.util.each(svc.prototype.api.operations, function iterator(method) { + if (svc.prototype[method]) return; + var operation = svc.prototype.api.operations[method]; + if (operation.authtype === 'none') { + svc.prototype[method] = function (params, callback) { + return this.makeUnauthenticatedRequest(method, params, callback); + }; + } else { + svc.prototype[method] = function (params, callback) { + return this.makeRequest(method, params, callback); + }; + } + }); + }, + + + defineService: function defineService(serviceIdentifier, versions, features) { + AWS.Service._serviceMap[serviceIdentifier] = true; + 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; + }, + + + 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(); + }, + + + defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { + var svc = inherit(superclass, { + serviceIdentifier: superclass.serviceIdentifier + }); + + function setApi(api) { + if (api.isApi) { + svc.prototype.api = api; + } else { + svc.prototype.api = new Api(api); + } + } + + if (typeof version === 'string') { + if (apiConfig) { + setApi(apiConfig); + } else { + try { + setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); + } catch (err) { + throw AWS.util.error(err, { + message: 'Could not find API configuration ' + + superclass.serviceIdentifier + '-' + version + }); + } + } + 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; + }, + + + hasService: function(identifier) { + return AWS.Service._serviceMap.hasOwnProperty(identifier); + }, + + + _serviceMap: {} +}); + +},{"./core":4,"./model/api":21,"./region_config":35}],42:[function(require,module,exports){ +var AWS = require('../core'); + +AWS.util.update(AWS.APIGateway.prototype, { + + setAcceptHeader: function setAcceptHeader(req) { + var httpRequest = req.httpRequest; + httpRequest.headers['Accept'] = 'application/json'; + }, + + + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('build', this.setAcceptHeader); + if (request.operation === 'getSdk') { + request.addListener('extractData', this.useRawPayload); + } + }, + + useRawPayload: function useRawPayload(resp) { + var req = resp.request; + var operation = req.operation; + var rules = req.service.api.operations[operation].output || {}; + if (rules.payload) { + var body = resp.httpResponse.body; + resp.data[rules.payload] = body; + } + } +}); + + +},{"../core":4}],43:[function(require,module,exports){ +var AWS = require('../core'); + +require('../cloudfront/signer'); + +AWS.util.update(AWS.CloudFront.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('extractData', AWS.util.hoistPayloadMember); + } + +}); + +},{"../cloudfront/signer":2,"../core":4}],44:[function(require,module,exports){ +var AWS = require('../core'); + +AWS.util.update(AWS.CognitoIdentity.prototype, { + getOpenIdToken: function getOpenIdToken(params, callback) { + return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); + }, + + getId: function getId(params, callback) { + return this.makeUnauthenticatedRequest('getId', params, callback); + }, + + getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { + return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); + } +}); + +},{"../core":4}],45:[function(require,module,exports){ +var AWS = require('../core'); +require('../dynamodb/document_client'); + +AWS.util.update(AWS.DynamoDB.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + if (request.service.config.dynamoDbCrc32) { + request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); + request.addListener('extractData', this.checkCrc32); + request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); + } + }, + + + checkCrc32: function checkCrc32(resp) { + if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) { + resp.data = null; + resp.error = AWS.util.error(new Error(), { + code: 'CRC32CheckFailed', + message: 'CRC32 integrity check failed', + retryable: true + }); + resp.request.haltHandlersOnError(); + throw (resp.error); + } + }, + + + 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); + }, + + + defaultRetryCount: 10, + + + retryDelays: function retryDelays(retryCount) { + var delay = retryCount > 0 ? (50 * Math.pow(2, retryCount - 1)) : 0; + return delay; + } +}); + +},{"../core":4,"../dynamodb/document_client":12}],46:[function(require,module,exports){ +var AWS = require('../core'); + +AWS.util.update(AWS.EC2.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR); + request.addListener('extractError', this.extractError); + + if (request.operation === 'copySnapshot') { + request.onAsync('validate', this.buildCopySnapshotPresignedUrl); + } + }, + + + buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) { + if (req.params.PresignedUrl || req._subRequest) { + return done(); + } + + req.params = AWS.util.copy(req.params); + req.params.DestinationRegion = req.service.config.region; + + var config = AWS.util.copy(req.service.config); + delete config.endpoint; + config.region = req.params.SourceRegion; + var svc = new req.service.constructor(config); + var newReq = svc[req.operation](req.params); + newReq._subRequest = true; + newReq.presign(function(err, url) { + if (err) done(err); + else { + req.params.PresignedUrl = url; + done(); + } + }); + }, + + + extractError: function extractError(resp) { + 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 + }); + } + resp.error.requestId = data.RequestID || null; + } +}); + +},{"../core":4}],47:[function(require,module,exports){ +var AWS = require('../core'); + + +AWS.util.update(AWS.IotData.prototype, { + + validateService: function validateService() { + if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { + var msg = 'AWS.IotData requires an explicit ' + + '`endpoint\' configuration option.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('validateResponse', this.validateResponseBody) + }, + + + validateResponseBody: function validateResponseBody(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + var bodyCheck = body.trim(); + if (!bodyCheck || bodyCheck.charAt(0) !== '{') { + resp.httpResponse.body = ''; + } + } + +}); + +},{"../core":4}],48:[function(require,module,exports){ +var AWS = require('../core'); + +AWS.util.update(AWS.MachineLearning.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + if (request.operation === 'predict') { + request.addListener('build', this.buildEndpoint); + } + }, + + + buildEndpoint: function buildEndpoint(request) { + var url = request.params.PredictEndpoint; + if (url) { + request.httpRequest.endpoint = new AWS.Endpoint(url); + } + } + +}); + +},{"../core":4}],49:[function(require,module,exports){ +var AWS = require('../core'); + +AWS.util.update(AWS.Route53.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + request.on('build', this.sanitizeUrl); + }, + + + sanitizeUrl: function sanitizeUrl(request) { + var path = request.httpRequest.path; + request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/'); + } +}); + +},{"../core":4}],50:[function(require,module,exports){ +var AWS = require('../core'); + +require('../s3/managed_upload'); + + +var operationsWith200StatusCodeError = { + 'completeMultipartUpload': true, + 'copyObject': true, + 'uploadPartCopy': true +}; + + + var regionRedirectErrorCodes = [ + 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints + 'BadRequest', // head operations on virtual-hosted global bucket endpoints + 'PermanentRedirect', // non-head operations on path-style or regional endpoints + 301 // head operations on path-style or regional endpoints + ]; + +AWS.util.update(AWS.S3.prototype, { + + validateService: function validateService() { + if (!this.config.region) this.config.region = 'us-east-1'; + + if (!this.config.endpoint && this.config.s3BucketEndpoint) { + var msg = 'An endpoint must be provided when configuring ' + + '`s3BucketEndpoint` to true.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('validate', this.validateScheme); + request.addListener('validate', this.validateBucketEndpoint); + request.addListener('validate', this.correctBucketRegionFromCache); + request.addListener('build', this.addContentType); + request.addListener('build', this.populateURI); + request.addListener('build', this.computeContentMd5); + request.addListener('build', this.computeSseCustomerKeyMd5); + request.addListener('afterBuild', this.addExpect100Continue); + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_REGION); + request.addListener('extractError', this.extractError); + request.onAsync('extractError', this.requestBucketRegion); + request.addListener('extractData', this.extractData); + request.addListener('extractData', AWS.util.hoistPayloadMember); + request.addListener('beforePresign', this.prepareSignedUrl); + if (AWS.util.isBrowser()) { + request.onAsync('retry', this.reqRegionForNetworkingError); + } + }, + + + validateScheme: function(req) { + var params = req.params, + scheme = req.httpRequest.endpoint.protocol, + sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey; + if (sensitive && scheme !== 'https:') { + var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' + + 'to \'true\' in your configuration'; + throw AWS.util.error(new Error(), + { code: 'ConfigError', message: msg }); + } + }, + + + validateBucketEndpoint: function(req) { + if (!req.params.Bucket && req.service.config.s3BucketEndpoint) { + var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.'; + throw AWS.util.error(new Error(), + { code: 'ConfigError', message: msg }); + } + }, + + isValidAccelerateOperation: function isValidAccelerateOperation(operation) { + var invalidOperations = [ + 'createBucket', + 'deleteBucket', + 'listBuckets' + ]; + return invalidOperations.indexOf(operation) === -1; + }, + + + + populateURI: function populateURI(req) { + var httpRequest = req.httpRequest; + var b = req.params.Bucket; + var service = req.service; + var endpoint = httpRequest.endpoint; + + if (b) { + if (!service.pathStyleBucketName(b)) { + if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) { + endpoint.hostname = b + '.s3-accelerate.amazonaws.com'; + } else if (!service.config.s3BucketEndpoint) { + endpoint.hostname = + b + '.' + endpoint.hostname; + } + + var port = endpoint.port; + if (port !== 80 && port !== 443) { + endpoint.host = endpoint.hostname + ':' + + endpoint.port; + } else { + endpoint.host = endpoint.hostname; + } + + httpRequest.virtualHostedBucket = b; // needed for signing the request + service.removeVirtualHostedBucketFromPath(req); + } + } + }, + + + removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) { + var httpRequest = req.httpRequest; + var bucket = httpRequest.virtualHostedBucket; + if (bucket && httpRequest.path) { + httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), ''); + if (httpRequest.path[0] !== '/') { + httpRequest.path = '/' + httpRequest.path; + } + } + }, + + + addExpect100Continue: function addExpect100Continue(req) { + var len = req.httpRequest.headers['Content-Length']; + if (AWS.util.isNode() && len >= 1024 * 1024) { + req.httpRequest.headers['Expect'] = '100-continue'; + } + }, + + + addContentType: function addContentType(req) { + var httpRequest = req.httpRequest; + if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') { + delete httpRequest.headers['Content-Type']; + return; + } + + if (!httpRequest.headers['Content-Type']) { // always have a Content-Type + httpRequest.headers['Content-Type'] = 'application/octet-stream'; + } + + var contentType = httpRequest.headers['Content-Type']; + if (AWS.util.isBrowser()) { + if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) { + var charset = '; charset=UTF-8'; + httpRequest.headers['Content-Type'] += charset; + } else { + var replaceFn = function(_, prefix, charsetName) { + return prefix + charsetName.toUpperCase(); + }; + + httpRequest.headers['Content-Type'] = + contentType.replace(/(;\s*charset=)(.+)$/, replaceFn); + } + } + }, + + + computableChecksumOperations: { + putBucketCors: true, + putBucketLifecycle: true, + putBucketLifecycleConfiguration: true, + putBucketTagging: true, + deleteObjects: true, + putBucketReplication: true + }, + + + willComputeChecksums: function willComputeChecksums(req) { + if (this.computableChecksumOperations[req.operation]) return true; + if (!this.config.computeChecksums) return false; + + 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; + + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + if (rules.ContentMD5 && !rules.ContentMD5.required) return false; + } + + if (rules.ContentMD5 && !req.params.ContentMD5) return true; + }, + + + 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; + } + }, + + + computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) { + var keys = { + SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5', + CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5' + }; + AWS.util.each(keys, function(key, header) { + if (req.params[key]) { + var value = AWS.util.crypto.md5(req.params[key], 'base64'); + req.httpRequest.headers[header] = value; + } + }); + }, + + + pathStyleBucketName: function pathStyleBucketName(bucketName) { + if (this.config.s3ForcePathStyle) return true; + if (this.config.s3BucketEndpoint) return false; + + if (this.dnsCompatibleBucketName(bucketName)) { + return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false; + } else { + return true; // not dns compatible names must always use path style + } + }, + + + 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; + }, + + + successfulResponse: function successfulResponse(resp) { + var req = resp.request; + var httpResponse = resp.httpResponse; + if (operationsWith200StatusCodeError[req.operation] && + httpResponse.body.toString().match('')) { + return false; + } else { + return httpResponse.statusCode < 300; + } + }, + + + retryableError: function retryableError(error, request) { + if (operationsWith200StatusCodeError[request.operation] && + error.statusCode === 200) { + return true; + } else if (request._requestRegionForBucket && + request.service.bucketRegionCache[request._requestRegionForBucket]) { + return false; + } else if (error && error.code === 'RequestTimeout') { + return true; + } else if (error && + regionRedirectErrorCodes.indexOf(error.code) != -1 && + error.region && error.region != request.httpRequest.region) { + request.httpRequest.region = error.region; + if (error.statusCode === 301) { + request.service.updateReqBucketRegion(request); + } + return true; + } else { + var _super = AWS.Service.prototype.retryableError; + return _super.call(this, error, request); + } + }, + + + updateReqBucketRegion: function updateReqBucketRegion(request, region) { + var httpRequest = request.httpRequest; + if (typeof region === 'string' && region.length) { + httpRequest.region = region; + } + if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)) { + return; + } + var service = request.service; + var s3Config = service.config; + var s3BucketEndpoint = s3Config.s3BucketEndpoint; + if (s3BucketEndpoint) { + delete s3Config.s3BucketEndpoint; + } + var newConfig = AWS.util.copy(s3Config); + delete newConfig.endpoint; + newConfig.region = httpRequest.region; + + httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint; + service.populateURI(request); + s3Config.s3BucketEndpoint = s3BucketEndpoint; + httpRequest.headers.Host = httpRequest.endpoint.host; + + if (request._asm.currentState === 'validate') { + request.removeListener('build', service.populateURI); + request.addListener('build', service.removeVirtualHostedBucketFromPath); + } + }, + + + extractData: function extractData(resp) { + var req = resp.request; + if (req.operation === 'getBucketLocation') { + var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/); + delete resp.data['_']; + if (match) { + resp.data.LocationConstraint = match[1]; + } else { + resp.data.LocationConstraint = ''; + } + } + var bucket = req.params.Bucket || null; + if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) { + req.service.clearBucketRegionCache(bucket); + } else { + var headers = resp.httpResponse.headers || {}; + var region = headers['x-amz-bucket-region'] || null; + if (!region && req.operation === 'createBucket' && !resp.error) { + var createBucketConfiguration = req.params.CreateBucketConfiguration; + if (!createBucketConfiguration) { + region = 'us-east-1'; + } else if (createBucketConfiguration.LocationConstraint === 'EU') { + region = 'eu-west-1'; + } else { + region = createBucketConfiguration.LocationConstraint; + } + } + if (region) { + if (bucket && region !== req.service.bucketRegionCache[bucket]) { + req.service.bucketRegionCache[bucket] = region; + } + } + } + req.service.extractRequestIds(resp); + }, + + + extractError: function extractError(resp) { + var codes = { + 304: 'NotModified', + 403: 'Forbidden', + 400: 'BadRequest', + 404: 'NotFound' + }; + + var req = resp.request; + var code = resp.httpResponse.statusCode; + var body = resp.httpResponse.body || ''; + + var headers = resp.httpResponse.headers || {}; + var region = headers['x-amz-bucket-region'] || null; + var bucket = req.params.Bucket || null; + var bucketRegionCache = req.service.bucketRegionCache; + if (region && bucket && region !== bucketRegionCache[bucket]) { + bucketRegionCache[bucket] = region; + } + + var cachedRegion; + if (codes[code] && body.length === 0) { + if (bucket && !region) { + cachedRegion = bucketRegionCache[bucket] || null; + if (cachedRegion !== req.httpRequest.region) { + region = cachedRegion; + } + } + resp.error = AWS.util.error(new Error(), { + code: codes[code], + message: null, + region: region + }); + } else { + var data = new AWS.XML.Parser().parse(body.toString()); + + if (data.Region && !region) { + region = data.Region; + if (bucket && region !== bucketRegionCache[bucket]) { + bucketRegionCache[bucket] = region; + } + } else if (bucket && !region && !data.Region) { + cachedRegion = bucketRegionCache[bucket] || null; + if (cachedRegion !== req.httpRequest.region) { + region = cachedRegion; + } + } + + resp.error = AWS.util.error(new Error(), { + code: data.Code || code, + message: data.Message || null, + region: region + }); + } + req.service.extractRequestIds(resp); + }, + + + requestBucketRegion: function requestBucketRegion(resp, done) { + var error = resp.error; + var req = resp.request; + var bucket = req.params.Bucket || null; + + if (!error || !bucket || error.region || req.operation === 'listObjects' || + (AWS.util.isNode() && req.operation === 'headBucket') || + (error.statusCode === 400 && req.operation !== 'headObject') || + regionRedirectErrorCodes.indexOf(error.code) === -1) { + return done(); + } + + var regionReq = req.service.listObjects({Bucket: bucket, MaxKeys: 0}); + regionReq._requestRegionForBucket = bucket; + regionReq.send(function() { + var region = req.service.bucketRegionCache[bucket] || null; + error.region = region; + done(); + }); + }, + + + reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) { + if (!AWS.util.isBrowser()) { + return done(); + } + var error = resp.error; + var request = resp.request; + var bucket = request.params.Bucket; + if (!error || error.code !== 'NetworkingError' || !bucket || + request.httpRequest.region === 'us-east-1') { + return done(); + } + var service = request.service; + var bucketRegionCache = service.bucketRegionCache; + var cachedRegion = bucketRegionCache[bucket] || null; + + if (cachedRegion && cachedRegion !== request.httpRequest.region) { + service.updateReqBucketRegion(request, cachedRegion); + done(); + } else if (!service.dnsCompatibleBucketName(bucket)) { + service.updateReqBucketRegion(request, 'us-east-1'); + if (bucketRegionCache[bucket] !== 'us-east-1') { + bucketRegionCache[bucket] = 'us-east-1'; + } + done(); + } else if (request.httpRequest.virtualHostedBucket) { + var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0}); + service.updateReqBucketRegion(getRegionReq, 'us-east-1'); + getRegionReq._requestRegionForBucket = bucket; + + getRegionReq.send(function() { + var region = service.bucketRegionCache[bucket] || null; + if (region && region !== request.httpRequest.region) { + service.updateReqBucketRegion(request, region); + } + done(); + }); + } else { + done(); + } + }, + + + bucketRegionCache: {}, + + + clearBucketRegionCache: function(buckets) { + var bucketRegionCache = this.bucketRegionCache; + if (!buckets) { + buckets = Object.keys(bucketRegionCache); + } else if (typeof buckets === 'string') { + buckets = [buckets]; + } + for (var i = 0; i < buckets.length; i++) { + delete bucketRegionCache[buckets[i]]; + } + return bucketRegionCache; + }, + + + correctBucketRegionFromCache: function correctBucketRegionFromCache(req) { + var bucket = req.params.Bucket || null; + if (bucket) { + var service = req.service; + var requestRegion = req.httpRequest.region; + var cachedRegion = service.bucketRegionCache[bucket]; + if (cachedRegion && cachedRegion !== requestRegion) { + service.updateReqBucketRegion(req, cachedRegion); + } + } + }, + + + extractRequestIds: function extractRequestIds(resp) { + var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null; + var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null; + resp.extendedRequestId = extendedRequestId; + resp.cfId = cfId; + + if (resp.error) { + resp.error.requestId = resp.requestId || null; + resp.error.extendedRequestId = extendedRequestId; + resp.error.cfId = cfId; + } + }, + + + 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); + return request.presign(expires, callback); + }, + + + prepareSignedUrl: function prepareSignedUrl(request) { + request.addListener('validate', request.service.noPresignedContentLength); + request.removeListener('build', request.service.addContentType); + if (!request.params.Body) { + request.removeListener('build', request.service.computeContentMd5); + } else { + request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); + } + }, + + noPresignedContentLength: function noPresignedContentLength(request) { + if (request.params.ContentLength !== undefined) { + throw AWS.util.error(new Error(), {code: 'UnexpectedParameter', + message: 'ContentLength is not supported in pre-signed URLs.'}); + } + }, + + createBucket: function createBucket(params, callback) { + if (typeof params === 'function' || !params) { + callback = callback || 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); + }, + + + upload: function upload(params, options, callback) { + if (typeof options === 'function' && callback === undefined) { + callback = options; + options = null; + } + + options = options || {}; + options = AWS.util.merge(options || {}, {service: this, params: params}); + + var uploader = new AWS.S3.ManagedUpload(options); + if (typeof callback === 'function') uploader.send(callback); + return uploader; + } +}); + +},{"../core":4,"../s3/managed_upload":39}],51:[function(require,module,exports){ +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); + + var matches = request.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./); + if (matches) request.httpRequest.region = matches[1]; + } + } +}); + +},{"../core":4}],52:[function(require,module,exports){ +var AWS = require('../core'); + +AWS.util.update(AWS.STS.prototype, { + + 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); + } +}); + +},{"../core":4}],53:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + + +var expiresHeader = 'presigned-expires'; + + +function signedUrlBuilder(request) { + var expires = request.httpRequest.headers[expiresHeader]; + + 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 = 'Presigning 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 if (request.service.getSignerClass() === AWS.Signers.S3) { + request.httpRequest.headers[expiresHeader] = parseInt( + AWS.util.date.unixTimestamp() + expires, 10).toString(); + } else { + throw AWS.util.error(new Error(), { + message: 'Presigning only supports S3 or SigV4 signing.', + code: 'UnsupportedSigner', retryable: false + }); + } +} + + +function signedUrlSigner(request) { + var endpoint = request.httpRequest.endpoint; + var parsedUrl = AWS.util.urlParse(request.httpRequest.path); + var queryParams = {}; + + if (parsedUrl.search) { + queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); + } + + AWS.util.each(request.httpRequest.headers, function (key, value) { + if (key === expiresHeader) key = 'Expires'; + if (key.indexOf('x-amz-meta-') === 0) { + key = key.toLowerCase(); + } + 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']; + + endpoint.pathname = parsedUrl.pathname; + endpoint.search = AWS.util.queryParamsToString(queryParams); +} + + +AWS.Signers.Presign = inherit({ + + sign: function sign(request, expireTime, callback) { + request.httpRequest.headers[expiresHeader] = expireTime || 3600; + request.on('build', signedUrlBuilder); + request.on('sign', signedUrlSigner); + request.removeListener('afterBuild', + AWS.EventListeners.Core.SET_CONTENT_LENGTH); + request.removeListener('afterBuild', + AWS.EventListeners.Core.COMPUTE_SHA256); + + request.emit('beforePresign', [request]); + + if (callback) { + request.build(function() { + if (this.response.error) callback(this.response.error); + else { + callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); + } + }); + } else { + request.build(); + if (request.response.error) throw request.response.error; + return AWS.util.urlFormat(request.httpRequest.endpoint); + } + } +}); + +module.exports = AWS.Signers.Presign; + +},{"../core":4}],54:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + + +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'); +require('./presign'); + +},{"../core":4,"./presign":53,"./s3":55,"./v2":56,"./v3":57,"./v3https":58,"./v4":59}],55:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + + +AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { + + subResources: { + 'acl': 1, + 'accelerate': 1, + 'cors': 1, + 'lifecycle': 1, + 'delete': 1, + 'location': 1, + 'logging': 1, + 'notification': 1, + 'partNumber': 1, + 'policy': 1, + 'requestPayment': 1, + 'replication': 1, + 'restore': 1, + 'tagging': 1, + 'torrent': 1, + 'uploadId': 1, + 'uploads': 1, + 'versionId': 1, + 'versioning': 1, + 'versions': 1, + 'website': 1 + }, + + 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) { + 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'] || ''); + + 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) { + + 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 (res) { + if (res.value === undefined) { + querystring.push(res.name); + } else { + querystring.push(res.name + '=' + res.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; + +},{"../core":4}],56:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + + +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; + +},{"../core":4}],57:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + + +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; + +},{"../core":4}],58:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +require('./v3'); + + +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; + +},{"../core":4,"./v3":57}],59:[function(require,module,exports){ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + + +var cachedSecret = {}; + + +var expiresHeader = 'presigned-expires'; + + +AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { + constructor: function V4(request, serviceName, signatureCache) { + AWS.Signers.RequestSigner.call(this, request); + this.serviceName = serviceName; + this.signatureCache = signatureCache; + }, + + algorithm: 'AWS4-HMAC-SHA256', + + addAuthorization: function addAuthorization(credentials, date) { + var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); + + if (this.isPresigned()) { + this.updateForPresigned(credentials, datetime); + } else { + this.addHeaders(credentials, datetime); + } + + 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; + } + }, + + updateForPresigned: function updateForPresigned(credentials, datetime) { + var credString = this.credentialString(datetime); + var qs = { + 'X-Amz-Date': datetime, + 'X-Amz-Algorithm': this.algorithm, + 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, + 'X-Amz-Expires': this.request.headers[expiresHeader], + 'X-Amz-SignedHeaders': this.signedHeaders() + }; + + if (credentials.sessionToken) { + qs['X-Amz-Security-Token'] = credentials.sessionToken; + } + + if (this.request.headers['Content-Type']) { + qs['Content-Type'] = this.request.headers['Content-Type']; + } + if (this.request.headers['Content-MD5']) { + qs['Content-MD5'] = this.request.headers['Content-MD5']; + } + if (this.request.headers['Cache-Control']) { + qs['Cache-Control'] = this.request.headers['Cache-Control']; + } + + AWS.util.each.call(this, this.request.headers, function(key, value) { + if (key === expiresHeader) return; + if (this.isSignableHeader(key) && + key.toLowerCase().indexOf('x-amz-') === 0) { + qs[key] = value; + } + }); + + var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; + this.request.path += sep + AWS.util.queryParamsToString(qs); + }, + + authorization: function authorization(credentials, datetime) { + var parts = []; + var credString = this.credentialString(datetime); + parts.push(this.algorithm + ' 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 = null; + if (this.signatureCache) { + 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'); + + if (!this.signatureCache) { + return AWS.util.crypto.hmac(kCredentials, this.stringToSign(datetime), 'hex'); + } + + 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 = [], pathname = this.request.pathname(); + if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname); + + parts.push(this.request.method); + parts.push(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.isPresigned() && this.serviceName === 's3') { + return 'UNSIGNED-PAYLOAD'; + } else 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', 'content-length', + 'user-agent', expiresHeader, 'expect'], + + isSignableHeader: function isSignableHeader(key) { + if (key.toLowerCase().indexOf('x-amz-') === 0) return true; + return this.unsignableHeaders.indexOf(key) < 0; + }, + + isPresigned: function isPresigned() { + return this.request.headers[expiresHeader] ? true : false; + } + +}); + +module.exports = AWS.Signers.V4; + +},{"../core":4}],60:[function(require,module,exports){ +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 (state.fail) self.currentState = state.fail; + else return done ? done.call(bindObject, err) : null; + } else { + if (state.accept) self.currentState = state.accept; + else return done ? done.call(bindObject) : null; + } + if (self.currentState === finalState) { + return done ? done.call(bindObject, 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; + +},{}],61:[function(require,module,exports){ +(function (process){ + + +var cryptoLib = require('crypto'); +var Buffer = require('buffer').Buffer; +var AWS; + + +var util = { + engine: function engine() { + if (util.isBrowser() && typeof navigator !== 'undefined') { + return navigator.userAgent; + } else { + return process.platform + '/' + process.version; + } + }, + + userAgent: function userAgent() { + var name = util.isBrowser() ? 'js' : 'nodejs'; + var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION; + if (name === 'nodejs') agent += ' ' + util.engine(); + return agent; + }, + + isBrowser: function isBrowser() { return process && process.browser; }, + isNode: function isNode() { return !util.isBrowser(); }, + nodeRequire: function nodeRequire(module) { + if (util.isNode()) return require(module); + }, + multiRequire: function multiRequire(module1, module2) { + return require(util.isNode() ? module1 : module2); + }, + + uriEscape: function uriEscape(string) { + var output = encodeURIComponent(string); + output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); + + output = output.replace(/[*]/g, function(ch) { + return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); + }); + + return output; + }, + + uriEscapePath: function uriEscapePath(string) { + var parts = []; + util.arrayEach(string.split('/'), function (part) { + parts.push(util.uriEscape(part)); + }); + return parts.join('/'); + }, + + urlParse: function urlParse(url) { + return require('url').parse(url); + }, + + urlFormat: function urlFormat(url) { + return require('url').format(url); + }, + + queryStringParse: function queryStringParse(qs) { + return require('querystring').parse(qs); + }, + + queryParamsToString: function queryParamsToString(params) { + var items = []; + var escape = util.uriEscape; + var sortedKeys = Object.keys(params).sort(); + + util.arrayEach(sortedKeys, function(name) { + var value = params[name]; + var ename = escape(name); + var result = ename + '='; + if (Array.isArray(value)) { + var vals = []; + 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 (util.isBrowser()) return null; + return util.nodeRequire('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'); + } + + }, + + Buffer: Buffer, + + buffer: { + toStream: function toStream(buffer) { + if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer); + + var readable = new (util.nodeRequire('stream').Readable)(); + 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; + }, + + + 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 util.nodeRequire('fs').lstatSync(string.path).size; + } else { + throw 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); + } + }, + + ini: { + parse: function string(ini) { + var currentSection, map = {}; + util.arrayEach(ini.split(/\r?\n/), function(line) { + line = line.split(/(^|\s);/)[0]; // remove comments + var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); + if (section) { + currentSection = section[1]; + } else if (currentSection) { + var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); + if (item) { + map[currentSection] = map[currentSection] || {}; + map[currentSection][item[1]] = item[2]; + } + } + }); + + return map; + } + }, + + fn: { + noop: function() {}, + + + makeAsync: function makeAsync(fn, expectedArgs) { + if (expectedArgs && expectedArgs <= fn.length) { + return fn; + } + + return function() { + var args = Array.prototype.slice.call(arguments, 0); + var callback = args.pop(); + var result = fn.apply(null, args); + callback(result); + }; + } + }, + + + date: { + + + getDate: function getDate() { + if (!AWS) AWS = require('./core'); + if (AWS.config.systemClockOffset) { // use offset when non-zero + return new Date(new Date().getTime() + AWS.config.systemClockOffset); + } else { + return new Date(); + } + }, + + + iso8601: function iso8601(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); + }, + + + rfc822: function rfc822(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toUTCString(); + }, + + + unixTimestamp: function unixTimestamp(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.getTime() / 1000; + }, + + + from: function format(date) { + if (typeof date === 'number') { + return new Date(date * 1000); // unix timestamp + } else { + return new Date(date); + } + }, + + + format: function format(date, formatter) { + if (!formatter) formatter = 'iso8601'; + return util.date[formatter](util.date.from(date)); + }, + + parseTimestamp: function parseTimestamp(value) { + if (typeof value === 'number') { // unix timestamp (number) + return new Date(value * 1000); + } else 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 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 = 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, callback) { + return util.crypto.hash('md5', data, digest, callback); + }, + + sha256: function sha256(data, digest, callback) { + return util.crypto.hash('sha256', data, digest, callback); + }, + + hash: function(algorithm, data, digest, callback) { + var hash = util.crypto.createHash(algorithm); + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof data === 'string') data = new Buffer(data); + var sliceFn = util.arraySliceFn(data); + var isBuffer = Buffer.isBuffer(data); + if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; + + if (callback && typeof data === 'object' && + typeof data.on === 'function' && !isBuffer) { + data.on('data', function(chunk) { hash.update(chunk); }); + data.on('error', function(err) { callback(err); }); + data.on('end', function() { callback(null, hash.digest(digest)); }); + } else if (callback && sliceFn && !isBuffer && + typeof FileReader !== 'undefined') { + var index = 0, size = 1024 * 512; + var reader = new FileReader(); + reader.onerror = function() { + callback(new Error('Failed to read data.')); + }; + reader.onload = function() { + var buf = new Buffer(new Uint8Array(reader.result)); + hash.update(buf); + index += buf.length; + reader._continueReading(); + }; + reader._continueReading = function() { + if (index >= data.size) { + callback(null, hash.digest(digest)); + return; + } + + var back = index + size; + if (back > data.size) back = data.size; + reader.readAsArrayBuffer(sliceFn.call(data, index, back)); + }; + + reader._continueReading(); + } else { + if (util.isBrowser() && typeof data === 'object' && !isBuffer) { + data = new Buffer(new Uint8Array(data)); + } + var out = hash.update(data).digest(digest); + if (callback) callback(null, out); + return out; + } + }, + + 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); + } + + }, + + + + + abort: {}, + + each: function each(object, iterFunction) { + for (var key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + var ret = iterFunction.call(this, key, object[key]); + if (ret === 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 === util.abort) break; + } + } + }, + + update: function update(obj1, obj2) { + util.each(obj2, function iterator(key, item) { + obj1[key] = item; + }); + return obj1; + }, + + merge: function merge(obj1, obj2) { + return util.update(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; + }, + + arraySliceFn: function arraySliceFn(obj) { + var fn = obj.slice || obj.webkitSlice || obj.mozSlice; + return typeof fn === 'function' ? fn : null; + }, + + isType: function isType(obj, type) { + if (typeof type === 'function') type = 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 = util.copy(err); + originalError.message = err.message; + } + } + err.message = err.message || null; + + if (typeof options === 'string') { + err.message = options; + } else if (typeof options === 'object' && options !== null) { + util.update(err, options); + if (options.message) + err.message = options.message; + if (options.code || options.name) + err.code = options.code || options.name; + if (options.stack) + err.stack = options.stack; + } + + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(err, 'name', {writable: true, enumerable: false}); + Object.defineProperty(err, 'message', {enumerable: true}); + } + + err.name = options && options.name || err.name || err.code || 'Error'; + err.time = new Date(); + + if (originalError) err.originalError = originalError; + + return err; + }, + + + 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(); + } + + if (features.constructor === Object) { + features.constructor = function() { + if (klass !== Object) { + return klass.apply(this, arguments); + } + }; + } + + features.constructor.prototype = newObject; + util.update(features.constructor.prototype, features); + features.constructor.__super__ = klass; + return features.constructor; + }, + + + 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; + }, + + + hideProperties: function hideProperties(obj, props) { + if (typeof Object.defineProperty !== 'function') return; + + util.arrayEach(props, function (key) { + Object.defineProperty(obj, key, { + enumerable: false, writable: true, configurable: true }); + }); + }, + + + property: function property(obj, name, value, enumerable, isValue) { + var opts = { + configurable: true, + enumerable: enumerable !== undefined ? enumerable : true + }; + if (typeof value === 'function' && !isValue) { + opts.get = value; + } + else { + opts.value = value; opts.writable = true; + } + + Object.defineProperty(obj, name, opts); + }, + + + memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { + var cachedValue = null; + + util.property(obj, name, function() { + if (cachedValue === null) { + cachedValue = get(); + } + return cachedValue; + }, enumerable); + }, + + + hoistPayloadMember: function hoistPayloadMember(resp) { + var req = resp.request; + var operation = req.operation; + var output = req.service.api.operations[operation].output; + if (output.payload) { + var payloadMember = output.members[output.payload]; + var responsePayload = resp.data[output.payload]; + if (payloadMember.type === 'structure') { + util.each(responsePayload, function(key, value) { + util.property(resp.data, key, value, false); + }); + } + } + }, + + + computeSha256: function computeSha256(body, done) { + if (util.isNode()) { + var Stream = util.nodeRequire('stream').Stream; + var fs = util.nodeRequire('fs'); + if (body instanceof Stream) { + if (typeof body.path === 'string') { // assume file object + var settings = {}; + if (typeof body.start === 'number') { + settings.start = body.start; + } + if (typeof body.end === 'number') { + settings.end = body.end; + } + body = fs.createReadStream(body.path, settings); + } else { // TODO support other stream types + return done(new Error('Non-file stream objects are ' + + 'not supported with SigV4')); + } + } + } + + util.crypto.sha256(body, 'hex', function(err, sha) { + if (err) done(err); + else done(null, sha); + }); + }, + + + isClockSkewed: function isClockSkewed(serverTime) { + if (serverTime) { + util.property(AWS.config, 'isClockSkewed', + Math.abs(new Date().getTime() - serverTime) >= 300000, false); + return AWS.config.isClockSkewed; + } + }, + + applyClockOffset: function applyClockOffset(serverTime) { + if (serverTime) + AWS.config.systemClockOffset = serverTime - new Date().getTime(); + }, + + + extractRequestId: function extractRequestId(resp) { + var requestId = resp.httpResponse.headers['x-amz-request-id'] || + resp.httpResponse.headers['x-amzn-requestid']; + + if (!requestId && resp.data && resp.data.ResponseMetadata) { + requestId = resp.data.ResponseMetadata.RequestId; + } + + if (requestId) { + resp.requestId = requestId; + } + + if (resp.error) { + resp.error.requestId = requestId; + } + }, + + + addPromisesToRequests: function addPromisesToRequests(constructor, PromiseDependency) { + PromiseDependency = PromiseDependency || null; + if (!PromiseDependency && typeof Promise !== 'undefined') { + PromiseDependency = Promise; + } + if (typeof PromiseDependency !== 'function') { + delete constructor.prototype.promise; + return; + } + constructor.prototype.promise = function promise() { + var self = this; + return new PromiseDependency(function(resolve, reject) { + self.on('complete', function(resp) { + if (resp.error) { + reject(resp.error); + } else { + resolve(resp.data); + } + }); + self.runTo(); + }); + } + } + +}; + +module.exports = util; + +}).call(this,require('_process')) +},{"./core":4,"_process":76,"buffer":64,"crypto":69,"querystring":80,"url":81}],62:[function(require,module,exports){ +var util = require('../util'); +var Shape = require('../model/shape'); + +function DomXmlParser() { } + +DomXmlParser.prototype.parse = function(xml, shape) { + if (xml.replace(/^\s+/, '') === '') return {}; + + var result, error; + try { + if (window.DOMParser) { + try { + var parser = new DOMParser(); + result = parser.parseFromString(xml, 'text/xml'); + } catch (syntaxError) { + throw util.error(new Error('Parse error in document'), + { + originalError: syntaxError, + code: 'XMLParserError', + retryable: true + }); + } + + if (result.documentElement === null) { + throw util.error(new Error('Cannot parse empty document.'), + { + code: 'XMLParserError', + retryable: true + }); + } + + var isError = result.getElementsByTagName('parsererror')[0]; + if (isError && (isError.parentNode === result || + isError.parentNode.nodeName === 'body' || + isError.parentNode.parentNode === result || + isError.parentNode.parentNode.nodeName === 'body')) { + var errorElement = isError.getElementsByTagName('div')[0] || isError; + throw util.error(new Error(errorElement.textContent || 'Parser error in document'), + { + code: 'XMLParserError', + retryable: true + }); + } + } else if (window.ActiveXObject) { + result = new window.ActiveXObject('Microsoft.XMLDOM'); + result.async = false; + + if (!result.loadXML(xml)) { + throw util.error(new Error('Parse error in document'), + { + code: 'XMLParserError', + retryable: true + }); + } + } else { + throw new Error('Cannot load XML parser'); + } + } catch (e) { + error = e; + } + + if (result && result.documentElement && !error) { + var data = parseXml(result.documentElement, shape); + var metadata = result.getElementsByTagName('ResponseMetadata')[0]; + if (metadata) { + data.ResponseMetadata = parseXml(metadata, {}); + } + return data; + } else if (error) { + throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true}); + } else { // empty xml document + return {}; + } +}; + +function parseXml(xml, shape) { + if (!shape) shape = {}; + switch (shape.type) { + case 'structure': return parseStructure(xml, shape); + case 'map': return parseMap(xml, shape); + case 'list': return parseList(xml, shape); + case undefined: case null: return parseUnknown(xml); + default: return parseScalar(xml, shape); + } +} + +function parseStructure(xml, shape) { + var data = {}; + if (xml === null) return data; + + util.each(shape.members, function(memberName, memberShape) { + if (memberShape.isXmlAttribute) { + if (xml.attributes.hasOwnProperty(memberShape.name)) { + var value = xml.attributes[memberShape.name].value; + data[memberName] = parseXml({textContent: value}, memberShape); + } + } else { + var xmlChild = memberShape.flattened ? xml : + xml.getElementsByTagName(memberShape.name)[0]; + if (xmlChild) { + data[memberName] = parseXml(xmlChild, memberShape); + } else if (!memberShape.flattened && memberShape.type === 'list') { + data[memberName] = memberShape.defaultValue; + } + } + }); + + return data; +} + +function parseMap(xml, shape) { + var data = {}; + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + var tagName = shape.flattened ? shape.name : 'entry'; + + var child = xml.firstElementChild; + while (child) { + if (child.nodeName === tagName) { + var key = child.getElementsByTagName(xmlKey)[0].textContent; + var value = child.getElementsByTagName(xmlValue)[0]; + data[key] = parseXml(value, shape.value); + } + child = child.nextElementSibling; + } + return data; +} + +function parseList(xml, shape) { + var data = []; + var tagName = shape.flattened ? shape.name : (shape.member.name || 'member'); + + var child = xml.firstElementChild; + while (child) { + if (child.nodeName === tagName) { + data.push(parseXml(child, shape.member)); + } + child = child.nextElementSibling; + } + return data; +} + +function parseScalar(xml, shape) { + if (xml.getAttribute) { + var encoding = xml.getAttribute('encoding'); + if (encoding === 'base64') { + shape = new Shape.create({type: encoding}); + } + } + + var text = xml.textContent; + if (text === '') text = null; + if (typeof shape.toType === 'function') { + return shape.toType(text); + } else { + return text; + } +} + +function parseUnknown(xml) { + if (xml === undefined || xml === null) return ''; + + if (!xml.firstElementChild) { + if (xml.parentNode.parentNode === null) return {}; + if (xml.childNodes.length === 0) return ''; + else return xml.textContent; + } + + var shape = {type: 'structure', members: {}}; + var child = xml.firstElementChild; + while (child) { + var tag = child.nodeName; + if (shape.members.hasOwnProperty(tag)) { + shape.members[tag].type = 'list'; + } else { + shape.members[tag] = {name: tag}; + } + child = child.nextElementSibling; + } + return parseStructure(xml, shape); +} + +module.exports = DomXmlParser; + +},{"../model/shape":26,"../util":61}],63:[function(require,module,exports){ +var util = require('../util'); +var builder = require('xmlbuilder'); + +function XmlBuilder() { } + +XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { + var xml = builder.create(rootElement); + applyNamespaces(xml, shape); + serialize(xml, params, shape); + return xml.children.length > 0 || noEmpty ? xml.root().toString() : ''; +}; + +function serialize(xml, value, shape) { + switch (shape.type) { + case 'structure': return serializeStructure(xml, value, shape); + case 'map': return serializeMap(xml, value, shape); + case 'list': return serializeList(xml, value, shape); + default: return serializeScalar(xml, value, shape); + } +} + +function serializeStructure(xml, params, shape) { + util.arrayEach(shape.memberNames, function(memberName) { + var memberShape = shape.members[memberName]; + if (memberShape.location !== 'body') return; + + var value = params[memberName]; + var name = memberShape.name; + if (value !== undefined && value !== null) { + if (memberShape.isXmlAttribute) { + xml.att(name, value); + } else if (memberShape.flattened) { + serialize(xml, value, memberShape); + } else { + var element = xml.ele(name); + applyNamespaces(element, memberShape); + serialize(element, value, memberShape); + } + } + }); +} + +function serializeMap(xml, map, shape) { + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + + util.each(map, function(key, value) { + var entry = xml.ele(shape.flattened ? shape.name : 'entry'); + serialize(entry.ele(xmlKey), key, shape.key); + serialize(entry.ele(xmlValue), value, shape.value); + }); +} + +function serializeList(xml, list, shape) { + if (shape.flattened) { + util.arrayEach(list, function(value) { + var name = shape.member.name || shape.name; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } else { + util.arrayEach(list, function(value) { + var name = shape.member.name || 'member'; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } +} + +function serializeScalar(xml, value, shape) { + xml.txt(shape.toWireFormat(value)); +} + +function applyNamespaces(xml, shape) { + var uri, prefix = 'xmlns'; + if (shape.xmlNamespaceUri) { + uri = shape.xmlNamespaceUri; + if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; + } else if (xml.isRoot && shape.api.xmlNamespaceUri) { + uri = shape.api.xmlNamespaceUri; + } + + if (uri) xml.att(prefix, uri); +} + +module.exports = XmlBuilder; + +},{"../util":61,"xmlbuilder":101}],64:[function(require,module,exports){ +(function (global){ + + + +'use strict' + +var base64 = require('base64-js') +var ieee754 = require('ieee754') +var isArray = require('isarray') + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 +Buffer.poolSize = 8192 // not used by this implementation + +var rootParent = {} + + +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.foo = function () { return 42 } + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + + +function Buffer (arg) { + if (!(this instanceof Buffer)) { + if (arguments.length > 1) return new Buffer(arg, arguments[1]) + return new Buffer(arg) + } + + if (!Buffer.TYPED_ARRAY_SUPPORT) { + this.length = 0 + this.parent = undefined + } + + if (typeof arg === 'number') { + return fromNumber(this, arg) + } + + if (typeof arg === 'string') { + return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8') + } + + return fromObject(this, arg) +} + +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function fromNumber (that, length) { + that = allocate(that, length < 0 ? 0 : checked(length) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < length; i++) { + that[i] = 0 + } + } + return that +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8' + + var length = byteLength(string, encoding) | 0 + that = allocate(that, length) + + that.write(string, encoding) + return that +} + +function fromObject (that, object) { + if (Buffer.isBuffer(object)) return fromBuffer(that, object) + + if (isArray(object)) return fromArray(that, object) + + if (object == null) { + throw new TypeError('must start with number, buffer, array or string') + } + + if (typeof ArrayBuffer !== 'undefined') { + if (object.buffer instanceof ArrayBuffer) { + return fromTypedArray(that, object) + } + if (object instanceof ArrayBuffer) { + return fromArrayBuffer(that, object) + } + } + + if (object.length) return fromArrayLike(that, object) + + return fromJsonObject(that, object) +} + +function fromBuffer (that, buffer) { + var length = checked(buffer.length) | 0 + that = allocate(that, length) + buffer.copy(that, 0, 0, length) + return that +} + +function fromArray (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromTypedArray (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (Buffer.TYPED_ARRAY_SUPPORT) { + that = new Uint8Array(array) + that.__proto__ = Buffer.prototype + } else { + that = fromTypedArray(that, new Uint8Array(array)) + } + return that +} + +function fromArrayLike (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromJsonObject (that, object) { + var array + var length = 0 + + if (object.type === 'Buffer' && isArray(object.data)) { + array = object.data + length = checked(array.length) | 0 + } + that = allocate(that, length) + + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} else { + Buffer.prototype.length = undefined + Buffer.prototype.parent = undefined +} + +function allocate (that, length) { + if (Buffer.TYPED_ARRAY_SUPPORT) { + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + that.length = length + } + + var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1 + if (fromPool) that.parent = rootParent + + return that +} + +function checked (length) { + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (subject, encoding) { + if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding) + + var buf = new Buffer(subject, encoding) + delete buf.parent + return buf +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'raw': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.') + + if (list.length === 0) { + return new Buffer(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; i++) { + length += list[i].length + } + } + + var buf = new Buffer(length) + var pos = 0 + for (i = 0; i < list.length; i++) { + var item = list[i] + item.copy(buf, pos) + pos += item.length + } + return buf +} + +function byteLength (string, encoding) { + if (typeof string !== 'string') string = '' + string + + var len = string.length + if (len === 0) return 0 + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'binary': + case 'raw': + case 'raws': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + start = start | 0 + end = end === undefined || end === Infinity ? this.length : end | 0 + + if (!encoding) encoding = 'utf8' + if (start < 0) start = 0 + if (end > this.length) end = this.length + if (end <= start) return '' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'binary': + return binarySlice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype._isBuffer = true + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + return Buffer.compare(this, b) +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset) { + if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff + else if (byteOffset < -0x80000000) byteOffset = -0x80000000 + byteOffset >>= 0 + + if (this.length === 0) return -1 + if (byteOffset >= this.length) return -1 + + if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0) + + if (typeof val === 'string') { + if (val.length === 0) return -1 // special case: looking for empty string always fails + return String.prototype.indexOf.call(this, val, byteOffset) + } + if (Buffer.isBuffer(val)) { + return arrayIndexOf(this, val, byteOffset) + } + if (typeof val === 'number') { + if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') { + return Uint8Array.prototype.indexOf.call(this, val, byteOffset) + } + return arrayIndexOf(this, [ val ], byteOffset) + } + + function arrayIndexOf (arr, val, byteOffset) { + var foundIndex = -1 + for (var i = 0; byteOffset + i < arr.length; i++) { + if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex + } else { + foundIndex = -1 + } + } + return -1 + } + + throw new TypeError('val must be string, number or Buffer') +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + var strLen = string.length + if (strLen % 2 !== 0) throw new Error('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; i++) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) throw new Error('Invalid hex string') + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function binaryWrite (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + } else { + var swap = encoding + encoding = offset + offset = length | 0 + length = swap + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'binary': + return binaryWrite(this, string, offset, length) + + case 'base64': + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function binarySlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; i++) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; i++) { + newBuf[i] = this[i + start] + } + } + + if (newBuf.length) newBuf.parent = this.parent || this + + return newBuf +} + + +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance') + if (value > max || value < min) throw new RangeError('value is out of bounds') + if (offset + ext > buf.length) throw new RangeError('index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = value < 0 ? 1 : 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = value < 0 ? 1 : 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('index out of range') + if (offset < 0) throw new RangeError('index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + for (i = len - 1; i >= 0; i--) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + for (i = 0; i < len; i++) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +Buffer.prototype.fill = function fill (value, start, end) { + if (!value) value = 0 + if (!start) start = 0 + if (!end) end = this.length + + if (end < start) throw new RangeError('end < start') + + if (end === start) return + if (this.length === 0) return + + if (start < 0 || start >= this.length) throw new RangeError('start out of bounds') + if (end < 0 || end > this.length) throw new RangeError('end out of bounds') + + var i + if (typeof value === 'number') { + for (i = start; i < end; i++) { + this[i] = value + } + } else { + var bytes = utf8ToBytes(value.toString()) + var len = bytes.length + for (i = start; i < end; i++) { + this[i] = bytes[i % len] + } + } + + return this +} + + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + if (str.length < 2) return '' + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; i++) { + codePoint = string.charCodeAt(i) + + if (codePoint > 0xD7FF && codePoint < 0xE000) { + if (!leadSurrogate) { + if (codePoint > 0xDBFF) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + leadSurrogate = codePoint + + continue + } + + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; i++) { + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; i++) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; i++) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"base64-js":65,"ieee754":66,"isarray":67}],65:[function(require,module,exports){ +'use strict' + +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +function init () { + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i + } + + revLookup['-'.charCodeAt(0)] = 62 + revLookup['_'.charCodeAt(0)] = 63 +} + +init() + +function toByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + var len = b64.length + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 + + arr = new Arr(len * 3 / 4 - placeHolders) + + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + +},{}],66:[function(require,module,exports){ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + +},{}],67:[function(require,module,exports){ +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + +},{}],68:[function(require,module,exports){ +var Buffer = require('buffer').Buffer; +var intSize = 4; +var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(0); +var chrsz = 8; + +function toArray(buf, bigEndian) { + if ((buf.length % intSize) !== 0) { + var len = buf.length + (intSize - (buf.length % intSize)); + buf = Buffer.concat([buf, zeroBuffer], len); + } + + var arr = []; + var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE; + for (var i = 0; i < buf.length; i += intSize) { + arr.push(fn.call(buf, i)); + } + return arr; +} + +function toBuffer(arr, size, bigEndian) { + var buf = new Buffer(size); + var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE; + for (var i = 0; i < arr.length; i++) { + fn.call(buf, arr[i], i * 4, true); + } + return buf; +} + +function hash(buf, fn, hashSize, bigEndian) { + if (!Buffer.isBuffer(buf)) buf = new Buffer(buf); + var arr = fn(toArray(buf, bigEndian), buf.length * chrsz); + return toBuffer(arr, hashSize, bigEndian); +} + +module.exports = { hash: hash }; + +},{"buffer":64}],69:[function(require,module,exports){ +var Buffer = require('buffer').Buffer +var sha = require('./sha') +var sha256 = require('./sha256') +var rng = require('./rng') +var md5 = require('./md5') + +var algorithms = { + sha1: sha, + sha256: sha256, + md5: md5 +} + +var blocksize = 64 +var zeroBuffer = new Buffer(blocksize); zeroBuffer.fill(0) +function hmac(fn, key, data) { + if(!Buffer.isBuffer(key)) key = new Buffer(key) + if(!Buffer.isBuffer(data)) data = new Buffer(data) + + if(key.length > blocksize) { + key = fn(key) + } else if(key.length < blocksize) { + key = Buffer.concat([key, zeroBuffer], blocksize) + } + + var ipad = new Buffer(blocksize), opad = new Buffer(blocksize) + for(var i = 0; i < blocksize; i++) { + ipad[i] = key[i] ^ 0x36 + opad[i] = key[i] ^ 0x5C + } + + var hash = fn(Buffer.concat([ipad, data])) + return fn(Buffer.concat([opad, hash])) +} + +function hash(alg, key) { + alg = alg || 'sha1' + var fn = algorithms[alg] + var bufs = [] + var length = 0 + if(!fn) error('algorithm:', alg, 'is not yet supported') + return { + update: function (data) { + if(!Buffer.isBuffer(data)) data = new Buffer(data) + + bufs.push(data) + length += data.length + return this + }, + digest: function (enc) { + var buf = Buffer.concat(bufs) + var r = key ? hmac(fn, key, buf) : fn(buf) + bufs = null + return enc ? r.toString(enc) : r + } + } +} + +function error () { + var m = [].slice.call(arguments).join(' ') + throw new Error([ + m, + 'we accept pull requests', + 'http://github.com/dominictarr/crypto-browserify' + ].join('\n')) +} + +exports.createHash = function (alg) { return hash(alg) } +exports.createHmac = function (alg, key) { return hash(alg, key) } +exports.randomBytes = function(size, callback) { + if (callback && callback.call) { + try { + callback.call(this, undefined, new Buffer(rng(size))) + } catch (err) { callback(err) } + } else { + return new Buffer(rng(size)) + } +} + +function each(a, f) { + for(var i in a) + f(a[i], i) +} + +each(['createCredentials' +, 'createCipher' +, 'createCipheriv' +, 'createDecipher' +, 'createDecipheriv' +, 'createSign' +, 'createVerify' +, 'createDiffieHellman' +, 'pbkdf2'], function (name) { + exports[name] = function () { + error('sorry,', name, 'is not implemented yet') + } +}) + +},{"./md5":70,"./rng":71,"./sha":72,"./sha256":73,"buffer":64}],70:[function(require,module,exports){ + + +var helpers = require('./helpers'); + + +function md5_vm_test() +{ + return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; +} + + +function core_md5(x, len) +{ + + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i+10], 17, -42063); + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return Array(a, b, c, d); + +} + + +function md5_cmn(q, a, b, x, s, t) +{ + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); +} +function md5_ff(a, b, c, d, x, s, t) +{ + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); +} +function md5_gg(a, b, c, d, x, s, t) +{ + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); +} +function md5_hh(a, b, c, d, x, s, t) +{ + return md5_cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5_ii(a, b, c, d, x, s, t) +{ + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); +} + + +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + + +function bit_rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +module.exports = function md5(buf) { + return helpers.hash(buf, core_md5, 16); +}; + +},{"./helpers":68}],71:[function(require,module,exports){ +(function() { + var _global = this; + + var mathRNG, whatwgRNG; + + mathRNG = function(size) { + var bytes = new Array(size); + var r; + + for (var i = 0, r; i < size; i++) { + if ((i & 0x03) == 0) r = Math.random() * 0x100000000; + bytes[i] = r >>> ((i & 0x03) << 3) & 0xff; + } + + return bytes; + } + + if (_global.crypto && crypto.getRandomValues) { + whatwgRNG = function(size) { + var bytes = new Uint8Array(size); + crypto.getRandomValues(bytes); + return bytes; + } + } + + module.exports = whatwgRNG || mathRNG; + +}()) + +},{}],72:[function(require,module,exports){ + + +var helpers = require('./helpers'); + + +function core_sha1(x, len) +{ + + x[len >> 5] |= 0x80 << (24 - len % 32); + x[((len + 64 >> 9) << 4) + 15] = len; + + var w = Array(80); + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + var e = -1009589776; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + var olde = e; + + for(var j = 0; j < 80; j++) + { + if(j < 16) w[j] = x[i + j]; + else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); + var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), + safe_add(safe_add(e, w[j]), sha1_kt(j))); + e = d; + d = c; + c = rol(b, 30); + b = a; + a = t; + } + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + e = safe_add(e, olde); + } + return Array(a, b, c, d, e); + +} + + +function sha1_ft(t, b, c, d) +{ + if(t < 20) return (b & c) | ((~b) & d); + if(t < 40) return b ^ c ^ d; + if(t < 60) return (b & c) | (b & d) | (c & d); + return b ^ c ^ d; +} + + +function sha1_kt(t) +{ + return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : + (t < 60) ? -1894007588 : -899497514; +} + + +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + + +function rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +module.exports = function sha1(buf) { + return helpers.hash(buf, core_sha1, 20, true); +}; + +},{"./helpers":68}],73:[function(require,module,exports){ + + + +var helpers = require('./helpers'); + +var safe_add = function(x, y) { + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +}; + +var S = function(X, n) { + return (X >>> n) | (X << (32 - n)); +}; + +var R = function(X, n) { + return (X >>> n); +}; + +var Ch = function(x, y, z) { + return ((x & y) ^ ((~x) & z)); +}; + +var Maj = function(x, y, z) { + return ((x & y) ^ (x & z) ^ (y & z)); +}; + +var Sigma0256 = function(x) { + return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); +}; + +var Sigma1256 = function(x) { + return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); +}; + +var Gamma0256 = function(x) { + return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); +}; + +var Gamma1256 = function(x) { + return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); +}; + +var core_sha256 = function(m, l) { + var K = new Array(0x428A2F98,0x71374491,0xB5C0FBCF,0xE9B5DBA5,0x3956C25B,0x59F111F1,0x923F82A4,0xAB1C5ED5,0xD807AA98,0x12835B01,0x243185BE,0x550C7DC3,0x72BE5D74,0x80DEB1FE,0x9BDC06A7,0xC19BF174,0xE49B69C1,0xEFBE4786,0xFC19DC6,0x240CA1CC,0x2DE92C6F,0x4A7484AA,0x5CB0A9DC,0x76F988DA,0x983E5152,0xA831C66D,0xB00327C8,0xBF597FC7,0xC6E00BF3,0xD5A79147,0x6CA6351,0x14292967,0x27B70A85,0x2E1B2138,0x4D2C6DFC,0x53380D13,0x650A7354,0x766A0ABB,0x81C2C92E,0x92722C85,0xA2BFE8A1,0xA81A664B,0xC24B8B70,0xC76C51A3,0xD192E819,0xD6990624,0xF40E3585,0x106AA070,0x19A4C116,0x1E376C08,0x2748774C,0x34B0BCB5,0x391C0CB3,0x4ED8AA4A,0x5B9CCA4F,0x682E6FF3,0x748F82EE,0x78A5636F,0x84C87814,0x8CC70208,0x90BEFFFA,0xA4506CEB,0xBEF9A3F7,0xC67178F2); + var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19); + var W = new Array(64); + var a, b, c, d, e, f, g, h, i, j; + var T1, T2; + + m[l >> 5] |= 0x80 << (24 - l % 32); + m[((l + 64 >> 9) << 4) + 15] = l; + for (var i = 0; i < m.length; i += 16) { + a = HASH[0]; b = HASH[1]; c = HASH[2]; d = HASH[3]; e = HASH[4]; f = HASH[5]; g = HASH[6]; h = HASH[7]; + for (var j = 0; j < 64; j++) { + if (j < 16) { + W[j] = m[j + i]; + } else { + W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]); + } + T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]); + T2 = safe_add(Sigma0256(a), Maj(a, b, c)); + h = g; g = f; f = e; e = safe_add(d, T1); d = c; c = b; b = a; a = safe_add(T1, T2); + } + HASH[0] = safe_add(a, HASH[0]); HASH[1] = safe_add(b, HASH[1]); HASH[2] = safe_add(c, HASH[2]); HASH[3] = safe_add(d, HASH[3]); + HASH[4] = safe_add(e, HASH[4]); HASH[5] = safe_add(f, HASH[5]); HASH[6] = safe_add(g, HASH[6]); HASH[7] = safe_add(h, HASH[7]); + } + return HASH; +}; + +module.exports = function sha256(buf) { + return helpers.hash(buf, core_sha256, 32, true); +}; + +},{"./helpers":68}],74:[function(require,module,exports){ + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +EventEmitter.defaultMaxListeners = 10; + +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } + throw TypeError('Uncaught, unspecified "error" event.'); + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + default: + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + handler.apply(this, args); + } + } else if (isObject(handler)) { + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + this._events[type] = listener; + else if (isObject(this._events[type])) + this._events[type].push(listener); + else + this._events[type] = [this._events[type], listener]; + + if (isObject(this._events[type]) && !this._events[type].warned) { + var m; + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else { + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.listenerCount = function(emitter, type) { + var ret; + if (!emitter._events || !emitter._events[type]) + ret = 0; + else if (isFunction(emitter._events[type])) + ret = 1; + else + ret = emitter._events[type].length; + return ret; +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}],75:[function(require,module,exports){ +if (typeof Object.create === 'function') { + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + +},{}],76:[function(require,module,exports){ + +var process = module.exports = {}; +var queue = []; +var draining = false; + +function drainQueue() { + if (draining) { + return; + } + draining = true; + var currentQueue; + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + var i = -1; + while (++i < len) { + currentQueue[i](); + } + len = queue.length; + } + draining = false; +} +process.nextTick = function (fun) { + queue.push(fun); + if (!draining) { + setTimeout(drainQueue, 0); + } +}; + +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],77:[function(require,module,exports){ +(function (global){ + +;(function(root) { + + + var freeExports = typeof exports == 'object' && exports; + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + + var punycode, + + + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + + regexPunycode = /^xn--/, + regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators + + + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + + key; + + + + + function error(type) { + throw RangeError(errors[type]); + } + + + function map(array, fn) { + var length = array.length; + while (length--) { + array[length] = fn(array[length]); + } + return array; + } + + + function mapDomain(string, fn) { + return map(string.split(regexSeparators), fn).join('.'); + } + + + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + + function digitToBasic(digit, flag) { + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + + function decode(input) { + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + + baseMinusT; + + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + + inputLength, + + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + input = ucs2decode(input); + + inputLength = input.length; + + n = initialN; + delta = 0; + bias = initialBias; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + + if (basicLength) { + output.push(delimiter); + } + + while (handledCPCount < inputLength) { + + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + + function toUnicode(domain) { + return mapDomain(domain, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + + function toASCII(domain) { + return mapDomain(domain, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + + + + punycode = { + + 'version': '1.2.4', + + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define('punycode', function() { + return punycode; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],78:[function(require,module,exports){ + +'use strict'; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +},{}],79:[function(require,module,exports){ + +'use strict'; + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return map(objectKeys(obj), function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (isArray(obj[k])) { + return map(obj[k], function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); + } + return res; +} + +var objectKeys = Object.keys || function (obj) { + var res = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); + } + return res; +}; + +},{}],80:[function(require,module,exports){ +'use strict'; + +exports.decode = exports.parse = require('./decode'); +exports.encode = exports.stringify = require('./encode'); + +},{"./decode":78,"./encode":79}],81:[function(require,module,exports){ + +var punycode = require('punycode'); + +exports.parse = urlParse; +exports.resolve = urlResolve; +exports.resolveObject = urlResolveObject; +exports.format = urlFormat; + +exports.Url = Url; + +function Url() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; +} + + +var protocolPattern = /^([a-z0-9.+-]+:)/i, + portPattern = /:[0-9]*$/, + + delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], + + unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), + + autoEscape = ['\''].concat(unwise), + nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), + hostEndingChars = ['/', '?', '#'], + hostnameMaxLen = 255, + hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/, + unsafeProtocol = { + 'javascript': true, + 'javascript:': true + }, + hostlessProtocol = { + 'javascript': true, + 'javascript:': true + }, + slashedProtocol = { + 'http': true, + 'https': true, + 'ftp': true, + 'gopher': true, + 'file': true, + 'http:': true, + 'https:': true, + 'ftp:': true, + 'gopher:': true, + 'file:': true + }, + querystring = require('querystring'); + +function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && isObject(url) && url instanceof Url) return url; + + var u = new Url; + u.parse(url, parseQueryString, slashesDenoteHost); + return u; +} + +Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + if (!isString(url)) { + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + } + + var rest = url; + + rest = rest.trim(); + + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto; + rest = rest.substr(proto.length); + } + + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { + var slashes = rest.substr(0, 2) === '//'; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + this.slashes = true; + } + } + + if (!hostlessProtocol[proto] && + (slashes || (proto && !slashedProtocol[proto]))) { + + + + var hostEnd = -1; + for (var i = 0; i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + + var auth, atSign; + if (hostEnd === -1) { + atSign = rest.lastIndexOf('@'); + } else { + atSign = rest.lastIndexOf('@', hostEnd); + } + + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + this.auth = decodeURIComponent(auth); + } + + hostEnd = -1; + for (var i = 0; i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + if (hostEnd === -1) + hostEnd = rest.length; + + this.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + + this.parseHost(); + + this.hostname = this.hostname || ''; + + var ipv6Hostname = this.hostname[0] === '[' && + this.hostname[this.hostname.length - 1] === ']'; + + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) continue; + if (!part.match(hostnamePartPattern)) { + var newpart = ''; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + newpart += 'x'; + } else { + newpart += part[j]; + } + } + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = '/' + notHost.join('.') + rest; + } + this.hostname = validParts.join('.'); + break; + } + } + } + } + + if (this.hostname.length > hostnameMaxLen) { + this.hostname = ''; + } else { + this.hostname = this.hostname.toLowerCase(); + } + + if (!ipv6Hostname) { + var domainArray = this.hostname.split('.'); + var newOut = []; + for (var i = 0; i < domainArray.length; ++i) { + var s = domainArray[i]; + newOut.push(s.match(/[^A-Za-z0-9_-]/) ? + 'xn--' + punycode.encode(s) : s); + } + this.hostname = newOut.join('.'); + } + + var p = this.port ? ':' + this.port : ''; + var h = this.hostname || ''; + this.host = h + p; + this.href += this.host; + + if (ipv6Hostname) { + this.hostname = this.hostname.substr(1, this.hostname.length - 2); + if (rest[0] !== '/') { + rest = '/' + rest; + } + } + } + + if (!unsafeProtocol[lowerProto]) { + + for (var i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); + } + } + + + var hash = rest.indexOf('#'); + if (hash !== -1) { + this.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf('?'); + if (qm !== -1) { + this.search = rest.substr(qm); + this.query = rest.substr(qm + 1); + if (parseQueryString) { + this.query = querystring.parse(this.query); + } + rest = rest.slice(0, qm); + } else if (parseQueryString) { + this.search = ''; + this.query = {}; + } + if (rest) this.pathname = rest; + if (slashedProtocol[lowerProto] && + this.hostname && !this.pathname) { + this.pathname = '/'; + } + + if (this.pathname || this.search) { + var p = this.pathname || ''; + var s = this.search || ''; + this.path = p + s; + } + + this.href = this.format(); + return this; +}; + +function urlFormat(obj) { + if (isString(obj)) obj = urlParse(obj); + if (!(obj instanceof Url)) return Url.prototype.format.call(obj); + return obj.format(); +} + +Url.prototype.format = function() { + var auth = this.auth || ''; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ':'); + auth += '@'; + } + + var protocol = this.protocol || '', + pathname = this.pathname || '', + hash = this.hash || '', + host = false, + query = ''; + + if (this.host) { + host = auth + this.host; + } else if (this.hostname) { + host = auth + (this.hostname.indexOf(':') === -1 ? + this.hostname : + '[' + this.hostname + ']'); + if (this.port) { + host += ':' + this.port; + } + } + + if (this.query && + isObject(this.query) && + Object.keys(this.query).length) { + query = querystring.stringify(this.query); + } + + var search = this.search || (query && ('?' + query)) || ''; + + if (protocol && protocol.substr(-1) !== ':') protocol += ':'; + + if (this.slashes || + (!protocol || slashedProtocol[protocol]) && host !== false) { + host = '//' + (host || ''); + if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; + } else if (!host) { + host = ''; + } + + if (hash && hash.charAt(0) !== '#') hash = '#' + hash; + if (search && search.charAt(0) !== '?') search = '?' + search; + + pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }); + search = search.replace('#', '%23'); + + return protocol + host + pathname + search + hash; +}; + +function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); +} + +Url.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); +}; + +function urlResolveObject(source, relative) { + if (!source) return relative; + return urlParse(source, false, true).resolveObject(relative); +} + +Url.prototype.resolveObject = function(relative) { + if (isString(relative)) { + var rel = new Url(); + rel.parse(relative, false, true); + relative = rel; + } + + var result = new Url(); + Object.keys(this).forEach(function(k) { + result[k] = this[k]; + }, this); + + result.hash = relative.hash; + + if (relative.href === '') { + result.href = result.format(); + return result; + } + + if (relative.slashes && !relative.protocol) { + Object.keys(relative).forEach(function(k) { + if (k !== 'protocol') + result[k] = relative[k]; + }); + + if (slashedProtocol[result.protocol] && + result.hostname && !result.pathname) { + result.path = result.pathname = '/'; + } + + result.href = result.format(); + return result; + } + + if (relative.protocol && relative.protocol !== result.protocol) { + if (!slashedProtocol[relative.protocol]) { + Object.keys(relative).forEach(function(k) { + result[k] = relative[k]; + }); + result.href = result.format(); + return result; + } + + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || '').split('/'); + while (relPath.length && !(relative.host = relPath.shift())); + if (!relative.host) relative.host = ''; + if (!relative.hostname) relative.hostname = ''; + if (relPath[0] !== '') relPath.unshift(''); + if (relPath.length < 2) relPath.unshift(''); + result.pathname = relPath.join('/'); + } else { + result.pathname = relative.pathname; + } + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ''; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + if (result.pathname || result.search) { + var p = result.pathname || ''; + var s = result.search || ''; + result.path = p + s; + } + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + + var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), + isRelAbs = ( + relative.host || + relative.pathname && relative.pathname.charAt(0) === '/' + ), + mustEndAbs = (isRelAbs || isSourceAbs || + (result.host && relative.pathname)), + removeAllDots = mustEndAbs, + srcPath = result.pathname && result.pathname.split('/') || [], + relPath = relative.pathname && relative.pathname.split('/') || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + + if (psychotic) { + result.hostname = ''; + result.port = null; + if (result.host) { + if (srcPath[0] === '') srcPath[0] = result.host; + else srcPath.unshift(result.host); + } + result.host = ''; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === '') relPath[0] = relative.host; + else relPath.unshift(relative.host); + } + relative.host = null; + } + mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); + } + + if (isRelAbs) { + result.host = (relative.host || relative.host === '') ? + relative.host : result.host; + result.hostname = (relative.hostname || relative.hostname === '') ? + relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + } else if (relPath.length) { + if (!srcPath) srcPath = []; + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (!isNullOrUndefined(relative.search)) { + if (psychotic) { + result.hostname = result.host = srcPath.shift(); + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + result.search = relative.search; + result.query = relative.query; + if (!isNull(result.pathname) || !isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.href = result.format(); + return result; + } + + if (!srcPath.length) { + result.pathname = null; + if (result.search) { + result.path = '/' + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } + + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = ( + (result.host || relative.host) && (last === '.' || last === '..') || + last === ''); + + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last == '.') { + srcPath.splice(i, 1); + } else if (last === '..') { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; + } + } + + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift('..'); + } + } + + if (mustEndAbs && srcPath[0] !== '' && + (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { + srcPath.unshift(''); + } + + if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { + srcPath.push(''); + } + + var isAbsolute = srcPath[0] === '' || + (srcPath[0] && srcPath[0].charAt(0) === '/'); + + if (psychotic) { + result.hostname = result.host = isAbsolute ? '' : + srcPath.length ? srcPath.shift() : ''; + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + + mustEndAbs = mustEndAbs || (result.host && srcPath.length); + + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(''); + } + + if (!srcPath.length) { + result.pathname = null; + result.path = null; + } else { + result.pathname = srcPath.join('/'); + } + + if (!isNull(result.pathname) || !isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; +}; + +Url.prototype.parseHost = function() { + var host = this.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ':') { + this.port = port.substr(1); + } + host = host.substr(0, host.length - port.length); + } + if (host) this.hostname = host; +}; + +function isString(arg) { + return typeof arg === "string"; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isNull(arg) { + return arg === null; +} +function isNullOrUndefined(arg) { + return arg == null; +} + +},{"punycode":77,"querystring":80}],82:[function(require,module,exports){ +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; +} +},{}],83:[function(require,module,exports){ +(function (process,global){ + +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; + + +exports.deprecate = function(fn, msg) { + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +}; + + +var debugs = {}; +var debugEnviron; +exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; +}; + + + + +function inspect(obj, opts) { + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + ctx.showHidden = opts; + } else if (opts) { + exports._extend(ctx, opts); + } + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; + + +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + if (ctx.customInspect && + value && + isFunction(value.inspect) && + value.inspect !== exports.inspect && + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +function isArray(ar) { + return Array.isArray(ar); +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = require('./support/isBuffer'); + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; + + + +exports.inherits = require('inherits'); + +exports._extend = function(origin, add) { + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./support/isBuffer":82,"_process":76,"inherits":75}],84:[function(require,module,exports){ +(function(exports) { + "use strict"; + + function isArray(obj) { + if (obj !== null) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } else { + return false; + } + } + + function isObject(obj) { + if (obj !== null) { + return Object.prototype.toString.call(obj) === "[object Object]"; + } else { + return false; + } + } + + function strictDeepEqual(first, second) { + if (first === second) { + return true; + } + + var firstType = Object.prototype.toString.call(first); + if (firstType !== Object.prototype.toString.call(second)) { + return false; + } + if (isArray(first) === true) { + if (first.length !== second.length) { + return false; + } + for (var i = 0; i < first.length; i++) { + if (strictDeepEqual(first[i], second[i]) === false) { + return false; + } + } + return true; + } + if (isObject(first) === true) { + var keysSeen = {}; + for (var key in first) { + if (hasOwnProperty.call(first, key)) { + if (strictDeepEqual(first[key], second[key]) === false) { + return false; + } + keysSeen[key] = true; + } + } + for (var key2 in second) { + if (hasOwnProperty.call(second, key2)) { + if (keysSeen[key2] !== true) { + return false; + } + } + } + return true; + } + return false; + } + + function isFalse(obj) { + + if (obj === "" || obj === false || obj === null) { + return true; + } else if (isArray(obj) && obj.length === 0) { + return true; + } else if (isObject(obj)) { + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + return false; + } + } + return true; + } else { + return false; + } + } + + function objValues(obj) { + var keys = Object.keys(obj); + var values = []; + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + } + + function merge(a, b) { + var merged = {}; + for (var key in a) { + merged[key] = a[key]; + } + for (var key2 in b) { + merged[key2] = b[key2]; + } + return merged; + } + + var trimLeft; + if (typeof String.prototype.trimLeft === "function") { + trimLeft = function(str) { + return str.trimLeft(); + }; + } else { + trimLeft = function(str) { + return str.match(/^\s*(.*)/)[1]; + }; + } + + var TYPE_NUMBER = 0; + var TYPE_ANY = 1; + var TYPE_STRING = 2; + var TYPE_ARRAY = 3; + var TYPE_OBJECT = 4; + var TYPE_BOOLEAN = 5; + var TYPE_EXPREF = 6; + var TYPE_NULL = 7; + var TYPE_ARRAY_NUMBER = 8; + var TYPE_ARRAY_STRING = 9; + + var TOK_EOF = "EOF"; + var TOK_UNQUOTEDIDENTIFIER = "UnquotedIdentifier"; + var TOK_QUOTEDIDENTIFIER = "QuotedIdentifier"; + var TOK_RBRACKET = "Rbracket"; + var TOK_RPAREN = "Rparen"; + var TOK_COMMA = "Comma"; + var TOK_COLON = "Colon"; + var TOK_RBRACE = "Rbrace"; + var TOK_NUMBER = "Number"; + var TOK_CURRENT = "Current"; + var TOK_EXPREF = "Expref"; + var TOK_PIPE = "Pipe"; + var TOK_OR = "Or"; + var TOK_AND = "And"; + var TOK_EQ = "EQ"; + var TOK_GT = "GT"; + var TOK_LT = "LT"; + var TOK_GTE = "GTE"; + var TOK_LTE = "LTE"; + var TOK_NE = "NE"; + var TOK_FLATTEN = "Flatten"; + var TOK_STAR = "Star"; + var TOK_FILTER = "Filter"; + var TOK_DOT = "Dot"; + var TOK_NOT = "Not"; + var TOK_LBRACE = "Lbrace"; + var TOK_LBRACKET = "Lbracket"; + var TOK_LPAREN= "Lparen"; + var TOK_LITERAL= "Literal"; + + + var basicTokens = { + ".": TOK_DOT, + "*": TOK_STAR, + ",": TOK_COMMA, + ":": TOK_COLON, + "{": TOK_LBRACE, + "}": TOK_RBRACE, + "]": TOK_RBRACKET, + "(": TOK_LPAREN, + ")": TOK_RPAREN, + "@": TOK_CURRENT + }; + + var operatorStartToken = { + "<": true, + ">": true, + "=": true, + "!": true + }; + + var skipChars = { + " ": true, + "\t": true, + "\n": true + }; + + + function isAlpha(ch) { + return (ch >= "a" && ch <= "z") || + (ch >= "A" && ch <= "Z") || + ch === "_"; + } + + function isNum(ch) { + return (ch >= "0" && ch <= "9") || + ch === "-"; + } + function isAlphaNum(ch) { + return (ch >= "a" && ch <= "z") || + (ch >= "A" && ch <= "Z") || + (ch >= "0" && ch <= "9") || + ch === "_"; + } + + function Lexer() { + } + Lexer.prototype = { + tokenize: function(stream) { + var tokens = []; + this._current = 0; + var start; + var identifier; + var token; + while (this._current < stream.length) { + if (isAlpha(stream[this._current])) { + start = this._current; + identifier = this._consumeUnquotedIdentifier(stream); + tokens.push({type: TOK_UNQUOTEDIDENTIFIER, + value: identifier, + start: start}); + } else if (basicTokens[stream[this._current]] !== undefined) { + tokens.push({type: basicTokens[stream[this._current]], + value: stream[this._current], + start: this._current}); + this._current++; + } else if (isNum(stream[this._current])) { + token = this._consumeNumber(stream); + tokens.push(token); + } else if (stream[this._current] === "[") { + token = this._consumeLBracket(stream); + tokens.push(token); + } else if (stream[this._current] === "\"") { + start = this._current; + identifier = this._consumeQuotedIdentifier(stream); + tokens.push({type: TOK_QUOTEDIDENTIFIER, + value: identifier, + start: start}); + } else if (stream[this._current] === "'") { + start = this._current; + identifier = this._consumeRawStringLiteral(stream); + tokens.push({type: TOK_LITERAL, + value: identifier, + start: start}); + } else if (stream[this._current] === "`") { + start = this._current; + var literal = this._consumeLiteral(stream); + tokens.push({type: TOK_LITERAL, + value: literal, + start: start}); + } else if (operatorStartToken[stream[this._current]] !== undefined) { + tokens.push(this._consumeOperator(stream)); + } else if (skipChars[stream[this._current]] !== undefined) { + this._current++; + } else if (stream[this._current] === "&") { + start = this._current; + this._current++; + if (stream[this._current] === "&") { + this._current++; + tokens.push({type: TOK_AND, value: "&&", start: start}); + } else { + tokens.push({type: TOK_EXPREF, value: "&", start: start}); + } + } else if (stream[this._current] === "|") { + start = this._current; + this._current++; + if (stream[this._current] === "|") { + this._current++; + tokens.push({type: TOK_OR, value: "||", start: start}); + } else { + tokens.push({type: TOK_PIPE, value: "|", start: start}); + } + } else { + var error = new Error("Unknown character:" + stream[this._current]); + error.name = "LexerError"; + throw error; + } + } + return tokens; + }, + + _consumeUnquotedIdentifier: function(stream) { + var start = this._current; + this._current++; + while (this._current < stream.length && isAlphaNum(stream[this._current])) { + this._current++; + } + return stream.slice(start, this._current); + }, + + _consumeQuotedIdentifier: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (stream[this._current] !== "\"" && this._current < maxLength) { + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "\"")) { + current += 2; + } else { + current++; + } + this._current = current; + } + this._current++; + return JSON.parse(stream.slice(start, this._current)); + }, + + _consumeRawStringLiteral: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (stream[this._current] !== "'" && this._current < maxLength) { + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "'")) { + current += 2; + } else { + current++; + } + this._current = current; + } + this._current++; + var literal = stream.slice(start + 1, this._current - 1); + return literal.replace("\\'", "'"); + }, + + _consumeNumber: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (isNum(stream[this._current]) && this._current < maxLength) { + this._current++; + } + var value = parseInt(stream.slice(start, this._current)); + return {type: TOK_NUMBER, value: value, start: start}; + }, + + _consumeLBracket: function(stream) { + var start = this._current; + this._current++; + if (stream[this._current] === "?") { + this._current++; + return {type: TOK_FILTER, value: "[?", start: start}; + } else if (stream[this._current] === "]") { + this._current++; + return {type: TOK_FLATTEN, value: "[]", start: start}; + } else { + return {type: TOK_LBRACKET, value: "[", start: start}; + } + }, + + _consumeOperator: function(stream) { + var start = this._current; + var startingChar = stream[start]; + this._current++; + if (startingChar === "!") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_NE, value: "!=", start: start}; + } else { + return {type: TOK_NOT, value: "!", start: start}; + } + } else if (startingChar === "<") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_LTE, value: "<=", start: start}; + } else { + return {type: TOK_LT, value: "<", start: start}; + } + } else if (startingChar === ">") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_GTE, value: ">=", start: start}; + } else { + return {type: TOK_GT, value: ">", start: start}; + } + } else if (startingChar === "=") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_EQ, value: "==", start: start}; + } + } + }, + + _consumeLiteral: function(stream) { + this._current++; + var start = this._current; + var maxLength = stream.length; + var literal; + while(stream[this._current] !== "`" && this._current < maxLength) { + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "`")) { + current += 2; + } else { + current++; + } + this._current = current; + } + var literalString = trimLeft(stream.slice(start, this._current)); + literalString = literalString.replace("\\`", "`"); + if (this._looksLikeJSON(literalString)) { + literal = JSON.parse(literalString); + } else { + literal = JSON.parse("\"" + literalString + "\""); + } + this._current++; + return literal; + }, + + _looksLikeJSON: function(literalString) { + var startingChars = "[{\""; + var jsonLiterals = ["true", "false", "null"]; + var numberLooking = "-0123456789"; + + if (literalString === "") { + return false; + } else if (startingChars.indexOf(literalString[0]) >= 0) { + return true; + } else if (jsonLiterals.indexOf(literalString) >= 0) { + return true; + } else if (numberLooking.indexOf(literalString[0]) >= 0) { + try { + JSON.parse(literalString); + return true; + } catch (ex) { + return false; + } + } else { + return false; + } + } + }; + + var bindingPower = {}; + bindingPower[TOK_EOF] = 0; + bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0; + bindingPower[TOK_QUOTEDIDENTIFIER] = 0; + bindingPower[TOK_RBRACKET] = 0; + bindingPower[TOK_RPAREN] = 0; + bindingPower[TOK_COMMA] = 0; + bindingPower[TOK_RBRACE] = 0; + bindingPower[TOK_NUMBER] = 0; + bindingPower[TOK_CURRENT] = 0; + bindingPower[TOK_EXPREF] = 0; + bindingPower[TOK_PIPE] = 1; + bindingPower[TOK_OR] = 2; + bindingPower[TOK_AND] = 3; + bindingPower[TOK_EQ] = 5; + bindingPower[TOK_GT] = 5; + bindingPower[TOK_LT] = 5; + bindingPower[TOK_GTE] = 5; + bindingPower[TOK_LTE] = 5; + bindingPower[TOK_NE] = 5; + bindingPower[TOK_FLATTEN] = 9; + bindingPower[TOK_STAR] = 20; + bindingPower[TOK_FILTER] = 21; + bindingPower[TOK_DOT] = 40; + bindingPower[TOK_NOT] = 45; + bindingPower[TOK_LBRACE] = 50; + bindingPower[TOK_LBRACKET] = 55; + bindingPower[TOK_LPAREN] = 60; + + function Parser() { + } + + Parser.prototype = { + parse: function(expression) { + this._loadTokens(expression); + this.index = 0; + var ast = this.expression(0); + if (this._lookahead(0) !== TOK_EOF) { + var t = this._lookaheadToken(0); + var error = new Error( + "Unexpected token type: " + t.type + ", value: " + t.value); + error.name = "ParserError"; + throw error; + } + return ast; + }, + + _loadTokens: function(expression) { + var lexer = new Lexer(); + var tokens = lexer.tokenize(expression); + tokens.push({type: TOK_EOF, value: "", start: expression.length}); + this.tokens = tokens; + }, + + expression: function(rbp) { + var leftToken = this._lookaheadToken(0); + this._advance(); + var left = this.nud(leftToken); + var currentToken = this._lookahead(0); + while (rbp < bindingPower[currentToken]) { + this._advance(); + left = this.led(currentToken, left); + currentToken = this._lookahead(0); + } + return left; + }, + + _lookahead: function(number) { + return this.tokens[this.index + number].type; + }, + + _lookaheadToken: function(number) { + return this.tokens[this.index + number]; + }, + + _advance: function() { + this.index++; + }, + + nud: function(token) { + var left; + var right; + var expression; + switch (token.type) { + case TOK_LITERAL: + return {type: "Literal", value: token.value}; + case TOK_UNQUOTEDIDENTIFIER: + return {type: "Field", name: token.value}; + case TOK_QUOTEDIDENTIFIER: + var node = {type: "Field", name: token.value}; + if (this._lookahead(0) === TOK_LPAREN) { + throw new Error("Quoted identifier not allowed for function names."); + } else { + return node; + } + break; + case TOK_NOT: + right = this.expression(bindingPower.Not); + return {type: "NotExpression", children: [right]}; + case TOK_STAR: + left = {type: "Identity"}; + right = null; + if (this._lookahead(0) === TOK_RBRACKET) { + right = {type: "Identity"}; + } else { + right = this._parseProjectionRHS(bindingPower.Star); + } + return {type: "ValueProjection", children: [left, right]}; + case TOK_FILTER: + return this.led(token.type, {type: "Identity"}); + case TOK_LBRACE: + return this._parseMultiselectHash(); + case TOK_FLATTEN: + left = {type: TOK_FLATTEN, children: [{type: "Identity"}]}; + right = this._parseProjectionRHS(bindingPower.Flatten); + return {type: "Projection", children: [left, right]}; + case TOK_LBRACKET: + if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) { + right = this._parseIndexExpression(); + return this._projectIfSlice({type: "Identity"}, right); + } else if (this._lookahead(0) === TOK_STAR && + this._lookahead(1) === TOK_RBRACKET) { + this._advance(); + this._advance(); + right = this._parseProjectionRHS(bindingPower.Star); + return {type: "Projection", + children: [{type: "Identity"}, right]}; + } else { + return this._parseMultiselectList(); + } + break; + case TOK_CURRENT: + return {type: TOK_CURRENT}; + case TOK_EXPREF: + expression = this.expression(bindingPower.Expref); + return {type: "ExpressionReference", children: [expression]}; + case TOK_LPAREN: + var args = []; + while (this._lookahead(0) !== TOK_RPAREN) { + if (this._lookahead(0) === TOK_CURRENT) { + expression = {type: TOK_CURRENT}; + this._advance(); + } else { + expression = this.expression(0); + } + args.push(expression); + } + this._match(TOK_RPAREN); + return args[0]; + default: + this._errorToken(token); + } + }, + + led: function(tokenName, left) { + var right; + switch(tokenName) { + case TOK_DOT: + var rbp = bindingPower.Dot; + if (this._lookahead(0) !== TOK_STAR) { + right = this._parseDotRHS(rbp); + return {type: "Subexpression", children: [left, right]}; + } else { + this._advance(); + right = this._parseProjectionRHS(rbp); + return {type: "ValueProjection", children: [left, right]}; + } + break; + case TOK_PIPE: + right = this.expression(bindingPower.Pipe); + return {type: TOK_PIPE, children: [left, right]}; + case TOK_OR: + right = this.expression(bindingPower.Or); + return {type: "OrExpression", children: [left, right]}; + case TOK_AND: + right = this.expression(bindingPower.And); + return {type: "AndExpression", children: [left, right]}; + case TOK_LPAREN: + var name = left.name; + var args = []; + var expression, node; + while (this._lookahead(0) !== TOK_RPAREN) { + if (this._lookahead(0) === TOK_CURRENT) { + expression = {type: TOK_CURRENT}; + this._advance(); + } else { + expression = this.expression(0); + } + if (this._lookahead(0) === TOK_COMMA) { + this._match(TOK_COMMA); + } + args.push(expression); + } + this._match(TOK_RPAREN); + node = {type: "Function", name: name, children: args}; + return node; + case TOK_FILTER: + var condition = this.expression(0); + this._match(TOK_RBRACKET); + if (this._lookahead(0) === TOK_FLATTEN) { + right = {type: "Identity"}; + } else { + right = this._parseProjectionRHS(bindingPower.Filter); + } + return {type: "FilterProjection", children: [left, right, condition]}; + case TOK_FLATTEN: + var leftNode = {type: TOK_FLATTEN, children: [left]}; + var rightNode = this._parseProjectionRHS(bindingPower.Flatten); + return {type: "Projection", children: [leftNode, rightNode]}; + case TOK_EQ: + case TOK_NE: + case TOK_GT: + case TOK_GTE: + case TOK_LT: + case TOK_LTE: + return this._parseComparator(left, tokenName); + case TOK_LBRACKET: + var token = this._lookaheadToken(0); + if (token.type === TOK_NUMBER || token.type === TOK_COLON) { + right = this._parseIndexExpression(); + return this._projectIfSlice(left, right); + } else { + this._match(TOK_STAR); + this._match(TOK_RBRACKET); + right = this._parseProjectionRHS(bindingPower.Star); + return {type: "Projection", children: [left, right]}; + } + break; + default: + this._errorToken(this._lookaheadToken(0)); + } + }, + + _match: function(tokenType) { + if (this._lookahead(0) === tokenType) { + this._advance(); + } else { + var t = this._lookaheadToken(0); + var error = new Error("Expected " + tokenType + ", got: " + t.type); + error.name = "ParserError"; + throw error; + } + }, + + _errorToken: function(token) { + var error = new Error("Invalid token (" + + token.type + "): \"" + + token.value + "\""); + error.name = "ParserError"; + throw error; + }, + + + _parseIndexExpression: function() { + if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) { + return this._parseSliceExpression(); + } else { + var node = { + type: "Index", + value: this._lookaheadToken(0).value}; + this._advance(); + this._match(TOK_RBRACKET); + return node; + } + }, + + _projectIfSlice: function(left, right) { + var indexExpr = {type: "IndexExpression", children: [left, right]}; + if (right.type === "Slice") { + return { + type: "Projection", + children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)] + }; + } else { + return indexExpr; + } + }, + + _parseSliceExpression: function() { + var parts = [null, null, null]; + var index = 0; + var currentToken = this._lookahead(0); + while (currentToken !== TOK_RBRACKET && index < 3) { + if (currentToken === TOK_COLON) { + index++; + this._advance(); + } else if (currentToken === TOK_NUMBER) { + parts[index] = this._lookaheadToken(0).value; + this._advance(); + } else { + var t = this._lookahead(0); + var error = new Error("Syntax error, unexpected token: " + + t.value + "(" + t.type + ")"); + error.name = "Parsererror"; + throw error; + } + currentToken = this._lookahead(0); + } + this._match(TOK_RBRACKET); + return { + type: "Slice", + children: parts + }; + }, + + _parseComparator: function(left, comparator) { + var right = this.expression(bindingPower[comparator]); + return {type: "Comparator", name: comparator, children: [left, right]}; + }, + + _parseDotRHS: function(rbp) { + var lookahead = this._lookahead(0); + var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR]; + if (exprTokens.indexOf(lookahead) >= 0) { + return this.expression(rbp); + } else if (lookahead === TOK_LBRACKET) { + this._match(TOK_LBRACKET); + return this._parseMultiselectList(); + } else if (lookahead === TOK_LBRACE) { + this._match(TOK_LBRACE); + return this._parseMultiselectHash(); + } + }, + + _parseProjectionRHS: function(rbp) { + var right; + if (bindingPower[this._lookahead(0)] < 10) { + right = {type: "Identity"}; + } else if (this._lookahead(0) === TOK_LBRACKET) { + right = this.expression(rbp); + } else if (this._lookahead(0) === TOK_FILTER) { + right = this.expression(rbp); + } else if (this._lookahead(0) === TOK_DOT) { + this._match(TOK_DOT); + right = this._parseDotRHS(rbp); + } else { + var t = this._lookaheadToken(0); + var error = new Error("Sytanx error, unexpected token: " + + t.value + "(" + t.type + ")"); + error.name = "ParserError"; + throw error; + } + return right; + }, + + _parseMultiselectList: function() { + var expressions = []; + while (this._lookahead(0) !== TOK_RBRACKET) { + var expression = this.expression(0); + expressions.push(expression); + if (this._lookahead(0) === TOK_COMMA) { + this._match(TOK_COMMA); + if (this._lookahead(0) === TOK_RBRACKET) { + throw new Error("Unexpected token Rbracket"); + } + } + } + this._match(TOK_RBRACKET); + return {type: "MultiSelectList", children: expressions}; + }, + + _parseMultiselectHash: function() { + var pairs = []; + var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER]; + var keyToken, keyName, value, node; + for (;;) { + keyToken = this._lookaheadToken(0); + if (identifierTypes.indexOf(keyToken.type) < 0) { + throw new Error("Expecting an identifier token, got: " + + keyToken.type); + } + keyName = keyToken.value; + this._advance(); + this._match(TOK_COLON); + value = this.expression(0); + node = {type: "KeyValuePair", name: keyName, value: value}; + pairs.push(node); + if (this._lookahead(0) === TOK_COMMA) { + this._match(TOK_COMMA); + } else if (this._lookahead(0) === TOK_RBRACE) { + this._match(TOK_RBRACE); + break; + } + } + return {type: "MultiSelectHash", children: pairs}; + } + }; + + + function TreeInterpreter(runtime) { + this.runtime = runtime; + } + + TreeInterpreter.prototype = { + search: function(node, value) { + return this.visit(node, value); + }, + + visit: function(node, value) { + var matched, current, result, first, second, field, left, right, collected, i; + switch (node.type) { + case "Field": + if (value === null ) { + return null; + } else if (isObject(value)) { + field = value[node.name]; + if (field === undefined) { + return null; + } else { + return field; + } + } else { + return null; + } + break; + case "Subexpression": + result = this.visit(node.children[0], value); + for (i = 1; i < node.children.length; i++) { + result = this.visit(node.children[1], result); + if (result === null) { + return null; + } + } + return result; + case "IndexExpression": + left = this.visit(node.children[0], value); + right = this.visit(node.children[1], left); + return right; + case "Index": + if (!isArray(value)) { + return null; + } + var index = node.value; + if (index < 0) { + index = value.length + index; + } + result = value[index]; + if (result === undefined) { + result = null; + } + return result; + case "Slice": + if (!isArray(value)) { + return null; + } + var sliceParams = node.children.slice(0); + var computed = this.computeSliceParams(value.length, sliceParams); + var start = computed[0]; + var stop = computed[1]; + var step = computed[2]; + result = []; + if (step > 0) { + for (i = start; i < stop; i += step) { + result.push(value[i]); + } + } else { + for (i = start; i > stop; i += step) { + result.push(value[i]); + } + } + return result; + case "Projection": + var base = this.visit(node.children[0], value); + if (!isArray(base)) { + return null; + } + collected = []; + for (i = 0; i < base.length; i++) { + current = this.visit(node.children[1], base[i]); + if (current !== null) { + collected.push(current); + } + } + return collected; + case "ValueProjection": + base = this.visit(node.children[0], value); + if (!isObject(base)) { + return null; + } + collected = []; + var values = objValues(base); + for (i = 0; i < values.length; i++) { + current = this.visit(node.children[1], values[i]); + if (current !== null) { + collected.push(current); + } + } + return collected; + case "FilterProjection": + base = this.visit(node.children[0], value); + if (!isArray(base)) { + return null; + } + var filtered = []; + var finalResults = []; + for (i = 0; i < base.length; i++) { + matched = this.visit(node.children[2], base[i]); + if (!isFalse(matched)) { + filtered.push(base[i]); + } + } + for (var j = 0; j < filtered.length; j++) { + current = this.visit(node.children[1], filtered[j]); + if (current !== null) { + finalResults.push(current); + } + } + return finalResults; + case "Comparator": + first = this.visit(node.children[0], value); + second = this.visit(node.children[1], value); + switch(node.name) { + case TOK_EQ: + result = strictDeepEqual(first, second); + break; + case TOK_NE: + result = !strictDeepEqual(first, second); + break; + case TOK_GT: + result = first > second; + break; + case TOK_GTE: + result = first >= second; + break; + case TOK_LT: + result = first < second; + break; + case TOK_LTE: + result = first <= second; + break; + default: + throw new Error("Unknown comparator: " + node.name); + } + return result; + case TOK_FLATTEN: + var original = this.visit(node.children[0], value); + if (!isArray(original)) { + return null; + } + var merged = []; + for (i = 0; i < original.length; i++) { + current = original[i]; + if (isArray(current)) { + merged.push.apply(merged, current); + } else { + merged.push(current); + } + } + return merged; + case "Identity": + return value; + case "MultiSelectList": + if (value === null) { + return null; + } + collected = []; + for (i = 0; i < node.children.length; i++) { + collected.push(this.visit(node.children[i], value)); + } + return collected; + case "MultiSelectHash": + if (value === null) { + return null; + } + collected = {}; + var child; + for (i = 0; i < node.children.length; i++) { + child = node.children[i]; + collected[child.name] = this.visit(child.value, value); + } + return collected; + case "OrExpression": + matched = this.visit(node.children[0], value); + if (isFalse(matched)) { + matched = this.visit(node.children[1], value); + } + return matched; + case "AndExpression": + first = this.visit(node.children[0], value); + + if (isFalse(first) === true) { + return first; + } + return this.visit(node.children[1], value); + case "NotExpression": + first = this.visit(node.children[0], value); + return isFalse(first); + case "Literal": + return node.value; + case TOK_PIPE: + left = this.visit(node.children[0], value); + return this.visit(node.children[1], left); + case TOK_CURRENT: + return value; + case "Function": + var resolvedArgs = []; + for (i = 0; i < node.children.length; i++) { + resolvedArgs.push(this.visit(node.children[i], value)); + } + return this.runtime.callFunction(node.name, resolvedArgs); + case "ExpressionReference": + var refNode = node.children[0]; + refNode.jmespathType = TOK_EXPREF; + return refNode; + default: + throw new Error("Unknown node type: " + node.type); + } + }, + + computeSliceParams: function(arrayLength, sliceParams) { + var start = sliceParams[0]; + var stop = sliceParams[1]; + var step = sliceParams[2]; + var computed = [null, null, null]; + if (step === null) { + step = 1; + } else if (step === 0) { + var error = new Error("Invalid slice, step cannot be 0"); + error.name = "RuntimeError"; + throw error; + } + var stepValueNegative = step < 0 ? true : false; + + if (start === null) { + start = stepValueNegative ? arrayLength - 1 : 0; + } else { + start = this.capSliceRange(arrayLength, start, step); + } + + if (stop === null) { + stop = stepValueNegative ? -1 : arrayLength; + } else { + stop = this.capSliceRange(arrayLength, stop, step); + } + computed[0] = start; + computed[1] = stop; + computed[2] = step; + return computed; + }, + + capSliceRange: function(arrayLength, actualValue, step) { + if (actualValue < 0) { + actualValue += arrayLength; + if (actualValue < 0) { + actualValue = step < 0 ? -1 : 0; + } + } else if (actualValue >= arrayLength) { + actualValue = step < 0 ? arrayLength - 1 : arrayLength; + } + return actualValue; + } + + }; + + function Runtime(interpreter) { + this._interpreter = interpreter; + this.functionTable = { + abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]}, + avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]}, + ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]}, + contains: { + _func: this._functionContains, + _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}, + {types: [TYPE_ANY]}]}, + "ends_with": { + _func: this._functionEndsWith, + _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]}, + floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]}, + length: { + _func: this._functionLength, + _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]}, + map: { + _func: this._functionMap, + _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]}, + max: { + _func: this._functionMax, + _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]}, + "merge": { + _func: this._functionMerge, + _signature: [{types: [TYPE_OBJECT], variadic: true}] + }, + "max_by": { + _func: this._functionMaxBy, + _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] + }, + sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]}, + "starts_with": { + _func: this._functionStartsWith, + _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]}, + min: { + _func: this._functionMin, + _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]}, + "min_by": { + _func: this._functionMinBy, + _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] + }, + type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]}, + keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]}, + values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]}, + sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]}, + "sort_by": { + _func: this._functionSortBy, + _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] + }, + join: { + _func: this._functionJoin, + _signature: [ + {types: [TYPE_STRING]}, + {types: [TYPE_ARRAY_STRING]} + ] + }, + reverse: { + _func: this._functionReverse, + _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]}, + "to_array": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]}, + "to_string": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]}, + "to_number": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]}, + "not_null": { + _func: this._functionNotNull, + _signature: [{types: [TYPE_ANY], variadic: true}] + } + }; + } + + Runtime.prototype = { + callFunction: function(name, resolvedArgs) { + var functionEntry = this.functionTable[name]; + if (functionEntry === undefined) { + throw new Error("Unknown function: " + name + "()"); + } + this._validateArgs(name, resolvedArgs, functionEntry._signature); + return functionEntry._func.call(this, resolvedArgs); + }, + + _validateArgs: function(name, args, signature) { + var pluralized; + if (signature[signature.length - 1].variadic) { + if (args.length < signature.length) { + pluralized = signature.length === 1 ? " argument" : " arguments"; + throw new Error("ArgumentError: " + name + "() " + + "takes at least" + signature.length + pluralized + + " but received " + args.length); + } + } else if (args.length !== signature.length) { + pluralized = signature.length === 1 ? " argument" : " arguments"; + throw new Error("ArgumentError: " + name + "() " + + "takes " + signature.length + pluralized + + " but received " + args.length); + } + var currentSpec; + var actualType; + var typeMatched; + for (var i = 0; i < signature.length; i++) { + typeMatched = false; + currentSpec = signature[i].types; + actualType = this._getTypeName(args[i]); + for (var j = 0; j < currentSpec.length; j++) { + if (this._typeMatches(actualType, currentSpec[j], args[i])) { + typeMatched = true; + break; + } + } + if (!typeMatched) { + throw new Error("TypeError: " + name + "() " + + "expected argument " + (i + 1) + + " to be type " + currentSpec + + " but received type " + actualType + + " instead."); + } + } + }, + + _typeMatches: function(actual, expected, argValue) { + if (expected === TYPE_ANY) { + return true; + } + if (expected === TYPE_ARRAY_STRING || + expected === TYPE_ARRAY_NUMBER || + expected === TYPE_ARRAY) { + if (expected === TYPE_ARRAY) { + return actual === TYPE_ARRAY; + } else if (actual === TYPE_ARRAY) { + var subtype; + if (expected === TYPE_ARRAY_NUMBER) { + subtype = TYPE_NUMBER; + } else if (expected === TYPE_ARRAY_STRING) { + subtype = TYPE_STRING; + } + for (var i = 0; i < argValue.length; i++) { + if (!this._typeMatches( + this._getTypeName(argValue[i]), subtype, + argValue[i])) { + return false; + } + } + return true; + } + } else { + return actual === expected; + } + }, + _getTypeName: function(obj) { + switch (Object.prototype.toString.call(obj)) { + case "[object String]": + return TYPE_STRING; + case "[object Number]": + return TYPE_NUMBER; + case "[object Array]": + return TYPE_ARRAY; + case "[object Boolean]": + return TYPE_BOOLEAN; + case "[object Null]": + return TYPE_NULL; + case "[object Object]": + if (obj.jmespathType === TOK_EXPREF) { + return TYPE_EXPREF; + } else { + return TYPE_OBJECT; + } + } + }, + + _functionStartsWith: function(resolvedArgs) { + return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0; + }, + + _functionEndsWith: function(resolvedArgs) { + var searchStr = resolvedArgs[0]; + var suffix = resolvedArgs[1]; + return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1; + }, + + _functionReverse: function(resolvedArgs) { + var typeName = this._getTypeName(resolvedArgs[0]); + if (typeName === TYPE_STRING) { + var originalStr = resolvedArgs[0]; + var reversedStr = ""; + for (var i = originalStr.length - 1; i >= 0; i--) { + reversedStr += originalStr[i]; + } + return reversedStr; + } else { + var reversedArray = resolvedArgs[0].slice(0); + reversedArray.reverse(); + return reversedArray; + } + }, + + _functionAbs: function(resolvedArgs) { + return Math.abs(resolvedArgs[0]); + }, + + _functionCeil: function(resolvedArgs) { + return Math.ceil(resolvedArgs[0]); + }, + + _functionAvg: function(resolvedArgs) { + var sum = 0; + var inputArray = resolvedArgs[0]; + for (var i = 0; i < inputArray.length; i++) { + sum += inputArray[i]; + } + return sum / inputArray.length; + }, + + _functionContains: function(resolvedArgs) { + return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0; + }, + + _functionFloor: function(resolvedArgs) { + return Math.floor(resolvedArgs[0]); + }, + + _functionLength: function(resolvedArgs) { + if (!isObject(resolvedArgs[0])) { + return resolvedArgs[0].length; + } else { + return Object.keys(resolvedArgs[0]).length; + } + }, + + _functionMap: function(resolvedArgs) { + var mapped = []; + var interpreter = this._interpreter; + var exprefNode = resolvedArgs[0]; + var elements = resolvedArgs[1]; + for (var i = 0; i < elements.length; i++) { + mapped.push(interpreter.visit(exprefNode, elements[i])); + } + return mapped; + }, + + _functionMerge: function(resolvedArgs) { + var merged = {}; + for (var i = 0; i < resolvedArgs.length; i++) { + var current = resolvedArgs[i]; + for (var key in current) { + merged[key] = current[key]; + } + } + return merged; + }, + + _functionMax: function(resolvedArgs) { + if (resolvedArgs[0].length > 0) { + var typeName = this._getTypeName(resolvedArgs[0][0]); + if (typeName === TYPE_NUMBER) { + return Math.max.apply(Math, resolvedArgs[0]); + } else { + var elements = resolvedArgs[0]; + var maxElement = elements[0]; + for (var i = 1; i < elements.length; i++) { + if (maxElement.localeCompare(elements[i]) < 0) { + maxElement = elements[i]; + } + } + return maxElement; + } + } else { + return null; + } + }, + + _functionMin: function(resolvedArgs) { + if (resolvedArgs[0].length > 0) { + var typeName = this._getTypeName(resolvedArgs[0][0]); + if (typeName === TYPE_NUMBER) { + return Math.min.apply(Math, resolvedArgs[0]); + } else { + var elements = resolvedArgs[0]; + var minElement = elements[0]; + for (var i = 1; i < elements.length; i++) { + if (elements[i].localeCompare(minElement) < 0) { + minElement = elements[i]; + } + } + return minElement; + } + } else { + return null; + } + }, + + _functionSum: function(resolvedArgs) { + var sum = 0; + var listToSum = resolvedArgs[0]; + for (var i = 0; i < listToSum.length; i++) { + sum += listToSum[i]; + } + return sum; + }, + + _functionType: function(resolvedArgs) { + switch (this._getTypeName(resolvedArgs[0])) { + case TYPE_NUMBER: + return "number"; + case TYPE_STRING: + return "string"; + case TYPE_ARRAY: + return "array"; + case TYPE_OBJECT: + return "object"; + case TYPE_BOOLEAN: + return "boolean"; + case TYPE_EXPREF: + return "expref"; + case TYPE_NULL: + return "null"; + } + }, + + _functionKeys: function(resolvedArgs) { + return Object.keys(resolvedArgs[0]); + }, + + _functionValues: function(resolvedArgs) { + var obj = resolvedArgs[0]; + var keys = Object.keys(obj); + var values = []; + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + }, + + _functionJoin: function(resolvedArgs) { + var joinChar = resolvedArgs[0]; + var listJoin = resolvedArgs[1]; + return listJoin.join(joinChar); + }, + + _functionToArray: function(resolvedArgs) { + if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) { + return resolvedArgs[0]; + } else { + return [resolvedArgs[0]]; + } + }, + + _functionToString: function(resolvedArgs) { + if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) { + return resolvedArgs[0]; + } else { + return JSON.stringify(resolvedArgs[0]); + } + }, + + _functionToNumber: function(resolvedArgs) { + var typeName = this._getTypeName(resolvedArgs[0]); + var convertedValue; + if (typeName === TYPE_NUMBER) { + return resolvedArgs[0]; + } else if (typeName === TYPE_STRING) { + convertedValue = +resolvedArgs[0]; + if (!isNaN(convertedValue)) { + return convertedValue; + } + } + return null; + }, + + _functionNotNull: function(resolvedArgs) { + for (var i = 0; i < resolvedArgs.length; i++) { + if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) { + return resolvedArgs[i]; + } + } + return null; + }, + + _functionSort: function(resolvedArgs) { + var sortedArray = resolvedArgs[0].slice(0); + sortedArray.sort(); + return sortedArray; + }, + + _functionSortBy: function(resolvedArgs) { + var sortedArray = resolvedArgs[0].slice(0); + if (sortedArray.length === 0) { + return sortedArray; + } + var interpreter = this._interpreter; + var exprefNode = resolvedArgs[1]; + var requiredType = this._getTypeName( + interpreter.visit(exprefNode, sortedArray[0])); + if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) { + throw new Error("TypeError"); + } + var that = this; + var decorated = []; + for (var i = 0; i < sortedArray.length; i++) { + decorated.push([i, sortedArray[i]]); + } + decorated.sort(function(a, b) { + var exprA = interpreter.visit(exprefNode, a[1]); + var exprB = interpreter.visit(exprefNode, b[1]); + if (that._getTypeName(exprA) !== requiredType) { + throw new Error( + "TypeError: expected " + requiredType + ", received " + + that._getTypeName(exprA)); + } else if (that._getTypeName(exprB) !== requiredType) { + throw new Error( + "TypeError: expected " + requiredType + ", received " + + that._getTypeName(exprB)); + } + if (exprA > exprB) { + return 1; + } else if (exprA < exprB) { + return -1; + } else { + return a[0] - b[0]; + } + }); + for (var j = 0; j < decorated.length; j++) { + sortedArray[j] = decorated[j][1]; + } + return sortedArray; + }, + + _functionMaxBy: function(resolvedArgs) { + var exprefNode = resolvedArgs[1]; + var resolvedArray = resolvedArgs[0]; + var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); + var maxNumber = -Infinity; + var maxRecord; + var current; + for (var i = 0; i < resolvedArray.length; i++) { + current = keyFunction(resolvedArray[i]); + if (current > maxNumber) { + maxNumber = current; + maxRecord = resolvedArray[i]; + } + } + return maxRecord; + }, + + _functionMinBy: function(resolvedArgs) { + var exprefNode = resolvedArgs[1]; + var resolvedArray = resolvedArgs[0]; + var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); + var minNumber = Infinity; + var minRecord; + var current; + for (var i = 0; i < resolvedArray.length; i++) { + current = keyFunction(resolvedArray[i]); + if (current < minNumber) { + minNumber = current; + minRecord = resolvedArray[i]; + } + } + return minRecord; + }, + + createKeyFunction: function(exprefNode, allowedTypes) { + var that = this; + var interpreter = this._interpreter; + var keyFunc = function(x) { + var current = interpreter.visit(exprefNode, x); + if (allowedTypes.indexOf(that._getTypeName(current)) < 0) { + var msg = "TypeError: expected one of " + allowedTypes + + ", received " + that._getTypeName(current); + throw new Error(msg); + } + return current; + }; + return keyFunc; + } + + }; + + function compile(stream) { + var parser = new Parser(); + var ast = parser.parse(stream); + return ast; + } + + function tokenize(stream) { + var lexer = new Lexer(); + return lexer.tokenize(stream); + } + + function search(data, expression) { + var parser = new Parser(); + var runtime = new Runtime(); + var interpreter = new TreeInterpreter(runtime); + runtime._interpreter = interpreter; + var node = parser.parse(expression); + return interpreter.search(node, data); + } + + exports.tokenize = tokenize; + exports.compile = compile; + exports.search = search; + exports.strictDeepEqual = strictDeepEqual; +})(typeof exports === "undefined" ? this.jmespath = {} : exports); + +},{}],85:[function(require,module,exports){ +(function() { + var XMLAttribute, create; + + create = require('lodash/object/create'); + + module.exports = XMLAttribute = (function() { + function XMLAttribute(parent, name, value) { + this.stringify = parent.stringify; + if (name == null) { + throw new Error("Missing attribute name of element " + parent.name); + } + if (value == null) { + throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name); + } + this.name = this.stringify.attName(name); + this.value = this.stringify.attValue(value); + } + + XMLAttribute.prototype.clone = function() { + return create(XMLAttribute.prototype, this); + }; + + XMLAttribute.prototype.toString = function(options, level) { + return ' ' + this.name + '="' + this.value + '"'; + }; + + return XMLAttribute; + + })(); + +}).call(this); + +},{"lodash/object/create":144}],86:[function(require,module,exports){ +(function() { + var XMLBuilder, XMLDeclaration, XMLDocType, XMLElement, XMLStringifier; + + XMLStringifier = require('./XMLStringifier'); + + XMLDeclaration = require('./XMLDeclaration'); + + XMLDocType = require('./XMLDocType'); + + XMLElement = require('./XMLElement'); + + module.exports = XMLBuilder = (function() { + function XMLBuilder(name, options) { + var root, temp; + if (name == null) { + throw new Error("Root element needs a name"); + } + if (options == null) { + options = {}; + } + this.options = options; + this.stringify = new XMLStringifier(options); + temp = new XMLElement(this, 'doc'); + root = temp.element(name); + root.isRoot = true; + root.documentObject = this; + this.rootObject = root; + if (!options.headless) { + root.declaration(options); + if ((options.pubID != null) || (options.sysID != null)) { + root.doctype(options); + } + } + } + + XMLBuilder.prototype.root = function() { + return this.rootObject; + }; + + XMLBuilder.prototype.end = function(options) { + return this.toString(options); + }; + + XMLBuilder.prototype.toString = function(options) { + var indent, newline, offset, pretty, r, ref, ref1, ref2; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + r = ''; + if (this.xmldec != null) { + r += this.xmldec.toString(options); + } + if (this.doctype != null) { + r += this.doctype.toString(options); + } + r += this.rootObject.toString(options); + if (pretty && r.slice(-newline.length) === newline) { + r = r.slice(0, -newline.length); + } + return r; + }; + + return XMLBuilder; + + })(); + +}).call(this); + +},{"./XMLDeclaration":93,"./XMLDocType":94,"./XMLElement":95,"./XMLStringifier":99}],87:[function(require,module,exports){ +(function() { + var XMLCData, XMLNode, create, + extend = 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; }, + hasProp = {}.hasOwnProperty; + + create = require('lodash/object/create'); + + XMLNode = require('./XMLNode'); + + module.exports = XMLCData = (function(superClass) { + extend(XMLCData, superClass); + + function XMLCData(parent, text) { + XMLCData.__super__.constructor.call(this, parent); + if (text == null) { + throw new Error("Missing CDATA text"); + } + this.text = this.stringify.cdata(text); + } + + XMLCData.prototype.clone = function() { + return create(XMLCData.prototype, this); + }; + + XMLCData.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLCData; + + })(XMLNode); + +}).call(this); + +},{"./XMLNode":96,"lodash/object/create":144}],88:[function(require,module,exports){ +(function() { + var XMLComment, XMLNode, create, + extend = 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; }, + hasProp = {}.hasOwnProperty; + + create = require('lodash/object/create'); + + XMLNode = require('./XMLNode'); + + module.exports = XMLComment = (function(superClass) { + extend(XMLComment, superClass); + + function XMLComment(parent, text) { + XMLComment.__super__.constructor.call(this, parent); + if (text == null) { + throw new Error("Missing comment text"); + } + this.text = this.stringify.comment(text); + } + + XMLComment.prototype.clone = function() { + return create(XMLComment.prototype, this); + }; + + XMLComment.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLComment; + + })(XMLNode); + +}).call(this); + +},{"./XMLNode":96,"lodash/object/create":144}],89:[function(require,module,exports){ +(function() { + var XMLDTDAttList, create; + + create = require('lodash/object/create'); + + module.exports = XMLDTDAttList = (function() { + function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { + this.stringify = parent.stringify; + if (elementName == null) { + throw new Error("Missing DTD element name"); + } + if (attributeName == null) { + throw new Error("Missing DTD attribute name"); + } + if (!attributeType) { + throw new Error("Missing DTD attribute type"); + } + if (!defaultValueType) { + throw new Error("Missing DTD attribute default"); + } + if (defaultValueType.indexOf('#') !== 0) { + defaultValueType = '#' + defaultValueType; + } + if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) { + throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT"); + } + if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) { + throw new Error("Default value only applies to #FIXED or #DEFAULT"); + } + this.elementName = this.stringify.eleName(elementName); + this.attributeName = this.stringify.attName(attributeName); + this.attributeType = this.stringify.dtdAttType(attributeType); + this.defaultValue = this.stringify.dtdAttDefault(defaultValue); + this.defaultValueType = defaultValueType; + } + + XMLDTDAttList.prototype.clone = function() { + return create(XMLDTDAttList.prototype, this); + }; + + XMLDTDAttList.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLDTDAttList; + + })(); + +}).call(this); + +},{"lodash/object/create":144}],90:[function(require,module,exports){ +(function() { + var XMLDTDElement, create, isArray; + + create = require('lodash/object/create'); + + isArray = require('lodash/lang/isArray'); + + module.exports = XMLDTDElement = (function() { + function XMLDTDElement(parent, name, value) { + this.stringify = parent.stringify; + if (name == null) { + throw new Error("Missing DTD element name"); + } + if (!value) { + value = '(#PCDATA)'; + } + if (isArray(value)) { + value = '(' + value.join(',') + ')'; + } + this.name = this.stringify.eleName(name); + this.value = this.stringify.dtdElementValue(value); + } + + XMLDTDElement.prototype.clone = function() { + return create(XMLDTDElement.prototype, this); + }; + + XMLDTDElement.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLDTDElement; + + })(); + +}).call(this); + +},{"lodash/lang/isArray":136,"lodash/object/create":144}],91:[function(require,module,exports){ +(function() { + var XMLDTDEntity, create, isObject; + + create = require('lodash/object/create'); + + isObject = require('lodash/lang/isObject'); + + module.exports = XMLDTDEntity = (function() { + function XMLDTDEntity(parent, pe, name, value) { + this.stringify = parent.stringify; + if (name == null) { + throw new Error("Missing entity name"); + } + if (value == null) { + throw new Error("Missing entity value"); + } + this.pe = !!pe; + this.name = this.stringify.eleName(name); + if (!isObject(value)) { + this.value = this.stringify.dtdEntityValue(value); + } else { + if (!value.pubID && !value.sysID) { + throw new Error("Public and/or system identifiers are required for an external entity"); + } + if (value.pubID && !value.sysID) { + throw new Error("System identifier is required for a public external entity"); + } + if (value.pubID != null) { + this.pubID = this.stringify.dtdPubID(value.pubID); + } + if (value.sysID != null) { + this.sysID = this.stringify.dtdSysID(value.sysID); + } + if (value.nData != null) { + this.nData = this.stringify.dtdNData(value.nData); + } + if (this.pe && this.nData) { + throw new Error("Notation declaration is not allowed in a parameter entity"); + } + } + } + + XMLDTDEntity.prototype.clone = function() { + return create(XMLDTDEntity.prototype, this); + }; + + XMLDTDEntity.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLDTDEntity; + + })(); + +}).call(this); + +},{"lodash/lang/isObject":140,"lodash/object/create":144}],92:[function(require,module,exports){ +(function() { + var XMLDTDNotation, create; + + create = require('lodash/object/create'); + + module.exports = XMLDTDNotation = (function() { + function XMLDTDNotation(parent, name, value) { + this.stringify = parent.stringify; + if (name == null) { + throw new Error("Missing notation name"); + } + if (!value.pubID && !value.sysID) { + throw new Error("Public or system identifiers are required for an external entity"); + } + this.name = this.stringify.eleName(name); + if (value.pubID != null) { + this.pubID = this.stringify.dtdPubID(value.pubID); + } + if (value.sysID != null) { + this.sysID = this.stringify.dtdSysID(value.sysID); + } + } + + XMLDTDNotation.prototype.clone = function() { + return create(XMLDTDNotation.prototype, this); + }; + + XMLDTDNotation.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLDTDNotation; + + })(); + +}).call(this); + +},{"lodash/object/create":144}],93:[function(require,module,exports){ +(function() { + var XMLDeclaration, XMLNode, create, isObject, + extend = 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; }, + hasProp = {}.hasOwnProperty; + + create = require('lodash/object/create'); + + isObject = require('lodash/lang/isObject'); + + XMLNode = require('./XMLNode'); + + module.exports = XMLDeclaration = (function(superClass) { + extend(XMLDeclaration, superClass); + + function XMLDeclaration(parent, version, encoding, standalone) { + var ref; + XMLDeclaration.__super__.constructor.call(this, parent); + if (isObject(version)) { + ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone; + } + if (!version) { + version = '1.0'; + } + if (version != null) { + this.version = this.stringify.xmlVersion(version); + } + if (encoding != null) { + this.encoding = this.stringify.xmlEncoding(encoding); + } + if (standalone != null) { + this.standalone = this.stringify.xmlStandalone(standalone); + } + } + + XMLDeclaration.prototype.clone = function() { + return create(XMLDeclaration.prototype, this); + }; + + XMLDeclaration.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLDeclaration; + + })(XMLNode); + +}).call(this); + +},{"./XMLNode":96,"lodash/lang/isObject":140,"lodash/object/create":144}],94:[function(require,module,exports){ +(function() { + var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLProcessingInstruction, create, isObject; + + create = require('lodash/object/create'); + + isObject = require('lodash/lang/isObject'); + + XMLCData = require('./XMLCData'); + + XMLComment = require('./XMLComment'); + + XMLDTDAttList = require('./XMLDTDAttList'); + + XMLDTDEntity = require('./XMLDTDEntity'); + + XMLDTDElement = require('./XMLDTDElement'); + + XMLDTDNotation = require('./XMLDTDNotation'); + + XMLProcessingInstruction = require('./XMLProcessingInstruction'); + + module.exports = XMLDocType = (function() { + function XMLDocType(parent, pubID, sysID) { + var ref, ref1; + this.documentObject = parent; + this.stringify = this.documentObject.stringify; + this.children = []; + if (isObject(pubID)) { + ref = pubID, pubID = ref.pubID, sysID = ref.sysID; + } + if (sysID == null) { + ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1]; + } + if (pubID != null) { + this.pubID = this.stringify.dtdPubID(pubID); + } + if (sysID != null) { + this.sysID = this.stringify.dtdSysID(sysID); + } + } + + XMLDocType.prototype.clone = function() { + return create(XMLDocType.prototype, this); + }; + + XMLDocType.prototype.element = function(name, value) { + var child; + child = new XMLDTDElement(this, name, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + var child; + child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.entity = function(name, value) { + var child; + child = new XMLDTDEntity(this, false, name, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.pEntity = function(name, value) { + var child; + child = new XMLDTDEntity(this, true, name, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.notation = function(name, value) { + var child; + child = new XMLDTDNotation(this, name, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.cdata = function(value) { + var child; + child = new XMLCData(this, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.comment = function(value) { + var child; + child = new XMLComment(this, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.instruction = function(target, value) { + var child; + child = new XMLProcessingInstruction(this, target, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.root = function() { + return this.documentObject.root(); + }; + + XMLDocType.prototype.document = function() { + return this.documentObject; + }; + + XMLDocType.prototype.toString = function(options, level) { + var child, i, indent, len, newline, offset, pretty, r, ref, ref1, ref2, ref3, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ' 0) { + r += ' ['; + if (pretty) { + r += newline; + } + ref3 = this.children; + for (i = 0, len = ref3.length; i < len; i++) { + child = ref3[i]; + r += child.toString(options, level + 1); + } + r += ']'; + } + r += '>'; + if (pretty) { + r += newline; + } + return r; + }; + + XMLDocType.prototype.ele = function(name, value) { + return this.element(name, value); + }; + + XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue); + }; + + XMLDocType.prototype.ent = function(name, value) { + return this.entity(name, value); + }; + + XMLDocType.prototype.pent = function(name, value) { + return this.pEntity(name, value); + }; + + XMLDocType.prototype.not = function(name, value) { + return this.notation(name, value); + }; + + XMLDocType.prototype.dat = function(value) { + return this.cdata(value); + }; + + XMLDocType.prototype.com = function(value) { + return this.comment(value); + }; + + XMLDocType.prototype.ins = function(target, value) { + return this.instruction(target, value); + }; + + XMLDocType.prototype.up = function() { + return this.root(); + }; + + XMLDocType.prototype.doc = function() { + return this.document(); + }; + + return XMLDocType; + + })(); + +}).call(this); + +},{"./XMLCData":87,"./XMLComment":88,"./XMLDTDAttList":89,"./XMLDTDElement":90,"./XMLDTDEntity":91,"./XMLDTDNotation":92,"./XMLProcessingInstruction":97,"lodash/lang/isObject":140,"lodash/object/create":144}],95:[function(require,module,exports){ +(function() { + var XMLAttribute, XMLElement, XMLNode, XMLProcessingInstruction, create, every, isArray, isFunction, isObject, + extend = 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; }, + hasProp = {}.hasOwnProperty; + + create = require('lodash/object/create'); + + isObject = require('lodash/lang/isObject'); + + isArray = require('lodash/lang/isArray'); + + isFunction = require('lodash/lang/isFunction'); + + every = require('lodash/collection/every'); + + XMLNode = require('./XMLNode'); + + XMLAttribute = require('./XMLAttribute'); + + XMLProcessingInstruction = require('./XMLProcessingInstruction'); + + module.exports = XMLElement = (function(superClass) { + extend(XMLElement, superClass); + + function XMLElement(parent, name, attributes) { + XMLElement.__super__.constructor.call(this, parent); + if (name == null) { + throw new Error("Missing element name"); + } + this.name = this.stringify.eleName(name); + this.children = []; + this.instructions = []; + this.attributes = {}; + if (attributes != null) { + this.attribute(attributes); + } + } + + XMLElement.prototype.clone = function() { + var att, attName, clonedSelf, i, len, pi, ref, ref1; + clonedSelf = create(XMLElement.prototype, this); + if (clonedSelf.isRoot) { + clonedSelf.documentObject = null; + } + clonedSelf.attributes = {}; + ref = this.attributes; + for (attName in ref) { + if (!hasProp.call(ref, attName)) continue; + att = ref[attName]; + clonedSelf.attributes[attName] = att.clone(); + } + clonedSelf.instructions = []; + ref1 = this.instructions; + for (i = 0, len = ref1.length; i < len; i++) { + pi = ref1[i]; + clonedSelf.instructions.push(pi.clone()); + } + clonedSelf.children = []; + this.children.forEach(function(child) { + var clonedChild; + clonedChild = child.clone(); + clonedChild.parent = clonedSelf; + return clonedSelf.children.push(clonedChild); + }); + return clonedSelf; + }; + + XMLElement.prototype.attribute = function(name, value) { + var attName, attValue; + if (name != null) { + name = name.valueOf(); + } + if (isObject(name)) { + for (attName in name) { + if (!hasProp.call(name, attName)) continue; + attValue = name[attName]; + this.attribute(attName, attValue); + } + } else { + if (isFunction(value)) { + value = value.apply(); + } + if (!this.options.skipNullAttributes || (value != null)) { + this.attributes[name] = new XMLAttribute(this, name, value); + } + } + return this; + }; + + XMLElement.prototype.removeAttribute = function(name) { + var attName, i, len; + if (name == null) { + throw new Error("Missing attribute name"); + } + name = name.valueOf(); + if (isArray(name)) { + for (i = 0, len = name.length; i < len; i++) { + attName = name[i]; + delete this.attributes[attName]; + } + } else { + delete this.attributes[name]; + } + return this; + }; + + XMLElement.prototype.instruction = function(target, value) { + var i, insTarget, insValue, instruction, len; + if (target != null) { + target = target.valueOf(); + } + if (value != null) { + value = value.valueOf(); + } + if (isArray(target)) { + for (i = 0, len = target.length; i < len; i++) { + insTarget = target[i]; + this.instruction(insTarget); + } + } else if (isObject(target)) { + for (insTarget in target) { + if (!hasProp.call(target, insTarget)) continue; + insValue = target[insTarget]; + this.instruction(insTarget, insValue); + } + } else { + if (isFunction(value)) { + value = value.apply(); + } + instruction = new XMLProcessingInstruction(this, target, value); + this.instructions.push(instruction); + } + return this; + }; + + XMLElement.prototype.toString = function(options, level) { + var att, child, i, indent, instruction, j, len, len1, name, newline, offset, pretty, r, ref, ref1, ref2, ref3, ref4, ref5, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + ref3 = this.instructions; + for (i = 0, len = ref3.length; i < len; i++) { + instruction = ref3[i]; + r += instruction.toString(options, level + 1); + } + if (pretty) { + r += space; + } + r += '<' + this.name; + ref4 = this.attributes; + for (name in ref4) { + if (!hasProp.call(ref4, name)) continue; + att = ref4[name]; + r += att.toString(options); + } + if (this.children.length === 0 || every(this.children, function(e) { + return e.value === ''; + })) { + r += '/>'; + if (pretty) { + r += newline; + } + } else if (pretty && this.children.length === 1 && (this.children[0].value != null)) { + r += '>'; + r += this.children[0].value; + r += ''; + r += newline; + } else { + r += '>'; + if (pretty) { + r += newline; + } + ref5 = this.children; + for (j = 0, len1 = ref5.length; j < len1; j++) { + child = ref5[j]; + r += child.toString(options, level + 1); + } + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + } + return r; + }; + + XMLElement.prototype.att = function(name, value) { + return this.attribute(name, value); + }; + + XMLElement.prototype.ins = function(target, value) { + return this.instruction(target, value); + }; + + XMLElement.prototype.a = function(name, value) { + return this.attribute(name, value); + }; + + XMLElement.prototype.i = function(target, value) { + return this.instruction(target, value); + }; + + return XMLElement; + + })(XMLNode); + +}).call(this); + +},{"./XMLAttribute":85,"./XMLNode":96,"./XMLProcessingInstruction":97,"lodash/collection/every":102,"lodash/lang/isArray":136,"lodash/lang/isFunction":138,"lodash/lang/isObject":140,"lodash/object/create":144}],96:[function(require,module,exports){ +(function() { + var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLRaw, XMLText, isArray, isEmpty, isFunction, isObject, + hasProp = {}.hasOwnProperty; + + isObject = require('lodash/lang/isObject'); + + isArray = require('lodash/lang/isArray'); + + isFunction = require('lodash/lang/isFunction'); + + isEmpty = require('lodash/lang/isEmpty'); + + XMLElement = null; + + XMLCData = null; + + XMLComment = null; + + XMLDeclaration = null; + + XMLDocType = null; + + XMLRaw = null; + + XMLText = null; + + module.exports = XMLNode = (function() { + function XMLNode(parent) { + this.parent = parent; + this.options = this.parent.options; + this.stringify = this.parent.stringify; + if (XMLElement === null) { + XMLElement = require('./XMLElement'); + XMLCData = require('./XMLCData'); + XMLComment = require('./XMLComment'); + XMLDeclaration = require('./XMLDeclaration'); + XMLDocType = require('./XMLDocType'); + XMLRaw = require('./XMLRaw'); + XMLText = require('./XMLText'); + } + } + + XMLNode.prototype.clone = function() { + throw new Error("Cannot clone generic XMLNode"); + }; + + XMLNode.prototype.element = function(name, attributes, text) { + var item, j, key, lastChild, len, ref, val; + lastChild = null; + if (attributes == null) { + attributes = {}; + } + attributes = attributes.valueOf(); + if (!isObject(attributes)) { + ref = [attributes, text], text = ref[0], attributes = ref[1]; + } + if (name != null) { + name = name.valueOf(); + } + if (isArray(name)) { + for (j = 0, len = name.length; j < len; j++) { + item = name[j]; + lastChild = this.element(item); + } + } else if (isFunction(name)) { + lastChild = this.element(name.apply()); + } else if (isObject(name)) { + for (key in name) { + if (!hasProp.call(name, key)) continue; + val = name[key]; + if (isFunction(val)) { + val = val.apply(); + } + if ((isObject(val)) && (isEmpty(val))) { + val = null; + } + if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) { + lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); + } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && key.indexOf(this.stringify.convertPIKey) === 0) { + lastChild = this.instruction(key.substr(this.stringify.convertPIKey.length), val); + } else if (isObject(val)) { + if (!this.options.ignoreDecorators && this.stringify.convertListKey && key.indexOf(this.stringify.convertListKey) === 0 && isArray(val)) { + lastChild = this.element(val); + } else { + lastChild = this.element(key); + lastChild.element(val); + } + } else { + lastChild = this.element(key, val); + } + } + } else { + if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) { + lastChild = this.text(text); + } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) { + lastChild = this.cdata(text); + } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) { + lastChild = this.comment(text); + } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) { + lastChild = this.raw(text); + } else { + lastChild = this.node(name, attributes, text); + } + } + if (lastChild == null) { + throw new Error("Could not create any elements with: " + name); + } + return lastChild; + }; + + XMLNode.prototype.insertBefore = function(name, attributes, text) { + var child, i, removed; + if (this.isRoot) { + throw new Error("Cannot insert elements at root level"); + } + i = this.parent.children.indexOf(this); + removed = this.parent.children.splice(i); + child = this.parent.element(name, attributes, text); + Array.prototype.push.apply(this.parent.children, removed); + return child; + }; + + XMLNode.prototype.insertAfter = function(name, attributes, text) { + var child, i, removed; + if (this.isRoot) { + throw new Error("Cannot insert elements at root level"); + } + i = this.parent.children.indexOf(this); + removed = this.parent.children.splice(i + 1); + child = this.parent.element(name, attributes, text); + Array.prototype.push.apply(this.parent.children, removed); + return child; + }; + + XMLNode.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; + }; + + XMLNode.prototype.node = function(name, attributes, text) { + var child, ref; + if (name != null) { + name = name.valueOf(); + } + if (attributes == null) { + attributes = {}; + } + attributes = attributes.valueOf(); + if (!isObject(attributes)) { + ref = [attributes, text], text = ref[0], attributes = ref[1]; + } + child = new XMLElement(this, name, attributes); + if (text != null) { + child.text(text); + } + this.children.push(child); + return child; + }; + + XMLNode.prototype.text = function(value) { + var child; + child = new XMLText(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.cdata = function(value) { + var child; + child = new XMLCData(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.comment = function(value) { + var child; + child = new XMLComment(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.raw = function(value) { + var child; + child = new XMLRaw(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.declaration = function(version, encoding, standalone) { + var doc, xmldec; + doc = this.document(); + xmldec = new XMLDeclaration(doc, version, encoding, standalone); + doc.xmldec = xmldec; + return doc.root(); + }; + + XMLNode.prototype.doctype = function(pubID, sysID) { + var doc, doctype; + doc = this.document(); + doctype = new XMLDocType(doc, pubID, sysID); + doc.doctype = doctype; + return doctype; + }; + + XMLNode.prototype.up = function() { + if (this.isRoot) { + throw new Error("The root node has no parent. Use doc() if you need to get the document object."); + } + return this.parent; + }; + + XMLNode.prototype.root = function() { + var child; + if (this.isRoot) { + return this; + } + child = this.parent; + while (!child.isRoot) { + child = child.parent; + } + return child; + }; + + XMLNode.prototype.document = function() { + return this.root().documentObject; + }; + + XMLNode.prototype.end = function(options) { + return this.document().toString(options); + }; + + XMLNode.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]; + }; + + XMLNode.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]; + }; + + XMLNode.prototype.importXMLBuilder = function(xmlbuilder) { + var clonedRoot; + clonedRoot = xmlbuilder.root().clone(); + clonedRoot.parent = this; + clonedRoot.isRoot = false; + this.children.push(clonedRoot); + return this; + }; + + XMLNode.prototype.ele = function(name, attributes, text) { + return this.element(name, attributes, text); + }; + + XMLNode.prototype.nod = function(name, attributes, text) { + return this.node(name, attributes, text); + }; + + XMLNode.prototype.txt = function(value) { + return this.text(value); + }; + + XMLNode.prototype.dat = function(value) { + return this.cdata(value); + }; + + XMLNode.prototype.com = function(value) { + return this.comment(value); + }; + + XMLNode.prototype.doc = function() { + return this.document(); + }; + + XMLNode.prototype.dec = function(version, encoding, standalone) { + return this.declaration(version, encoding, standalone); + }; + + XMLNode.prototype.dtd = function(pubID, sysID) { + return this.doctype(pubID, sysID); + }; + + XMLNode.prototype.e = function(name, attributes, text) { + return this.element(name, attributes, text); + }; + + XMLNode.prototype.n = function(name, attributes, text) { + return this.node(name, attributes, text); + }; + + XMLNode.prototype.t = function(value) { + return this.text(value); + }; + + XMLNode.prototype.d = function(value) { + return this.cdata(value); + }; + + XMLNode.prototype.c = function(value) { + return this.comment(value); + }; + + XMLNode.prototype.r = function(value) { + return this.raw(value); + }; + + XMLNode.prototype.u = function() { + return this.up(); + }; + + return XMLNode; + + })(); + +}).call(this); + +},{"./XMLCData":87,"./XMLComment":88,"./XMLDeclaration":93,"./XMLDocType":94,"./XMLElement":95,"./XMLRaw":98,"./XMLText":100,"lodash/lang/isArray":136,"lodash/lang/isEmpty":137,"lodash/lang/isFunction":138,"lodash/lang/isObject":140}],97:[function(require,module,exports){ +(function() { + var XMLProcessingInstruction, create; + + create = require('lodash/object/create'); + + module.exports = XMLProcessingInstruction = (function() { + function XMLProcessingInstruction(parent, target, value) { + this.stringify = parent.stringify; + if (target == null) { + throw new Error("Missing instruction target"); + } + this.target = this.stringify.insTarget(target); + if (value) { + this.value = this.stringify.insValue(value); + } + } + + XMLProcessingInstruction.prototype.clone = function() { + return create(XMLProcessingInstruction.prototype, this); + }; + + XMLProcessingInstruction.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLProcessingInstruction; + + })(); + +}).call(this); + +},{"lodash/object/create":144}],98:[function(require,module,exports){ +(function() { + var XMLNode, XMLRaw, create, + extend = 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; }, + hasProp = {}.hasOwnProperty; + + create = require('lodash/object/create'); + + XMLNode = require('./XMLNode'); + + module.exports = XMLRaw = (function(superClass) { + extend(XMLRaw, superClass); + + function XMLRaw(parent, text) { + XMLRaw.__super__.constructor.call(this, parent); + if (text == null) { + throw new Error("Missing raw text"); + } + this.value = this.stringify.raw(text); + } + + XMLRaw.prototype.clone = function() { + return create(XMLRaw.prototype, this); + }; + + XMLRaw.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += this.value; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLRaw; + + })(XMLNode); + +}).call(this); + +},{"./XMLNode":96,"lodash/object/create":144}],99:[function(require,module,exports){ +(function() { + var XMLStringifier, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + hasProp = {}.hasOwnProperty; + + module.exports = XMLStringifier = (function() { + function XMLStringifier(options) { + this.assertLegalChar = bind(this.assertLegalChar, this); + var key, ref, value; + this.allowSurrogateChars = options != null ? options.allowSurrogateChars : void 0; + ref = (options != null ? options.stringify : void 0) || {}; + for (key in ref) { + if (!hasProp.call(ref, key)) continue; + value = ref[key]; + this[key] = value; + } + } + + XMLStringifier.prototype.eleName = function(val) { + val = '' + val || ''; + return this.assertLegalChar(val); + }; + + XMLStringifier.prototype.eleText = function(val) { + val = '' + val || ''; + return this.assertLegalChar(this.elEscape(val)); + }; + + XMLStringifier.prototype.cdata = function(val) { + val = '' + val || ''; + if (val.match(/]]>/)) { + throw new Error("Invalid CDATA text: " + val); + } + return this.assertLegalChar(val); + }; + + XMLStringifier.prototype.comment = function(val) { + val = '' + val || ''; + if (val.match(/--/)) { + throw new Error("Comment text cannot contain double-hypen: " + val); + } + return this.assertLegalChar(val); + }; + + XMLStringifier.prototype.raw = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.attName = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.attValue = function(val) { + val = '' + val || ''; + return this.attEscape(val); + }; + + XMLStringifier.prototype.insTarget = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.insValue = function(val) { + val = '' + val || ''; + if (val.match(/\?>/)) { + throw new Error("Invalid processing instruction value: " + val); + } + return val; + }; + + XMLStringifier.prototype.xmlVersion = function(val) { + val = '' + val || ''; + if (!val.match(/1\.[0-9]+/)) { + throw new Error("Invalid version number: " + val); + } + return val; + }; + + XMLStringifier.prototype.xmlEncoding = function(val) { + val = '' + val || ''; + if (!val.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/)) { + throw new Error("Invalid encoding: " + val); + } + return val; + }; + + XMLStringifier.prototype.xmlStandalone = function(val) { + if (val) { + return "yes"; + } else { + return "no"; + } + }; + + XMLStringifier.prototype.dtdPubID = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdSysID = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdElementValue = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdAttType = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdAttDefault = function(val) { + if (val != null) { + return '' + val || ''; + } else { + return val; + } + }; + + XMLStringifier.prototype.dtdEntityValue = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdNData = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.convertAttKey = '@'; + + XMLStringifier.prototype.convertPIKey = '?'; + + XMLStringifier.prototype.convertTextKey = '#text'; + + XMLStringifier.prototype.convertCDataKey = '#cdata'; + + XMLStringifier.prototype.convertCommentKey = '#comment'; + + XMLStringifier.prototype.convertRawKey = '#raw'; + + XMLStringifier.prototype.convertListKey = '#list'; + + XMLStringifier.prototype.assertLegalChar = function(str) { + var chars, chr; + if (this.allowSurrogateChars) { + chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/; + } else { + 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 + " at index " + chr.index); + } + return str; + }; + + XMLStringifier.prototype.elEscape = function(str) { + return str.replace(/&/g, '&').replace(//g, '>').replace(/\r/g, ' '); + }; + + XMLStringifier.prototype.attEscape = function(str) { + return str.replace(/&/g, '&').replace(/ 3 && typeof customizer == 'function') { + customizer = bindCallback(customizer, thisArg, 5); + length -= 2; + } else { + customizer = (length > 2 && typeof thisArg == 'function') ? thisArg : null; + length -= (customizer ? 1 : 0); + } + if (guard && isIterateeCall(args[1], args[2], guard)) { + customizer = length == 3 ? null : customizer; + length = 2; + } + var index = 0; + while (++index < length) { + var source = args[index]; + if (source) { + assigner(object, source, customizer); + } + } + return object; + }; +} + +module.exports = createAssigner; + +},{"./bindCallback":121,"./isIterateeCall":128}],123:[function(require,module,exports){ + +function equalArrays(array, other, equalFunc, customizer, isWhere, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length, + result = true; + + if (arrLength != othLength && !(isWhere && othLength > arrLength)) { + return false; + } + while (result && ++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + result = undefined; + if (customizer) { + result = isWhere + ? customizer(othValue, arrValue, index) + : customizer(arrValue, othValue, index); + } + if (typeof result == 'undefined') { + if (isWhere) { + var othIndex = othLength; + while (othIndex--) { + othValue = other[othIndex]; + result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB); + if (result) { + break; + } + } + } else { + result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB); + } + } + } + return !!result; +} + +module.exports = equalArrays; + +},{}],124:[function(require,module,exports){ + +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + + +function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + return (object != +object) + ? other != +other + : (object == 0 ? ((1 / object) == (1 / other)) : object == +other); + + case regexpTag: + case stringTag: + return object == (other + ''); + } + return false; +} + +module.exports = equalByTag; + +},{}],125:[function(require,module,exports){ +var keys = require('../object/keys'); + + +var objectProto = Object.prototype; + + +var hasOwnProperty = objectProto.hasOwnProperty; + + +function equalObjects(object, other, equalFunc, customizer, isWhere, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isWhere) { + return false; + } + var hasCtor, + index = -1; + + while (++index < objLength) { + var key = objProps[index], + result = hasOwnProperty.call(other, key); + + if (result) { + var objValue = object[key], + othValue = other[key]; + + result = undefined; + if (customizer) { + result = isWhere + ? customizer(othValue, objValue, key) + : customizer(objValue, othValue, key); + } + if (typeof result == 'undefined') { + result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isWhere, stackA, stackB); + } + } + if (!result) { + return false; + } + hasCtor || (hasCtor = key == 'constructor'); + } + if (!hasCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; +} + +module.exports = equalObjects; + +},{"../object/keys":145}],126:[function(require,module,exports){ +var baseSetData = require('./baseSetData'), + isNative = require('../lang/isNative'), + support = require('../support'); + + +var reFuncName = /^\s*function[ \n\r\t]+\w/; + + +var reThis = /\bthis\b/; + + +var fnToString = Function.prototype.toString; + + +function isBindable(func) { + var result = !(support.funcNames ? func.name : support.funcDecomp); + + if (!result) { + var source = fnToString.call(func); + if (!support.funcNames) { + result = !reFuncName.test(source); + } + if (!result) { + result = reThis.test(source) || isNative(func); + baseSetData(func, result); + } + } + return result; +} + +module.exports = isBindable; + +},{"../lang/isNative":139,"../support":148,"./baseSetData":119}],127:[function(require,module,exports){ + +var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; + + +function isIndex(value, length) { + value = +value; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; +} + +module.exports = isIndex; + +},{}],128:[function(require,module,exports){ +var isIndex = require('./isIndex'), + isLength = require('./isLength'), + isObject = require('../lang/isObject'); + + +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number') { + var length = object.length, + prereq = isLength(length) && isIndex(index, length); + } else { + prereq = type == 'string' && index in object; + } + if (prereq) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; +} + +module.exports = isIterateeCall; + +},{"../lang/isObject":140,"./isIndex":127,"./isLength":129}],129:[function(require,module,exports){ + +var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; + + +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + +},{}],130:[function(require,module,exports){ + +function isObjectLike(value) { + return (value && typeof value == 'object') || false; +} + +module.exports = isObjectLike; + +},{}],131:[function(require,module,exports){ +var isObject = require('../lang/isObject'); + + +function isStrictComparable(value) { + return value === value && (value === 0 ? ((1 / value) > 0) : !isObject(value)); +} + +module.exports = isStrictComparable; + +},{"../lang/isObject":140}],132:[function(require,module,exports){ +(function (global){ +var isNative = require('../lang/isNative'); + + +var WeakMap = isNative(WeakMap = global.WeakMap) && WeakMap; + + +var metaMap = WeakMap && new WeakMap; + +module.exports = metaMap; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"../lang/isNative":139}],133:[function(require,module,exports){ +var isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isIndex = require('./isIndex'), + isLength = require('./isLength'), + keysIn = require('../object/keysIn'), + support = require('../support'); + + +var objectProto = Object.prototype; + + +var hasOwnProperty = objectProto.hasOwnProperty; + + +function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = length && isLength(length) && + (isArray(object) || (support.nonEnumArgs && isArguments(object))); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; +} + +module.exports = shimKeys; + +},{"../lang/isArguments":135,"../lang/isArray":136,"../object/keysIn":146,"../support":148,"./isIndex":127,"./isLength":129}],134:[function(require,module,exports){ +var isObject = require('../lang/isObject'); + + +function toObject(value) { + return isObject(value) ? value : Object(value); +} + +module.exports = toObject; + +},{"../lang/isObject":140}],135:[function(require,module,exports){ +var isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + + +var argsTag = '[object Arguments]'; + + +var objectProto = Object.prototype; + + +var objToString = objectProto.toString; + + +function isArguments(value) { + var length = isObjectLike(value) ? value.length : undefined; + return (isLength(length) && objToString.call(value) == argsTag) || false; +} + +module.exports = isArguments; + +},{"../internal/isLength":129,"../internal/isObjectLike":130}],136:[function(require,module,exports){ +var isLength = require('../internal/isLength'), + isNative = require('./isNative'), + isObjectLike = require('../internal/isObjectLike'); + + +var arrayTag = '[object Array]'; + + +var objectProto = Object.prototype; + + +var objToString = objectProto.toString; + + +var nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray; + + +var isArray = nativeIsArray || function(value) { + return (isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag) || false; +}; + +module.exports = isArray; + +},{"../internal/isLength":129,"../internal/isObjectLike":130,"./isNative":139}],137:[function(require,module,exports){ +var isArguments = require('./isArguments'), + isArray = require('./isArray'), + isFunction = require('./isFunction'), + isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'), + isString = require('./isString'), + keys = require('../object/keys'); + + +function isEmpty(value) { + if (value == null) { + return true; + } + var length = value.length; + if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) || + (isObjectLike(value) && isFunction(value.splice)))) { + return !length; + } + return !keys(value).length; +} + +module.exports = isEmpty; + +},{"../internal/isLength":129,"../internal/isObjectLike":130,"../object/keys":145,"./isArguments":135,"./isArray":136,"./isFunction":138,"./isString":141}],138:[function(require,module,exports){ +(function (global){ +var baseIsFunction = require('../internal/baseIsFunction'), + isNative = require('./isNative'); + + +var funcTag = '[object Function]'; + + +var objectProto = Object.prototype; + + +var objToString = objectProto.toString; + + +var Uint8Array = isNative(Uint8Array = global.Uint8Array) && Uint8Array; + + +var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) { + return objToString.call(value) == funcTag; +}; + +module.exports = isFunction; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"../internal/baseIsFunction":114,"./isNative":139}],139:[function(require,module,exports){ +var escapeRegExp = require('../string/escapeRegExp'), + isObjectLike = require('../internal/isObjectLike'); + + +var funcTag = '[object Function]'; + + +var reHostCtor = /^\[object .+?Constructor\]$/; + + +var objectProto = Object.prototype; + + +var fnToString = Function.prototype.toString; + + +var objToString = objectProto.toString; + + +var reNative = RegExp('^' + + escapeRegExp(objToString) + .replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + + +function isNative(value) { + if (value == null) { + return false; + } + if (objToString.call(value) == funcTag) { + return reNative.test(fnToString.call(value)); + } + return (isObjectLike(value) && reHostCtor.test(value)) || false; +} + +module.exports = isNative; + +},{"../internal/isObjectLike":130,"../string/escapeRegExp":147}],140:[function(require,module,exports){ + +function isObject(value) { + var type = typeof value; + return type == 'function' || (value && type == 'object') || false; +} + +module.exports = isObject; + +},{}],141:[function(require,module,exports){ +var isObjectLike = require('../internal/isObjectLike'); + + +var stringTag = '[object String]'; + + +var objectProto = Object.prototype; + + +var objToString = objectProto.toString; + + +function isString(value) { + return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag) || false; +} + +module.exports = isString; + +},{"../internal/isObjectLike":130}],142:[function(require,module,exports){ +var isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + + +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dateTag] = typedArrayTags[errorTag] = +typedArrayTags[funcTag] = typedArrayTags[mapTag] = +typedArrayTags[numberTag] = typedArrayTags[objectTag] = +typedArrayTags[regexpTag] = typedArrayTags[setTag] = +typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + + +var objectProto = Object.prototype; + + +var objToString = objectProto.toString; + + +function isTypedArray(value) { + return (isObjectLike(value) && isLength(value.length) && typedArrayTags[objToString.call(value)]) || false; +} + +module.exports = isTypedArray; + +},{"../internal/isLength":129,"../internal/isObjectLike":130}],143:[function(require,module,exports){ +var baseAssign = require('../internal/baseAssign'), + createAssigner = require('../internal/createAssigner'); + + +var assign = createAssigner(baseAssign); + +module.exports = assign; + +},{"../internal/baseAssign":104,"../internal/createAssigner":122}],144:[function(require,module,exports){ +var baseCopy = require('../internal/baseCopy'), + baseCreate = require('../internal/baseCreate'), + isIterateeCall = require('../internal/isIterateeCall'), + keys = require('./keys'); + + +function create(prototype, properties, guard) { + var result = baseCreate(prototype); + if (guard && isIterateeCall(prototype, properties, guard)) { + properties = null; + } + return properties ? baseCopy(properties, result, keys(properties)) : result; +} + +module.exports = create; + +},{"../internal/baseCopy":106,"../internal/baseCreate":107,"../internal/isIterateeCall":128,"./keys":145}],145:[function(require,module,exports){ +var isLength = require('../internal/isLength'), + isNative = require('../lang/isNative'), + isObject = require('../lang/isObject'), + shimKeys = require('../internal/shimKeys'); + + +var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys; + + +var keys = !nativeKeys ? shimKeys : function(object) { + if (object) { + var Ctor = object.constructor, + length = object.length; + } + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object != 'function' && (length && isLength(length)))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; +}; + +module.exports = keys; + +},{"../internal/isLength":129,"../internal/shimKeys":133,"../lang/isNative":139,"../lang/isObject":140}],146:[function(require,module,exports){ +var isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isIndex = require('../internal/isIndex'), + isLength = require('../internal/isLength'), + isObject = require('../lang/isObject'), + support = require('../support'); + + +var objectProto = Object.prototype; + + +var hasOwnProperty = objectProto.hasOwnProperty; + + +function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + length = (length && isLength(length) && + (isArray(object) || (support.nonEnumArgs && isArguments(object))) && length) || 0; + + var Ctor = object.constructor, + index = -1, + isProto = typeof Ctor == 'function' && Ctor.prototype === object, + result = Array(length), + skipIndexes = length > 0; + + while (++index < length) { + result[index] = (index + ''); + } + for (var key in object) { + if (!(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = keysIn; + +},{"../internal/isIndex":127,"../internal/isLength":129,"../lang/isArguments":135,"../lang/isArray":136,"../lang/isObject":140,"../support":148}],147:[function(require,module,exports){ +var baseToString = require('../internal/baseToString'); + + +var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, + reHasRegExpChars = RegExp(reRegExpChars.source); + + +function escapeRegExp(string) { + string = baseToString(string); + return (string && reHasRegExpChars.test(string)) + ? string.replace(reRegExpChars, '\\$&') + : string; +} + +module.exports = escapeRegExp; + +},{"../internal/baseToString":120}],148:[function(require,module,exports){ +(function (global){ +var isNative = require('./lang/isNative'); + + +var reThis = /\bthis\b/; + + +var objectProto = Object.prototype; + + +var document = (document = global.window) && document.document; + + +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + +var support = {}; + +(function(x) { + + + support.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; }); + + + support.funcNames = typeof Function.name == 'string'; + + + try { + support.dom = document.createDocumentFragment().nodeType === 11; + } catch(e) { + support.dom = false; + } + + + try { + support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1); + } catch(e) { + support.nonEnumArgs = true; + } +}(0, 0)); + +module.exports = support; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./lang/isNative":139}],149:[function(require,module,exports){ + +function identity(value) { + return value; +} + +module.exports = identity; + +},{}]},{},[1]); + diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.min.js b/cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.min.js new file mode 100755 index 0000000..9590165 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/dist/aws-sdk.min.js @@ -0,0 +1,30 @@ +// AWS SDK for JavaScript v2.3.19 +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt +!function e(t,r,a){function i(n,o){if(!r[n]){if(!t[n]){var u="function"==typeof require&&require;if(!o&&u)return u(n,!0);if(s)return s(n,!0);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}var c=r[n]={exports:{}};t[n][0].call(c.exports,function(e){var r=t[n][1][e];return i(r?r:e)},c,c.exports,e,t,r,a)}return r[n].exports}for(var s="function"==typeof require&&require,n=0;n `0`",state:"success"}]}}},a.apiLoader.services.cloudwatchevents={},a.CloudWatchEvents=a.Service.defineService("cloudwatchevents",["2015-10-07"]),a.apiLoader.services.cloudwatchevents["2015-10-07"]={version:"2.0",metadata:{apiVersion:"2015-10-07",endpointPrefix:"events",jsonVersion:"1.1",serviceFullName:"Amazon CloudWatch Events",signatureVersion:"v4",targetPrefix:"AWSEvents",protocol:"json"},operations:{DeleteRule:{input:{type:"structure",required:["Name"],members:{Name:{}}},http:{}},DescribeRule:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},Arn:{},EventPattern:{},ScheduleExpression:{},State:{},Description:{},RoleArn:{}}},http:{}},DisableRule:{input:{type:"structure",required:["Name"],members:{Name:{}}},http:{}},EnableRule:{input:{type:"structure",required:["Name"],members:{Name:{}}},http:{}},ListRuleNamesByTarget:{input:{type:"structure",required:["TargetArn"],members:{TargetArn:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{RuleNames:{type:"list",member:{}},NextToken:{}}},http:{}},ListRules:{input:{type:"structure",members:{NamePrefix:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Rules:{type:"list",member:{type:"structure",members:{Name:{},Arn:{},EventPattern:{},State:{},Description:{},ScheduleExpression:{},RoleArn:{}}}},NextToken:{}}},http:{}},ListTargetsByRule:{input:{type:"structure",required:["Rule"],members:{Rule:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Targets:{shape:"Sp"},NextToken:{}}},http:{}},PutEvents:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{type:"structure",members:{Time:{type:"timestamp"},Source:{},Resources:{type:"list",member:{}},DetailType:{},Detail:{}}}}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},Entries:{type:"list",member:{type:"structure",members:{EventId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},PutRule:{input:{type:"structure",required:["Name"],members:{Name:{},ScheduleExpression:{},EventPattern:{},State:{},Description:{},RoleArn:{}}},output:{type:"structure",members:{RuleArn:{}}},http:{}},PutTargets:{input:{type:"structure",required:["Rule","Targets"],members:{Rule:{},Targets:{shape:"Sp"}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},FailedEntries:{type:"list",member:{type:"structure",members:{TargetId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},RemoveTargets:{input:{type:"structure",required:["Rule","Ids"],members:{Rule:{},Ids:{type:"list",member:{}}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},FailedEntries:{type:"list",member:{type:"structure",members:{TargetId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},TestEventPattern:{input:{type:"structure",required:["EventPattern","Event"],members:{EventPattern:{},Event:{}}},output:{type:"structure",members:{Result:{type:"boolean"}}},http:{}}},shapes:{Sp:{type:"list",member:{type:"structure",required:["Id","Arn"],members:{Id:{},Arn:{},Input:{},InputPath:{}}}}},examples:{}},a.apiLoader.services.cloudwatchlogs={},a.CloudWatchLogs=a.Service.defineService("cloudwatchlogs",["2014-03-28"]),a.apiLoader.services.cloudwatchlogs["2014-03-28"]={version:"2.0",metadata:{apiVersion:"2014-03-28",endpointPrefix:"logs",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon CloudWatch Logs",signatureVersion:"v4",targetPrefix:"Logs_20140328"},operations:{CancelExportTask:{input:{type:"structure",required:["taskId"],members:{taskId:{}}},http:{}},CreateExportTask:{input:{type:"structure",required:["logGroupName","from","to","destination"],members:{taskName:{},logGroupName:{},logStreamNamePrefix:{},from:{type:"long"},to:{type:"long"},destination:{},destinationPrefix:{}}},output:{type:"structure",members:{taskId:{}}},http:{}},CreateLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}},http:{}},CreateLogStream:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{}}},http:{}},DeleteDestination:{input:{type:"structure",required:["destinationName"],members:{destinationName:{}}},http:{}},DeleteLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}},http:{}},DeleteLogStream:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{}}},http:{}},DeleteMetricFilter:{input:{type:"structure",required:["logGroupName","filterName"],members:{logGroupName:{},filterName:{}}},http:{}},DeleteRetentionPolicy:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}},http:{}},DeleteSubscriptionFilter:{input:{type:"structure",required:["logGroupName","filterName"],members:{logGroupName:{},filterName:{}}},http:{}},DescribeDestinations:{input:{type:"structure",members:{DestinationNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{destinations:{type:"list",member:{shape:"Sq"}},nextToken:{}}},http:{}},DescribeExportTasks:{input:{type:"structure",members:{taskId:{},statusCode:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{exportTasks:{type:"list",member:{type:"structure",members:{taskId:{},taskName:{},logGroupName:{},from:{type:"long"},to:{type:"long"},destination:{},destinationPrefix:{},status:{type:"structure",members:{code:{},message:{}}},executionInfo:{type:"structure",members:{creationTime:{type:"long"},completionTime:{type:"long"}}}}}},nextToken:{}}},http:{}},DescribeLogGroups:{input:{type:"structure",members:{logGroupNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{logGroups:{type:"list",member:{type:"structure",members:{logGroupName:{},creationTime:{type:"long"},retentionInDays:{type:"integer"},metricFilterCount:{type:"integer"},arn:{},storedBytes:{type:"long"}}}},nextToken:{}}},http:{}},DescribeLogStreams:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},logStreamNamePrefix:{},orderBy:{},descending:{type:"boolean"},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{logStreams:{type:"list",member:{type:"structure",members:{logStreamName:{},creationTime:{type:"long"},firstEventTimestamp:{type:"long"},lastEventTimestamp:{type:"long"},lastIngestionTime:{type:"long"},uploadSequenceToken:{},arn:{},storedBytes:{type:"long"}}}},nextToken:{}}},http:{}},DescribeMetricFilters:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},filterNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{metricFilters:{type:"list",member:{type:"structure",members:{filterName:{},filterPattern:{},metricTransformations:{shape:"S1m"},creationTime:{type:"long"}}}},nextToken:{}}},http:{}},DescribeSubscriptionFilters:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},filterNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{subscriptionFilters:{type:"list",member:{type:"structure",members:{filterName:{},logGroupName:{},filterPattern:{},destinationArn:{},roleArn:{},creationTime:{type:"long"}}}},nextToken:{}}},http:{}},FilterLogEvents:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},logStreamNames:{type:"list",member:{}},startTime:{type:"long"},endTime:{type:"long"},filterPattern:{},nextToken:{},limit:{type:"integer"},interleaved:{type:"boolean"}}},output:{type:"structure",members:{events:{type:"list",member:{type:"structure",members:{logStreamName:{},timestamp:{type:"long"},message:{},ingestionTime:{type:"long"},eventId:{}}}},searchedLogStreams:{type:"list",member:{type:"structure",members:{logStreamName:{},searchedCompletely:{type:"boolean"}}}},nextToken:{}}},http:{}},GetLogEvents:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{},startTime:{type:"long"},endTime:{type:"long"},nextToken:{},limit:{type:"integer"},startFromHead:{type:"boolean"}}},output:{type:"structure",members:{events:{type:"list",member:{type:"structure",members:{timestamp:{type:"long"},message:{},ingestionTime:{type:"long"}}}},nextForwardToken:{},nextBackwardToken:{}}},http:{}},PutDestination:{input:{type:"structure",required:["destinationName","targetArn","roleArn"],members:{destinationName:{},targetArn:{},roleArn:{}}},output:{type:"structure",members:{destination:{shape:"Sq"}}},http:{}},PutDestinationPolicy:{input:{type:"structure",required:["destinationName","accessPolicy"],members:{destinationName:{},accessPolicy:{}}},http:{}},PutLogEvents:{input:{type:"structure",required:["logGroupName","logStreamName","logEvents"],members:{logGroupName:{},logStreamName:{},logEvents:{type:"list",member:{type:"structure",required:["timestamp","message"],members:{timestamp:{type:"long"},message:{}}}},sequenceToken:{}}},output:{type:"structure",members:{nextSequenceToken:{},rejectedLogEventsInfo:{type:"structure",members:{tooNewLogEventStartIndex:{type:"integer"},tooOldLogEventEndIndex:{type:"integer"},expiredLogEventEndIndex:{type:"integer"}}}}},http:{}},PutMetricFilter:{input:{type:"structure",required:["logGroupName","filterName","filterPattern","metricTransformations"],members:{logGroupName:{},filterName:{},filterPattern:{},metricTransformations:{shape:"S1m"}}},http:{}},PutRetentionPolicy:{input:{type:"structure",required:["logGroupName","retentionInDays"],members:{logGroupName:{},retentionInDays:{type:"integer"}}},http:{}},PutSubscriptionFilter:{input:{type:"structure",required:["logGroupName","filterName","filterPattern","destinationArn"],members:{logGroupName:{},filterName:{},filterPattern:{},destinationArn:{},roleArn:{}}},http:{}},TestMetricFilter:{input:{type:"structure",required:["filterPattern","logEventMessages"],members:{filterPattern:{},logEventMessages:{type:"list",member:{}}}},output:{type:"structure",members:{matches:{type:"list",member:{type:"structure",members:{eventNumber:{type:"long"},eventMessage:{},extractedValues:{type:"map",key:{},value:{}}}}}}},http:{}}},shapes:{Sq:{type:"structure",members:{destinationName:{},targetArn:{},roleArn:{},accessPolicy:{},arn:{},creationTime:{type:"long"}}},S1m:{type:"list",member:{type:"structure",required:["metricName","metricNamespace","metricValue"],members:{metricName:{},metricNamespace:{},metricValue:{}}}}},paginators:{DescribeDestinations:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:"destinations"},DescribeLogGroups:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:"logGroups"},DescribeLogStreams:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:"logStreams"},DescribeMetricFilters:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:"metricFilters"},DescribeSubscriptionFilters:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:"subscriptionFilters"},FilterLogEvents:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:["events","searchedLogStreams"]},GetLogEvents:{input_token:"nextToken",output_token:"nextForwardToken",limit_key:"limit",result_key:"events"}}},a.apiLoader.services.codecommit={},a.CodeCommit=a.Service.defineService("codecommit",["2015-04-13"]),a.apiLoader.services.codecommit["2015-04-13"]={version:"2.0",metadata:{apiVersion:"2015-04-13",endpointPrefix:"codecommit",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"CodeCommit",serviceFullName:"AWS CodeCommit",signatureVersion:"v4",targetPrefix:"CodeCommit_20150413"},operations:{BatchGetRepositories:{input:{type:"structure",required:["repositoryNames"],members:{repositoryNames:{type:"list",member:{}}}},output:{type:"structure",members:{repositories:{type:"list",member:{shape:"S6"}},repositoriesNotFound:{type:"list",member:{}}}},http:{}},CreateBranch:{input:{type:"structure",required:["repositoryName","branchName","commitId"],members:{repositoryName:{},branchName:{},commitId:{}}},http:{}},CreateRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},repositoryDescription:{}}},output:{type:"structure",members:{repositoryMetadata:{shape:"S6"}}},http:{}},DeleteRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{repositoryId:{}}},http:{}},GetBranch:{input:{type:"structure",members:{repositoryName:{},branchName:{}}},output:{type:"structure",members:{branch:{type:"structure",members:{branchName:{},commitId:{}}}}},http:{}},GetCommit:{input:{type:"structure",required:["repositoryName","commitId"],members:{repositoryName:{},commitId:{}}},output:{type:"structure",required:["commit"],members:{commit:{type:"structure",members:{treeId:{},parents:{type:"list",member:{}},message:{},author:{shape:"Sw"},committer:{shape:"Sw"},additionalData:{}}}}},http:{}},GetRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{repositoryMetadata:{shape:"S6"}}},http:{}},GetRepositoryTriggers:{input:{type:"structure",members:{repositoryName:{}}},output:{type:"structure",members:{configurationId:{},triggers:{shape:"S16"}}},http:{}},ListBranches:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},nextToken:{}}},output:{type:"structure",members:{branches:{shape:"S1a"},nextToken:{}}},http:{}},ListRepositories:{input:{type:"structure",members:{nextToken:{},sortBy:{},order:{}}},output:{type:"structure",members:{repositories:{type:"list",member:{type:"structure",members:{repositoryName:{},repositoryId:{}}}},nextToken:{}}},http:{}},PutRepositoryTriggers:{input:{type:"structure",members:{repositoryName:{},triggers:{shape:"S16"}}},output:{type:"structure",members:{configurationId:{}}},http:{}},TestRepositoryTriggers:{input:{type:"structure",members:{repositoryName:{},triggers:{shape:"S16"}}},output:{type:"structure",members:{successfulExecutions:{type:"list",member:{}},failedExecutions:{type:"list",member:{type:"structure",members:{trigger:{},failureMessage:{}}}}}},http:{}},UpdateDefaultBranch:{input:{type:"structure",required:["repositoryName","defaultBranchName"],members:{repositoryName:{},defaultBranchName:{}}},http:{}},UpdateRepositoryDescription:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},repositoryDescription:{}}},http:{}},UpdateRepositoryName:{input:{type:"structure",required:["oldName","newName"],members:{oldName:{},newName:{}}},http:{}}},shapes:{S6:{type:"structure",members:{accountId:{},repositoryId:{},repositoryName:{},repositoryDescription:{},defaultBranch:{},lastModifiedDate:{type:"timestamp"},creationDate:{type:"timestamp"},cloneUrlHttp:{},cloneUrlSsh:{},Arn:{}}},Sw:{type:"structure",members:{name:{},email:{},date:{}}},S16:{type:"list",member:{type:"structure",members:{name:{},destinationArn:{},customData:{},branches:{shape:"S1a"},events:{type:"list",member:{}}}}},S1a:{type:"list",member:{}}},paginators:{ListBranches:{input_token:"nextToken",output_token:"nextToken",result_key:"branches"},ListRepositories:{input_token:"nextToken",output_token:"nextToken",result_key:"repositories"}}},a.apiLoader.services.codepipeline={},a.CodePipeline=a.Service.defineService("codepipeline",["2015-07-09"]),a.apiLoader.services.codepipeline["2015-07-09"]={version:"2.0",metadata:{apiVersion:"2015-07-09",endpointPrefix:"codepipeline",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"CodePipeline",serviceFullName:"AWS CodePipeline",signatureVersion:"v4",targetPrefix:"CodePipeline_20150709"},operations:{AcknowledgeJob:{input:{type:"structure",required:["jobId","nonce"],members:{jobId:{},nonce:{}}},output:{type:"structure",members:{status:{}}},http:{}},AcknowledgeThirdPartyJob:{input:{type:"structure",required:["jobId","nonce","clientToken"],members:{jobId:{},nonce:{},clientToken:{}}},output:{type:"structure",members:{status:{}}},http:{}},CreateCustomActionType:{input:{type:"structure",required:["category","provider","version","inputArtifactDetails","outputArtifactDetails"],members:{category:{},provider:{},version:{},settings:{shape:"Se"},configurationProperties:{shape:"Sh"},inputArtifactDetails:{shape:"Sn"},outputArtifactDetails:{shape:"Sn"}}},output:{type:"structure",required:["actionType"],members:{actionType:{shape:"Sr"}}},http:{}},CreatePipeline:{input:{type:"structure",required:["pipeline"],members:{pipeline:{shape:"Sv"}}},output:{type:"structure",members:{pipeline:{shape:"Sv"}}},http:{}},DeleteCustomActionType:{input:{type:"structure",required:["category","provider","version"],members:{category:{},provider:{},version:{}}},http:{}},DeletePipeline:{input:{type:"structure",required:["name"],members:{name:{}}},http:{}},DisableStageTransition:{input:{type:"structure",required:["pipelineName","stageName","transitionType","reason"],members:{pipelineName:{},stageName:{},transitionType:{},reason:{}}},http:{}},EnableStageTransition:{input:{type:"structure",required:["pipelineName","stageName","transitionType"],members:{pipelineName:{},stageName:{},transitionType:{}}},http:{}},GetJobDetails:{input:{type:"structure",required:["jobId"],members:{jobId:{}}},output:{type:"structure",members:{jobDetails:{type:"structure",members:{id:{},data:{shape:"S1x"},accountId:{}}}}},http:{}},GetPipeline:{input:{type:"structure",required:["name"],members:{name:{},version:{type:"integer"}}},output:{type:"structure",members:{pipeline:{shape:"Sv"}}},http:{}},GetPipelineState:{input:{type:"structure",required:["name"],members:{name:{}}},output:{type:"structure",members:{pipelineName:{},pipelineVersion:{type:"integer"},stageStates:{type:"list",member:{type:"structure",members:{stageName:{},inboundTransitionState:{type:"structure",members:{enabled:{type:"boolean"},lastChangedBy:{},lastChangedAt:{type:"timestamp"},disabledReason:{}}},actionStates:{type:"list",member:{type:"structure",members:{actionName:{},currentRevision:{shape:"S2s"},latestExecution:{type:"structure",members:{status:{},summary:{},lastStatusChange:{type:"timestamp"},externalExecutionId:{},externalExecutionUrl:{},percentComplete:{type:"integer"},errorDetails:{type:"structure",members:{code:{},message:{}}}}},entityUrl:{},revisionUrl:{}}}}}}},created:{type:"timestamp"},updated:{type:"timestamp"}}},http:{}},GetThirdPartyJobDetails:{input:{type:"structure",required:["jobId","clientToken"],members:{jobId:{},clientToken:{}}},output:{type:"structure",members:{jobDetails:{type:"structure",members:{id:{},data:{type:"structure",members:{actionTypeId:{shape:"Ss"},actionConfiguration:{shape:"S1y"},pipelineContext:{shape:"S1z"},inputArtifacts:{shape:"S22"},outputArtifacts:{shape:"S22"},artifactCredentials:{shape:"S2a"},continuationToken:{},encryptionKey:{shape:"S11"}}},nonce:{}}}}},http:{}},ListActionTypes:{input:{type:"structure",members:{actionOwnerFilter:{},nextToken:{}}},output:{type:"structure",required:["actionTypes"],members:{actionTypes:{type:"list",member:{shape:"Sr"}},nextToken:{}}},http:{}},ListPipelines:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{pipelines:{type:"list",member:{type:"structure",members:{name:{},version:{type:"integer"},created:{type:"timestamp"},updated:{type:"timestamp"}}}},nextToken:{}}},http:{}},PollForJobs:{input:{type:"structure",required:["actionTypeId"],members:{actionTypeId:{shape:"Ss"},maxBatchSize:{type:"integer"},queryParam:{type:"map",key:{},value:{}}}},output:{type:"structure",members:{jobs:{type:"list",member:{type:"structure",members:{id:{},data:{shape:"S1x"},nonce:{},accountId:{}}}}}},http:{}},PollForThirdPartyJobs:{input:{type:"structure",required:["actionTypeId"],members:{actionTypeId:{shape:"Ss"},maxBatchSize:{type:"integer"}}},output:{type:"structure",members:{jobs:{type:"list",member:{type:"structure",members:{clientId:{},jobId:{}}}}}},http:{}},PutActionRevision:{input:{type:"structure",required:["pipelineName","stageName","actionName","actionRevision"],members:{pipelineName:{},stageName:{},actionName:{},actionRevision:{shape:"S2s"}}},output:{type:"structure",members:{newRevision:{type:"boolean"},pipelineExecutionId:{}}},http:{}},PutJobFailureResult:{input:{type:"structure",required:["jobId","failureDetails"],members:{jobId:{},failureDetails:{shape:"S3v"}}},http:{}},PutJobSuccessResult:{input:{type:"structure",required:["jobId"],members:{jobId:{},currentRevision:{shape:"S3y"},continuationToken:{},executionDetails:{shape:"S3z"}}},http:{}},PutThirdPartyJobFailureResult:{input:{type:"structure",required:["jobId","clientToken","failureDetails"],members:{jobId:{},clientToken:{},failureDetails:{shape:"S3v"}}},http:{}},PutThirdPartyJobSuccessResult:{input:{type:"structure",required:["jobId","clientToken"],members:{jobId:{},clientToken:{},currentRevision:{shape:"S3y"},continuationToken:{},executionDetails:{shape:"S3z"}}},http:{}},StartPipelineExecution:{input:{type:"structure",required:["name"],members:{name:{}}},output:{type:"structure",members:{pipelineExecutionId:{}}},http:{}},UpdatePipeline:{input:{type:"structure",required:["pipeline"],members:{pipeline:{shape:"Sv"}}},output:{type:"structure",members:{pipeline:{shape:"Sv"}}},http:{}}},shapes:{Se:{type:"structure",members:{thirdPartyConfigurationUrl:{},entityUrlTemplate:{},executionUrlTemplate:{},revisionUrlTemplate:{}}},Sh:{type:"list",member:{type:"structure",required:["name","required","key","secret"],members:{name:{},required:{type:"boolean"},key:{type:"boolean"},secret:{type:"boolean"},queryable:{type:"boolean"},description:{},type:{}}}},Sn:{type:"structure",required:["minimumCount","maximumCount"],members:{minimumCount:{type:"integer"},maximumCount:{type:"integer"}}},Sr:{type:"structure",required:["id","inputArtifactDetails","outputArtifactDetails"],members:{id:{shape:"Ss"},settings:{shape:"Se"},actionConfigurationProperties:{shape:"Sh"},inputArtifactDetails:{shape:"Sn"},outputArtifactDetails:{shape:"Sn"}}},Ss:{type:"structure",required:["category","owner","provider","version"],members:{category:{},owner:{},provider:{},version:{}}},Sv:{type:"structure",required:["name","roleArn","artifactStore","stages"],members:{name:{},roleArn:{},artifactStore:{type:"structure",required:["type","location"],members:{type:{},location:{},encryptionKey:{shape:"S11"}}},stages:{type:"list",member:{type:"structure",required:["name","actions"],members:{name:{},blockers:{type:"list",member:{type:"structure",required:["name","type"],members:{name:{},type:{}}}},actions:{type:"list",member:{type:"structure",required:["name","actionTypeId"],members:{name:{},actionTypeId:{shape:"Ss"},runOrder:{type:"integer"},configuration:{shape:"S1f"},outputArtifacts:{type:"list",member:{type:"structure",required:["name"],members:{name:{}}}},inputArtifacts:{type:"list",member:{type:"structure",required:["name"],members:{name:{}}}},roleArn:{}}}}}}},version:{type:"integer"}}},S11:{type:"structure",required:["id","type"],members:{id:{},type:{}}},S1f:{type:"map",key:{},value:{}},S1x:{type:"structure",members:{actionTypeId:{shape:"Ss"},actionConfiguration:{shape:"S1y"},pipelineContext:{shape:"S1z"},inputArtifacts:{shape:"S22"},outputArtifacts:{shape:"S22"},artifactCredentials:{shape:"S2a"},continuationToken:{},encryptionKey:{shape:"S11"}}},S1y:{type:"structure",members:{configuration:{shape:"S1f"}}},S1z:{type:"structure",members:{pipelineName:{},stage:{type:"structure",members:{name:{}}},action:{type:"structure",members:{name:{}}}}},S22:{type:"list",member:{type:"structure",members:{name:{},revision:{},location:{type:"structure",members:{type:{},s3Location:{type:"structure",required:["bucketName","objectKey"],members:{bucketName:{},objectKey:{}}}}}}}},S2a:{type:"structure",required:["accessKeyId","secretAccessKey","sessionToken"],members:{accessKeyId:{},secretAccessKey:{},sessionToken:{}},sensitive:!0},S2s:{type:"structure",required:["revisionId","revisionChangeId","created"],members:{revisionId:{},revisionChangeId:{},created:{type:"timestamp"}}},S3v:{type:"structure",required:["type","message"],members:{type:{},message:{},externalExecutionId:{}}},S3y:{type:"structure",required:["revision","changeIdentifier"],members:{revision:{},changeIdentifier:{}}},S3z:{type:"structure",members:{summary:{},externalExecutionId:{},percentComplete:{type:"integer"}}}}},a.apiLoader.services.cognitoidentity={},a.CognitoIdentity=a.Service.defineService("cognitoidentity",["2014-06-30"]),e("./services/cognitoidentity"),a.apiLoader.services.cognitoidentity["2014-06-30"]={version:"2.0",metadata:{apiVersion:"2014-06-30",endpointPrefix:"cognito-identity",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Cognito Identity",signatureVersion:"v4",targetPrefix:"AWSCognitoIdentityService"},operations:{CreateIdentityPool:{input:{type:"structure",required:["IdentityPoolName","AllowUnauthenticatedIdentities"],members:{IdentityPoolName:{},AllowUnauthenticatedIdentities:{type:"boolean"},SupportedLoginProviders:{shape:"S4"},DeveloperProviderName:{},OpenIdConnectProviderARNs:{shape:"S8"},CognitoIdentityProviders:{shape:"Sa"}}},output:{shape:"Se"},http:{}},DeleteIdentities:{input:{type:"structure",required:["IdentityIdsToDelete"],members:{IdentityIdsToDelete:{type:"list",member:{}}}},output:{type:"structure",members:{UnprocessedIdentityIds:{type:"list",member:{type:"structure",members:{IdentityId:{},ErrorCode:{}}}}}},http:{}},DeleteIdentityPool:{input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{}}},http:{}},DescribeIdentity:{input:{type:"structure",required:["IdentityId"],members:{IdentityId:{}}},output:{shape:"Sp"},http:{}},DescribeIdentityPool:{input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{}}},output:{shape:"Se"},http:{}},GetCredentialsForIdentity:{input:{type:"structure",required:["IdentityId"],members:{IdentityId:{},Logins:{shape:"Su"}}},output:{type:"structure",members:{IdentityId:{},Credentials:{type:"structure",members:{AccessKeyId:{},SecretKey:{},SessionToken:{},Expiration:{type:"timestamp"}}}}},http:{}},GetId:{input:{type:"structure",required:["IdentityPoolId"],members:{AccountId:{},IdentityPoolId:{},Logins:{shape:"Su"}}},output:{type:"structure",members:{IdentityId:{}}},http:{}},GetIdentityPoolRoles:{input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{}}},output:{type:"structure",members:{IdentityPoolId:{},Roles:{shape:"S16"}}},http:{}},GetOpenIdToken:{input:{type:"structure",required:["IdentityId"],members:{IdentityId:{},Logins:{shape:"Su"}}},output:{type:"structure",members:{IdentityId:{},Token:{}}},http:{}},GetOpenIdTokenForDeveloperIdentity:{input:{type:"structure",required:["IdentityPoolId","Logins"],members:{IdentityPoolId:{},IdentityId:{},Logins:{shape:"Su"},TokenDuration:{type:"long"}}},output:{type:"structure",members:{IdentityId:{},Token:{}}},http:{}},ListIdentities:{input:{type:"structure",required:["IdentityPoolId","MaxResults"],members:{IdentityPoolId:{},MaxResults:{type:"integer"},NextToken:{},HideDisabled:{type:"boolean"}}},output:{type:"structure",members:{IdentityPoolId:{},Identities:{type:"list",member:{shape:"Sp"}},NextToken:{}}},http:{}},ListIdentityPools:{input:{type:"structure",required:["MaxResults"],members:{MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{IdentityPools:{type:"list",member:{type:"structure",members:{IdentityPoolId:{},IdentityPoolName:{}}}},NextToken:{}}},http:{}},LookupDeveloperIdentity:{input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{},IdentityId:{},DeveloperUserIdentifier:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{IdentityId:{},DeveloperUserIdentifierList:{type:"list",member:{}},NextToken:{}}},http:{}},MergeDeveloperIdentities:{input:{type:"structure",required:["SourceUserIdentifier","DestinationUserIdentifier","DeveloperProviderName","IdentityPoolId"],members:{SourceUserIdentifier:{},DestinationUserIdentifier:{},DeveloperProviderName:{},IdentityPoolId:{}}},output:{type:"structure",members:{IdentityId:{}}},http:{}},SetIdentityPoolRoles:{input:{type:"structure",required:["IdentityPoolId","Roles"],members:{IdentityPoolId:{},Roles:{shape:"S16"}}},http:{}},UnlinkDeveloperIdentity:{input:{type:"structure",required:["IdentityId","IdentityPoolId","DeveloperProviderName","DeveloperUserIdentifier"],members:{IdentityId:{},IdentityPoolId:{},DeveloperProviderName:{},DeveloperUserIdentifier:{}}},http:{}},UnlinkIdentity:{input:{type:"structure",required:["IdentityId","Logins","LoginsToRemove"],members:{IdentityId:{},Logins:{shape:"Su"},LoginsToRemove:{shape:"Sq"}}},http:{}},UpdateIdentityPool:{input:{shape:"Se"},output:{shape:"Se"},http:{}}},shapes:{S4:{type:"map",key:{},value:{}},S8:{type:"list",member:{}},Sa:{type:"list",member:{type:"structure",members:{ProviderName:{},ClientId:{}}}},Se:{type:"structure",required:["IdentityPoolId","IdentityPoolName","AllowUnauthenticatedIdentities"],members:{IdentityPoolId:{},IdentityPoolName:{},AllowUnauthenticatedIdentities:{type:"boolean"},SupportedLoginProviders:{shape:"S4"},DeveloperProviderName:{},OpenIdConnectProviderARNs:{shape:"S8"},CognitoIdentityProviders:{shape:"Sa"}}},Sp:{type:"structure",members:{IdentityId:{},Logins:{shape:"Sq"},CreationDate:{type:"timestamp"},LastModifiedDate:{type:"timestamp"}}},Sq:{type:"list",member:{}},Su:{type:"map",key:{},value:{}},S16:{type:"map",key:{},value:{}}}},a.apiLoader.services.cognitoidentityserviceprovider={},a.CognitoIdentityServiceProvider=a.Service.defineService("cognitoidentityserviceprovider",["2016-04-18"]),a.apiLoader.services.cognitoidentityserviceprovider["2016-04-18"]={version:"2.0",metadata:{apiVersion:"2016-04-18",endpointPrefix:"cognito-idp",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Cognito Identity Provider",signatureVersion:"v4",targetPrefix:"AWSCognitoIdentityProviderService"},operations:{AddCustomAttributes:{input:{type:"structure",required:["UserPoolId","CustomAttributes"],members:{UserPoolId:{},CustomAttributes:{type:"list",member:{shape:"S4"}}}},output:{type:"structure",members:{}},http:{}},AdminConfirmSignUp:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}},http:{}},AdminDeleteUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{}, +Username:{shape:"Sd"}}},http:{}},AdminDeleteUserAttributes:{input:{type:"structure",required:["UserPoolId","Username","UserAttributeNames"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributeNames:{shape:"Sh"}}},output:{type:"structure",members:{}},http:{}},AdminDisableUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}},http:{}},AdminEnableUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}},http:{}},AdminGetUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",required:["Username"],members:{Username:{shape:"Sd"},UserAttributes:{shape:"Sq"},UserCreateDate:{type:"timestamp"},UserLastModifiedDate:{type:"timestamp"},Enabled:{type:"boolean"},UserStatus:{},MFAOptions:{shape:"Sv"}}},http:{}},AdminResetUserPassword:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}},http:{}},AdminSetUserSettings:{input:{type:"structure",required:["UserPoolId","Username","MFAOptions"],members:{UserPoolId:{},Username:{shape:"Sd"},MFAOptions:{shape:"Sv"}}},output:{type:"structure",members:{}},http:{}},AdminUpdateUserAttributes:{input:{type:"structure",required:["UserPoolId","Username","UserAttributes"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributes:{shape:"Sq"}}},output:{type:"structure",members:{}},http:{}},ChangePassword:{input:{type:"structure",required:["PreviousPassword","ProposedPassword"],members:{PreviousPassword:{shape:"S15"},ProposedPassword:{shape:"S15"},AccessToken:{shape:"S16"}}},output:{type:"structure",members:{}},authtype:"none",http:{}},ConfirmForgotPassword:{input:{type:"structure",required:["ClientId","Username","ConfirmationCode","Password"],members:{ClientId:{shape:"S19"},SecretHash:{shape:"S1a"},Username:{shape:"Sd"},ConfirmationCode:{},Password:{shape:"S15"}}},output:{type:"structure",members:{}},authtype:"none",http:{}},ConfirmSignUp:{input:{type:"structure",required:["ClientId","Username","ConfirmationCode"],members:{ClientId:{shape:"S19"},SecretHash:{shape:"S1a"},Username:{shape:"Sd"},ConfirmationCode:{},ForceAliasCreation:{type:"boolean"}}},output:{type:"structure",members:{}},authtype:"none",http:{}},CreateUserPool:{input:{type:"structure",required:["PoolName"],members:{PoolName:{},Policies:{shape:"S1i"},LambdaConfig:{shape:"S1l"},AutoVerifiedAttributes:{shape:"S1n"},AliasAttributes:{shape:"S1p"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},SmsAuthenticationMessage:{},MfaConfiguration:{}}},output:{type:"structure",members:{UserPool:{shape:"S1w"}}},http:{}},CreateUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientName"],members:{UserPoolId:{},ClientName:{},GenerateSecret:{type:"boolean"}}},output:{type:"structure",members:{UserPoolClient:{shape:"S24"}}},http:{}},DeleteUser:{input:{type:"structure",members:{AccessToken:{shape:"S16"}}},authtype:"none",http:{}},DeleteUserAttributes:{input:{type:"structure",required:["UserAttributeNames"],members:{UserAttributeNames:{shape:"Sh"},AccessToken:{shape:"S16"}}},output:{type:"structure",members:{}},authtype:"none",http:{}},DeleteUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},http:{}},DeleteUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S19"}}},http:{}},DescribeUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{UserPool:{shape:"S1w"}}},http:{}},DescribeUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S19"}}},output:{type:"structure",members:{UserPoolClient:{shape:"S24"}}},http:{}},ForgotPassword:{input:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"S19"},SecretHash:{shape:"S1a"},Username:{shape:"Sd"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S2h"}}},authtype:"none",http:{}},GetUser:{input:{type:"structure",members:{AccessToken:{shape:"S16"}}},output:{type:"structure",required:["Username","UserAttributes"],members:{Username:{shape:"Sd"},UserAttributes:{shape:"Sq"},MFAOptions:{shape:"Sv"}}},authtype:"none",http:{}},GetUserAttributeVerificationCode:{input:{type:"structure",required:["AttributeName"],members:{AccessToken:{shape:"S16"},AttributeName:{}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S2h"}}},authtype:"none",http:{}},ListUserPoolClients:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{UserPoolClients:{type:"list",member:{type:"structure",members:{ClientId:{shape:"S19"},UserPoolId:{},ClientName:{}}}},NextToken:{}}},http:{}},ListUserPools:{input:{type:"structure",required:["MaxResults"],members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{UserPools:{type:"list",member:{type:"structure",members:{Id:{},Name:{},LambdaConfig:{shape:"S1l"},Status:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}}},NextToken:{}}},http:{}},ListUsers:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},AttributesToGet:{type:"list",member:{}},Limit:{type:"integer"},PaginationToken:{},UserStatus:{}}},output:{type:"structure",members:{Users:{type:"list",member:{type:"structure",members:{Username:{shape:"Sd"},Attributes:{shape:"Sq"},UserCreateDate:{type:"timestamp"},UserLastModifiedDate:{type:"timestamp"},Enabled:{type:"boolean"},UserStatus:{}}}},PaginationToken:{}}},http:{}},ResendConfirmationCode:{input:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"S19"},SecretHash:{shape:"S1a"},Username:{shape:"Sd"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S2h"}}},authtype:"none",http:{}},SetUserSettings:{input:{type:"structure",required:["AccessToken","MFAOptions"],members:{AccessToken:{shape:"S16"},MFAOptions:{shape:"Sv"}}},output:{type:"structure",members:{}},authtype:"none",http:{}},SignUp:{input:{type:"structure",required:["ClientId","Username","Password"],members:{ClientId:{shape:"S19"},SecretHash:{shape:"S1a"},Username:{shape:"Sd"},Password:{shape:"S15"},UserAttributes:{shape:"Sq"},ValidationData:{shape:"Sq"}}},output:{type:"structure",members:{UserConfirmed:{type:"boolean"},CodeDeliveryDetails:{shape:"S2h"}}},authtype:"none",http:{}},UpdateUserAttributes:{input:{type:"structure",required:["UserAttributes"],members:{UserAttributes:{shape:"Sq"},AccessToken:{shape:"S16"}}},output:{type:"structure",members:{CodeDeliveryDetailsList:{type:"list",member:{shape:"S2h"}}}},authtype:"none",http:{}},UpdateUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},Policies:{shape:"S1i"},LambdaConfig:{shape:"S1l"},AutoVerifiedAttributes:{shape:"S1n"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},SmsAuthenticationMessage:{},MfaConfiguration:{}}},output:{type:"structure",members:{}},http:{}},UpdateUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S19"},ClientName:{}}},output:{type:"structure",members:{UserPoolClient:{shape:"S24"}}},http:{}},VerifyUserAttribute:{input:{type:"structure",required:["AttributeName","Code"],members:{AccessToken:{shape:"S16"},AttributeName:{},Code:{}}},output:{type:"structure",members:{}},authtype:"none",http:{}}},shapes:{S4:{type:"structure",members:{Name:{},AttributeDataType:{},DeveloperOnlyAttribute:{type:"boolean"},Mutable:{type:"boolean"},Required:{type:"boolean"},NumberAttributeConstraints:{type:"structure",members:{MinValue:{},MaxValue:{}}},StringAttributeConstraints:{type:"structure",members:{MinLength:{},MaxLength:{}}}}},Sd:{type:"string",sensitive:!0},Sh:{type:"list",member:{}},Sq:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},Value:{type:"string",sensitive:!0}}}},Sv:{type:"list",member:{type:"structure",members:{DeliveryMedium:{},AttributeName:{}}}},S15:{type:"string",sensitive:!0},S16:{type:"string",sensitive:!0},S19:{type:"string",sensitive:!0},S1a:{type:"string",sensitive:!0},S1i:{type:"structure",members:{PasswordPolicy:{type:"structure",members:{MinimumLength:{type:"integer"},RequireUppercase:{type:"boolean"},RequireLowercase:{type:"boolean"},RequireNumbers:{type:"boolean"},RequireSymbols:{type:"boolean"}}}}},S1l:{type:"structure",members:{PreSignUp:{},CustomMessage:{},PostConfirmation:{},PreAuthentication:{},PostAuthentication:{}}},S1n:{type:"list",member:{}},S1p:{type:"list",member:{}},S1w:{type:"structure",members:{Id:{},Name:{},Policies:{shape:"S1i"},LambdaConfig:{shape:"S1l"},Status:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"},SchemaAttributes:{type:"list",member:{shape:"S4"}},AutoVerifiedAttributes:{shape:"S1n"},AliasAttributes:{shape:"S1p"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},SmsAuthenticationMessage:{},MfaConfiguration:{},EstimatedNumberOfUsers:{type:"integer"}}},S24:{type:"structure",members:{UserPoolId:{},ClientName:{},ClientId:{shape:"S19"},ClientSecret:{type:"string",sensitive:!0},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S2h:{type:"structure",members:{Destination:{},DeliveryMedium:{},AttributeName:{}}}}},a.apiLoader.services.cognitosync={},a.CognitoSync=a.Service.defineService("cognitosync",["2014-06-30"]),a.apiLoader.services.cognitosync["2014-06-30"]={version:"2.0",metadata:{apiVersion:"2014-06-30",endpointPrefix:"cognito-sync",jsonVersion:"1.1",serviceFullName:"Amazon Cognito Sync",signatureVersion:"v4",protocol:"rest-json"},operations:{BulkPublish:{http:{requestUri:"/identitypools/{IdentityPoolId}/bulkpublish",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{}}}},DeleteDataset:{http:{method:"DELETE",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"}}},output:{type:"structure",members:{Dataset:{shape:"S8"}}}},DescribeDataset:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"}}},output:{type:"structure",members:{Dataset:{shape:"S8"}}}},DescribeIdentityPoolUsage:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolUsage:{shape:"Sg"}}}},DescribeIdentityUsage:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"}}},output:{type:"structure",members:{IdentityUsage:{type:"structure",members:{IdentityId:{},IdentityPoolId:{},LastModifiedDate:{type:"timestamp"},DatasetCount:{type:"integer"},DataStorage:{type:"long"}}}}}},GetBulkPublishDetails:{http:{requestUri:"/identitypools/{IdentityPoolId}/getBulkPublishDetails",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{},BulkPublishStartTime:{type:"timestamp"},BulkPublishCompleteTime:{type:"timestamp"},BulkPublishStatus:{},FailureMessage:{}}}},GetCognitoEvents:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/events",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{Events:{shape:"Sq"}}}},GetIdentityPoolConfiguration:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/configuration",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}}},ListDatasets:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets",responseCode:200},input:{type:"structure",required:["IdentityId","IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{Datasets:{type:"list",member:{shape:"S8"}},Count:{type:"integer"},NextToken:{}}}},ListIdentityPoolUsage:{http:{method:"GET",requestUri:"/identitypools",responseCode:200},input:{type:"structure",members:{NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{IdentityPoolUsages:{type:"list",member:{shape:"Sg"}},MaxResults:{type:"integer"},Count:{type:"integer"},NextToken:{}}}},ListRecords:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},LastSyncCount:{location:"querystring",locationName:"lastSyncCount",type:"long"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"},SyncSessionToken:{location:"querystring",locationName:"syncSessionToken"}}},output:{type:"structure",members:{Records:{shape:"S1c"},NextToken:{},Count:{type:"integer"},DatasetSyncCount:{type:"long"},LastModifiedBy:{},MergedDatasetNames:{type:"list",member:{}},DatasetExists:{type:"boolean"},DatasetDeletedAfterRequestedSyncCount:{type:"boolean"},SyncSessionToken:{}}}},RegisterDevice:{http:{requestUri:"/identitypools/{IdentityPoolId}/identity/{IdentityId}/device",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","Platform","Token"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},Platform:{},Token:{}}},output:{type:"structure",members:{DeviceId:{}}}},SetCognitoEvents:{http:{requestUri:"/identitypools/{IdentityPoolId}/events",responseCode:200},input:{type:"structure",required:["IdentityPoolId","Events"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},Events:{shape:"Sq"}}}},SetIdentityPoolConfiguration:{http:{requestUri:"/identitypools/{IdentityPoolId}/configuration",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}},output:{type:"structure",members:{IdentityPoolId:{},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}}},SubscribeToDataset:{http:{requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","DeviceId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{location:"uri",locationName:"DeviceId"}}},output:{type:"structure",members:{}}},UnsubscribeFromDataset:{http:{method:"DELETE",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","DeviceId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{location:"uri",locationName:"DeviceId"}}},output:{type:"structure",members:{}}},UpdateRecords:{http:{requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","SyncSessionToken"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{},RecordPatches:{type:"list",member:{type:"structure",required:["Op","Key","SyncCount"],members:{Op:{},Key:{},Value:{},SyncCount:{type:"long"},DeviceLastModifiedDate:{type:"timestamp"}}}},SyncSessionToken:{},ClientContext:{location:"header",locationName:"x-amz-Client-Context"}}},output:{type:"structure",members:{Records:{shape:"S1c"}}}}},shapes:{S8:{type:"structure",members:{IdentityId:{},DatasetName:{},CreationDate:{type:"timestamp"},LastModifiedDate:{type:"timestamp"},LastModifiedBy:{},DataStorage:{type:"long"},NumRecords:{type:"long"}}},Sg:{type:"structure",members:{IdentityPoolId:{},SyncSessionsCount:{type:"long"},DataStorage:{type:"long"},LastModifiedDate:{type:"timestamp"}}},Sq:{type:"map",key:{},value:{}},Sv:{type:"structure",members:{ApplicationArns:{type:"list",member:{}},RoleArn:{}}},Sz:{type:"structure",members:{StreamName:{},RoleArn:{},StreamingStatus:{}}},S1c:{type:"list",member:{type:"structure",members:{Key:{},Value:{},SyncCount:{type:"long"},LastModifiedDate:{type:"timestamp"},LastModifiedBy:{},DeviceLastModifiedDate:{type:"timestamp"}}}}},examples:{}},a.apiLoader.services.configservice={},a.ConfigService=a.Service.defineService("configservice",["2014-11-12"]),a.apiLoader.services.configservice["2014-11-12"]={version:"2.0",metadata:{apiVersion:"2014-11-12",endpointPrefix:"config",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Config Service",serviceFullName:"AWS Config",signatureVersion:"v4",targetPrefix:"StarlingDoveService"},operations:{DeleteConfigRule:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{}}},http:{}},DeleteDeliveryChannel:{input:{type:"structure",required:["DeliveryChannelName"],members:{DeliveryChannelName:{}}},http:{}},DeliverConfigSnapshot:{input:{type:"structure",required:["deliveryChannelName"],members:{deliveryChannelName:{}}},output:{type:"structure",members:{configSnapshotId:{}}},http:{}},DescribeComplianceByConfigRule:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S9"},ComplianceTypes:{shape:"Sa"},NextToken:{}}},output:{type:"structure",members:{ComplianceByConfigRules:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},Compliance:{shape:"Sf"}}}},NextToken:{}}},http:{}},DescribeComplianceByResource:{input:{type:"structure",members:{ResourceType:{},ResourceId:{},ComplianceTypes:{shape:"Sa"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ComplianceByResources:{type:"list",member:{type:"structure",members:{ResourceType:{},ResourceId:{},Compliance:{shape:"Sf"}}}},NextToken:{}}},http:{}},DescribeConfigRuleEvaluationStatus:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S9"}}},output:{type:"structure",members:{ConfigRulesEvaluationStatus:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},ConfigRuleArn:{},ConfigRuleId:{},LastSuccessfulInvocationTime:{type:"timestamp"},LastFailedInvocationTime:{type:"timestamp"},LastSuccessfulEvaluationTime:{type:"timestamp"},LastFailedEvaluationTime:{type:"timestamp"},FirstActivatedTime:{type:"timestamp"},LastErrorCode:{},LastErrorMessage:{},FirstEvaluationStarted:{type:"boolean"}}}}}},http:{}},DescribeConfigRules:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S9"},NextToken:{}}},output:{type:"structure",members:{ConfigRules:{type:"list",member:{shape:"Sy"}},NextToken:{}}},http:{}},DescribeConfigurationRecorderStatus:{input:{type:"structure",members:{ConfigurationRecorderNames:{shape:"S1c"}}},output:{type:"structure",members:{ConfigurationRecordersStatus:{type:"list",member:{type:"structure",members:{name:{},lastStartTime:{type:"timestamp"},lastStopTime:{type:"timestamp"},recording:{type:"boolean"},lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastStatusChangeTime:{type:"timestamp"}}}}}},http:{}},DescribeConfigurationRecorders:{input:{type:"structure",members:{ConfigurationRecorderNames:{shape:"S1c"}}},output:{type:"structure",members:{ConfigurationRecorders:{type:"list",member:{shape:"S1l"}}}},http:{}},DescribeDeliveryChannelStatus:{input:{type:"structure",members:{DeliveryChannelNames:{shape:"S1s"}}},output:{type:"structure",members:{DeliveryChannelsStatus:{type:"list",member:{type:"structure",members:{name:{},configSnapshotDeliveryInfo:{shape:"S1w"},configHistoryDeliveryInfo:{shape:"S1w"},configStreamDeliveryInfo:{type:"structure",members:{lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastStatusChangeTime:{type:"timestamp"}}}}}}}},http:{}},DescribeDeliveryChannels:{input:{type:"structure",members:{DeliveryChannelNames:{shape:"S1s"}}},output:{type:"structure",members:{DeliveryChannels:{type:"list",member:{shape:"S22"}}}},http:{}},GetComplianceDetailsByConfigRule:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ComplianceTypes:{shape:"Sa"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{EvaluationResults:{shape:"S26"},NextToken:{}}},http:{}},GetComplianceDetailsByResource:{input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{},ResourceId:{},ComplianceTypes:{shape:"Sa"},NextToken:{}}},output:{type:"structure",members:{EvaluationResults:{shape:"S26"},NextToken:{}}},http:{}},GetComplianceSummaryByConfigRule:{output:{type:"structure",members:{ComplianceSummary:{shape:"S2d"}}},http:{}},GetComplianceSummaryByResourceType:{input:{type:"structure",members:{ResourceTypes:{type:"list",member:{}}}},output:{type:"structure",members:{ComplianceSummariesByResourceType:{type:"list",member:{type:"structure",members:{ResourceType:{},ComplianceSummary:{shape:"S2d"}}}}}},http:{}},GetResourceConfigHistory:{input:{type:"structure",required:["resourceType","resourceId"],members:{resourceType:{},resourceId:{},laterTime:{type:"timestamp"},earlierTime:{type:"timestamp"},chronologicalOrder:{},limit:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{configurationItems:{type:"list",member:{type:"structure",members:{version:{},accountId:{},configurationItemCaptureTime:{type:"timestamp"},configurationItemStatus:{},configurationStateId:{},configurationItemMD5Hash:{},arn:{},resourceType:{},resourceId:{},resourceName:{},awsRegion:{},availabilityZone:{},resourceCreationTime:{type:"timestamp"},tags:{type:"map",key:{},value:{}},relatedEvents:{type:"list",member:{}},relationships:{type:"list",member:{type:"structure",members:{resourceType:{},resourceId:{},resourceName:{},relationshipName:{}}}},configuration:{}}}},nextToken:{}}},http:{}},ListDiscoveredResources:{input:{type:"structure",required:["resourceType"],members:{resourceType:{},resourceIds:{type:"list",member:{}},resourceName:{},limit:{type:"integer"},includeDeletedResources:{type:"boolean"},nextToken:{}}},output:{type:"structure",members:{resourceIdentifiers:{type:"list",member:{type:"structure",members:{resourceType:{},resourceId:{},resourceName:{},resourceDeletionTime:{type:"timestamp"}}}},nextToken:{}}},http:{}},PutConfigRule:{input:{type:"structure",required:["ConfigRule"],members:{ConfigRule:{shape:"Sy"}}},http:{}},PutConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorder"],members:{ConfigurationRecorder:{shape:"S1l"}}},http:{}},PutDeliveryChannel:{input:{type:"structure",required:["DeliveryChannel"],members:{DeliveryChannel:{shape:"S22"}}},http:{}},PutEvaluations:{input:{type:"structure",required:["ResultToken"],members:{Evaluations:{shape:"S3l"},ResultToken:{}}},output:{type:"structure",members:{FailedEvaluations:{shape:"S3l"}}},http:{}},StartConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}},http:{}},StopConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}},http:{}}},shapes:{S9:{type:"list",member:{}},Sa:{type:"list",member:{}},Sf:{type:"structure",members:{ComplianceType:{},ComplianceContributorCount:{shape:"Sg"}}},Sg:{type:"structure",members:{CappedCount:{type:"integer"},CapExceeded:{type:"boolean"}}},Sy:{type:"structure",required:["Source"],members:{ConfigRuleName:{},ConfigRuleArn:{},ConfigRuleId:{},Description:{},Scope:{type:"structure",members:{ComplianceResourceTypes:{type:"list",member:{}},TagKey:{},TagValue:{},ComplianceResourceId:{}}},Source:{type:"structure",members:{Owner:{},SourceIdentifier:{},SourceDetails:{type:"list",member:{type:"structure",members:{EventSource:{},MessageType:{}}}}}},InputParameters:{},MaximumExecutionFrequency:{},ConfigRuleState:{}}},S1c:{type:"list",member:{}},S1l:{type:"structure",members:{name:{},roleARN:{},recordingGroup:{type:"structure",members:{allSupported:{type:"boolean"},includeGlobalResourceTypes:{type:"boolean"},resourceTypes:{type:"list",member:{}}}}}},S1s:{type:"list",member:{}},S1w:{type:"structure",members:{lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastAttemptTime:{type:"timestamp"},lastSuccessfulTime:{type:"timestamp"},nextDeliveryTime:{type:"timestamp"}}},S22:{type:"structure",members:{name:{},s3BucketName:{},s3KeyPrefix:{},snsTopicARN:{},configSnapshotDeliveryProperties:{type:"structure",members:{deliveryFrequency:{}}}}},S26:{type:"list",member:{type:"structure",members:{EvaluationResultIdentifier:{type:"structure",members:{EvaluationResultQualifier:{type:"structure",members:{ConfigRuleName:{},ResourceType:{},ResourceId:{}}},OrderingTimestamp:{type:"timestamp"}}},ComplianceType:{},ResultRecordedTime:{type:"timestamp"},ConfigRuleInvokedTime:{type:"timestamp"},Annotation:{},ResultToken:{}}}},S2d:{type:"structure",members:{CompliantResourceCount:{shape:"Sg"},NonCompliantResourceCount:{shape:"Sg"},ComplianceSummaryTimestamp:{type:"timestamp"}}},S3l:{type:"list",member:{type:"structure",required:["ComplianceResourceType","ComplianceResourceId","ComplianceType","OrderingTimestamp"],members:{ComplianceResourceType:{},ComplianceResourceId:{},ComplianceType:{},Annotation:{},OrderingTimestamp:{type:"timestamp"}}}}},paginators:{GetResourceConfigHistory:{input_token:"nextToken",output_token:"nextToken",limit_key:"limit",result_key:"configurationItems"}}},a.apiLoader.services.devicefarm={},a.DeviceFarm=a.Service.defineService("devicefarm",["2015-06-23"]),a.apiLoader.services.devicefarm["2015-06-23"]={version:"2.0",metadata:{apiVersion:"2015-06-23",endpointPrefix:"devicefarm",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Device Farm",signatureVersion:"v4",targetPrefix:"DeviceFarm_20150623"},operations:{CreateDevicePool:{input:{type:"structure",required:["projectArn","name","rules"],members:{projectArn:{},name:{},description:{},rules:{shape:"S5"}}},output:{type:"structure",members:{devicePool:{shape:"Sb"}}},http:{}},CreateProject:{input:{type:"structure",required:["name"],members:{name:{}}},output:{type:"structure",members:{project:{shape:"Sf"}}},http:{}},CreateUpload:{input:{type:"structure",required:["projectArn","name","type"],members:{projectArn:{},name:{},type:{},contentType:{}}},output:{type:"structure",members:{upload:{shape:"Sl"}}},http:{}},DeleteDevicePool:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}},http:{}},DeleteProject:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}},http:{}},DeleteRun:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}},http:{}},DeleteUpload:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}},http:{}},GetAccountSettings:{input:{type:"structure",members:{}},output:{type:"structure",members:{accountSettings:{type:"structure",members:{awsAccountNumber:{},unmeteredDevices:{shape:"S11"},unmeteredRemoteAccessDevices:{shape:"S11"}}}}},http:{}},GetDevice:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{device:{shape:"S16"}}},http:{}},GetDevicePool:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{devicePool:{shape:"Sb"}}},http:{}},GetDevicePoolCompatibility:{input:{type:"structure",required:["devicePoolArn"],members:{devicePoolArn:{},appArn:{},testType:{}}},output:{type:"structure",members:{compatibleDevices:{shape:"S1h"},incompatibleDevices:{shape:"S1h"}}},http:{}},GetJob:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{job:{shape:"S1o"}}},http:{}},GetOfferingStatus:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{current:{shape:"S1w"},nextPeriod:{shape:"S1w"},nextToken:{}}},http:{}},GetProject:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{project:{shape:"Sf"}}},http:{}},GetRun:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{run:{shape:"S2b"}}},http:{}},GetSuite:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{suite:{shape:"S2f"}}},http:{}},GetTest:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{test:{shape:"S2i"}}},http:{}},GetUpload:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{upload:{shape:"Sl"}}},http:{}},ListArtifacts:{input:{type:"structure",required:["arn","type"],members:{arn:{},type:{},nextToken:{}}},output:{type:"structure",members:{artifacts:{type:"list",member:{type:"structure",members:{arn:{},name:{},type:{},extension:{},url:{}}}},nextToken:{}}},http:{}},ListDevicePools:{input:{type:"structure",required:["arn"],members:{arn:{},type:{},nextToken:{}}},output:{type:"structure",members:{devicePools:{type:"list",member:{shape:"Sb"}},nextToken:{}}},http:{}},ListDevices:{input:{type:"structure",members:{arn:{},nextToken:{}}},output:{type:"structure",members:{devices:{type:"list",member:{shape:"S16"}},nextToken:{}}},http:{}},ListJobs:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{jobs:{type:"list",member:{shape:"S1o"}},nextToken:{}}},http:{}},ListOfferingTransactions:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{offeringTransactions:{type:"list",member:{shape:"S33"}},nextToken:{}}},http:{}},ListOfferings:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{offerings:{type:"list",member:{shape:"S20"}},nextToken:{}}},http:{}},ListProjects:{input:{type:"structure",members:{arn:{},nextToken:{}}},output:{type:"structure",members:{projects:{type:"list",member:{shape:"Sf"}},nextToken:{}}},http:{}},ListRuns:{input:{type:"structure",required:["arn"],members:{arn:{}, +nextToken:{}}},output:{type:"structure",members:{runs:{type:"list",member:{shape:"S2b"}},nextToken:{}}},http:{}},ListSamples:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{samples:{type:"list",member:{type:"structure",members:{arn:{},type:{},url:{}}}},nextToken:{}}},http:{}},ListSuites:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{suites:{type:"list",member:{shape:"S2f"}},nextToken:{}}},http:{}},ListTests:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{tests:{type:"list",member:{shape:"S2i"}},nextToken:{}}},http:{}},ListUniqueProblems:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{uniqueProblems:{type:"map",key:{},value:{type:"list",member:{type:"structure",members:{message:{},problems:{type:"list",member:{type:"structure",members:{run:{shape:"S3w"},job:{shape:"S3w"},suite:{shape:"S3w"},test:{shape:"S3w"},device:{shape:"S16"},result:{},message:{}}}}}}}},nextToken:{}}},http:{}},ListUploads:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{uploads:{type:"list",member:{shape:"Sl"}},nextToken:{}}},http:{}},PurchaseOffering:{input:{type:"structure",members:{offeringId:{},quantity:{type:"integer"}}},output:{type:"structure",members:{offeringTransaction:{shape:"S33"}}},http:{}},RenewOffering:{input:{type:"structure",members:{offeringId:{},quantity:{type:"integer"}}},output:{type:"structure",members:{offeringTransaction:{shape:"S33"}}},http:{}},ScheduleRun:{input:{type:"structure",required:["projectArn","devicePoolArn","test"],members:{projectArn:{},appArn:{},devicePoolArn:{},name:{},test:{type:"structure",required:["type"],members:{type:{},testPackageArn:{},filter:{},parameters:{type:"map",key:{},value:{}}}},configuration:{type:"structure",members:{extraDataPackageArn:{},networkProfileArn:{},locale:{},location:{type:"structure",required:["latitude","longitude"],members:{latitude:{type:"double"},longitude:{type:"double"}}},radios:{type:"structure",members:{wifi:{type:"boolean"},bluetooth:{type:"boolean"},nfc:{type:"boolean"},gps:{type:"boolean"}}},auxiliaryApps:{type:"list",member:{}},billingMethod:{}}}}},output:{type:"structure",members:{run:{shape:"S2b"}}},http:{}},StopRun:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{run:{shape:"S2b"}}},http:{}},UpdateDevicePool:{input:{type:"structure",required:["arn"],members:{arn:{},name:{},description:{},rules:{shape:"S5"}}},output:{type:"structure",members:{devicePool:{shape:"Sb"}}},http:{}},UpdateProject:{input:{type:"structure",required:["arn"],members:{arn:{},name:{}}},output:{type:"structure",members:{project:{shape:"Sf"}}},http:{}}},shapes:{S5:{type:"list",member:{type:"structure",members:{attribute:{},operator:{},value:{}}}},Sb:{type:"structure",members:{arn:{},name:{},description:{},type:{},rules:{shape:"S5"}}},Sf:{type:"structure",members:{arn:{},name:{},created:{type:"timestamp"}}},Sl:{type:"structure",members:{arn:{},name:{},created:{type:"timestamp"},type:{},status:{},url:{},metadata:{},contentType:{},message:{}}},S11:{type:"map",key:{},value:{type:"integer"}},S16:{type:"structure",members:{arn:{},name:{},manufacturer:{},model:{},formFactor:{},platform:{},os:{},cpu:{type:"structure",members:{frequency:{},architecture:{},clock:{type:"double"}}},resolution:{type:"structure",members:{width:{type:"integer"},height:{type:"integer"}}},heapSize:{type:"long"},memory:{type:"long"},image:{},carrier:{},radio:{}}},S1h:{type:"list",member:{type:"structure",members:{device:{shape:"S16"},compatible:{type:"boolean"},incompatibilityMessages:{type:"list",member:{type:"structure",members:{message:{},type:{}}}}}}},S1o:{type:"structure",members:{arn:{},name:{},type:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S1r"},message:{},device:{shape:"S16"},deviceMinutes:{shape:"S1s"}}},S1r:{type:"structure",members:{total:{type:"integer"},passed:{type:"integer"},failed:{type:"integer"},warned:{type:"integer"},errored:{type:"integer"},stopped:{type:"integer"},skipped:{type:"integer"}}},S1s:{type:"structure",members:{total:{type:"double"},metered:{type:"double"},unmetered:{type:"double"}}},S1w:{type:"map",key:{},value:{shape:"S1y"}},S1y:{type:"structure",members:{type:{},offering:{shape:"S20"},quantity:{type:"integer"},effectiveOn:{type:"timestamp"}}},S20:{type:"structure",members:{id:{},description:{},type:{},platform:{},recurringCharges:{type:"list",member:{type:"structure",members:{cost:{shape:"S24"},frequency:{}}}}}},S24:{type:"structure",members:{amount:{type:"double"},currencyCode:{}}},S2b:{type:"structure",members:{arn:{},name:{},type:{},platform:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S1r"},message:{},totalJobs:{type:"integer"},completedJobs:{type:"integer"},billingMethod:{},deviceMinutes:{shape:"S1s"}}},S2f:{type:"structure",members:{arn:{},name:{},type:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S1r"},message:{},deviceMinutes:{shape:"S1s"}}},S2i:{type:"structure",members:{arn:{},name:{},type:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S1r"},message:{},deviceMinutes:{shape:"S1s"}}},S33:{type:"structure",members:{offeringStatus:{shape:"S1y"},transactionId:{},createdOn:{type:"timestamp"},cost:{shape:"S24"}}},S3w:{type:"structure",members:{arn:{},name:{}}}},paginators:{GetOfferingStatus:{input_token:"nextToken",output_token:"nextToken",result_key:["current","nextPeriod"]},ListArtifacts:{input_token:"nextToken",output_token:"nextToken",result_key:"artifacts"},ListDevicePools:{input_token:"nextToken",output_token:"nextToken",result_key:"devicePools"},ListDevices:{input_token:"nextToken",output_token:"nextToken",result_key:"devices"},ListJobs:{input_token:"nextToken",output_token:"nextToken",result_key:"jobs"},ListOfferingTransactions:{input_token:"nextToken",output_token:"nextToken",result_key:"offeringTransactions"},ListOfferings:{input_token:"nextToken",output_token:"nextToken",result_key:"offerings"},ListProjects:{input_token:"nextToken",output_token:"nextToken",result_key:"projects"},ListRuns:{input_token:"nextToken",output_token:"nextToken",result_key:"runs"},ListSamples:{input_token:"nextToken",output_token:"nextToken",result_key:"samples"},ListSuites:{input_token:"nextToken",output_token:"nextToken",result_key:"suites"},ListTests:{input_token:"nextToken",output_token:"nextToken",result_key:"tests"},ListUniqueProblems:{input_token:"nextToken",output_token:"nextToken",result_key:"uniqueProblems"},ListUploads:{input_token:"nextToken",output_token:"nextToken",result_key:"uploads"}}},a.apiLoader.services.directconnect={},a.DirectConnect=a.Service.defineService("directconnect",["2012-10-25"]),a.apiLoader.services.directconnect["2012-10-25"]={version:"2.0",metadata:{apiVersion:"2012-10-25",endpointPrefix:"directconnect",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Direct Connect",signatureVersion:"v4",targetPrefix:"OvertureService"},operations:{AllocateConnectionOnInterconnect:{input:{type:"structure",required:["bandwidth","connectionName","ownerAccount","interconnectId","vlan"],members:{bandwidth:{},connectionName:{},ownerAccount:{},interconnectId:{},vlan:{type:"integer"}}},output:{shape:"S7"},http:{}},AllocatePrivateVirtualInterface:{input:{type:"structure",required:["connectionId","ownerAccount","newPrivateVirtualInterfaceAllocation"],members:{connectionId:{},ownerAccount:{},newPrivateVirtualInterfaceAllocation:{type:"structure",required:["virtualInterfaceName","vlan","asn"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{}}}}},output:{shape:"Sk"},http:{}},AllocatePublicVirtualInterface:{input:{type:"structure",required:["connectionId","ownerAccount","newPublicVirtualInterfaceAllocation"],members:{connectionId:{},ownerAccount:{},newPublicVirtualInterfaceAllocation:{type:"structure",required:["virtualInterfaceName","vlan","asn","amazonAddress","customerAddress","routeFilterPrefixes"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},routeFilterPrefixes:{shape:"Sq"}}}}},output:{shape:"Sk"},http:{}},ConfirmConnection:{input:{type:"structure",required:["connectionId"],members:{connectionId:{}}},output:{type:"structure",members:{connectionState:{}}},http:{}},ConfirmPrivateVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId","virtualGatewayId"],members:{virtualInterfaceId:{},virtualGatewayId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}},http:{}},ConfirmPublicVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId"],members:{virtualInterfaceId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}},http:{}},CreateConnection:{input:{type:"structure",required:["location","bandwidth","connectionName"],members:{location:{},bandwidth:{},connectionName:{}}},output:{shape:"S7"},http:{}},CreateInterconnect:{input:{type:"structure",required:["interconnectName","bandwidth","location"],members:{interconnectName:{},bandwidth:{},location:{}}},output:{shape:"S14"},http:{}},CreatePrivateVirtualInterface:{input:{type:"structure",required:["connectionId","newPrivateVirtualInterface"],members:{connectionId:{},newPrivateVirtualInterface:{type:"structure",required:["virtualInterfaceName","vlan","asn","virtualGatewayId"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},virtualGatewayId:{}}}}},output:{shape:"Sk"},http:{}},CreatePublicVirtualInterface:{input:{type:"structure",required:["connectionId","newPublicVirtualInterface"],members:{connectionId:{},newPublicVirtualInterface:{type:"structure",required:["virtualInterfaceName","vlan","asn","amazonAddress","customerAddress","routeFilterPrefixes"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},routeFilterPrefixes:{shape:"Sq"}}}}},output:{shape:"Sk"},http:{}},DeleteConnection:{input:{type:"structure",required:["connectionId"],members:{connectionId:{}}},output:{shape:"S7"},http:{}},DeleteInterconnect:{input:{type:"structure",required:["interconnectId"],members:{interconnectId:{}}},output:{type:"structure",members:{interconnectState:{}}},http:{}},DeleteVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId"],members:{virtualInterfaceId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}},http:{}},DescribeConnections:{input:{type:"structure",members:{connectionId:{}}},output:{shape:"S1g"},http:{}},DescribeConnectionsOnInterconnect:{input:{type:"structure",required:["interconnectId"],members:{interconnectId:{}}},output:{shape:"S1g"},http:{}},DescribeInterconnects:{input:{type:"structure",members:{interconnectId:{}}},output:{type:"structure",members:{interconnects:{type:"list",member:{shape:"S14"}}}},http:{}},DescribeLocations:{output:{type:"structure",members:{locations:{type:"list",member:{type:"structure",members:{locationCode:{},locationName:{}}}}}},http:{}},DescribeVirtualGateways:{output:{type:"structure",members:{virtualGateways:{type:"list",member:{type:"structure",members:{virtualGatewayId:{},virtualGatewayState:{}}}}}},http:{}},DescribeVirtualInterfaces:{input:{type:"structure",members:{connectionId:{},virtualInterfaceId:{}}},output:{type:"structure",members:{virtualInterfaces:{type:"list",member:{shape:"Sk"}}}},http:{}}},shapes:{S7:{type:"structure",members:{ownerAccount:{},connectionId:{},connectionName:{},connectionState:{},region:{},location:{},bandwidth:{},vlan:{type:"integer"},partnerName:{}}},Sk:{type:"structure",members:{ownerAccount:{},virtualInterfaceId:{},location:{},connectionId:{},virtualInterfaceType:{},virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},virtualInterfaceState:{},customerRouterConfig:{},virtualGatewayId:{},routeFilterPrefixes:{shape:"Sq"}}},Sq:{type:"list",member:{type:"structure",members:{cidr:{}}}},S14:{type:"structure",members:{interconnectId:{},interconnectName:{},interconnectState:{},region:{},location:{},bandwidth:{}}},S1g:{type:"structure",members:{connections:{type:"list",member:{shape:"S7"}}}}},paginators:{DescribeConnections:{result_key:"connections"},DescribeConnectionsOnInterconnect:{result_key:"connections"},DescribeInterconnects:{result_key:"interconnects"},DescribeLocations:{result_key:"locations"},DescribeVirtualGateways:{result_key:"virtualGateways"},DescribeVirtualInterfaces:{result_key:"virtualInterfaces"}}},a.apiLoader.services.dynamodb={},a.DynamoDB=a.Service.defineService("dynamodb",["2011-12-05","2012-08-10"]),e("./services/dynamodb"),a.apiLoader.services.dynamodb["2012-08-10"]={version:"2.0",metadata:{apiVersion:"2012-08-10",endpointPrefix:"dynamodb",jsonVersion:"1.0",protocol:"json",serviceAbbreviation:"DynamoDB",serviceFullName:"Amazon DynamoDB",signatureVersion:"v4",targetPrefix:"DynamoDB_20120810"},operations:{BatchGetItem:{input:{type:"structure",required:["RequestItems"],members:{RequestItems:{shape:"S2"},ReturnConsumedCapacity:{}}},output:{type:"structure",members:{Responses:{type:"map",key:{},value:{shape:"Sr"}},UnprocessedKeys:{shape:"S2"},ConsumedCapacity:{shape:"St"}}},http:{}},BatchWriteItem:{input:{type:"structure",required:["RequestItems"],members:{RequestItems:{shape:"S10"},ReturnConsumedCapacity:{},ReturnItemCollectionMetrics:{}}},output:{type:"structure",members:{UnprocessedItems:{shape:"S10"},ItemCollectionMetrics:{type:"map",key:{},value:{type:"list",member:{shape:"S1a"}}},ConsumedCapacity:{shape:"St"}}},http:{}},CreateTable:{input:{type:"structure",required:["AttributeDefinitions","TableName","KeySchema","ProvisionedThroughput"],members:{AttributeDefinitions:{shape:"S1f"},TableName:{},KeySchema:{shape:"S1j"},LocalSecondaryIndexes:{type:"list",member:{type:"structure",required:["IndexName","KeySchema","Projection"],members:{IndexName:{},KeySchema:{shape:"S1j"},Projection:{shape:"S1o"}}}},GlobalSecondaryIndexes:{type:"list",member:{type:"structure",required:["IndexName","KeySchema","Projection","ProvisionedThroughput"],members:{IndexName:{},KeySchema:{shape:"S1j"},Projection:{shape:"S1o"},ProvisionedThroughput:{shape:"S1u"}}}},ProvisionedThroughput:{shape:"S1u"},StreamSpecification:{shape:"S1w"}}},output:{type:"structure",members:{TableDescription:{shape:"S20"}}},http:{}},DeleteItem:{input:{type:"structure",required:["TableName","Key"],members:{TableName:{},Key:{shape:"S6"},Expected:{shape:"S2e"},ConditionalOperator:{},ReturnValues:{},ReturnConsumedCapacity:{},ReturnItemCollectionMetrics:{},ConditionExpression:{},ExpressionAttributeNames:{shape:"Sm"},ExpressionAttributeValues:{shape:"S2m"}}},output:{type:"structure",members:{Attributes:{shape:"Ss"},ConsumedCapacity:{shape:"Su"},ItemCollectionMetrics:{shape:"S1a"}}},http:{}},DeleteTable:{input:{type:"structure",required:["TableName"],members:{TableName:{}}},output:{type:"structure",members:{TableDescription:{shape:"S20"}}},http:{}},DescribeLimits:{input:{type:"structure",members:{}},output:{type:"structure",members:{AccountMaxReadCapacityUnits:{type:"long"},AccountMaxWriteCapacityUnits:{type:"long"},TableMaxReadCapacityUnits:{type:"long"},TableMaxWriteCapacityUnits:{type:"long"}}},http:{}},DescribeTable:{input:{type:"structure",required:["TableName"],members:{TableName:{}}},output:{type:"structure",members:{Table:{shape:"S20"}}},http:{}},GetItem:{input:{type:"structure",required:["TableName","Key"],members:{TableName:{},Key:{shape:"S6"},AttributesToGet:{shape:"Sj"},ConsistentRead:{type:"boolean"},ReturnConsumedCapacity:{},ProjectionExpression:{},ExpressionAttributeNames:{shape:"Sm"}}},output:{type:"structure",members:{Item:{shape:"Ss"},ConsumedCapacity:{shape:"Su"}}},http:{}},ListTables:{input:{type:"structure",members:{ExclusiveStartTableName:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TableNames:{type:"list",member:{}},LastEvaluatedTableName:{}}},http:{}},PutItem:{input:{type:"structure",required:["TableName","Item"],members:{TableName:{},Item:{shape:"S14"},Expected:{shape:"S2e"},ReturnValues:{},ReturnConsumedCapacity:{},ReturnItemCollectionMetrics:{},ConditionalOperator:{},ConditionExpression:{},ExpressionAttributeNames:{shape:"Sm"},ExpressionAttributeValues:{shape:"S2m"}}},output:{type:"structure",members:{Attributes:{shape:"Ss"},ConsumedCapacity:{shape:"Su"},ItemCollectionMetrics:{shape:"S1a"}}},http:{}},Query:{input:{type:"structure",required:["TableName"],members:{TableName:{},IndexName:{},Select:{},AttributesToGet:{shape:"Sj"},Limit:{type:"integer"},ConsistentRead:{type:"boolean"},KeyConditions:{type:"map",key:{},value:{shape:"S37"}},QueryFilter:{shape:"S38"},ConditionalOperator:{},ScanIndexForward:{type:"boolean"},ExclusiveStartKey:{shape:"S6"},ReturnConsumedCapacity:{},ProjectionExpression:{},FilterExpression:{},KeyConditionExpression:{},ExpressionAttributeNames:{shape:"Sm"},ExpressionAttributeValues:{shape:"S2m"}}},output:{type:"structure",members:{Items:{shape:"Sr"},Count:{type:"integer"},ScannedCount:{type:"integer"},LastEvaluatedKey:{shape:"S6"},ConsumedCapacity:{shape:"Su"}}},http:{}},Scan:{input:{type:"structure",required:["TableName"],members:{TableName:{},IndexName:{},AttributesToGet:{shape:"Sj"},Limit:{type:"integer"},Select:{},ScanFilter:{shape:"S38"},ConditionalOperator:{},ExclusiveStartKey:{shape:"S6"},ReturnConsumedCapacity:{},TotalSegments:{type:"integer"},Segment:{type:"integer"},ProjectionExpression:{},FilterExpression:{},ExpressionAttributeNames:{shape:"Sm"},ExpressionAttributeValues:{shape:"S2m"},ConsistentRead:{type:"boolean"}}},output:{type:"structure",members:{Items:{shape:"Sr"},Count:{type:"integer"},ScannedCount:{type:"integer"},LastEvaluatedKey:{shape:"S6"},ConsumedCapacity:{shape:"Su"}}},http:{}},UpdateItem:{input:{type:"structure",required:["TableName","Key"],members:{TableName:{},Key:{shape:"S6"},AttributeUpdates:{type:"map",key:{},value:{type:"structure",members:{Value:{shape:"S8"},Action:{}}}},Expected:{shape:"S2e"},ConditionalOperator:{},ReturnValues:{},ReturnConsumedCapacity:{},ReturnItemCollectionMetrics:{},UpdateExpression:{},ConditionExpression:{},ExpressionAttributeNames:{shape:"Sm"},ExpressionAttributeValues:{shape:"S2m"}}},output:{type:"structure",members:{Attributes:{shape:"Ss"},ConsumedCapacity:{shape:"Su"},ItemCollectionMetrics:{shape:"S1a"}}},http:{}},UpdateTable:{input:{type:"structure",required:["TableName"],members:{AttributeDefinitions:{shape:"S1f"},TableName:{},ProvisionedThroughput:{shape:"S1u"},GlobalSecondaryIndexUpdates:{type:"list",member:{type:"structure",members:{Update:{type:"structure",required:["IndexName","ProvisionedThroughput"],members:{IndexName:{},ProvisionedThroughput:{shape:"S1u"}}},Create:{type:"structure",required:["IndexName","KeySchema","Projection","ProvisionedThroughput"],members:{IndexName:{},KeySchema:{shape:"S1j"},Projection:{shape:"S1o"},ProvisionedThroughput:{shape:"S1u"}}},Delete:{type:"structure",required:["IndexName"],members:{IndexName:{}}}}}},StreamSpecification:{shape:"S1w"}}},output:{type:"structure",members:{TableDescription:{shape:"S20"}}},http:{}}},shapes:{S2:{type:"map",key:{},value:{type:"structure",required:["Keys"],members:{Keys:{type:"list",member:{shape:"S6"}},AttributesToGet:{shape:"Sj"},ConsistentRead:{type:"boolean"},ProjectionExpression:{},ExpressionAttributeNames:{shape:"Sm"}}}},S6:{type:"map",key:{},value:{shape:"S8"}},S8:{type:"structure",members:{S:{},N:{},B:{type:"blob"},SS:{type:"list",member:{}},NS:{type:"list",member:{}},BS:{type:"list",member:{type:"blob"}},M:{type:"map",key:{},value:{shape:"S8"}},L:{type:"list",member:{shape:"S8"}},NULL:{type:"boolean"},BOOL:{type:"boolean"}}},Sj:{type:"list",member:{}},Sm:{type:"map",key:{},value:{}},Sr:{type:"list",member:{shape:"Ss"}},Ss:{type:"map",key:{},value:{shape:"S8"}},St:{type:"list",member:{shape:"Su"}},Su:{type:"structure",members:{TableName:{},CapacityUnits:{type:"double"},Table:{shape:"Sw"},LocalSecondaryIndexes:{shape:"Sx"},GlobalSecondaryIndexes:{shape:"Sx"}}},Sw:{type:"structure",members:{CapacityUnits:{type:"double"}}},Sx:{type:"map",key:{},value:{shape:"Sw"}},S10:{type:"map",key:{},value:{type:"list",member:{type:"structure",members:{PutRequest:{type:"structure",required:["Item"],members:{Item:{shape:"S14"}}},DeleteRequest:{type:"structure",required:["Key"],members:{Key:{shape:"S6"}}}}}}},S14:{type:"map",key:{},value:{shape:"S8"}},S1a:{type:"structure",members:{ItemCollectionKey:{type:"map",key:{},value:{shape:"S8"}},SizeEstimateRangeGB:{type:"list",member:{type:"double"}}}},S1f:{type:"list",member:{type:"structure",required:["AttributeName","AttributeType"],members:{AttributeName:{},AttributeType:{}}}},S1j:{type:"list",member:{type:"structure",required:["AttributeName","KeyType"],members:{AttributeName:{},KeyType:{}}}},S1o:{type:"structure",members:{ProjectionType:{},NonKeyAttributes:{type:"list",member:{}}}},S1u:{type:"structure",required:["ReadCapacityUnits","WriteCapacityUnits"],members:{ReadCapacityUnits:{type:"long"},WriteCapacityUnits:{type:"long"}}},S1w:{type:"structure",members:{StreamEnabled:{type:"boolean"},StreamViewType:{}}},S20:{type:"structure",members:{AttributeDefinitions:{shape:"S1f"},TableName:{},KeySchema:{shape:"S1j"},TableStatus:{},CreationDateTime:{type:"timestamp"},ProvisionedThroughput:{shape:"S23"},TableSizeBytes:{type:"long"},ItemCount:{type:"long"},TableArn:{},LocalSecondaryIndexes:{type:"list",member:{type:"structure",members:{IndexName:{},KeySchema:{shape:"S1j"},Projection:{shape:"S1o"},IndexSizeBytes:{type:"long"},ItemCount:{type:"long"},IndexArn:{}}}},GlobalSecondaryIndexes:{type:"list",member:{type:"structure",members:{IndexName:{},KeySchema:{shape:"S1j"},Projection:{shape:"S1o"},IndexStatus:{},Backfilling:{type:"boolean"},ProvisionedThroughput:{shape:"S23"},IndexSizeBytes:{type:"long"},ItemCount:{type:"long"},IndexArn:{}}}},StreamSpecification:{shape:"S1w"},LatestStreamLabel:{},LatestStreamArn:{}}},S23:{type:"structure",members:{LastIncreaseDateTime:{type:"timestamp"},LastDecreaseDateTime:{type:"timestamp"},NumberOfDecreasesToday:{type:"long"},ReadCapacityUnits:{type:"long"},WriteCapacityUnits:{type:"long"}}},S2e:{type:"map",key:{},value:{type:"structure",members:{Value:{shape:"S8"},Exists:{type:"boolean"},ComparisonOperator:{},AttributeValueList:{shape:"S2i"}}}},S2i:{type:"list",member:{shape:"S8"}},S2m:{type:"map",key:{},value:{shape:"S8"}},S37:{type:"structure",required:["ComparisonOperator"],members:{AttributeValueList:{shape:"S2i"},ComparisonOperator:{}}},S38:{type:"map",key:{},value:{shape:"S37"}}},paginators:{BatchGetItem:{input_token:"RequestItems",output_token:"UnprocessedKeys"},ListTables:{input_token:"ExclusiveStartTableName",output_token:"LastEvaluatedTableName",limit_key:"Limit",result_key:"TableNames"},Query:{input_token:"ExclusiveStartKey",output_token:"LastEvaluatedKey",limit_key:"Limit",result_key:"Items"},Scan:{input_token:"ExclusiveStartKey",output_token:"LastEvaluatedKey",limit_key:"Limit",result_key:"Items"}},waiters:{TableExists:{delay:20,operation:"DescribeTable",maxAttempts:25,acceptors:[{expected:"ACTIVE",matcher:"path",state:"success",argument:"Table.TableStatus"},{expected:"ResourceNotFoundException",matcher:"error",state:"retry"}]},TableNotExists:{delay:20,operation:"DescribeTable",maxAttempts:25,acceptors:[{expected:"ResourceNotFoundException",matcher:"error",state:"success"}]}}},a.apiLoader.services.dynamodbstreams={},a.DynamoDBStreams=a.Service.defineService("dynamodbstreams",["2012-08-10"]),a.apiLoader.services.dynamodbstreams["2012-08-10"]={version:"2.0",metadata:{apiVersion:"2012-08-10",endpointPrefix:"streams.dynamodb",jsonVersion:"1.0",protocol:"json",serviceFullName:"Amazon DynamoDB Streams",signatureVersion:"v4",signingName:"dynamodb",targetPrefix:"DynamoDBStreams_20120810"},operations:{DescribeStream:{input:{type:"structure",required:["StreamArn"],members:{StreamArn:{},Limit:{type:"integer"},ExclusiveStartShardId:{}}},output:{type:"structure",members:{StreamDescription:{type:"structure",members:{StreamArn:{},StreamLabel:{},StreamStatus:{},StreamViewType:{},CreationRequestDateTime:{type:"timestamp"},TableName:{},KeySchema:{type:"list",member:{type:"structure",required:["AttributeName","KeyType"],members:{AttributeName:{},KeyType:{}}}},Shards:{type:"list",member:{type:"structure",members:{ShardId:{},SequenceNumberRange:{type:"structure",members:{StartingSequenceNumber:{},EndingSequenceNumber:{}}},ParentShardId:{}}}},LastEvaluatedShardId:{}}}}},http:{}},GetRecords:{input:{type:"structure",required:["ShardIterator"],members:{ShardIterator:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Records:{type:"list",member:{type:"structure",members:{eventID:{},eventName:{},eventVersion:{},eventSource:{},awsRegion:{},dynamodb:{type:"structure",members:{ApproximateCreationDateTime:{type:"timestamp"},Keys:{shape:"Sr"},NewImage:{shape:"Sr"},OldImage:{shape:"Sr"},SequenceNumber:{},SizeBytes:{type:"long"},StreamViewType:{}}}}}},NextShardIterator:{}}},http:{}},GetShardIterator:{input:{type:"structure",required:["StreamArn","ShardId","ShardIteratorType"],members:{StreamArn:{},ShardId:{},ShardIteratorType:{},SequenceNumber:{}}},output:{type:"structure",members:{ShardIterator:{}}},http:{}},ListStreams:{input:{type:"structure",members:{TableName:{},Limit:{type:"integer"},ExclusiveStartStreamArn:{}}},output:{type:"structure",members:{Streams:{type:"list",member:{type:"structure",members:{StreamArn:{},TableName:{},StreamLabel:{}}}},LastEvaluatedStreamArn:{}}},http:{}}},shapes:{Sr:{type:"map",key:{},value:{shape:"St"}},St:{type:"structure",members:{S:{},N:{},B:{type:"blob"},SS:{type:"list",member:{}},NS:{type:"list",member:{}},BS:{type:"list",member:{type:"blob"}},M:{type:"map",key:{},value:{shape:"St"}},L:{type:"list",member:{shape:"St"}},NULL:{type:"boolean"},BOOL:{type:"boolean"}}}}},a.apiLoader.services.ec2={},a.EC2=a.Service.defineService("ec2",["2015-10-01"]),e("./services/ec2"),a.apiLoader.services.ec2["2015-10-01"]={version:"2.0",metadata:{apiVersion:"2015-10-01",endpointPrefix:"ec2",protocol:"ec2",serviceAbbreviation:"Amazon EC2",serviceFullName:"Amazon Elastic Compute Cloud",signatureVersion:"v4",xmlNamespace:"http://ec2.amazonaws.com/doc/2015-10-01"},operations:{AcceptVpcPeeringConnection:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"}}},output:{type:"structure",members:{VpcPeeringConnection:{shape:"S5",locationName:"vpcPeeringConnection"}}},http:{}},AllocateAddress:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},Domain:{}}},output:{type:"structure",members:{PublicIp:{locationName:"publicIp"},Domain:{locationName:"domain"},AllocationId:{locationName:"allocationId"}}},http:{}},AllocateHosts:{input:{type:"structure",required:["InstanceType","Quantity","AvailabilityZone"],members:{AutoPlacement:{locationName:"autoPlacement"},ClientToken:{locationName:"clientToken"},InstanceType:{locationName:"instanceType"},Quantity:{locationName:"quantity",type:"integer"},AvailabilityZone:{locationName:"availabilityZone"}}},output:{type:"structure",members:{HostIds:{shape:"Sk",locationName:"hostIdSet"}}},http:{}},AssignPrivateIpAddresses:{input:{type:"structure",required:["NetworkInterfaceId"],members:{NetworkInterfaceId:{locationName:"networkInterfaceId"},PrivateIpAddresses:{shape:"Sm",locationName:"privateIpAddress"},SecondaryPrivateIpAddressCount:{locationName:"secondaryPrivateIpAddressCount",type:"integer"},AllowReassignment:{locationName:"allowReassignment",type:"boolean"}}},http:{}},AssociateAddress:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{},PublicIp:{},AllocationId:{},NetworkInterfaceId:{locationName:"networkInterfaceId"},PrivateIpAddress:{locationName:"privateIpAddress"},AllowReassociation:{locationName:"allowReassociation",type:"boolean"}}},output:{type:"structure",members:{AssociationId:{locationName:"associationId"}}},http:{}},AssociateDhcpOptions:{input:{type:"structure",required:["DhcpOptionsId","VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},DhcpOptionsId:{},VpcId:{}}},http:{}},AssociateRouteTable:{input:{type:"structure",required:["SubnetId","RouteTableId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SubnetId:{locationName:"subnetId"},RouteTableId:{locationName:"routeTableId"}}},output:{type:"structure",members:{AssociationId:{locationName:"associationId"}}},http:{}},AttachClassicLinkVpc:{input:{type:"structure",required:["InstanceId","VpcId","Groups"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{locationName:"instanceId"},VpcId:{locationName:"vpcId"},Groups:{shape:"St",locationName:"SecurityGroupId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},AttachInternetGateway:{input:{type:"structure",required:["InternetGatewayId","VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InternetGatewayId:{locationName:"internetGatewayId"},VpcId:{locationName:"vpcId"}}},http:{}},AttachNetworkInterface:{input:{type:"structure",required:["NetworkInterfaceId","InstanceId","DeviceIndex"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkInterfaceId:{locationName:"networkInterfaceId"},InstanceId:{locationName:"instanceId"},DeviceIndex:{locationName:"deviceIndex",type:"integer"}}},output:{type:"structure",members:{AttachmentId:{locationName:"attachmentId"}}},http:{}},AttachVolume:{input:{type:"structure",required:["VolumeId","InstanceId","Device"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{},InstanceId:{},Device:{}}},output:{shape:"Sz"},http:{}},AttachVpnGateway:{input:{type:"structure",required:["VpnGatewayId","VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpnGatewayId:{},VpcId:{}}},output:{type:"structure",members:{VpcAttachment:{shape:"S13",locationName:"attachment"}}},http:{}},AuthorizeSecurityGroupEgress:{input:{type:"structure",required:["GroupId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupId:{locationName:"groupId"},SourceSecurityGroupName:{locationName:"sourceSecurityGroupName"},SourceSecurityGroupOwnerId:{locationName:"sourceSecurityGroupOwnerId"},IpProtocol:{locationName:"ipProtocol"},FromPort:{locationName:"fromPort",type:"integer"},ToPort:{locationName:"toPort",type:"integer"},CidrIp:{locationName:"cidrIp"},IpPermissions:{shape:"S16",locationName:"ipPermissions"}}},http:{}},AuthorizeSecurityGroupIngress:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupName:{},GroupId:{},SourceSecurityGroupName:{},SourceSecurityGroupOwnerId:{},IpProtocol:{},FromPort:{type:"integer"},ToPort:{type:"integer"},CidrIp:{},IpPermissions:{shape:"S16"}}},http:{}},BundleInstance:{input:{type:"structure",required:["InstanceId","Storage"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{},Storage:{shape:"S1g"}}},output:{type:"structure",members:{BundleTask:{shape:"S1k",locationName:"bundleInstanceTask"}}},http:{}},CancelBundleTask:{input:{type:"structure",required:["BundleId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},BundleId:{}}},output:{type:"structure",members:{BundleTask:{shape:"S1k",locationName:"bundleInstanceTask"}}},http:{}},CancelConversionTask:{input:{type:"structure",required:["ConversionTaskId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ConversionTaskId:{locationName:"conversionTaskId"},ReasonMessage:{locationName:"reasonMessage"}}},http:{}},CancelExportTask:{input:{type:"structure",required:["ExportTaskId"],members:{ExportTaskId:{locationName:"exportTaskId"}}},http:{}}, +CancelImportTask:{input:{type:"structure",members:{DryRun:{type:"boolean"},ImportTaskId:{},CancelReason:{}}},output:{type:"structure",members:{ImportTaskId:{locationName:"importTaskId"},State:{locationName:"state"},PreviousState:{locationName:"previousState"}}},http:{}},CancelReservedInstancesListing:{input:{type:"structure",required:["ReservedInstancesListingId"],members:{ReservedInstancesListingId:{locationName:"reservedInstancesListingId"}}},output:{type:"structure",members:{ReservedInstancesListings:{shape:"S1v",locationName:"reservedInstancesListingsSet"}}},http:{}},CancelSpotFleetRequests:{input:{type:"structure",required:["SpotFleetRequestIds","TerminateInstances"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotFleetRequestIds:{shape:"S27",locationName:"spotFleetRequestId"},TerminateInstances:{locationName:"terminateInstances",type:"boolean"}}},output:{type:"structure",members:{UnsuccessfulFleetRequests:{locationName:"unsuccessfulFleetRequestSet",type:"list",member:{locationName:"item",type:"structure",required:["SpotFleetRequestId","Error"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"},Error:{locationName:"error",type:"structure",required:["Code","Message"],members:{Code:{locationName:"code"},Message:{locationName:"message"}}}}}},SuccessfulFleetRequests:{locationName:"successfulFleetRequestSet",type:"list",member:{locationName:"item",type:"structure",required:["SpotFleetRequestId","CurrentSpotFleetRequestState","PreviousSpotFleetRequestState"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"},CurrentSpotFleetRequestState:{locationName:"currentSpotFleetRequestState"},PreviousSpotFleetRequestState:{locationName:"previousSpotFleetRequestState"}}}}}},http:{}},CancelSpotInstanceRequests:{input:{type:"structure",required:["SpotInstanceRequestIds"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotInstanceRequestIds:{shape:"S2h",locationName:"SpotInstanceRequestId"}}},output:{type:"structure",members:{CancelledSpotInstanceRequests:{locationName:"spotInstanceRequestSet",type:"list",member:{locationName:"item",type:"structure",members:{SpotInstanceRequestId:{locationName:"spotInstanceRequestId"},State:{locationName:"state"}}}}}},http:{}},ConfirmProductInstance:{input:{type:"structure",required:["ProductCode","InstanceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ProductCode:{},InstanceId:{}}},output:{type:"structure",members:{OwnerId:{locationName:"ownerId"},Return:{locationName:"return",type:"boolean"}}},http:{}},CopyImage:{input:{type:"structure",required:["SourceRegion","SourceImageId","Name"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SourceRegion:{},SourceImageId:{},Name:{},Description:{},ClientToken:{},Encrypted:{locationName:"encrypted",type:"boolean"},KmsKeyId:{locationName:"kmsKeyId"}}},output:{type:"structure",members:{ImageId:{locationName:"imageId"}}},http:{}},CopySnapshot:{input:{type:"structure",required:["SourceRegion","SourceSnapshotId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SourceRegion:{},SourceSnapshotId:{},Description:{},DestinationRegion:{locationName:"destinationRegion"},PresignedUrl:{locationName:"presignedUrl"},Encrypted:{locationName:"encrypted",type:"boolean"},KmsKeyId:{locationName:"kmsKeyId"}}},output:{type:"structure",members:{SnapshotId:{locationName:"snapshotId"}}},http:{}},CreateCustomerGateway:{input:{type:"structure",required:["Type","PublicIp","BgpAsn"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Type:{},PublicIp:{locationName:"IpAddress"},BgpAsn:{type:"integer"}}},output:{type:"structure",members:{CustomerGateway:{shape:"S2v",locationName:"customerGateway"}}},http:{}},CreateDhcpOptions:{input:{type:"structure",required:["DhcpConfigurations"],members:{DryRun:{locationName:"dryRun",type:"boolean"},DhcpConfigurations:{locationName:"dhcpConfiguration",type:"list",member:{locationName:"item",type:"structure",members:{Key:{locationName:"key"},Values:{shape:"S27",locationName:"Value"}}}}}},output:{type:"structure",members:{DhcpOptions:{shape:"S30",locationName:"dhcpOptions"}}},http:{}},CreateFlowLogs:{input:{type:"structure",required:["ResourceIds","ResourceType","TrafficType","LogGroupName","DeliverLogsPermissionArn"],members:{ResourceIds:{shape:"S27",locationName:"ResourceId"},ResourceType:{},TrafficType:{},LogGroupName:{},DeliverLogsPermissionArn:{},ClientToken:{}}},output:{type:"structure",members:{FlowLogIds:{shape:"S27",locationName:"flowLogIdSet"},ClientToken:{locationName:"clientToken"},Unsuccessful:{shape:"S39",locationName:"unsuccessful"}}},http:{}},CreateImage:{input:{type:"structure",required:["InstanceId","Name"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{locationName:"instanceId"},Name:{locationName:"name"},Description:{locationName:"description"},NoReboot:{locationName:"noReboot",type:"boolean"},BlockDeviceMappings:{shape:"S3d",locationName:"blockDeviceMapping"}}},output:{type:"structure",members:{ImageId:{locationName:"imageId"}}},http:{}},CreateInstanceExportTask:{input:{type:"structure",required:["InstanceId"],members:{Description:{locationName:"description"},InstanceId:{locationName:"instanceId"},TargetEnvironment:{locationName:"targetEnvironment"},ExportToS3Task:{locationName:"exportToS3",type:"structure",members:{DiskImageFormat:{locationName:"diskImageFormat"},ContainerFormat:{locationName:"containerFormat"},S3Bucket:{locationName:"s3Bucket"},S3Prefix:{locationName:"s3Prefix"}}}}},output:{type:"structure",members:{ExportTask:{shape:"S3o",locationName:"exportTask"}}},http:{}},CreateInternetGateway:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"}}},output:{type:"structure",members:{InternetGateway:{shape:"S3u",locationName:"internetGateway"}}},http:{}},CreateKeyPair:{input:{type:"structure",required:["KeyName"],members:{DryRun:{locationName:"dryRun",type:"boolean"},KeyName:{}}},output:{type:"structure",members:{KeyName:{locationName:"keyName"},KeyFingerprint:{locationName:"keyFingerprint"},KeyMaterial:{locationName:"keyMaterial"}}},http:{}},CreateNatGateway:{input:{type:"structure",required:["SubnetId","AllocationId"],members:{SubnetId:{},AllocationId:{},ClientToken:{}}},output:{type:"structure",members:{NatGateway:{shape:"S41",locationName:"natGateway"},ClientToken:{locationName:"clientToken"}}},http:{}},CreateNetworkAcl:{input:{type:"structure",required:["VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{locationName:"vpcId"}}},output:{type:"structure",members:{NetworkAcl:{shape:"S48",locationName:"networkAcl"}}},http:{}},CreateNetworkAclEntry:{input:{type:"structure",required:["NetworkAclId","RuleNumber","Protocol","RuleAction","Egress","CidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkAclId:{locationName:"networkAclId"},RuleNumber:{locationName:"ruleNumber",type:"integer"},Protocol:{locationName:"protocol"},RuleAction:{locationName:"ruleAction"},Egress:{locationName:"egress",type:"boolean"},CidrBlock:{locationName:"cidrBlock"},IcmpTypeCode:{shape:"S4c",locationName:"Icmp"},PortRange:{shape:"S4d",locationName:"portRange"}}},http:{}},CreateNetworkInterface:{input:{type:"structure",required:["SubnetId"],members:{SubnetId:{locationName:"subnetId"},Description:{locationName:"description"},PrivateIpAddress:{locationName:"privateIpAddress"},Groups:{shape:"S4i",locationName:"SecurityGroupId"},PrivateIpAddresses:{shape:"S4j",locationName:"privateIpAddresses"},SecondaryPrivateIpAddressCount:{locationName:"secondaryPrivateIpAddressCount",type:"integer"},DryRun:{locationName:"dryRun",type:"boolean"}}},output:{type:"structure",members:{NetworkInterface:{shape:"S4m",locationName:"networkInterface"}}},http:{}},CreatePlacementGroup:{input:{type:"structure",required:["GroupName","Strategy"],members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupName:{locationName:"groupName"},Strategy:{locationName:"strategy"}}},http:{}},CreateReservedInstancesListing:{input:{type:"structure",required:["ReservedInstancesId","InstanceCount","PriceSchedules","ClientToken"],members:{ReservedInstancesId:{locationName:"reservedInstancesId"},InstanceCount:{locationName:"instanceCount",type:"integer"},PriceSchedules:{locationName:"priceSchedules",type:"list",member:{locationName:"item",type:"structure",members:{Term:{locationName:"term",type:"long"},Price:{locationName:"price",type:"double"},CurrencyCode:{locationName:"currencyCode"}}}},ClientToken:{locationName:"clientToken"}}},output:{type:"structure",members:{ReservedInstancesListings:{shape:"S1v",locationName:"reservedInstancesListingsSet"}}},http:{}},CreateRoute:{input:{type:"structure",required:["RouteTableId","DestinationCidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},RouteTableId:{locationName:"routeTableId"},DestinationCidrBlock:{locationName:"destinationCidrBlock"},GatewayId:{locationName:"gatewayId"},InstanceId:{locationName:"instanceId"},NetworkInterfaceId:{locationName:"networkInterfaceId"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"},NatGatewayId:{locationName:"natGatewayId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},CreateRouteTable:{input:{type:"structure",required:["VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{locationName:"vpcId"}}},output:{type:"structure",members:{RouteTable:{shape:"S55",locationName:"routeTable"}}},http:{}},CreateSecurityGroup:{input:{type:"structure",required:["GroupName","Description"],members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupName:{},Description:{locationName:"GroupDescription"},VpcId:{}}},output:{type:"structure",members:{GroupId:{locationName:"groupId"}}},http:{}},CreateSnapshot:{input:{type:"structure",required:["VolumeId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{},Description:{}}},output:{shape:"S5h"},http:{}},CreateSpotDatafeedSubscription:{input:{type:"structure",required:["Bucket"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Bucket:{locationName:"bucket"},Prefix:{locationName:"prefix"}}},output:{type:"structure",members:{SpotDatafeedSubscription:{shape:"S5l",locationName:"spotDatafeedSubscription"}}},http:{}},CreateSubnet:{input:{type:"structure",required:["VpcId","CidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{},CidrBlock:{},AvailabilityZone:{}}},output:{type:"structure",members:{Subnet:{shape:"S5q",locationName:"subnet"}}},http:{}},CreateTags:{input:{type:"structure",required:["Resources","Tags"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Resources:{shape:"S5t",locationName:"ResourceId"},Tags:{shape:"Sb",locationName:"Tag"}}},http:{}},CreateVolume:{input:{type:"structure",required:["AvailabilityZone"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Size:{type:"integer"},SnapshotId:{},AvailabilityZone:{},VolumeType:{},Iops:{type:"integer"},Encrypted:{locationName:"encrypted",type:"boolean"},KmsKeyId:{}}},output:{shape:"S5v"},http:{}},CreateVpc:{input:{type:"structure",required:["CidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},CidrBlock:{},InstanceTenancy:{locationName:"instanceTenancy"}}},output:{type:"structure",members:{Vpc:{shape:"S61",locationName:"vpc"}}},http:{}},CreateVpcEndpoint:{input:{type:"structure",required:["VpcId","ServiceName"],members:{DryRun:{type:"boolean"},VpcId:{},ServiceName:{},PolicyDocument:{},RouteTableIds:{shape:"S27",locationName:"RouteTableId"},ClientToken:{}}},output:{type:"structure",members:{VpcEndpoint:{shape:"S65",locationName:"vpcEndpoint"},ClientToken:{locationName:"clientToken"}}},http:{}},CreateVpcPeeringConnection:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{locationName:"vpcId"},PeerVpcId:{locationName:"peerVpcId"},PeerOwnerId:{locationName:"peerOwnerId"}}},output:{type:"structure",members:{VpcPeeringConnection:{shape:"S5",locationName:"vpcPeeringConnection"}}},http:{}},CreateVpnConnection:{input:{type:"structure",required:["Type","CustomerGatewayId","VpnGatewayId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Type:{},CustomerGatewayId:{},VpnGatewayId:{},Options:{locationName:"options",type:"structure",members:{StaticRoutesOnly:{locationName:"staticRoutesOnly",type:"boolean"}}}}},output:{type:"structure",members:{VpnConnection:{shape:"S6c",locationName:"vpnConnection"}}},http:{}},CreateVpnConnectionRoute:{input:{type:"structure",required:["VpnConnectionId","DestinationCidrBlock"],members:{VpnConnectionId:{},DestinationCidrBlock:{}}},http:{}},CreateVpnGateway:{input:{type:"structure",required:["Type"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Type:{},AvailabilityZone:{}}},output:{type:"structure",members:{VpnGateway:{shape:"S6o",locationName:"vpnGateway"}}},http:{}},DeleteCustomerGateway:{input:{type:"structure",required:["CustomerGatewayId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},CustomerGatewayId:{}}},http:{}},DeleteDhcpOptions:{input:{type:"structure",required:["DhcpOptionsId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},DhcpOptionsId:{}}},http:{}},DeleteFlowLogs:{input:{type:"structure",required:["FlowLogIds"],members:{FlowLogIds:{shape:"S27",locationName:"FlowLogId"}}},output:{type:"structure",members:{Unsuccessful:{shape:"S39",locationName:"unsuccessful"}}},http:{}},DeleteInternetGateway:{input:{type:"structure",required:["InternetGatewayId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InternetGatewayId:{locationName:"internetGatewayId"}}},http:{}},DeleteKeyPair:{input:{type:"structure",required:["KeyName"],members:{DryRun:{locationName:"dryRun",type:"boolean"},KeyName:{}}},http:{}},DeleteNatGateway:{input:{type:"structure",required:["NatGatewayId"],members:{NatGatewayId:{}}},output:{type:"structure",members:{NatGatewayId:{locationName:"natGatewayId"}}},http:{}},DeleteNetworkAcl:{input:{type:"structure",required:["NetworkAclId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkAclId:{locationName:"networkAclId"}}},http:{}},DeleteNetworkAclEntry:{input:{type:"structure",required:["NetworkAclId","RuleNumber","Egress"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkAclId:{locationName:"networkAclId"},RuleNumber:{locationName:"ruleNumber",type:"integer"},Egress:{locationName:"egress",type:"boolean"}}},http:{}},DeleteNetworkInterface:{input:{type:"structure",required:["NetworkInterfaceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkInterfaceId:{locationName:"networkInterfaceId"}}},http:{}},DeletePlacementGroup:{input:{type:"structure",required:["GroupName"],members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupName:{locationName:"groupName"}}},http:{}},DeleteRoute:{input:{type:"structure",required:["RouteTableId","DestinationCidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},RouteTableId:{locationName:"routeTableId"},DestinationCidrBlock:{locationName:"destinationCidrBlock"}}},http:{}},DeleteRouteTable:{input:{type:"structure",required:["RouteTableId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},RouteTableId:{locationName:"routeTableId"}}},http:{}},DeleteSecurityGroup:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupName:{},GroupId:{}}},http:{}},DeleteSnapshot:{input:{type:"structure",required:["SnapshotId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SnapshotId:{}}},http:{}},DeleteSpotDatafeedSubscription:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"}}},http:{}},DeleteSubnet:{input:{type:"structure",required:["SubnetId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SubnetId:{}}},http:{}},DeleteTags:{input:{type:"structure",required:["Resources"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Resources:{shape:"S5t",locationName:"resourceId"},Tags:{shape:"Sb",locationName:"tag"}}},http:{}},DeleteVolume:{input:{type:"structure",required:["VolumeId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{}}},http:{}},DeleteVpc:{input:{type:"structure",required:["VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{}}},http:{}},DeleteVpcEndpoints:{input:{type:"structure",required:["VpcEndpointIds"],members:{DryRun:{type:"boolean"},VpcEndpointIds:{shape:"S27",locationName:"VpcEndpointId"}}},output:{type:"structure",members:{Unsuccessful:{shape:"S39",locationName:"unsuccessful"}}},http:{}},DeleteVpcPeeringConnection:{input:{type:"structure",required:["VpcPeeringConnectionId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},DeleteVpnConnection:{input:{type:"structure",required:["VpnConnectionId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpnConnectionId:{}}},http:{}},DeleteVpnConnectionRoute:{input:{type:"structure",required:["VpnConnectionId","DestinationCidrBlock"],members:{VpnConnectionId:{},DestinationCidrBlock:{}}},http:{}},DeleteVpnGateway:{input:{type:"structure",required:["VpnGatewayId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpnGatewayId:{}}},http:{}},DeregisterImage:{input:{type:"structure",required:["ImageId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageId:{}}},http:{}},DescribeAccountAttributes:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},AttributeNames:{locationName:"attributeName",type:"list",member:{locationName:"attributeName"}}}},output:{type:"structure",members:{AccountAttributes:{locationName:"accountAttributeSet",type:"list",member:{locationName:"item",type:"structure",members:{AttributeName:{locationName:"attributeName"},AttributeValues:{locationName:"attributeValueSet",type:"list",member:{locationName:"item",type:"structure",members:{AttributeValue:{locationName:"attributeValue"}}}}}}}}},http:{}},DescribeAddresses:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},PublicIps:{locationName:"PublicIp",type:"list",member:{locationName:"PublicIp"}},Filters:{shape:"S7t",locationName:"Filter"},AllocationIds:{locationName:"AllocationId",type:"list",member:{locationName:"AllocationId"}}}},output:{type:"structure",members:{Addresses:{locationName:"addressesSet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},PublicIp:{locationName:"publicIp"},AllocationId:{locationName:"allocationId"},AssociationId:{locationName:"associationId"},Domain:{locationName:"domain"},NetworkInterfaceId:{locationName:"networkInterfaceId"},NetworkInterfaceOwnerId:{locationName:"networkInterfaceOwnerId"},PrivateIpAddress:{locationName:"privateIpAddress"}}}}}},http:{}},DescribeAvailabilityZones:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},ZoneNames:{locationName:"ZoneName",type:"list",member:{locationName:"ZoneName"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{AvailabilityZones:{locationName:"availabilityZoneInfo",type:"list",member:{locationName:"item",type:"structure",members:{ZoneName:{locationName:"zoneName"},State:{locationName:"zoneState"},RegionName:{locationName:"regionName"},Messages:{locationName:"messageSet",type:"list",member:{locationName:"item",type:"structure",members:{Message:{locationName:"message"}}}}}}}}},http:{}},DescribeBundleTasks:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},BundleIds:{locationName:"BundleId",type:"list",member:{locationName:"BundleId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{BundleTasks:{locationName:"bundleInstanceTasksSet",type:"list",member:{shape:"S1k",locationName:"item"}}}},http:{}},DescribeClassicLinkInstances:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"},Filters:{shape:"S7t",locationName:"Filter"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{Instances:{locationName:"instancesSet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},VpcId:{locationName:"vpcId"},Groups:{shape:"S4o",locationName:"groupSet"},Tags:{shape:"Sb",locationName:"tagSet"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeConversionTasks:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},Filters:{shape:"S7t",locationName:"filter"},ConversionTaskIds:{locationName:"conversionTaskId",type:"list",member:{locationName:"item"}}}},output:{type:"structure",members:{ConversionTasks:{locationName:"conversionTasks",type:"list",member:{shape:"S8k",locationName:"item"}}}},http:{}},DescribeCustomerGateways:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},CustomerGatewayIds:{locationName:"CustomerGatewayId",type:"list",member:{locationName:"CustomerGatewayId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{CustomerGateways:{locationName:"customerGatewaySet",type:"list",member:{shape:"S2v",locationName:"item"}}}},http:{}},DescribeDhcpOptions:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},DhcpOptionsIds:{locationName:"DhcpOptionsId",type:"list",member:{locationName:"DhcpOptionsId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{DhcpOptions:{locationName:"dhcpOptionsSet",type:"list",member:{shape:"S30",locationName:"item"}}}},http:{}},DescribeExportTasks:{input:{type:"structure",members:{ExportTaskIds:{locationName:"exportTaskId",type:"list",member:{locationName:"ExportTaskId"}}}},output:{type:"structure",members:{ExportTasks:{locationName:"exportTaskSet",type:"list",member:{shape:"S3o",locationName:"item"}}}},http:{}},DescribeFlowLogs:{input:{type:"structure",members:{FlowLogIds:{shape:"S27",locationName:"FlowLogId"},Filter:{shape:"S7t"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{FlowLogs:{locationName:"flowLogSet",type:"list",member:{locationName:"item",type:"structure",members:{CreationTime:{locationName:"creationTime",type:"timestamp"},FlowLogId:{locationName:"flowLogId"},FlowLogStatus:{locationName:"flowLogStatus"},ResourceId:{locationName:"resourceId"},TrafficType:{locationName:"trafficType"},LogGroupName:{locationName:"logGroupName"},DeliverLogsStatus:{locationName:"deliverLogsStatus"},DeliverLogsErrorMessage:{locationName:"deliverLogsErrorMessage"},DeliverLogsPermissionArn:{locationName:"deliverLogsPermissionArn"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeHosts:{input:{type:"structure",members:{HostIds:{shape:"S9a",locationName:"hostId"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"},Filter:{shape:"S7t",locationName:"filter"}}},output:{type:"structure",members:{Hosts:{locationName:"hostSet",type:"list",member:{locationName:"item",type:"structure",members:{HostId:{locationName:"hostId"},AutoPlacement:{locationName:"autoPlacement"},HostReservationId:{locationName:"hostReservationId"},ClientToken:{locationName:"clientToken"},HostProperties:{locationName:"hostProperties",type:"structure",members:{Sockets:{locationName:"sockets",type:"integer"},Cores:{locationName:"cores",type:"integer"},TotalVCpus:{locationName:"totalVCpus",type:"integer"},InstanceType:{locationName:"instanceType"}}},State:{locationName:"state"},AvailabilityZone:{locationName:"availabilityZone"},Instances:{locationName:"instances",type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},InstanceType:{locationName:"instanceType"}}}},AvailableCapacity:{locationName:"availableCapacity",type:"structure",members:{AvailableInstanceCapacity:{locationName:"availableInstanceCapacity",type:"list",member:{locationName:"item",type:"structure",members:{InstanceType:{locationName:"instanceType"},AvailableCapacity:{locationName:"availableCapacity",type:"integer"},TotalCapacity:{locationName:"totalCapacity",type:"integer"}}}},AvailableVCpus:{locationName:"availableVCpus",type:"integer"}}}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeIdFormat:{input:{type:"structure",members:{Resource:{}}},output:{type:"structure",members:{Statuses:{locationName:"statusSet",type:"list",member:{locationName:"item",type:"structure",members:{Resource:{locationName:"resource"},UseLongIds:{locationName:"useLongIds",type:"boolean"},Deadline:{locationName:"deadline",type:"timestamp"}}}}}},http:{}},DescribeImageAttribute:{input:{type:"structure",required:["ImageId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageId:{},Attribute:{}}},output:{type:"structure",members:{ImageId:{locationName:"imageId"},LaunchPermissions:{shape:"S9s",locationName:"launchPermission"},ProductCodes:{shape:"S9v",locationName:"productCodes"},KernelId:{shape:"S34",locationName:"kernel"},RamdiskId:{shape:"S34",locationName:"ramdisk"},Description:{shape:"S34",locationName:"description"},SriovNetSupport:{shape:"S34",locationName:"sriovNetSupport"},BlockDeviceMappings:{shape:"S9y",locationName:"blockDeviceMapping"}}},http:{}},DescribeImages:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageIds:{locationName:"ImageId",type:"list",member:{locationName:"ImageId"}},Owners:{shape:"Sa1",locationName:"Owner"},ExecutableUsers:{locationName:"ExecutableBy",type:"list",member:{locationName:"ExecutableBy"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{Images:{locationName:"imagesSet",type:"list",member:{locationName:"item",type:"structure",members:{ImageId:{locationName:"imageId"},ImageLocation:{locationName:"imageLocation"},State:{locationName:"imageState"},OwnerId:{locationName:"imageOwnerId"},CreationDate:{locationName:"creationDate"},Public:{locationName:"isPublic",type:"boolean"},ProductCodes:{shape:"S9v",locationName:"productCodes"},Architecture:{locationName:"architecture"},ImageType:{locationName:"imageType"},KernelId:{locationName:"kernelId"},RamdiskId:{locationName:"ramdiskId"},Platform:{locationName:"platform"},SriovNetSupport:{locationName:"sriovNetSupport"},StateReason:{shape:"Sa9",locationName:"stateReason"},ImageOwnerAlias:{locationName:"imageOwnerAlias"},Name:{locationName:"name"},Description:{locationName:"description"},RootDeviceType:{locationName:"rootDeviceType"},RootDeviceName:{locationName:"rootDeviceName"},BlockDeviceMappings:{shape:"S9y",locationName:"blockDeviceMapping"},VirtualizationType:{locationName:"virtualizationType"},Tags:{shape:"Sb",locationName:"tagSet"},Hypervisor:{locationName:"hypervisor"}}}}}},http:{}},DescribeImportImageTasks:{input:{type:"structure",members:{DryRun:{type:"boolean"},ImportTaskIds:{shape:"Sae",locationName:"ImportTaskId"},NextToken:{},MaxResults:{type:"integer"},Filters:{shape:"S7t"}}},output:{type:"structure",members:{ImportImageTasks:{locationName:"importImageTaskSet",type:"list",member:{locationName:"item",type:"structure",members:{ImportTaskId:{locationName:"importTaskId"},Architecture:{locationName:"architecture"},LicenseType:{locationName:"licenseType"},Platform:{locationName:"platform"},Hypervisor:{locationName:"hypervisor"},Description:{locationName:"description"},SnapshotDetails:{shape:"Sai",locationName:"snapshotDetailSet"},ImageId:{locationName:"imageId"},Progress:{locationName:"progress"},StatusMessage:{locationName:"statusMessage"},Status:{locationName:"status"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeImportSnapshotTasks:{input:{type:"structure",members:{DryRun:{type:"boolean"},ImportTaskIds:{shape:"Sae",locationName:"ImportTaskId"},NextToken:{},MaxResults:{type:"integer"},Filters:{shape:"S7t"}}},output:{type:"structure",members:{ImportSnapshotTasks:{locationName:"importSnapshotTaskSet",type:"list",member:{locationName:"item",type:"structure",members:{ImportTaskId:{locationName:"importTaskId"},SnapshotTaskDetail:{shape:"Sap",locationName:"snapshotTaskDetail"},Description:{locationName:"description"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeInstanceAttribute:{input:{type:"structure",required:["InstanceId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{locationName:"instanceId"},Attribute:{locationName:"attribute"}}},output:{type:"structure",members:{InstanceId:{locationName:"instanceId"},InstanceType:{shape:"S34",locationName:"instanceType"},KernelId:{shape:"S34",locationName:"kernel"},RamdiskId:{shape:"S34",locationName:"ramdisk"},UserData:{shape:"S34",locationName:"userData"},DisableApiTermination:{shape:"Sat",locationName:"disableApiTermination"},InstanceInitiatedShutdownBehavior:{shape:"S34",locationName:"instanceInitiatedShutdownBehavior"},RootDeviceName:{shape:"S34",locationName:"rootDeviceName"},BlockDeviceMappings:{shape:"Sau",locationName:"blockDeviceMapping"},ProductCodes:{shape:"S9v",locationName:"productCodes"},EbsOptimized:{shape:"Sat",locationName:"ebsOptimized"},SriovNetSupport:{shape:"S34",locationName:"sriovNetSupport"},SourceDestCheck:{shape:"Sat",locationName:"sourceDestCheck"},Groups:{shape:"S4o",locationName:"groupSet"}}},http:{}},DescribeInstanceStatus:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"},Filters:{shape:"S7t",locationName:"Filter"},NextToken:{},MaxResults:{type:"integer"},IncludeAllInstances:{locationName:"includeAllInstances",type:"boolean"}}},output:{type:"structure",members:{InstanceStatuses:{locationName:"instanceStatusSet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},AvailabilityZone:{locationName:"availabilityZone"},Events:{locationName:"eventsSet",type:"list",member:{locationName:"item",type:"structure",members:{Code:{locationName:"code"},Description:{locationName:"description"},NotBefore:{locationName:"notBefore",type:"timestamp"},NotAfter:{locationName:"notAfter",type:"timestamp"}}}},InstanceState:{shape:"Sb4",locationName:"instanceState"},SystemStatus:{shape:"Sb6",locationName:"systemStatus"},InstanceStatus:{shape:"Sb6",locationName:"instanceStatus"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeInstances:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"},Filters:{shape:"S7t",locationName:"Filter"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{Reservations:{locationName:"reservationSet",type:"list",member:{shape:"Sbf",locationName:"item"}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeInternetGateways:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},InternetGatewayIds:{shape:"S27",locationName:"internetGatewayId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{InternetGateways:{locationName:"internetGatewaySet",type:"list",member:{shape:"S3u",locationName:"item"}}}},http:{}},DescribeKeyPairs:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},KeyNames:{locationName:"KeyName",type:"list",member:{locationName:"KeyName"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{KeyPairs:{locationName:"keySet",type:"list",member:{locationName:"item",type:"structure",members:{KeyName:{locationName:"keyName"},KeyFingerprint:{locationName:"keyFingerprint"}}}}}},http:{}},DescribeMovingAddresses:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},PublicIps:{shape:"S27",locationName:"publicIp"},NextToken:{locationName:"nextToken"},Filters:{shape:"S7t",locationName:"filter"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{MovingAddressStatuses:{locationName:"movingAddressStatusSet",type:"list",member:{locationName:"item",type:"structure",members:{PublicIp:{locationName:"publicIp" +},MoveStatus:{locationName:"moveStatus"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeNatGateways:{input:{type:"structure",members:{NatGatewayIds:{shape:"S27",locationName:"NatGatewayId"},Filter:{shape:"S7t"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{NatGateways:{locationName:"natGatewaySet",type:"list",member:{shape:"S41",locationName:"item"}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeNetworkAcls:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkAclIds:{shape:"S27",locationName:"NetworkAclId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{NetworkAcls:{locationName:"networkAclSet",type:"list",member:{shape:"S48",locationName:"item"}}}},http:{}},DescribeNetworkInterfaceAttribute:{input:{type:"structure",required:["NetworkInterfaceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkInterfaceId:{locationName:"networkInterfaceId"},Attribute:{locationName:"attribute"}}},output:{type:"structure",members:{NetworkInterfaceId:{locationName:"networkInterfaceId"},Description:{shape:"S34",locationName:"description"},SourceDestCheck:{shape:"Sat",locationName:"sourceDestCheck"},Groups:{shape:"S4o",locationName:"groupSet"},Attachment:{shape:"S4q",locationName:"attachment"}}},http:{}},DescribeNetworkInterfaces:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkInterfaceIds:{locationName:"NetworkInterfaceId",type:"list",member:{locationName:"item"}},Filters:{shape:"S7t",locationName:"filter"}}},output:{type:"structure",members:{NetworkInterfaces:{locationName:"networkInterfaceSet",type:"list",member:{shape:"S4m",locationName:"item"}}}},http:{}},DescribePlacementGroups:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupNames:{locationName:"groupName",type:"list",member:{}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{PlacementGroups:{locationName:"placementGroupSet",type:"list",member:{locationName:"item",type:"structure",members:{GroupName:{locationName:"groupName"},Strategy:{locationName:"strategy"},State:{locationName:"state"}}}}}},http:{}},DescribePrefixLists:{input:{type:"structure",members:{DryRun:{type:"boolean"},PrefixListIds:{shape:"S27",locationName:"PrefixListId"},Filters:{shape:"S7t",locationName:"Filter"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{PrefixLists:{locationName:"prefixListSet",type:"list",member:{locationName:"item",type:"structure",members:{PrefixListId:{locationName:"prefixListId"},PrefixListName:{locationName:"prefixListName"},Cidrs:{shape:"S27",locationName:"cidrSet"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeRegions:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},RegionNames:{locationName:"RegionName",type:"list",member:{locationName:"RegionName"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{Regions:{locationName:"regionInfo",type:"list",member:{locationName:"item",type:"structure",members:{RegionName:{locationName:"regionName"},Endpoint:{locationName:"regionEndpoint"}}}}}},http:{}},DescribeReservedInstances:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},ReservedInstancesIds:{shape:"Sd0",locationName:"ReservedInstancesId"},Filters:{shape:"S7t",locationName:"Filter"},OfferingType:{locationName:"offeringType"}}},output:{type:"structure",members:{ReservedInstances:{locationName:"reservedInstancesSet",type:"list",member:{locationName:"item",type:"structure",members:{ReservedInstancesId:{locationName:"reservedInstancesId"},InstanceType:{locationName:"instanceType"},AvailabilityZone:{locationName:"availabilityZone"},Start:{locationName:"start",type:"timestamp"},End:{locationName:"end",type:"timestamp"},Duration:{locationName:"duration",type:"long"},UsagePrice:{locationName:"usagePrice",type:"float"},FixedPrice:{locationName:"fixedPrice",type:"float"},InstanceCount:{locationName:"instanceCount",type:"integer"},ProductDescription:{locationName:"productDescription"},State:{locationName:"state"},Tags:{shape:"Sb",locationName:"tagSet"},InstanceTenancy:{locationName:"instanceTenancy"},CurrencyCode:{locationName:"currencyCode"},OfferingType:{locationName:"offeringType"},RecurringCharges:{shape:"Sd8",locationName:"recurringCharges"}}}}}},http:{}},DescribeReservedInstancesListings:{input:{type:"structure",members:{ReservedInstancesId:{locationName:"reservedInstancesId"},ReservedInstancesListingId:{locationName:"reservedInstancesListingId"},Filters:{shape:"S7t",locationName:"filters"}}},output:{type:"structure",members:{ReservedInstancesListings:{shape:"S1v",locationName:"reservedInstancesListingsSet"}}},http:{}},DescribeReservedInstancesModifications:{input:{type:"structure",members:{ReservedInstancesModificationIds:{locationName:"ReservedInstancesModificationId",type:"list",member:{locationName:"ReservedInstancesModificationId"}},NextToken:{locationName:"nextToken"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{ReservedInstancesModifications:{locationName:"reservedInstancesModificationsSet",type:"list",member:{locationName:"item",type:"structure",members:{ReservedInstancesModificationId:{locationName:"reservedInstancesModificationId"},ReservedInstancesIds:{locationName:"reservedInstancesSet",type:"list",member:{locationName:"item",type:"structure",members:{ReservedInstancesId:{locationName:"reservedInstancesId"}}}},ModificationResults:{locationName:"modificationResultSet",type:"list",member:{locationName:"item",type:"structure",members:{ReservedInstancesId:{locationName:"reservedInstancesId"},TargetConfiguration:{shape:"Sdm",locationName:"targetConfiguration"}}}},CreateDate:{locationName:"createDate",type:"timestamp"},UpdateDate:{locationName:"updateDate",type:"timestamp"},EffectiveDate:{locationName:"effectiveDate",type:"timestamp"},Status:{locationName:"status"},StatusMessage:{locationName:"statusMessage"},ClientToken:{locationName:"clientToken"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeReservedInstancesOfferings:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},ReservedInstancesOfferingIds:{locationName:"ReservedInstancesOfferingId",type:"list",member:{}},InstanceType:{},AvailabilityZone:{},ProductDescription:{},Filters:{shape:"S7t",locationName:"Filter"},InstanceTenancy:{locationName:"instanceTenancy"},OfferingType:{locationName:"offeringType"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"},IncludeMarketplace:{type:"boolean"},MinDuration:{type:"long"},MaxDuration:{type:"long"},MaxInstanceCount:{type:"integer"}}},output:{type:"structure",members:{ReservedInstancesOfferings:{locationName:"reservedInstancesOfferingsSet",type:"list",member:{locationName:"item",type:"structure",members:{ReservedInstancesOfferingId:{locationName:"reservedInstancesOfferingId"},InstanceType:{locationName:"instanceType"},AvailabilityZone:{locationName:"availabilityZone"},Duration:{locationName:"duration",type:"long"},UsagePrice:{locationName:"usagePrice",type:"float"},FixedPrice:{locationName:"fixedPrice",type:"float"},ProductDescription:{locationName:"productDescription"},InstanceTenancy:{locationName:"instanceTenancy"},CurrencyCode:{locationName:"currencyCode"},OfferingType:{locationName:"offeringType"},RecurringCharges:{shape:"Sd8",locationName:"recurringCharges"},Marketplace:{locationName:"marketplace",type:"boolean"},PricingDetails:{locationName:"pricingDetailsSet",type:"list",member:{locationName:"item",type:"structure",members:{Price:{locationName:"price",type:"double"},Count:{locationName:"count",type:"integer"}}}}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeRouteTables:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},RouteTableIds:{shape:"S27",locationName:"RouteTableId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{RouteTables:{locationName:"routeTableSet",type:"list",member:{shape:"S55",locationName:"item"}}}},http:{}},DescribeScheduledInstanceAvailability:{input:{type:"structure",required:["Recurrence","FirstSlotStartTimeRange"],members:{DryRun:{type:"boolean"},Recurrence:{type:"structure",members:{Frequency:{},Interval:{type:"integer"},OccurrenceDays:{locationName:"OccurrenceDay",type:"list",member:{locationName:"OccurenceDay",type:"integer"}},OccurrenceRelativeToEnd:{type:"boolean"},OccurrenceUnit:{}}},FirstSlotStartTimeRange:{type:"structure",required:["EarliestTime","LatestTime"],members:{EarliestTime:{type:"timestamp"},LatestTime:{type:"timestamp"}}},MinSlotDurationInHours:{type:"integer"},MaxSlotDurationInHours:{type:"integer"},NextToken:{},MaxResults:{type:"integer"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{NextToken:{locationName:"nextToken"},ScheduledInstanceAvailabilitySet:{locationName:"scheduledInstanceAvailabilitySet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceType:{locationName:"instanceType"},Platform:{locationName:"platform"},NetworkPlatform:{locationName:"networkPlatform"},AvailabilityZone:{locationName:"availabilityZone"},PurchaseToken:{locationName:"purchaseToken"},SlotDurationInHours:{locationName:"slotDurationInHours",type:"integer"},Recurrence:{shape:"Se4",locationName:"recurrence"},FirstSlotStartTime:{locationName:"firstSlotStartTime",type:"timestamp"},HourlyPrice:{locationName:"hourlyPrice"},TotalScheduledInstanceHours:{locationName:"totalScheduledInstanceHours",type:"integer"},AvailableInstanceCount:{locationName:"availableInstanceCount",type:"integer"},MinTermDurationInDays:{locationName:"minTermDurationInDays",type:"integer"},MaxTermDurationInDays:{locationName:"maxTermDurationInDays",type:"integer"}}}}}},http:{}},DescribeScheduledInstances:{input:{type:"structure",members:{DryRun:{type:"boolean"},ScheduledInstanceIds:{locationName:"ScheduledInstanceId",type:"list",member:{locationName:"ScheduledInstanceId"}},SlotStartTimeRange:{type:"structure",members:{EarliestTime:{type:"timestamp"},LatestTime:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{NextToken:{locationName:"nextToken"},ScheduledInstanceSet:{locationName:"scheduledInstanceSet",type:"list",member:{shape:"Seb",locationName:"item"}}}},http:{}},DescribeSecurityGroupReferences:{input:{type:"structure",required:["GroupId"],members:{DryRun:{type:"boolean"},GroupId:{type:"list",member:{locationName:"item"}}}},output:{type:"structure",members:{SecurityGroupReferenceSet:{locationName:"securityGroupReferenceSet",type:"list",member:{locationName:"item",type:"structure",required:["GroupId","ReferencingVpcId"],members:{GroupId:{locationName:"groupId"},ReferencingVpcId:{locationName:"referencingVpcId"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"}}}}}},http:{}},DescribeSecurityGroups:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupNames:{shape:"Sei",locationName:"GroupName"},GroupIds:{shape:"St",locationName:"GroupId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{SecurityGroups:{locationName:"securityGroupInfo",type:"list",member:{locationName:"item",type:"structure",members:{OwnerId:{locationName:"ownerId"},GroupName:{locationName:"groupName"},GroupId:{locationName:"groupId"},Description:{locationName:"groupDescription"},IpPermissions:{shape:"S16",locationName:"ipPermissions"},IpPermissionsEgress:{shape:"S16",locationName:"ipPermissionsEgress"},VpcId:{locationName:"vpcId"},Tags:{shape:"Sb",locationName:"tagSet"}}}}}},http:{}},DescribeSnapshotAttribute:{input:{type:"structure",required:["SnapshotId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SnapshotId:{},Attribute:{}}},output:{type:"structure",members:{SnapshotId:{locationName:"snapshotId"},CreateVolumePermissions:{shape:"Sep",locationName:"createVolumePermission"},ProductCodes:{shape:"S9v",locationName:"productCodes"}}},http:{}},DescribeSnapshots:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},SnapshotIds:{locationName:"SnapshotId",type:"list",member:{locationName:"SnapshotId"}},OwnerIds:{shape:"Sa1",locationName:"Owner"},RestorableByUserIds:{locationName:"RestorableBy",type:"list",member:{}},Filters:{shape:"S7t",locationName:"Filter"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Snapshots:{locationName:"snapshotSet",type:"list",member:{shape:"S5h",locationName:"item"}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeSpotDatafeedSubscription:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"}}},output:{type:"structure",members:{SpotDatafeedSubscription:{shape:"S5l",locationName:"spotDatafeedSubscription"}}},http:{}},DescribeSpotFleetInstances:{input:{type:"structure",required:["SpotFleetRequestId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotFleetRequestId:{locationName:"spotFleetRequestId"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",required:["SpotFleetRequestId","ActiveInstances"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"},ActiveInstances:{locationName:"activeInstanceSet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceType:{locationName:"instanceType"},InstanceId:{locationName:"instanceId"},SpotInstanceRequestId:{locationName:"spotInstanceRequestId"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeSpotFleetRequestHistory:{input:{type:"structure",required:["SpotFleetRequestId","StartTime"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotFleetRequestId:{locationName:"spotFleetRequestId"},EventType:{locationName:"eventType"},StartTime:{locationName:"startTime",type:"timestamp"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",required:["SpotFleetRequestId","StartTime","LastEvaluatedTime","HistoryRecords"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"},StartTime:{locationName:"startTime",type:"timestamp"},LastEvaluatedTime:{locationName:"lastEvaluatedTime",type:"timestamp"},HistoryRecords:{locationName:"historyRecordSet",type:"list",member:{locationName:"item",type:"structure",required:["Timestamp","EventType","EventInformation"],members:{Timestamp:{locationName:"timestamp",type:"timestamp"},EventType:{locationName:"eventType"},EventInformation:{locationName:"eventInformation",type:"structure",members:{InstanceId:{locationName:"instanceId"},EventSubType:{locationName:"eventSubType"},EventDescription:{locationName:"eventDescription"}}}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeSpotFleetRequests:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotFleetRequestIds:{shape:"S27",locationName:"spotFleetRequestId"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",required:["SpotFleetRequestConfigs"],members:{SpotFleetRequestConfigs:{locationName:"spotFleetRequestConfigSet",type:"list",member:{locationName:"item",type:"structure",required:["SpotFleetRequestId","SpotFleetRequestState","SpotFleetRequestConfig","CreateTime"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"},SpotFleetRequestState:{locationName:"spotFleetRequestState"},SpotFleetRequestConfig:{shape:"Sfc",locationName:"spotFleetRequestConfig"},CreateTime:{locationName:"createTime",type:"timestamp"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeSpotInstanceRequests:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotInstanceRequestIds:{shape:"S2h",locationName:"SpotInstanceRequestId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{SpotInstanceRequests:{shape:"Sfp",locationName:"spotInstanceRequestSet"}}},http:{}},DescribeSpotPriceHistory:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},StartTime:{locationName:"startTime",type:"timestamp"},EndTime:{locationName:"endTime",type:"timestamp"},InstanceTypes:{locationName:"InstanceType",type:"list",member:{}},ProductDescriptions:{locationName:"ProductDescription",type:"list",member:{}},Filters:{shape:"S7t",locationName:"Filter"},AvailabilityZone:{locationName:"availabilityZone"},MaxResults:{locationName:"maxResults",type:"integer"},NextToken:{locationName:"nextToken"}}},output:{type:"structure",members:{SpotPriceHistory:{locationName:"spotPriceHistorySet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceType:{locationName:"instanceType"},ProductDescription:{locationName:"productDescription"},SpotPrice:{locationName:"spotPrice"},Timestamp:{locationName:"timestamp",type:"timestamp"},AvailabilityZone:{locationName:"availabilityZone"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeStaleSecurityGroups:{input:{type:"structure",required:["VpcId"],members:{DryRun:{type:"boolean"},VpcId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{StaleSecurityGroupSet:{locationName:"staleSecurityGroupSet",type:"list",member:{locationName:"item",type:"structure",required:["GroupId"],members:{GroupId:{locationName:"groupId"},GroupName:{locationName:"groupName"},Description:{locationName:"description"},VpcId:{locationName:"vpcId"},StaleIpPermissions:{shape:"Sg8",locationName:"staleIpPermissions"},StaleIpPermissionsEgress:{shape:"Sg8",locationName:"staleIpPermissionsEgress"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeSubnets:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},SubnetIds:{locationName:"SubnetId",type:"list",member:{locationName:"SubnetId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{Subnets:{locationName:"subnetSet",type:"list",member:{shape:"S5q",locationName:"item"}}}},http:{}},DescribeTags:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},Filters:{shape:"S7t",locationName:"Filter"},MaxResults:{locationName:"maxResults",type:"integer"},NextToken:{locationName:"nextToken"}}},output:{type:"structure",members:{Tags:{locationName:"tagSet",type:"list",member:{locationName:"item",type:"structure",members:{ResourceId:{locationName:"resourceId"},ResourceType:{locationName:"resourceType"},Key:{locationName:"key"},Value:{locationName:"value"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeVolumeAttribute:{input:{type:"structure",required:["VolumeId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{},Attribute:{}}},output:{type:"structure",members:{VolumeId:{locationName:"volumeId"},AutoEnableIO:{shape:"Sat",locationName:"autoEnableIO"},ProductCodes:{shape:"S9v",locationName:"productCodes"}}},http:{}},DescribeVolumeStatus:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeIds:{shape:"Sgq",locationName:"VolumeId"},Filters:{shape:"S7t",locationName:"Filter"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{VolumeStatuses:{locationName:"volumeStatusSet",type:"list",member:{locationName:"item",type:"structure",members:{VolumeId:{locationName:"volumeId"},AvailabilityZone:{locationName:"availabilityZone"},VolumeStatus:{locationName:"volumeStatus",type:"structure",members:{Status:{locationName:"status"},Details:{locationName:"details",type:"list",member:{locationName:"item",type:"structure",members:{Name:{locationName:"name"},Status:{locationName:"status"}}}}}},Events:{locationName:"eventsSet",type:"list",member:{locationName:"item",type:"structure",members:{EventType:{locationName:"eventType"},Description:{locationName:"description"},NotBefore:{locationName:"notBefore",type:"timestamp"},NotAfter:{locationName:"notAfter",type:"timestamp"},EventId:{locationName:"eventId"}}}},Actions:{locationName:"actionsSet",type:"list",member:{locationName:"item",type:"structure",members:{Code:{locationName:"code"},Description:{locationName:"description"},EventType:{locationName:"eventType"},EventId:{locationName:"eventId"}}}}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeVolumes:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeIds:{shape:"Sgq",locationName:"VolumeId"},Filters:{shape:"S7t",locationName:"Filter"},NextToken:{locationName:"nextToken"},MaxResults:{locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{Volumes:{locationName:"volumeSet",type:"list",member:{shape:"S5v",locationName:"item"}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeVpcAttribute:{input:{type:"structure",required:["VpcId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{},Attribute:{}}},output:{type:"structure",members:{VpcId:{locationName:"vpcId"},EnableDnsSupport:{shape:"Sat",locationName:"enableDnsSupport"},EnableDnsHostnames:{shape:"Sat",locationName:"enableDnsHostnames"}}},http:{}},DescribeVpcClassicLink:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcIds:{shape:"Sha",locationName:"VpcId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{Vpcs:{locationName:"vpcSet",type:"list",member:{locationName:"item",type:"structure",members:{VpcId:{locationName:"vpcId"},ClassicLinkEnabled:{locationName:"classicLinkEnabled",type:"boolean"},Tags:{shape:"Sb",locationName:"tagSet"}}}}}},http:{}},DescribeVpcClassicLinkDnsSupport:{input:{type:"structure",members:{VpcIds:{shape:"Sha"},MaxResults:{locationName:"maxResults",type:"integer"},NextToken:{locationName:"nextToken"}}},output:{type:"structure",members:{Vpcs:{locationName:"vpcs",type:"list",member:{locationName:"item",type:"structure",members:{VpcId:{locationName:"vpcId"},ClassicLinkDnsSupported:{locationName:"classicLinkDnsSupported",type:"boolean"}}}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeVpcEndpointServices:{input:{type:"structure",members:{DryRun:{type:"boolean"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ServiceNames:{shape:"S27",locationName:"serviceNameSet"},NextToken:{locationName:"nextToken"}}},http:{}},DescribeVpcEndpoints:{input:{type:"structure",members:{DryRun:{type:"boolean"},VpcEndpointIds:{shape:"S27",locationName:"VpcEndpointId"},Filters:{shape:"S7t",locationName:"Filter"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{VpcEndpoints:{locationName:"vpcEndpointSet",type:"list",member:{shape:"S65",locationName:"item"}},NextToken:{locationName:"nextToken"}}},http:{}},DescribeVpcPeeringConnections:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcPeeringConnectionIds:{shape:"S27",locationName:"VpcPeeringConnectionId"},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{VpcPeeringConnections:{locationName:"vpcPeeringConnectionSet",type:"list",member:{shape:"S5",locationName:"item"}}}},http:{}},DescribeVpcs:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcIds:{locationName:"VpcId",type:"list",member:{locationName:"VpcId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{Vpcs:{locationName:"vpcSet",type:"list",member:{shape:"S61",locationName:"item"}}}},http:{}},DescribeVpnConnections:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpnConnectionIds:{locationName:"VpnConnectionId",type:"list",member:{locationName:"VpnConnectionId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{VpnConnections:{locationName:"vpnConnectionSet",type:"list",member:{shape:"S6c",locationName:"item"}}}},http:{}},DescribeVpnGateways:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},VpnGatewayIds:{locationName:"VpnGatewayId",type:"list",member:{locationName:"VpnGatewayId"}},Filters:{shape:"S7t",locationName:"Filter"}}},output:{type:"structure",members:{VpnGateways:{locationName:"vpnGatewaySet",type:"list",member:{shape:"S6o",locationName:"item"}}}},http:{}},DetachClassicLinkVpc:{input:{type:"structure",required:["InstanceId","VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{locationName:"instanceId"},VpcId:{locationName:"vpcId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},DetachInternetGateway:{input:{type:"structure",required:["InternetGatewayId","VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InternetGatewayId:{locationName:"internetGatewayId"},VpcId:{locationName:"vpcId"}}},http:{}},DetachNetworkInterface:{input:{type:"structure",required:["AttachmentId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},AttachmentId:{locationName:"attachmentId"},Force:{locationName:"force",type:"boolean"}}},http:{}},DetachVolume:{input:{type:"structure",required:["VolumeId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{},InstanceId:{},Device:{},Force:{type:"boolean"}}},output:{shape:"Sz"},http:{}},DetachVpnGateway:{input:{type:"structure",required:["VpnGatewayId","VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpnGatewayId:{},VpcId:{}}},http:{}},DisableVgwRoutePropagation:{input:{type:"structure",required:["RouteTableId","GatewayId"],members:{RouteTableId:{},GatewayId:{}}},http:{}},DisableVpcClassicLink:{input:{type:"structure",required:["VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{locationName:"vpcId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},DisableVpcClassicLinkDnsSupport:{input:{type:"structure",members:{VpcId:{}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},DisassociateAddress:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},PublicIp:{},AssociationId:{}}},http:{}},DisassociateRouteTable:{input:{type:"structure",required:["AssociationId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},AssociationId:{locationName:"associationId"}}},http:{}},EnableVgwRoutePropagation:{input:{type:"structure",required:["RouteTableId","GatewayId"],members:{RouteTableId:{},GatewayId:{}}},http:{}},EnableVolumeIO:{input:{type:"structure",required:["VolumeId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{locationName:"volumeId"}}},http:{}},EnableVpcClassicLink:{input:{type:"structure",required:["VpcId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcId:{locationName:"vpcId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},EnableVpcClassicLinkDnsSupport:{input:{type:"structure",members:{VpcId:{}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},GetConsoleOutput:{input:{type:"structure",required:["InstanceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{}}},output:{type:"structure",members:{InstanceId:{locationName:"instanceId"},Timestamp:{locationName:"timestamp",type:"timestamp"},Output:{locationName:"output"}}},http:{}},GetConsoleScreenshot:{input:{type:"structure",required:["InstanceId"],members:{DryRun:{type:"boolean"},InstanceId:{},WakeUp:{type:"boolean"}}},output:{type:"structure",members:{InstanceId:{locationName:"instanceId"},ImageData:{locationName:"imageData"}}},http:{}},GetPasswordData:{input:{type:"structure",required:["InstanceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{}}},output:{type:"structure",members:{InstanceId:{locationName:"instanceId"},Timestamp:{locationName:"timestamp",type:"timestamp"},PasswordData:{locationName:"passwordData"}}},http:{}},ImportImage:{input:{type:"structure",members:{DryRun:{type:"boolean"},Description:{},DiskContainers:{locationName:"DiskContainer",type:"list",member:{locationName:"item",type:"structure",members:{Description:{},Format:{},Url:{},UserBucket:{shape:"Siu"},DeviceName:{},SnapshotId:{}}}},LicenseType:{},Hypervisor:{},Architecture:{},Platform:{},ClientData:{shape:"Siv"},ClientToken:{},RoleName:{}}},output:{type:"structure",members:{ImportTaskId:{locationName:"importTaskId"},Architecture:{locationName:"architecture"},LicenseType:{locationName:"licenseType"},Platform:{locationName:"platform"},Hypervisor:{locationName:"hypervisor"},Description:{locationName:"description"},SnapshotDetails:{shape:"Sai",locationName:"snapshotDetailSet"},ImageId:{locationName:"imageId"},Progress:{locationName:"progress"},StatusMessage:{locationName:"statusMessage"},Status:{locationName:"status"}}},http:{}},ImportInstance:{input:{type:"structure",required:["Platform"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Description:{locationName:"description"},LaunchSpecification:{locationName:"launchSpecification",type:"structure",members:{Architecture:{locationName:"architecture"},GroupNames:{shape:"Siz",locationName:"GroupName"},GroupIds:{shape:"S4i",locationName:"GroupId"},AdditionalInfo:{locationName:"additionalInfo"},UserData:{locationName:"userData",type:"structure",members:{Data:{locationName:"data"}}},InstanceType:{locationName:"instanceType"},Placement:{shape:"Sbj",locationName:"placement"},Monitoring:{locationName:"monitoring",type:"boolean"},SubnetId:{locationName:"subnetId"},InstanceInitiatedShutdownBehavior:{locationName:"instanceInitiatedShutdownBehavior"},PrivateIpAddress:{locationName:"privateIpAddress"}}},DiskImages:{locationName:"diskImage",type:"list",member:{type:"structure",members:{Image:{shape:"Sj4"},Description:{},Volume:{shape:"Sj5"}}}},Platform:{locationName:"platform"}}},output:{type:"structure",members:{ConversionTask:{shape:"S8k",locationName:"conversionTask"}}},http:{}},ImportKeyPair:{input:{type:"structure",required:["KeyName","PublicKeyMaterial"],members:{DryRun:{locationName:"dryRun",type:"boolean"},KeyName:{locationName:"keyName"},PublicKeyMaterial:{locationName:"publicKeyMaterial",type:"blob"}}},output:{type:"structure",members:{KeyName:{locationName:"keyName"},KeyFingerprint:{locationName:"keyFingerprint"}}},http:{}},ImportSnapshot:{input:{type:"structure",members:{DryRun:{type:"boolean"},Description:{},DiskContainer:{type:"structure",members:{Description:{},Format:{},Url:{},UserBucket:{shape:"Siu"}}},ClientData:{shape:"Siv"},ClientToken:{},RoleName:{}}},output:{type:"structure",members:{ImportTaskId:{locationName:"importTaskId"},SnapshotTaskDetail:{shape:"Sap",locationName:"snapshotTaskDetail"},Description:{locationName:"description"}}},http:{}},ImportVolume:{input:{type:"structure",required:["AvailabilityZone","Image","Volume"],members:{DryRun:{locationName:"dryRun",type:"boolean"},AvailabilityZone:{locationName:"availabilityZone"},Image:{shape:"Sj4",locationName:"image"},Description:{locationName:"description"},Volume:{shape:"Sj5",locationName:"volume"}}},output:{type:"structure",members:{ConversionTask:{shape:"S8k",locationName:"conversionTask"}}},http:{}},ModifyHosts:{input:{type:"structure",required:["HostIds","AutoPlacement"],members:{HostIds:{shape:"S9a",locationName:"hostId"},AutoPlacement:{locationName:"autoPlacement"}}},output:{type:"structure",members:{Successful:{shape:"Sk",locationName:"successful"},Unsuccessful:{shape:"Sjg",locationName:"unsuccessful"}}},http:{}},ModifyIdFormat:{input:{type:"structure",required:["Resource","UseLongIds"],members:{Resource:{},UseLongIds:{type:"boolean"}}},http:{}},ModifyImageAttribute:{input:{type:"structure",required:["ImageId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageId:{},Attribute:{},OperationType:{},UserIds:{shape:"Sjk",locationName:"UserId"},UserGroups:{locationName:"UserGroup",type:"list",member:{locationName:"UserGroup"}},ProductCodes:{locationName:"ProductCode",type:"list",member:{locationName:"ProductCode"}},Value:{},LaunchPermission:{type:"structure",members:{Add:{ +shape:"S9s"},Remove:{shape:"S9s"}}},Description:{shape:"S34"}}},http:{}},ModifyInstanceAttribute:{input:{type:"structure",required:["InstanceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{locationName:"instanceId"},Attribute:{locationName:"attribute"},Value:{locationName:"value"},BlockDeviceMappings:{locationName:"blockDeviceMapping",type:"list",member:{locationName:"item",type:"structure",members:{DeviceName:{locationName:"deviceName"},Ebs:{locationName:"ebs",type:"structure",members:{VolumeId:{locationName:"volumeId"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"}}},VirtualName:{locationName:"virtualName"},NoDevice:{locationName:"noDevice"}}}},SourceDestCheck:{shape:"Sat"},DisableApiTermination:{shape:"Sat",locationName:"disableApiTermination"},InstanceType:{shape:"S34",locationName:"instanceType"},Kernel:{shape:"S34",locationName:"kernel"},Ramdisk:{shape:"S34",locationName:"ramdisk"},UserData:{locationName:"userData",type:"structure",members:{Value:{locationName:"value",type:"blob"}}},InstanceInitiatedShutdownBehavior:{shape:"S34",locationName:"instanceInitiatedShutdownBehavior"},Groups:{shape:"St",locationName:"GroupId"},EbsOptimized:{shape:"Sat",locationName:"ebsOptimized"},SriovNetSupport:{shape:"S34",locationName:"sriovNetSupport"}}},http:{}},ModifyInstancePlacement:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{locationName:"instanceId"},Tenancy:{locationName:"tenancy"},Affinity:{locationName:"affinity"},HostId:{locationName:"hostId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},ModifyNetworkInterfaceAttribute:{input:{type:"structure",required:["NetworkInterfaceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkInterfaceId:{locationName:"networkInterfaceId"},Description:{shape:"S34",locationName:"description"},SourceDestCheck:{shape:"Sat",locationName:"sourceDestCheck"},Groups:{shape:"S4i",locationName:"SecurityGroupId"},Attachment:{locationName:"attachment",type:"structure",members:{AttachmentId:{locationName:"attachmentId"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"}}}}},http:{}},ModifyReservedInstances:{input:{type:"structure",required:["ReservedInstancesIds","TargetConfigurations"],members:{ClientToken:{locationName:"clientToken"},ReservedInstancesIds:{shape:"Sd0",locationName:"ReservedInstancesId"},TargetConfigurations:{locationName:"ReservedInstancesConfigurationSetItemType",type:"list",member:{shape:"Sdm",locationName:"item"}}}},output:{type:"structure",members:{ReservedInstancesModificationId:{locationName:"reservedInstancesModificationId"}}},http:{}},ModifySnapshotAttribute:{input:{type:"structure",required:["SnapshotId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SnapshotId:{},Attribute:{},OperationType:{},UserIds:{shape:"Sjk",locationName:"UserId"},GroupNames:{shape:"Sei",locationName:"UserGroup"},CreateVolumePermission:{type:"structure",members:{Add:{shape:"Sep"},Remove:{shape:"Sep"}}}}},http:{}},ModifySpotFleetRequest:{input:{type:"structure",required:["SpotFleetRequestId"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"},TargetCapacity:{locationName:"targetCapacity",type:"integer"},ExcessCapacityTerminationPolicy:{locationName:"excessCapacityTerminationPolicy"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},ModifySubnetAttribute:{input:{type:"structure",required:["SubnetId"],members:{SubnetId:{locationName:"subnetId"},MapPublicIpOnLaunch:{shape:"Sat"}}},http:{}},ModifyVolumeAttribute:{input:{type:"structure",required:["VolumeId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VolumeId:{},AutoEnableIO:{shape:"Sat"}}},http:{}},ModifyVpcAttribute:{input:{type:"structure",required:["VpcId"],members:{VpcId:{locationName:"vpcId"},EnableDnsSupport:{shape:"Sat"},EnableDnsHostnames:{shape:"Sat"}}},http:{}},ModifyVpcEndpoint:{input:{type:"structure",required:["VpcEndpointId"],members:{DryRun:{type:"boolean"},VpcEndpointId:{},ResetPolicy:{type:"boolean"},PolicyDocument:{},AddRouteTableIds:{shape:"S27",locationName:"AddRouteTableId"},RemoveRouteTableIds:{shape:"S27",locationName:"RemoveRouteTableId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},ModifyVpcPeeringConnectionOptions:{input:{type:"structure",required:["VpcPeeringConnectionId"],members:{DryRun:{type:"boolean"},VpcPeeringConnectionId:{},RequesterPeeringConnectionOptions:{shape:"Skc"},AccepterPeeringConnectionOptions:{shape:"Skc"}}},output:{type:"structure",members:{RequesterPeeringConnectionOptions:{shape:"Ske",locationName:"requesterPeeringConnectionOptions"},AccepterPeeringConnectionOptions:{shape:"Ske",locationName:"accepterPeeringConnectionOptions"}}},http:{}},MonitorInstances:{input:{type:"structure",required:["InstanceIds"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"}}},output:{type:"structure",members:{InstanceMonitorings:{shape:"Skh",locationName:"instancesSet"}}},http:{}},MoveAddressToVpc:{input:{type:"structure",required:["PublicIp"],members:{DryRun:{locationName:"dryRun",type:"boolean"},PublicIp:{locationName:"publicIp"}}},output:{type:"structure",members:{AllocationId:{locationName:"allocationId"},Status:{locationName:"status"}}},http:{}},PurchaseReservedInstancesOffering:{input:{type:"structure",required:["ReservedInstancesOfferingId","InstanceCount"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ReservedInstancesOfferingId:{},InstanceCount:{type:"integer"},LimitPrice:{locationName:"limitPrice",type:"structure",members:{Amount:{locationName:"amount",type:"double"},CurrencyCode:{locationName:"currencyCode"}}}}},output:{type:"structure",members:{ReservedInstancesId:{locationName:"reservedInstancesId"}}},http:{}},PurchaseScheduledInstances:{input:{type:"structure",required:["PurchaseRequests"],members:{DryRun:{type:"boolean"},ClientToken:{idempotencyToken:!0},PurchaseRequests:{locationName:"PurchaseRequest",type:"list",member:{locationName:"PurchaseRequest",type:"structure",required:["PurchaseToken","InstanceCount"],members:{PurchaseToken:{},InstanceCount:{type:"integer"}}}}}},output:{type:"structure",members:{ScheduledInstanceSet:{locationName:"scheduledInstanceSet",type:"list",member:{shape:"Seb",locationName:"item"}}}},http:{}},RebootInstances:{input:{type:"structure",required:["InstanceIds"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"}}},http:{}},RegisterImage:{input:{type:"structure",required:["Name"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageLocation:{},Name:{locationName:"name"},Description:{locationName:"description"},Architecture:{locationName:"architecture"},KernelId:{locationName:"kernelId"},RamdiskId:{locationName:"ramdiskId"},RootDeviceName:{locationName:"rootDeviceName"},BlockDeviceMappings:{shape:"S3d",locationName:"BlockDeviceMapping"},VirtualizationType:{locationName:"virtualizationType"},SriovNetSupport:{locationName:"sriovNetSupport"}}},output:{type:"structure",members:{ImageId:{locationName:"imageId"}}},http:{}},RejectVpcPeeringConnection:{input:{type:"structure",required:["VpcPeeringConnectionId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"}}},output:{type:"structure",members:{Return:{locationName:"return",type:"boolean"}}},http:{}},ReleaseAddress:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},PublicIp:{},AllocationId:{}}},http:{}},ReleaseHosts:{input:{type:"structure",required:["HostIds"],members:{HostIds:{shape:"S9a",locationName:"hostId"}}},output:{type:"structure",members:{Successful:{shape:"Sk",locationName:"successful"},Unsuccessful:{shape:"Sjg",locationName:"unsuccessful"}}},http:{}},ReplaceNetworkAclAssociation:{input:{type:"structure",required:["AssociationId","NetworkAclId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},AssociationId:{locationName:"associationId"},NetworkAclId:{locationName:"networkAclId"}}},output:{type:"structure",members:{NewAssociationId:{locationName:"newAssociationId"}}},http:{}},ReplaceNetworkAclEntry:{input:{type:"structure",required:["NetworkAclId","RuleNumber","Protocol","RuleAction","Egress","CidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkAclId:{locationName:"networkAclId"},RuleNumber:{locationName:"ruleNumber",type:"integer"},Protocol:{locationName:"protocol"},RuleAction:{locationName:"ruleAction"},Egress:{locationName:"egress",type:"boolean"},CidrBlock:{locationName:"cidrBlock"},IcmpTypeCode:{shape:"S4c",locationName:"Icmp"},PortRange:{shape:"S4d",locationName:"portRange"}}},http:{}},ReplaceRoute:{input:{type:"structure",required:["RouteTableId","DestinationCidrBlock"],members:{DryRun:{locationName:"dryRun",type:"boolean"},RouteTableId:{locationName:"routeTableId"},DestinationCidrBlock:{locationName:"destinationCidrBlock"},GatewayId:{locationName:"gatewayId"},InstanceId:{locationName:"instanceId"},NetworkInterfaceId:{locationName:"networkInterfaceId"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"},NatGatewayId:{locationName:"natGatewayId"}}},http:{}},ReplaceRouteTableAssociation:{input:{type:"structure",required:["AssociationId","RouteTableId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},AssociationId:{locationName:"associationId"},RouteTableId:{locationName:"routeTableId"}}},output:{type:"structure",members:{NewAssociationId:{locationName:"newAssociationId"}}},http:{}},ReportInstanceStatus:{input:{type:"structure",required:["Instances","Status","ReasonCodes"],members:{DryRun:{locationName:"dryRun",type:"boolean"},Instances:{shape:"S8c",locationName:"instanceId"},Status:{locationName:"status"},StartTime:{locationName:"startTime",type:"timestamp"},EndTime:{locationName:"endTime",type:"timestamp"},ReasonCodes:{locationName:"reasonCode",type:"list",member:{locationName:"item"}},Description:{locationName:"description"}}},http:{}},RequestSpotFleet:{input:{type:"structure",required:["SpotFleetRequestConfig"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotFleetRequestConfig:{shape:"Sfc",locationName:"spotFleetRequestConfig"}}},output:{type:"structure",required:["SpotFleetRequestId"],members:{SpotFleetRequestId:{locationName:"spotFleetRequestId"}}},http:{}},RequestSpotInstances:{input:{type:"structure",required:["SpotPrice"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SpotPrice:{locationName:"spotPrice"},ClientToken:{locationName:"clientToken"},InstanceCount:{locationName:"instanceCount",type:"integer"},Type:{locationName:"type"},ValidFrom:{locationName:"validFrom",type:"timestamp"},ValidUntil:{locationName:"validUntil",type:"timestamp"},LaunchGroup:{locationName:"launchGroup"},AvailabilityZoneGroup:{locationName:"availabilityZoneGroup"},BlockDurationMinutes:{locationName:"blockDurationMinutes",type:"integer"},LaunchSpecification:{type:"structure",members:{ImageId:{locationName:"imageId"},KeyName:{locationName:"keyName"},SecurityGroups:{shape:"S27",locationName:"SecurityGroup"},UserData:{locationName:"userData"},AddressingType:{locationName:"addressingType"},InstanceType:{locationName:"instanceType"},Placement:{shape:"Sff",locationName:"placement"},KernelId:{locationName:"kernelId"},RamdiskId:{locationName:"ramdiskId"},BlockDeviceMappings:{shape:"S9y",locationName:"blockDeviceMapping"},SubnetId:{locationName:"subnetId"},NetworkInterfaces:{shape:"Sfh",locationName:"NetworkInterface"},IamInstanceProfile:{shape:"Sfj",locationName:"iamInstanceProfile"},EbsOptimized:{locationName:"ebsOptimized",type:"boolean"},Monitoring:{shape:"Sfv",locationName:"monitoring"},SecurityGroupIds:{shape:"S27",locationName:"SecurityGroupId"}}}}},output:{type:"structure",members:{SpotInstanceRequests:{shape:"Sfp",locationName:"spotInstanceRequestSet"}}},http:{}},ResetImageAttribute:{input:{type:"structure",required:["ImageId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageId:{},Attribute:{}}},http:{}},ResetInstanceAttribute:{input:{type:"structure",required:["InstanceId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceId:{locationName:"instanceId"},Attribute:{locationName:"attribute"}}},http:{}},ResetNetworkInterfaceAttribute:{input:{type:"structure",required:["NetworkInterfaceId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},NetworkInterfaceId:{locationName:"networkInterfaceId"},SourceDestCheck:{locationName:"sourceDestCheck"}}},http:{}},ResetSnapshotAttribute:{input:{type:"structure",required:["SnapshotId","Attribute"],members:{DryRun:{locationName:"dryRun",type:"boolean"},SnapshotId:{},Attribute:{}}},http:{}},RestoreAddressToClassic:{input:{type:"structure",required:["PublicIp"],members:{DryRun:{locationName:"dryRun",type:"boolean"},PublicIp:{locationName:"publicIp"}}},output:{type:"structure",members:{Status:{locationName:"status"},PublicIp:{locationName:"publicIp"}}},http:{}},RevokeSecurityGroupEgress:{input:{type:"structure",required:["GroupId"],members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupId:{locationName:"groupId"},SourceSecurityGroupName:{locationName:"sourceSecurityGroupName"},SourceSecurityGroupOwnerId:{locationName:"sourceSecurityGroupOwnerId"},IpProtocol:{locationName:"ipProtocol"},FromPort:{locationName:"fromPort",type:"integer"},ToPort:{locationName:"toPort",type:"integer"},CidrIp:{locationName:"cidrIp"},IpPermissions:{shape:"S16",locationName:"ipPermissions"}}},http:{}},RevokeSecurityGroupIngress:{input:{type:"structure",members:{DryRun:{locationName:"dryRun",type:"boolean"},GroupName:{},GroupId:{},SourceSecurityGroupName:{},SourceSecurityGroupOwnerId:{},IpProtocol:{},FromPort:{type:"integer"},ToPort:{type:"integer"},CidrIp:{},IpPermissions:{shape:"S16"}}},http:{}},RunInstances:{input:{type:"structure",required:["ImageId","MinCount","MaxCount"],members:{DryRun:{locationName:"dryRun",type:"boolean"},ImageId:{},MinCount:{type:"integer"},MaxCount:{type:"integer"},KeyName:{},SecurityGroups:{shape:"Siz",locationName:"SecurityGroup"},SecurityGroupIds:{shape:"S4i",locationName:"SecurityGroupId"},UserData:{},InstanceType:{},Placement:{shape:"Sbj"},KernelId:{},RamdiskId:{},BlockDeviceMappings:{shape:"S3d",locationName:"BlockDeviceMapping"},Monitoring:{shape:"Sfv"},SubnetId:{},DisableApiTermination:{locationName:"disableApiTermination",type:"boolean"},InstanceInitiatedShutdownBehavior:{locationName:"instanceInitiatedShutdownBehavior"},PrivateIpAddress:{locationName:"privateIpAddress"},ClientToken:{locationName:"clientToken"},AdditionalInfo:{locationName:"additionalInfo"},NetworkInterfaces:{shape:"Sfh",locationName:"networkInterface"},IamInstanceProfile:{shape:"Sfj",locationName:"iamInstanceProfile"},EbsOptimized:{locationName:"ebsOptimized",type:"boolean"}}},output:{shape:"Sbf"},http:{}},RunScheduledInstances:{input:{type:"structure",required:["ScheduledInstanceId","LaunchSpecification"],members:{DryRun:{type:"boolean"},ClientToken:{idempotencyToken:!0},InstanceCount:{type:"integer"},ScheduledInstanceId:{},LaunchSpecification:{type:"structure",required:["ImageId"],members:{ImageId:{},KeyName:{},SecurityGroupIds:{shape:"Slt",locationName:"SecurityGroupId"},UserData:{},Placement:{type:"structure",members:{AvailabilityZone:{},GroupName:{}}},KernelId:{},InstanceType:{},RamdiskId:{},BlockDeviceMappings:{locationName:"BlockDeviceMapping",type:"list",member:{locationName:"BlockDeviceMapping",type:"structure",members:{DeviceName:{},NoDevice:{},VirtualName:{},Ebs:{type:"structure",members:{SnapshotId:{},VolumeSize:{type:"integer"},DeleteOnTermination:{type:"boolean"},VolumeType:{},Iops:{type:"integer"},Encrypted:{type:"boolean"}}}}}},Monitoring:{type:"structure",members:{Enabled:{type:"boolean"}}},SubnetId:{},NetworkInterfaces:{locationName:"NetworkInterface",type:"list",member:{locationName:"NetworkInterface",type:"structure",members:{NetworkInterfaceId:{},DeviceIndex:{type:"integer"},SubnetId:{},Description:{},PrivateIpAddress:{},PrivateIpAddressConfigs:{locationName:"PrivateIpAddressConfig",type:"list",member:{locationName:"PrivateIpAddressConfigSet",type:"structure",members:{PrivateIpAddress:{},Primary:{type:"boolean"}}}},SecondaryPrivateIpAddressCount:{type:"integer"},AssociatePublicIpAddress:{type:"boolean"},Groups:{shape:"Slt",locationName:"Group"},DeleteOnTermination:{type:"boolean"}}}},IamInstanceProfile:{type:"structure",members:{Arn:{},Name:{}}},EbsOptimized:{type:"boolean"}}}}},output:{type:"structure",members:{InstanceIdSet:{locationName:"instanceIdSet",type:"list",member:{locationName:"item"}}}},http:{}},StartInstances:{input:{type:"structure",required:["InstanceIds"],members:{InstanceIds:{shape:"S8c",locationName:"InstanceId"},AdditionalInfo:{locationName:"additionalInfo"},DryRun:{locationName:"dryRun",type:"boolean"}}},output:{type:"structure",members:{StartingInstances:{shape:"Sm8",locationName:"instancesSet"}}},http:{}},StopInstances:{input:{type:"structure",required:["InstanceIds"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"},Force:{locationName:"force",type:"boolean"}}},output:{type:"structure",members:{StoppingInstances:{shape:"Sm8",locationName:"instancesSet"}}},http:{}},TerminateInstances:{input:{type:"structure",required:["InstanceIds"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"}}},output:{type:"structure",members:{TerminatingInstances:{shape:"Sm8",locationName:"instancesSet"}}},http:{}},UnassignPrivateIpAddresses:{input:{type:"structure",required:["NetworkInterfaceId","PrivateIpAddresses"],members:{NetworkInterfaceId:{locationName:"networkInterfaceId"},PrivateIpAddresses:{shape:"Sm",locationName:"privateIpAddress"}}},http:{}},UnmonitorInstances:{input:{type:"structure",required:["InstanceIds"],members:{DryRun:{locationName:"dryRun",type:"boolean"},InstanceIds:{shape:"S8c",locationName:"InstanceId"}}},output:{type:"structure",members:{InstanceMonitorings:{shape:"Skh",locationName:"instancesSet"}}},http:{}}},shapes:{S5:{type:"structure",members:{AccepterVpcInfo:{shape:"S6",locationName:"accepterVpcInfo"},ExpirationTime:{locationName:"expirationTime",type:"timestamp"},RequesterVpcInfo:{shape:"S6",locationName:"requesterVpcInfo"},Status:{locationName:"status",type:"structure",members:{Code:{locationName:"code"},Message:{locationName:"message"}}},Tags:{shape:"Sb",locationName:"tagSet"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"}}},S6:{type:"structure",members:{CidrBlock:{locationName:"cidrBlock"},OwnerId:{locationName:"ownerId"},VpcId:{locationName:"vpcId"},PeeringOptions:{locationName:"peeringOptions",type:"structure",members:{AllowEgressFromLocalClassicLinkToRemoteVpc:{locationName:"allowEgressFromLocalClassicLinkToRemoteVpc",type:"boolean"},AllowEgressFromLocalVpcToRemoteClassicLink:{locationName:"allowEgressFromLocalVpcToRemoteClassicLink",type:"boolean"}}}}},Sb:{type:"list",member:{locationName:"item",type:"structure",members:{Key:{locationName:"key"},Value:{locationName:"value"}}}},Sk:{type:"list",member:{locationName:"item"}},Sm:{type:"list",member:{locationName:"PrivateIpAddress"}},St:{type:"list",member:{locationName:"groupId"}},Sz:{type:"structure",members:{VolumeId:{locationName:"volumeId"},InstanceId:{locationName:"instanceId"},Device:{locationName:"device"},State:{locationName:"status"},AttachTime:{locationName:"attachTime",type:"timestamp"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"}}},S13:{type:"structure",members:{VpcId:{locationName:"vpcId"},State:{locationName:"state"}}},S16:{type:"list",member:{locationName:"item",type:"structure",members:{IpProtocol:{locationName:"ipProtocol"},FromPort:{locationName:"fromPort",type:"integer"},ToPort:{locationName:"toPort",type:"integer"},UserIdGroupPairs:{locationName:"groups",type:"list",member:{shape:"S19",locationName:"item"}},IpRanges:{locationName:"ipRanges",type:"list",member:{locationName:"item",type:"structure",members:{CidrIp:{locationName:"cidrIp"}}}},PrefixListIds:{locationName:"prefixListIds",type:"list",member:{locationName:"item",type:"structure",members:{PrefixListId:{locationName:"prefixListId"}}}}}}},S19:{type:"structure",members:{UserId:{locationName:"userId"},GroupName:{locationName:"groupName"},GroupId:{locationName:"groupId"},VpcId:{locationName:"vpcId"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"},PeeringStatus:{locationName:"peeringStatus"}}},S1g:{type:"structure",members:{S3:{type:"structure",members:{Bucket:{locationName:"bucket"},Prefix:{locationName:"prefix"},AWSAccessKeyId:{},UploadPolicy:{locationName:"uploadPolicy",type:"blob"},UploadPolicySignature:{locationName:"uploadPolicySignature"}}}}},S1k:{type:"structure",members:{InstanceId:{locationName:"instanceId"},BundleId:{locationName:"bundleId"},State:{locationName:"state"},StartTime:{locationName:"startTime",type:"timestamp"},UpdateTime:{locationName:"updateTime",type:"timestamp"},Storage:{shape:"S1g",locationName:"storage"},Progress:{locationName:"progress"},BundleTaskError:{locationName:"error",type:"structure",members:{Code:{locationName:"code"},Message:{locationName:"message"}}}}},S1v:{type:"list",member:{locationName:"item",type:"structure",members:{ReservedInstancesListingId:{locationName:"reservedInstancesListingId"},ReservedInstancesId:{locationName:"reservedInstancesId"},CreateDate:{locationName:"createDate",type:"timestamp"},UpdateDate:{locationName:"updateDate",type:"timestamp"},Status:{locationName:"status"},StatusMessage:{locationName:"statusMessage"},InstanceCounts:{locationName:"instanceCounts",type:"list",member:{locationName:"item",type:"structure",members:{State:{locationName:"state"},InstanceCount:{locationName:"instanceCount",type:"integer"}}}},PriceSchedules:{locationName:"priceSchedules",type:"list",member:{locationName:"item",type:"structure",members:{Term:{locationName:"term",type:"long"},Price:{locationName:"price",type:"double"},CurrencyCode:{locationName:"currencyCode"},Active:{locationName:"active",type:"boolean"}}}},Tags:{shape:"Sb",locationName:"tagSet"},ClientToken:{locationName:"clientToken"}}}},S27:{type:"list",member:{locationName:"item"}},S2h:{type:"list",member:{locationName:"SpotInstanceRequestId"}},S2v:{type:"structure",members:{CustomerGatewayId:{locationName:"customerGatewayId"},State:{locationName:"state"},Type:{locationName:"type"},IpAddress:{locationName:"ipAddress"},BgpAsn:{locationName:"bgpAsn"},Tags:{shape:"Sb",locationName:"tagSet"}}},S30:{type:"structure",members:{DhcpOptionsId:{locationName:"dhcpOptionsId"},DhcpConfigurations:{locationName:"dhcpConfigurationSet",type:"list",member:{locationName:"item",type:"structure",members:{Key:{locationName:"key"},Values:{locationName:"valueSet",type:"list",member:{shape:"S34",locationName:"item"}}}}},Tags:{shape:"Sb",locationName:"tagSet"}}},S34:{type:"structure",members:{Value:{locationName:"value"}}},S39:{type:"list",member:{shape:"S3a",locationName:"item"}},S3a:{type:"structure",required:["Error"],members:{Error:{locationName:"error",type:"structure",required:["Code","Message"],members:{Code:{locationName:"code"},Message:{locationName:"message"}}},ResourceId:{locationName:"resourceId"}}},S3d:{type:"list",member:{shape:"S3e",locationName:"BlockDeviceMapping"}},S3e:{type:"structure",members:{VirtualName:{locationName:"virtualName"},DeviceName:{locationName:"deviceName"},Ebs:{locationName:"ebs",type:"structure",members:{SnapshotId:{locationName:"snapshotId"},VolumeSize:{locationName:"volumeSize",type:"integer"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"},VolumeType:{locationName:"volumeType"},Iops:{locationName:"iops",type:"integer"},Encrypted:{locationName:"encrypted",type:"boolean"}}},NoDevice:{locationName:"noDevice"}}},S3o:{type:"structure",members:{ExportTaskId:{locationName:"exportTaskId"},Description:{locationName:"description"},State:{locationName:"state"},StatusMessage:{locationName:"statusMessage"},InstanceExportDetails:{locationName:"instanceExport",type:"structure",members:{InstanceId:{locationName:"instanceId"},TargetEnvironment:{locationName:"targetEnvironment"}}},ExportToS3Task:{locationName:"exportToS3",type:"structure",members:{DiskImageFormat:{locationName:"diskImageFormat"},ContainerFormat:{locationName:"containerFormat"},S3Bucket:{locationName:"s3Bucket"},S3Key:{locationName:"s3Key"}}}}},S3u:{type:"structure",members:{InternetGatewayId:{locationName:"internetGatewayId"},Attachments:{locationName:"attachmentSet",type:"list",member:{locationName:"item",type:"structure",members:{VpcId:{locationName:"vpcId"},State:{locationName:"state"}}}},Tags:{shape:"Sb",locationName:"tagSet"}}},S41:{type:"structure",members:{VpcId:{locationName:"vpcId"},SubnetId:{locationName:"subnetId"},NatGatewayId:{locationName:"natGatewayId"},CreateTime:{locationName:"createTime",type:"timestamp"},DeleteTime:{locationName:"deleteTime",type:"timestamp"},NatGatewayAddresses:{locationName:"natGatewayAddressSet",type:"list",member:{locationName:"item",type:"structure",members:{PublicIp:{locationName:"publicIp"},AllocationId:{locationName:"allocationId"},PrivateIp:{locationName:"privateIp"},NetworkInterfaceId:{locationName:"networkInterfaceId"}}}},State:{locationName:"state"},FailureCode:{locationName:"failureCode"},FailureMessage:{locationName:"failureMessage"},ProvisionedBandwidth:{locationName:"provisionedBandwidth",type:"structure",members:{Provisioned:{locationName:"provisioned"},Requested:{locationName:"requested"},RequestTime:{locationName:"requestTime",type:"timestamp"},ProvisionTime:{locationName:"provisionTime",type:"timestamp"},Status:{locationName:"status"}}}}},S48:{type:"structure",members:{NetworkAclId:{locationName:"networkAclId"},VpcId:{locationName:"vpcId"},IsDefault:{locationName:"default",type:"boolean"},Entries:{locationName:"entrySet",type:"list",member:{locationName:"item",type:"structure",members:{RuleNumber:{locationName:"ruleNumber",type:"integer"},Protocol:{locationName:"protocol"},RuleAction:{locationName:"ruleAction"},Egress:{locationName:"egress",type:"boolean"},CidrBlock:{locationName:"cidrBlock"},IcmpTypeCode:{shape:"S4c",locationName:"icmpTypeCode"},PortRange:{shape:"S4d",locationName:"portRange"}}}},Associations:{locationName:"associationSet",type:"list",member:{locationName:"item",type:"structure",members:{NetworkAclAssociationId:{locationName:"networkAclAssociationId"},NetworkAclId:{locationName:"networkAclId"},SubnetId:{locationName:"subnetId"}}}},Tags:{shape:"Sb",locationName:"tagSet"}}},S4c:{type:"structure",members:{Type:{locationName:"type",type:"integer"},Code:{locationName:"code",type:"integer"}}},S4d:{type:"structure",members:{From:{locationName:"from",type:"integer"},To:{locationName:"to",type:"integer"}}},S4i:{type:"list",member:{locationName:"SecurityGroupId"}},S4j:{type:"list",member:{locationName:"item",type:"structure",required:["PrivateIpAddress"],members:{PrivateIpAddress:{locationName:"privateIpAddress"},Primary:{locationName:"primary",type:"boolean"}}}},S4m:{type:"structure",members:{NetworkInterfaceId:{locationName:"networkInterfaceId"},SubnetId:{locationName:"subnetId"},VpcId:{locationName:"vpcId"},AvailabilityZone:{locationName:"availabilityZone"},Description:{locationName:"description"},OwnerId:{locationName:"ownerId"},RequesterId:{locationName:"requesterId"},RequesterManaged:{locationName:"requesterManaged",type:"boolean"},Status:{locationName:"status"},MacAddress:{locationName:"macAddress"},PrivateIpAddress:{locationName:"privateIpAddress"},PrivateDnsName:{locationName:"privateDnsName"},SourceDestCheck:{locationName:"sourceDestCheck",type:"boolean"},Groups:{shape:"S4o",locationName:"groupSet"},Attachment:{shape:"S4q",locationName:"attachment"},Association:{shape:"S4r",locationName:"association"},TagSet:{shape:"Sb",locationName:"tagSet"},PrivateIpAddresses:{locationName:"privateIpAddressesSet",type:"list",member:{locationName:"item",type:"structure",members:{PrivateIpAddress:{locationName:"privateIpAddress"},PrivateDnsName:{locationName:"privateDnsName"},Primary:{locationName:"primary",type:"boolean"},Association:{shape:"S4r",locationName:"association"}}}},InterfaceType:{locationName:"interfaceType"}}},S4o:{type:"list",member:{locationName:"item",type:"structure",members:{GroupName:{locationName:"groupName"},GroupId:{locationName:"groupId"}}}},S4q:{type:"structure",members:{AttachmentId:{locationName:"attachmentId"},InstanceId:{locationName:"instanceId"},InstanceOwnerId:{locationName:"instanceOwnerId"},DeviceIndex:{locationName:"deviceIndex",type:"integer"},Status:{locationName:"status"},AttachTime:{locationName:"attachTime",type:"timestamp"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"}}},S4r:{type:"structure",members:{PublicIp:{locationName:"publicIp"},PublicDnsName:{locationName:"publicDnsName"},IpOwnerId:{locationName:"ipOwnerId"},AllocationId:{locationName:"allocationId"},AssociationId:{locationName:"associationId"}}},S55:{type:"structure",members:{RouteTableId:{locationName:"routeTableId"},VpcId:{locationName:"vpcId"},Routes:{locationName:"routeSet",type:"list",member:{locationName:"item",type:"structure",members:{DestinationCidrBlock:{locationName:"destinationCidrBlock"},DestinationPrefixListId:{locationName:"destinationPrefixListId"},GatewayId:{locationName:"gatewayId"},InstanceId:{locationName:"instanceId"},InstanceOwnerId:{locationName:"instanceOwnerId"},NetworkInterfaceId:{locationName:"networkInterfaceId"},VpcPeeringConnectionId:{locationName:"vpcPeeringConnectionId"},NatGatewayId:{locationName:"natGatewayId"},State:{locationName:"state"},Origin:{locationName:"origin"}}}},Associations:{locationName:"associationSet",type:"list",member:{locationName:"item",type:"structure",members:{RouteTableAssociationId:{locationName:"routeTableAssociationId"},RouteTableId:{locationName:"routeTableId"},SubnetId:{locationName:"subnetId"},Main:{locationName:"main",type:"boolean"}}}},Tags:{shape:"Sb",locationName:"tagSet"},PropagatingVgws:{locationName:"propagatingVgwSet",type:"list",member:{locationName:"item",type:"structure",members:{GatewayId:{locationName:"gatewayId"}}}}}},S5h:{type:"structure",members:{SnapshotId:{locationName:"snapshotId"},VolumeId:{locationName:"volumeId"},State:{locationName:"status"},StateMessage:{locationName:"statusMessage"},StartTime:{locationName:"startTime",type:"timestamp"},Progress:{locationName:"progress"},OwnerId:{locationName:"ownerId"},Description:{locationName:"description"},VolumeSize:{locationName:"volumeSize",type:"integer"},OwnerAlias:{locationName:"ownerAlias"},Tags:{shape:"Sb",locationName:"tagSet"},Encrypted:{locationName:"encrypted",type:"boolean"},KmsKeyId:{locationName:"kmsKeyId"},DataEncryptionKeyId:{locationName:"dataEncryptionKeyId"}}},S5l:{type:"structure",members:{OwnerId:{locationName:"ownerId"},Bucket:{locationName:"bucket"},Prefix:{locationName:"prefix"},State:{locationName:"state"},Fault:{shape:"S5n",locationName:"fault"}}},S5n:{type:"structure",members:{Code:{locationName:"code"},Message:{locationName:"message"}}},S5q:{type:"structure",members:{SubnetId:{locationName:"subnetId"},State:{locationName:"state"},VpcId:{locationName:"vpcId"},CidrBlock:{locationName:"cidrBlock"},AvailableIpAddressCount:{locationName:"availableIpAddressCount",type:"integer"},AvailabilityZone:{locationName:"availabilityZone"},DefaultForAz:{locationName:"defaultForAz",type:"boolean"},MapPublicIpOnLaunch:{locationName:"mapPublicIpOnLaunch",type:"boolean"},Tags:{shape:"Sb",locationName:"tagSet"}}},S5t:{type:"list",member:{}},S5v:{type:"structure",members:{VolumeId:{locationName:"volumeId"},Size:{locationName:"size",type:"integer"},SnapshotId:{locationName:"snapshotId"},AvailabilityZone:{locationName:"availabilityZone"},State:{locationName:"status"},CreateTime:{locationName:"createTime",type:"timestamp"},Attachments:{locationName:"attachmentSet",type:"list",member:{shape:"Sz",locationName:"item"}},Tags:{shape:"Sb",locationName:"tagSet"}, +VolumeType:{locationName:"volumeType"},Iops:{locationName:"iops",type:"integer"},Encrypted:{locationName:"encrypted",type:"boolean"},KmsKeyId:{locationName:"kmsKeyId"}}},S61:{type:"structure",members:{VpcId:{locationName:"vpcId"},State:{locationName:"state"},CidrBlock:{locationName:"cidrBlock"},DhcpOptionsId:{locationName:"dhcpOptionsId"},Tags:{shape:"Sb",locationName:"tagSet"},InstanceTenancy:{locationName:"instanceTenancy"},IsDefault:{locationName:"isDefault",type:"boolean"}}},S65:{type:"structure",members:{VpcEndpointId:{locationName:"vpcEndpointId"},VpcId:{locationName:"vpcId"},ServiceName:{locationName:"serviceName"},State:{locationName:"state"},PolicyDocument:{locationName:"policyDocument"},RouteTableIds:{shape:"S27",locationName:"routeTableIdSet"},CreationTimestamp:{locationName:"creationTimestamp",type:"timestamp"}}},S6c:{type:"structure",members:{VpnConnectionId:{locationName:"vpnConnectionId"},State:{locationName:"state"},CustomerGatewayConfiguration:{locationName:"customerGatewayConfiguration"},Type:{locationName:"type"},CustomerGatewayId:{locationName:"customerGatewayId"},VpnGatewayId:{locationName:"vpnGatewayId"},Tags:{shape:"Sb",locationName:"tagSet"},VgwTelemetry:{locationName:"vgwTelemetry",type:"list",member:{locationName:"item",type:"structure",members:{OutsideIpAddress:{locationName:"outsideIpAddress"},Status:{locationName:"status"},LastStatusChange:{locationName:"lastStatusChange",type:"timestamp"},StatusMessage:{locationName:"statusMessage"},AcceptedRouteCount:{locationName:"acceptedRouteCount",type:"integer"}}}},Options:{locationName:"options",type:"structure",members:{StaticRoutesOnly:{locationName:"staticRoutesOnly",type:"boolean"}}},Routes:{locationName:"routes",type:"list",member:{locationName:"item",type:"structure",members:{DestinationCidrBlock:{locationName:"destinationCidrBlock"},Source:{locationName:"source"},State:{locationName:"state"}}}}}},S6o:{type:"structure",members:{VpnGatewayId:{locationName:"vpnGatewayId"},State:{locationName:"state"},Type:{locationName:"type"},AvailabilityZone:{locationName:"availabilityZone"},VpcAttachments:{locationName:"attachments",type:"list",member:{shape:"S13",locationName:"item"}},Tags:{shape:"Sb",locationName:"tagSet"}}},S7t:{type:"list",member:{locationName:"Filter",type:"structure",members:{Name:{},Values:{shape:"S27",locationName:"Value"}}}},S8c:{type:"list",member:{locationName:"InstanceId"}},S8k:{type:"structure",required:["ConversionTaskId","State"],members:{ConversionTaskId:{locationName:"conversionTaskId"},ExpirationTime:{locationName:"expirationTime"},ImportInstance:{locationName:"importInstance",type:"structure",required:["Volumes"],members:{Volumes:{locationName:"volumes",type:"list",member:{locationName:"item",type:"structure",required:["BytesConverted","AvailabilityZone","Image","Volume","Status"],members:{BytesConverted:{locationName:"bytesConverted",type:"long"},AvailabilityZone:{locationName:"availabilityZone"},Image:{shape:"S8o",locationName:"image"},Volume:{shape:"S8p",locationName:"volume"},Status:{locationName:"status"},StatusMessage:{locationName:"statusMessage"},Description:{locationName:"description"}}}},InstanceId:{locationName:"instanceId"},Platform:{locationName:"platform"},Description:{locationName:"description"}}},ImportVolume:{locationName:"importVolume",type:"structure",required:["BytesConverted","AvailabilityZone","Image","Volume"],members:{BytesConverted:{locationName:"bytesConverted",type:"long"},AvailabilityZone:{locationName:"availabilityZone"},Description:{locationName:"description"},Image:{shape:"S8o",locationName:"image"},Volume:{shape:"S8p",locationName:"volume"}}},State:{locationName:"state"},StatusMessage:{locationName:"statusMessage"},Tags:{shape:"Sb",locationName:"tagSet"}}},S8o:{type:"structure",required:["Format","Size","ImportManifestUrl"],members:{Format:{locationName:"format"},Size:{locationName:"size",type:"long"},ImportManifestUrl:{locationName:"importManifestUrl"},Checksum:{locationName:"checksum"}}},S8p:{type:"structure",required:["Id"],members:{Size:{locationName:"size",type:"long"},Id:{locationName:"id"}}},S9a:{type:"list",member:{locationName:"item"}},S9s:{type:"list",member:{locationName:"item",type:"structure",members:{UserId:{locationName:"userId"},Group:{locationName:"group"}}}},S9v:{type:"list",member:{locationName:"item",type:"structure",members:{ProductCodeId:{locationName:"productCode"},ProductCodeType:{locationName:"type"}}}},S9y:{type:"list",member:{shape:"S3e",locationName:"item"}},Sa1:{type:"list",member:{locationName:"Owner"}},Sa9:{type:"structure",members:{Code:{locationName:"code"},Message:{locationName:"message"}}},Sae:{type:"list",member:{locationName:"ImportTaskId"}},Sai:{type:"list",member:{locationName:"item",type:"structure",members:{DiskImageSize:{locationName:"diskImageSize",type:"double"},Description:{locationName:"description"},Format:{locationName:"format"},Url:{locationName:"url"},UserBucket:{shape:"Sak",locationName:"userBucket"},DeviceName:{locationName:"deviceName"},SnapshotId:{locationName:"snapshotId"},Progress:{locationName:"progress"},StatusMessage:{locationName:"statusMessage"},Status:{locationName:"status"}}}},Sak:{type:"structure",members:{S3Bucket:{locationName:"s3Bucket"},S3Key:{locationName:"s3Key"}}},Sap:{type:"structure",members:{DiskImageSize:{locationName:"diskImageSize",type:"double"},Description:{locationName:"description"},Format:{locationName:"format"},Url:{locationName:"url"},UserBucket:{shape:"Sak",locationName:"userBucket"},SnapshotId:{locationName:"snapshotId"},Progress:{locationName:"progress"},StatusMessage:{locationName:"statusMessage"},Status:{locationName:"status"}}},Sat:{type:"structure",members:{Value:{locationName:"value",type:"boolean"}}},Sau:{type:"list",member:{locationName:"item",type:"structure",members:{DeviceName:{locationName:"deviceName"},Ebs:{locationName:"ebs",type:"structure",members:{VolumeId:{locationName:"volumeId"},Status:{locationName:"status"},AttachTime:{locationName:"attachTime",type:"timestamp"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"}}}}}},Sb4:{type:"structure",members:{Code:{locationName:"code",type:"integer"},Name:{locationName:"name"}}},Sb6:{type:"structure",members:{Status:{locationName:"status"},Details:{locationName:"details",type:"list",member:{locationName:"item",type:"structure",members:{Name:{locationName:"name"},Status:{locationName:"status"},ImpairedSince:{locationName:"impairedSince",type:"timestamp"}}}}}},Sbf:{type:"structure",members:{ReservationId:{locationName:"reservationId"},OwnerId:{locationName:"ownerId"},RequesterId:{locationName:"requesterId"},Groups:{shape:"S4o",locationName:"groupSet"},Instances:{locationName:"instancesSet",type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},ImageId:{locationName:"imageId"},State:{shape:"Sb4",locationName:"instanceState"},PrivateDnsName:{locationName:"privateDnsName"},PublicDnsName:{locationName:"dnsName"},StateTransitionReason:{locationName:"reason"},KeyName:{locationName:"keyName"},AmiLaunchIndex:{locationName:"amiLaunchIndex",type:"integer"},ProductCodes:{shape:"S9v",locationName:"productCodes"},InstanceType:{locationName:"instanceType"},LaunchTime:{locationName:"launchTime",type:"timestamp"},Placement:{shape:"Sbj",locationName:"placement"},KernelId:{locationName:"kernelId"},RamdiskId:{locationName:"ramdiskId"},Platform:{locationName:"platform"},Monitoring:{shape:"Sbk",locationName:"monitoring"},SubnetId:{locationName:"subnetId"},VpcId:{locationName:"vpcId"},PrivateIpAddress:{locationName:"privateIpAddress"},PublicIpAddress:{locationName:"ipAddress"},StateReason:{shape:"Sa9",locationName:"stateReason"},Architecture:{locationName:"architecture"},RootDeviceType:{locationName:"rootDeviceType"},RootDeviceName:{locationName:"rootDeviceName"},BlockDeviceMappings:{shape:"Sau",locationName:"blockDeviceMapping"},VirtualizationType:{locationName:"virtualizationType"},InstanceLifecycle:{locationName:"instanceLifecycle"},SpotInstanceRequestId:{locationName:"spotInstanceRequestId"},ClientToken:{locationName:"clientToken"},Tags:{shape:"Sb",locationName:"tagSet"},SecurityGroups:{shape:"S4o",locationName:"groupSet"},SourceDestCheck:{locationName:"sourceDestCheck",type:"boolean"},Hypervisor:{locationName:"hypervisor"},NetworkInterfaces:{locationName:"networkInterfaceSet",type:"list",member:{locationName:"item",type:"structure",members:{NetworkInterfaceId:{locationName:"networkInterfaceId"},SubnetId:{locationName:"subnetId"},VpcId:{locationName:"vpcId"},Description:{locationName:"description"},OwnerId:{locationName:"ownerId"},Status:{locationName:"status"},MacAddress:{locationName:"macAddress"},PrivateIpAddress:{locationName:"privateIpAddress"},PrivateDnsName:{locationName:"privateDnsName"},SourceDestCheck:{locationName:"sourceDestCheck",type:"boolean"},Groups:{shape:"S4o",locationName:"groupSet"},Attachment:{locationName:"attachment",type:"structure",members:{AttachmentId:{locationName:"attachmentId"},DeviceIndex:{locationName:"deviceIndex",type:"integer"},Status:{locationName:"status"},AttachTime:{locationName:"attachTime",type:"timestamp"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"}}},Association:{shape:"Sbq",locationName:"association"},PrivateIpAddresses:{locationName:"privateIpAddressesSet",type:"list",member:{locationName:"item",type:"structure",members:{PrivateIpAddress:{locationName:"privateIpAddress"},PrivateDnsName:{locationName:"privateDnsName"},Primary:{locationName:"primary",type:"boolean"},Association:{shape:"Sbq",locationName:"association"}}}}}}},IamInstanceProfile:{locationName:"iamInstanceProfile",type:"structure",members:{Arn:{locationName:"arn"},Id:{locationName:"id"}}},EbsOptimized:{locationName:"ebsOptimized",type:"boolean"},SriovNetSupport:{locationName:"sriovNetSupport"}}}}}},Sbj:{type:"structure",members:{AvailabilityZone:{locationName:"availabilityZone"},GroupName:{locationName:"groupName"},Tenancy:{locationName:"tenancy"},HostId:{locationName:"hostId"},Affinity:{locationName:"affinity"}}},Sbk:{type:"structure",members:{State:{locationName:"state"}}},Sbq:{type:"structure",members:{PublicIp:{locationName:"publicIp"},PublicDnsName:{locationName:"publicDnsName"},IpOwnerId:{locationName:"ipOwnerId"}}},Sd0:{type:"list",member:{locationName:"ReservedInstancesId"}},Sd8:{type:"list",member:{locationName:"item",type:"structure",members:{Frequency:{locationName:"frequency"},Amount:{locationName:"amount",type:"double"}}}},Sdm:{type:"structure",members:{AvailabilityZone:{locationName:"availabilityZone"},Platform:{locationName:"platform"},InstanceCount:{locationName:"instanceCount",type:"integer"},InstanceType:{locationName:"instanceType"}}},Se4:{type:"structure",members:{Frequency:{locationName:"frequency"},Interval:{locationName:"interval",type:"integer"},OccurrenceDaySet:{locationName:"occurrenceDaySet",type:"list",member:{locationName:"item",type:"integer"}},OccurrenceRelativeToEnd:{locationName:"occurrenceRelativeToEnd",type:"boolean"},OccurrenceUnit:{locationName:"occurrenceUnit"}}},Seb:{type:"structure",members:{ScheduledInstanceId:{locationName:"scheduledInstanceId"},InstanceType:{locationName:"instanceType"},Platform:{locationName:"platform"},NetworkPlatform:{locationName:"networkPlatform"},AvailabilityZone:{locationName:"availabilityZone"},SlotDurationInHours:{locationName:"slotDurationInHours",type:"integer"},Recurrence:{shape:"Se4",locationName:"recurrence"},PreviousSlotEndTime:{locationName:"previousSlotEndTime",type:"timestamp"},NextSlotStartTime:{locationName:"nextSlotStartTime",type:"timestamp"},HourlyPrice:{locationName:"hourlyPrice"},TotalScheduledInstanceHours:{locationName:"totalScheduledInstanceHours",type:"integer"},InstanceCount:{locationName:"instanceCount",type:"integer"},TermStartDate:{locationName:"termStartDate",type:"timestamp"},TermEndDate:{locationName:"termEndDate",type:"timestamp"},CreateDate:{locationName:"createDate",type:"timestamp"}}},Sei:{type:"list",member:{locationName:"GroupName"}},Sep:{type:"list",member:{locationName:"item",type:"structure",members:{UserId:{locationName:"userId"},Group:{locationName:"group"}}}},Sfc:{type:"structure",required:["SpotPrice","TargetCapacity","IamFleetRole","LaunchSpecifications"],members:{ClientToken:{locationName:"clientToken"},SpotPrice:{locationName:"spotPrice"},TargetCapacity:{locationName:"targetCapacity",type:"integer"},ValidFrom:{locationName:"validFrom",type:"timestamp"},ValidUntil:{locationName:"validUntil",type:"timestamp"},TerminateInstancesWithExpiration:{locationName:"terminateInstancesWithExpiration",type:"boolean"},IamFleetRole:{locationName:"iamFleetRole"},LaunchSpecifications:{locationName:"launchSpecifications",type:"list",member:{locationName:"item",type:"structure",members:{ImageId:{locationName:"imageId"},KeyName:{locationName:"keyName"},SecurityGroups:{shape:"S4o",locationName:"groupSet"},UserData:{locationName:"userData"},AddressingType:{locationName:"addressingType"},InstanceType:{locationName:"instanceType"},Placement:{shape:"Sff",locationName:"placement"},KernelId:{locationName:"kernelId"},RamdiskId:{locationName:"ramdiskId"},BlockDeviceMappings:{shape:"S9y",locationName:"blockDeviceMapping"},Monitoring:{locationName:"monitoring",type:"structure",members:{Enabled:{locationName:"enabled",type:"boolean"}}},SubnetId:{locationName:"subnetId"},NetworkInterfaces:{shape:"Sfh",locationName:"networkInterfaceSet"},IamInstanceProfile:{shape:"Sfj",locationName:"iamInstanceProfile"},EbsOptimized:{locationName:"ebsOptimized",type:"boolean"},WeightedCapacity:{locationName:"weightedCapacity",type:"double"},SpotPrice:{locationName:"spotPrice"}}}},ExcessCapacityTerminationPolicy:{locationName:"excessCapacityTerminationPolicy"},AllocationStrategy:{locationName:"allocationStrategy"},FulfilledCapacity:{locationName:"fulfilledCapacity",type:"double"},Type:{locationName:"type"}}},Sff:{type:"structure",members:{AvailabilityZone:{locationName:"availabilityZone"},GroupName:{locationName:"groupName"}}},Sfh:{type:"list",member:{locationName:"item",type:"structure",members:{NetworkInterfaceId:{locationName:"networkInterfaceId"},DeviceIndex:{locationName:"deviceIndex",type:"integer"},SubnetId:{locationName:"subnetId"},Description:{locationName:"description"},PrivateIpAddress:{locationName:"privateIpAddress"},Groups:{shape:"S4i",locationName:"SecurityGroupId"},DeleteOnTermination:{locationName:"deleteOnTermination",type:"boolean"},PrivateIpAddresses:{shape:"S4j",locationName:"privateIpAddressesSet",queryName:"PrivateIpAddresses"},SecondaryPrivateIpAddressCount:{locationName:"secondaryPrivateIpAddressCount",type:"integer"},AssociatePublicIpAddress:{locationName:"associatePublicIpAddress",type:"boolean"}}}},Sfj:{type:"structure",members:{Arn:{locationName:"arn"},Name:{locationName:"name"}}},Sfp:{type:"list",member:{locationName:"item",type:"structure",members:{SpotInstanceRequestId:{locationName:"spotInstanceRequestId"},SpotPrice:{locationName:"spotPrice"},Type:{locationName:"type"},State:{locationName:"state"},Fault:{shape:"S5n",locationName:"fault"},Status:{locationName:"status",type:"structure",members:{Code:{locationName:"code"},UpdateTime:{locationName:"updateTime",type:"timestamp"},Message:{locationName:"message"}}},ValidFrom:{locationName:"validFrom",type:"timestamp"},ValidUntil:{locationName:"validUntil",type:"timestamp"},LaunchGroup:{locationName:"launchGroup"},AvailabilityZoneGroup:{locationName:"availabilityZoneGroup"},LaunchSpecification:{locationName:"launchSpecification",type:"structure",members:{ImageId:{locationName:"imageId"},KeyName:{locationName:"keyName"},SecurityGroups:{shape:"S4o",locationName:"groupSet"},UserData:{locationName:"userData"},AddressingType:{locationName:"addressingType"},InstanceType:{locationName:"instanceType"},Placement:{shape:"Sff",locationName:"placement"},KernelId:{locationName:"kernelId"},RamdiskId:{locationName:"ramdiskId"},BlockDeviceMappings:{shape:"S9y",locationName:"blockDeviceMapping"},SubnetId:{locationName:"subnetId"},NetworkInterfaces:{shape:"Sfh",locationName:"networkInterfaceSet"},IamInstanceProfile:{shape:"Sfj",locationName:"iamInstanceProfile"},EbsOptimized:{locationName:"ebsOptimized",type:"boolean"},Monitoring:{shape:"Sfv",locationName:"monitoring"}}},InstanceId:{locationName:"instanceId"},CreateTime:{locationName:"createTime",type:"timestamp"},ProductDescription:{locationName:"productDescription"},BlockDurationMinutes:{locationName:"blockDurationMinutes",type:"integer"},ActualBlockHourlyPrice:{locationName:"actualBlockHourlyPrice"},Tags:{shape:"Sb",locationName:"tagSet"},LaunchedAvailabilityZone:{locationName:"launchedAvailabilityZone"}}}},Sfv:{type:"structure",required:["Enabled"],members:{Enabled:{locationName:"enabled",type:"boolean"}}},Sg8:{type:"list",member:{locationName:"item",type:"structure",members:{FromPort:{locationName:"fromPort",type:"integer"},IpProtocol:{locationName:"ipProtocol"},IpRanges:{locationName:"ipRanges",type:"list",member:{locationName:"item"}},PrefixListIds:{locationName:"prefixListIds",type:"list",member:{locationName:"item"}},ToPort:{locationName:"toPort",type:"integer"},UserIdGroupPairs:{locationName:"groups",type:"list",member:{shape:"S19",locationName:"item"}}}}},Sgq:{type:"list",member:{locationName:"VolumeId"}},Sha:{type:"list",member:{locationName:"VpcId"}},Siu:{type:"structure",members:{S3Bucket:{},S3Key:{}}},Siv:{type:"structure",members:{UploadStart:{type:"timestamp"},UploadEnd:{type:"timestamp"},UploadSize:{type:"double"},Comment:{}}},Siz:{type:"list",member:{locationName:"SecurityGroup"}},Sj4:{type:"structure",required:["Format","Bytes","ImportManifestUrl"],members:{Format:{locationName:"format"},Bytes:{locationName:"bytes",type:"long"},ImportManifestUrl:{locationName:"importManifestUrl"}}},Sj5:{type:"structure",required:["Size"],members:{Size:{locationName:"size",type:"long"}}},Sjg:{type:"list",member:{shape:"S3a",locationName:"item"}},Sjk:{type:"list",member:{locationName:"UserId"}},Skc:{type:"structure",required:["AllowEgressFromLocalClassicLinkToRemoteVpc","AllowEgressFromLocalVpcToRemoteClassicLink"],members:{AllowEgressFromLocalClassicLinkToRemoteVpc:{type:"boolean"},AllowEgressFromLocalVpcToRemoteClassicLink:{type:"boolean"}}},Ske:{type:"structure",members:{AllowEgressFromLocalClassicLinkToRemoteVpc:{locationName:"allowEgressFromLocalClassicLinkToRemoteVpc",type:"boolean"},AllowEgressFromLocalVpcToRemoteClassicLink:{locationName:"allowEgressFromLocalVpcToRemoteClassicLink",type:"boolean"}}},Skh:{type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},Monitoring:{shape:"Sbk",locationName:"monitoring"}}}},Slt:{type:"list",member:{locationName:"SecurityGroupId"}},Sm8:{type:"list",member:{locationName:"item",type:"structure",members:{InstanceId:{locationName:"instanceId"},CurrentState:{shape:"Sb4",locationName:"currentState"},PreviousState:{shape:"Sb4",locationName:"previousState"}}}}},paginators:{DescribeAccountAttributes:{result_key:"AccountAttributes"},DescribeAddresses:{result_key:"Addresses"},DescribeAvailabilityZones:{result_key:"AvailabilityZones"},DescribeBundleTasks:{result_key:"BundleTasks"},DescribeConversionTasks:{result_key:"ConversionTasks"},DescribeCustomerGateways:{result_key:"CustomerGateways"},DescribeDhcpOptions:{result_key:"DhcpOptions"},DescribeExportTasks:{result_key:"ExportTasks"},DescribeImages:{result_key:"Images"},DescribeInstanceStatus:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"InstanceStatuses"},DescribeInstances:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Reservations"},DescribeInternetGateways:{result_key:"InternetGateways"},DescribeKeyPairs:{result_key:"KeyPairs"},DescribeNetworkAcls:{result_key:"NetworkAcls"},DescribeNetworkInterfaces:{result_key:"NetworkInterfaces"},DescribePlacementGroups:{result_key:"PlacementGroups"},DescribeRegions:{result_key:"Regions"},DescribeReservedInstances:{result_key:"ReservedInstances"},DescribeReservedInstancesListings:{result_key:"ReservedInstancesListings"},DescribeReservedInstancesOfferings:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"ReservedInstancesOfferings"},DescribeReservedInstancesModifications:{input_token:"NextToken",output_token:"NextToken",result_key:"ReservedInstancesModifications"},DescribeRouteTables:{result_key:"RouteTables"},DescribeSecurityGroups:{result_key:"SecurityGroups"},DescribeSnapshots:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Snapshots"},DescribeSpotInstanceRequests:{result_key:"SpotInstanceRequests"},DescribeSpotFleetRequests:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"SpotFleetRequestConfigs"},DescribeSpotPriceHistory:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"SpotPriceHistory"},DescribeSubnets:{result_key:"Subnets"},DescribeTags:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Tags"},DescribeVolumeStatus:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"VolumeStatuses"},DescribeVolumes:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Volumes"},DescribeVpcs:{result_key:"Vpcs"},DescribeVpcPeeringConnections:{result_key:"VpcPeeringConnections"},DescribeVpnConnections:{result_key:"VpnConnections"},DescribeVpnGateways:{result_key:"VpnGateways"}},waiters:{InstanceExists:{delay:5,maxAttempts:40,operation:"DescribeInstances",acceptors:[{matcher:"path",expected:!0,argument:"length(Reservations[]) > `0`",state:"success"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},BundleTaskComplete:{delay:15,operation:"DescribeBundleTasks",maxAttempts:40,acceptors:[{expected:"complete",matcher:"pathAll",state:"success",argument:"BundleTasks[].State"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"BundleTasks[].State"}]},ConversionTaskCancelled:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"cancelled",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"}]},ConversionTaskCompleted:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"},{expected:"cancelled",matcher:"pathAny",state:"failure",argument:"ConversionTasks[].State"},{expected:"cancelling",matcher:"pathAny",state:"failure",argument:"ConversionTasks[].State"}]},ConversionTaskDeleted:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"}]},CustomerGatewayAvailable:{delay:15,operation:"DescribeCustomerGateways",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"CustomerGateways[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"CustomerGateways[].State"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"CustomerGateways[].State"}]},ExportTaskCancelled:{delay:15,operation:"DescribeExportTasks",maxAttempts:40,acceptors:[{expected:"cancelled",matcher:"pathAll",state:"success",argument:"ExportTasks[].State"}]},ExportTaskCompleted:{delay:15,operation:"DescribeExportTasks",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"ExportTasks[].State"}]},ImageExists:{operation:"DescribeImages",maxAttempts:40,delay:15,acceptors:[{matcher:"path",expected:!0,argument:"length(Images[]) > `0`",state:"success"},{matcher:"error",expected:"InvalidAMIID.NotFound",state:"retry"}]},ImageAvailable:{operation:"DescribeImages",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"Images[].State",expected:"available"},{state:"failure",matcher:"pathAny",argument:"Images[].State",expected:"failed"}]},InstanceRunning:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"running",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"shutting-down",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},InstanceStatusOk:{operation:"DescribeInstanceStatus",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"InstanceStatuses[].InstanceStatus.Status",expected:"ok"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"}]},KeyPairExists:{operation:"DescribeKeyPairs",delay:5,maxAttempts:6,acceptors:[{expected:!0,matcher:"pathAll",state:"success",argument:"length(KeyPairs[].KeyName) > `0`"},{expected:"InvalidKeyPair.NotFound",matcher:"error",state:"retry"}]},NatGatewayAvailable:{operation:"DescribeNatGateways",delay:15,maxAttempts:40,acceptors:[{state:"success",matcher:"pathAll",argument:"NatGateways[].State",expected:"available"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"failed"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"deleting"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"deleted"},{state:"retry",matcher:"error",expected:"NatGatewayNotFound"}]},NetworkInterfaceAvailable:{operation:"DescribeNetworkInterfaces",delay:20,maxAttempts:10,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"NetworkInterfaces[].Status"},{expected:"InvalidNetworkInterfaceID.NotFound",matcher:"error",state:"failure"}]},PasswordDataAvailable:{operation:"GetPasswordData",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"path",argument:"length(PasswordData) > `0`",expected:!0}]},SnapshotCompleted:{delay:15,operation:"DescribeSnapshots",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"Snapshots[].State"}]},SpotInstanceRequestFulfilled:{operation:"DescribeSpotInstanceRequests",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"SpotInstanceRequests[].Status.Code",expected:"fulfilled"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"schedule-expired"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"canceled-before-fulfillment"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"bad-parameters"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"system-error"}]},SubnetAvailable:{delay:15,operation:"DescribeSubnets",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Subnets[].State"}]},SystemStatusOk:{operation:"DescribeInstanceStatus",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"InstanceStatuses[].SystemStatus.Status",expected:"ok"}]},VolumeAvailable:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Volumes[].State"}]},VolumeDeleted:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{matcher:"error",expected:"InvalidVolume.NotFound",state:"success"}]},VolumeInUse:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"in-use",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Volumes[].State"}]},VpcAvailable:{delay:15,operation:"DescribeVpcs",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Vpcs[].State"}]},VpnConnectionAvailable:{delay:15,operation:"DescribeVpnConnections",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"VpnConnections[].State"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"}]},VpnConnectionDeleted:{delay:15,operation:"DescribeVpnConnections",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"VpnConnections[].State"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"}]},VpcPeeringConnectionExists:{delay:15,operation:"DescribeVpcPeeringConnections",maxAttempts:40,acceptors:[{matcher:"status",expected:200,state:"success"},{matcher:"error",expected:"InvalidVpcPeeringConnectionID.NotFound",state:"retry"}]}}},a.apiLoader.services.ecr={},a.ECR=a.Service.defineService("ecr",["2015-09-21"]),a.apiLoader.services.ecr["2015-09-21"]={version:"2.0",metadata:{apiVersion:"2015-09-21",endpointPrefix:"ecr",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon ECR",serviceFullName:"Amazon EC2 Container Registry",signatureVersion:"v4",targetPrefix:"AmazonEC2ContainerRegistry_V20150921"},operations:{BatchCheckLayerAvailability:{input:{type:"structure",required:["repositoryName","layerDigests"],members:{registryId:{},repositoryName:{},layerDigests:{type:"list",member:{}}}},output:{type:"structure",members:{layers:{type:"list",member:{type:"structure",members:{layerDigest:{},layerAvailability:{},layerSize:{type:"long"}}}},failures:{type:"list",member:{type:"structure",members:{layerDigest:{},failureCode:{},failureReason:{}}}}}},http:{}},BatchDeleteImage:{input:{type:"structure",required:["repositoryName","imageIds"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Sh"}}},output:{type:"structure",members:{imageIds:{shape:"Sh"},failures:{shape:"Sm"}}},http:{}},BatchGetImage:{input:{type:"structure",required:["repositoryName","imageIds"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Sh"}}},output:{type:"structure",members:{images:{type:"list",member:{shape:"St"}},failures:{shape:"Sm"}}},http:{}},CompleteLayerUpload:{input:{type:"structure",required:["repositoryName","uploadId","layerDigests"],members:{registryId:{},repositoryName:{},uploadId:{},layerDigests:{type:"list",member:{}}}},output:{type:"structure",members:{registryId:{},repositoryName:{},uploadId:{},layerDigest:{}}},http:{}},CreateRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{repository:{shape:"S11"}}},http:{}},DeleteRepository:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},force:{type:"boolean"}}},output:{type:"structure",members:{repository:{shape:"S11"}}},http:{}},DeleteRepositoryPolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}},http:{}},DescribeRepositories:{input:{type:"structure",members:{registryId:{},repositoryNames:{type:"list",member:{} +},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{repositories:{type:"list",member:{shape:"S11"}},nextToken:{}}},http:{}},GetAuthorizationToken:{input:{type:"structure",members:{registryIds:{type:"list",member:{}}}},output:{type:"structure",members:{authorizationData:{type:"list",member:{type:"structure",members:{authorizationToken:{},expiresAt:{type:"timestamp"},proxyEndpoint:{}}}}}},http:{}},GetDownloadUrlForLayer:{input:{type:"structure",required:["repositoryName","layerDigest"],members:{registryId:{},repositoryName:{},layerDigest:{}}},output:{type:"structure",members:{downloadUrl:{},layerDigest:{}}},http:{}},GetRepositoryPolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}},http:{}},InitiateLayerUpload:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{uploadId:{},partSize:{type:"long"}}},http:{}},ListImages:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{imageIds:{shape:"Sh"},nextToken:{}}},http:{}},PutImage:{input:{type:"structure",required:["repositoryName","imageManifest"],members:{registryId:{},repositoryName:{},imageManifest:{}}},output:{type:"structure",members:{image:{shape:"St"}}},http:{}},SetRepositoryPolicy:{input:{type:"structure",required:["repositoryName","policyText"],members:{registryId:{},repositoryName:{},policyText:{},force:{type:"boolean"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}},http:{}},UploadLayerPart:{input:{type:"structure",required:["repositoryName","uploadId","partFirstByte","partLastByte","layerPartBlob"],members:{registryId:{},repositoryName:{},uploadId:{},partFirstByte:{type:"long"},partLastByte:{type:"long"},layerPartBlob:{type:"blob"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},uploadId:{},lastByteReceived:{type:"long"}}},http:{}}},shapes:{Sh:{type:"list",member:{shape:"Si"}},Si:{type:"structure",members:{imageDigest:{},imageTag:{}}},Sm:{type:"list",member:{type:"structure",members:{imageId:{shape:"Si"},failureCode:{},failureReason:{}}}},St:{type:"structure",members:{registryId:{},repositoryName:{},imageId:{shape:"Si"},imageManifest:{}}},S11:{type:"structure",members:{repositoryArn:{},registryId:{},repositoryName:{},repositoryUri:{}}}}},a.apiLoader.services.ecs={},a.ECS=a.Service.defineService("ecs",["2014-11-13"]),a.apiLoader.services.ecs["2014-11-13"]={version:"2.0",metadata:{apiVersion:"2014-11-13",endpointPrefix:"ecs",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon ECS",serviceFullName:"Amazon EC2 Container Service",signatureVersion:"v4",targetPrefix:"AmazonEC2ContainerServiceV20141113"},operations:{CreateCluster:{input:{type:"structure",members:{clusterName:{}}},output:{type:"structure",members:{cluster:{shape:"S4"}}},http:{}},CreateService:{input:{type:"structure",required:["serviceName","taskDefinition","desiredCount"],members:{cluster:{},serviceName:{},taskDefinition:{},loadBalancers:{shape:"S7"},desiredCount:{type:"integer"},clientToken:{},role:{},deploymentConfiguration:{shape:"Sa"}}},output:{type:"structure",members:{service:{shape:"Sc"}}},http:{}},DeleteCluster:{input:{type:"structure",required:["cluster"],members:{cluster:{}}},output:{type:"structure",members:{cluster:{shape:"S4"}}},http:{}},DeleteService:{input:{type:"structure",required:["service"],members:{cluster:{},service:{}}},output:{type:"structure",members:{service:{shape:"Sc"}}},http:{}},DeregisterContainerInstance:{input:{type:"structure",required:["containerInstance"],members:{cluster:{},containerInstance:{},force:{type:"boolean"}}},output:{type:"structure",members:{containerInstance:{shape:"Sp"}}},http:{}},DeregisterTaskDefinition:{input:{type:"structure",required:["taskDefinition"],members:{taskDefinition:{}}},output:{type:"structure",members:{taskDefinition:{shape:"S12"}}},http:{}},DescribeClusters:{input:{type:"structure",members:{clusters:{shape:"Sv"}}},output:{type:"structure",members:{clusters:{type:"list",member:{shape:"S4"}},failures:{shape:"S1v"}}},http:{}},DescribeContainerInstances:{input:{type:"structure",required:["containerInstances"],members:{cluster:{},containerInstances:{shape:"Sv"}}},output:{type:"structure",members:{containerInstances:{type:"list",member:{shape:"Sp"}},failures:{shape:"S1v"}}},http:{}},DescribeServices:{input:{type:"structure",required:["services"],members:{cluster:{},services:{shape:"Sv"}}},output:{type:"structure",members:{services:{type:"list",member:{shape:"Sc"}},failures:{shape:"S1v"}}},http:{}},DescribeTaskDefinition:{input:{type:"structure",required:["taskDefinition"],members:{taskDefinition:{}}},output:{type:"structure",members:{taskDefinition:{shape:"S12"}}},http:{}},DescribeTasks:{input:{type:"structure",required:["tasks"],members:{cluster:{},tasks:{shape:"Sv"}}},output:{type:"structure",members:{tasks:{shape:"S27"},failures:{shape:"S1v"}}},http:{}},DiscoverPollEndpoint:{input:{type:"structure",members:{containerInstance:{},cluster:{}}},output:{type:"structure",members:{endpoint:{},telemetryEndpoint:{}}},http:{}},ListClusters:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{clusterArns:{shape:"Sv"},nextToken:{}}},http:{}},ListContainerInstances:{input:{type:"structure",members:{cluster:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{containerInstanceArns:{shape:"Sv"},nextToken:{}}},http:{}},ListServices:{input:{type:"structure",members:{cluster:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{serviceArns:{shape:"Sv"},nextToken:{}}},http:{}},ListTaskDefinitionFamilies:{input:{type:"structure",members:{familyPrefix:{},status:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{families:{shape:"Sv"},nextToken:{}}},http:{}},ListTaskDefinitions:{input:{type:"structure",members:{familyPrefix:{},status:{},sort:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{taskDefinitionArns:{shape:"Sv"},nextToken:{}}},http:{}},ListTasks:{input:{type:"structure",members:{cluster:{},containerInstance:{},family:{},nextToken:{},maxResults:{type:"integer"},startedBy:{},serviceName:{},desiredStatus:{}}},output:{type:"structure",members:{taskArns:{shape:"Sv"},nextToken:{}}},http:{}},RegisterContainerInstance:{input:{type:"structure",members:{cluster:{},instanceIdentityDocument:{},instanceIdentityDocumentSignature:{},totalResources:{shape:"Sr"},versionInfo:{shape:"Sq"},containerInstanceArn:{},attributes:{shape:"Sy"}}},output:{type:"structure",members:{containerInstance:{shape:"Sp"}}},http:{}},RegisterTaskDefinition:{input:{type:"structure",required:["family","containerDefinitions"],members:{family:{},containerDefinitions:{shape:"S13"},volumes:{shape:"S1n"}}},output:{type:"structure",members:{taskDefinition:{shape:"S12"}}},http:{}},RunTask:{input:{type:"structure",required:["taskDefinition"],members:{cluster:{},taskDefinition:{},overrides:{shape:"S29"},count:{type:"integer"},startedBy:{}}},output:{type:"structure",members:{tasks:{shape:"S27"},failures:{shape:"S1v"}}},http:{}},StartTask:{input:{type:"structure",required:["taskDefinition","containerInstances"],members:{cluster:{},taskDefinition:{},overrides:{shape:"S29"},containerInstances:{shape:"Sv"},startedBy:{}}},output:{type:"structure",members:{tasks:{shape:"S27"},failures:{shape:"S1v"}}},http:{}},StopTask:{input:{type:"structure",required:["task"],members:{cluster:{},task:{},reason:{}}},output:{type:"structure",members:{task:{shape:"S28"}}},http:{}},SubmitContainerStateChange:{input:{type:"structure",members:{cluster:{},task:{},containerName:{},status:{},exitCode:{type:"integer"},reason:{},networkBindings:{shape:"S2e"}}},output:{type:"structure",members:{acknowledgment:{}}},http:{}},SubmitTaskStateChange:{input:{type:"structure",members:{cluster:{},task:{},status:{},reason:{}}},output:{type:"structure",members:{acknowledgment:{}}},http:{}},UpdateContainerAgent:{input:{type:"structure",required:["containerInstance"],members:{cluster:{},containerInstance:{}}},output:{type:"structure",members:{containerInstance:{shape:"Sp"}}},http:{}},UpdateService:{input:{type:"structure",required:["service"],members:{cluster:{},service:{},desiredCount:{type:"integer"},taskDefinition:{},deploymentConfiguration:{shape:"Sa"}}},output:{type:"structure",members:{service:{shape:"Sc"}}},http:{}}},shapes:{S4:{type:"structure",members:{clusterArn:{},clusterName:{},status:{},registeredContainerInstancesCount:{type:"integer"},runningTasksCount:{type:"integer"},pendingTasksCount:{type:"integer"},activeServicesCount:{type:"integer"}}},S7:{type:"list",member:{type:"structure",members:{loadBalancerName:{},containerName:{},containerPort:{type:"integer"}}}},Sa:{type:"structure",members:{maximumPercent:{type:"integer"},minimumHealthyPercent:{type:"integer"}}},Sc:{type:"structure",members:{serviceArn:{},serviceName:{},clusterArn:{},loadBalancers:{shape:"S7"},status:{},desiredCount:{type:"integer"},runningCount:{type:"integer"},pendingCount:{type:"integer"},taskDefinition:{},deploymentConfiguration:{shape:"Sa"},deployments:{type:"list",member:{type:"structure",members:{id:{},status:{},taskDefinition:{},desiredCount:{type:"integer"},pendingCount:{type:"integer"},runningCount:{type:"integer"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},roleArn:{},events:{type:"list",member:{type:"structure",members:{id:{},createdAt:{type:"timestamp"},message:{}}}},createdAt:{type:"timestamp"}}},Sp:{type:"structure",members:{containerInstanceArn:{},ec2InstanceId:{},versionInfo:{shape:"Sq"},remainingResources:{shape:"Sr"},registeredResources:{shape:"Sr"},status:{},agentConnected:{type:"boolean"},runningTasksCount:{type:"integer"},pendingTasksCount:{type:"integer"},agentUpdateStatus:{},attributes:{shape:"Sy"}}},Sq:{type:"structure",members:{agentVersion:{},agentHash:{},dockerVersion:{}}},Sr:{type:"list",member:{type:"structure",members:{name:{},type:{},doubleValue:{type:"double"},longValue:{type:"long"},integerValue:{type:"integer"},stringSetValue:{shape:"Sv"}}}},Sv:{type:"list",member:{}},Sy:{type:"list",member:{shape:"Sz"}},Sz:{type:"structure",required:["name"],members:{name:{},value:{}}},S12:{type:"structure",members:{taskDefinitionArn:{},containerDefinitions:{shape:"S13"},family:{},revision:{type:"integer"},volumes:{shape:"S1n"},status:{},requiresAttributes:{type:"list",member:{shape:"Sz"}}}},S13:{type:"list",member:{type:"structure",members:{name:{},image:{},cpu:{type:"integer"},memory:{type:"integer"},links:{shape:"Sv"},portMappings:{type:"list",member:{type:"structure",members:{containerPort:{type:"integer"},hostPort:{type:"integer"},protocol:{}}}},essential:{type:"boolean"},entryPoint:{shape:"Sv"},command:{shape:"Sv"},environment:{shape:"S18"},mountPoints:{type:"list",member:{type:"structure",members:{sourceVolume:{},containerPath:{},readOnly:{type:"boolean"}}}},volumesFrom:{type:"list",member:{type:"structure",members:{sourceContainer:{},readOnly:{type:"boolean"}}}},hostname:{},user:{},workingDirectory:{},disableNetworking:{type:"boolean"},privileged:{type:"boolean"},readonlyRootFilesystem:{type:"boolean"},dnsServers:{shape:"Sv"},dnsSearchDomains:{shape:"Sv"},extraHosts:{type:"list",member:{type:"structure",required:["hostname","ipAddress"],members:{hostname:{},ipAddress:{}}}},dockerSecurityOptions:{shape:"Sv"},dockerLabels:{type:"map",key:{},value:{}},ulimits:{type:"list",member:{type:"structure",required:["name","softLimit","hardLimit"],members:{name:{},softLimit:{type:"integer"},hardLimit:{type:"integer"}}}},logConfiguration:{type:"structure",required:["logDriver"],members:{logDriver:{},options:{type:"map",key:{},value:{}}}}}}},S18:{type:"list",member:{type:"structure",members:{name:{},value:{}}}},S1n:{type:"list",member:{type:"structure",members:{name:{},host:{type:"structure",members:{sourcePath:{}}}}}},S1v:{type:"list",member:{type:"structure",members:{arn:{},reason:{}}}},S27:{type:"list",member:{shape:"S28"}},S28:{type:"structure",members:{taskArn:{},clusterArn:{},taskDefinitionArn:{},containerInstanceArn:{},overrides:{shape:"S29"},lastStatus:{},desiredStatus:{},containers:{type:"list",member:{type:"structure",members:{containerArn:{},taskArn:{},name:{},lastStatus:{},exitCode:{type:"integer"},reason:{},networkBindings:{shape:"S2e"}}}},startedBy:{},stoppedReason:{},createdAt:{type:"timestamp"},startedAt:{type:"timestamp"},stoppedAt:{type:"timestamp"}}},S29:{type:"structure",members:{containerOverrides:{type:"list",member:{type:"structure",members:{name:{},command:{shape:"Sv"},environment:{shape:"S18"}}}}}},S2e:{type:"list",member:{type:"structure",members:{bindIP:{},containerPort:{type:"integer"},hostPort:{type:"integer"},protocol:{}}}}},paginators:{ListClusters:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"clusterArns"},ListContainerInstances:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"containerInstanceArns"},ListTaskDefinitions:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"taskDefinitionArns"},ListTaskDefinitionFamilies:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"families"},ListTasks:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"taskArns"},ListServices:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"serviceArns"}},waiters:{TasksRunning:{delay:6,operation:"DescribeTasks",maxAttempts:100,acceptors:[{expected:"STOPPED",matcher:"pathAny",state:"failure",argument:"tasks[].lastStatus"},{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"RUNNING",matcher:"pathAll",state:"success",argument:"tasks[].lastStatus"}]},TasksStopped:{delay:6,operation:"DescribeTasks",maxAttempts:100,acceptors:[{expected:"STOPPED",matcher:"pathAll",state:"success",argument:"tasks[].lastStatus"}]},ServicesStable:{delay:15,operation:"DescribeServices",maxAttempts:40,acceptors:[{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"DRAINING",matcher:"pathAny",state:"failure",argument:"services[].status"},{expected:"INACTIVE",matcher:"pathAny",state:"failure",argument:"services[].status"},{expected:!0,matcher:"path",state:"success",argument:"services | [@[?length(deployments)!=`1`], @[?desiredCount!=runningCount]][] | length(@) == `0`"}]},ServicesInactive:{delay:15,operation:"DescribeServices",maxAttempts:40,acceptors:[{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"INACTIVE",matcher:"pathAny",state:"success",argument:"services[].status"}]}}},a.apiLoader.services.elastictranscoder={},a.ElasticTranscoder=a.Service.defineService("elastictranscoder",["2012-09-25"]),a.apiLoader.services.elastictranscoder["2012-09-25"]={version:"2.0",metadata:{apiVersion:"2012-09-25",endpointPrefix:"elastictranscoder",serviceFullName:"Amazon Elastic Transcoder",signatureVersion:"v4",protocol:"rest-json"},operations:{CancelJob:{http:{method:"DELETE",requestUri:"/2012-09-25/jobs/{Id}",responseCode:202},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},CreateJob:{http:{requestUri:"/2012-09-25/jobs",responseCode:201},input:{type:"structure",required:["PipelineId","Input"],members:{PipelineId:{},Input:{shape:"S5"},Output:{shape:"Sk"},Outputs:{type:"list",member:{shape:"Sk"}},OutputKeyPrefix:{},Playlists:{type:"list",member:{type:"structure",members:{Name:{},Format:{},OutputKeys:{shape:"S1i"},HlsContentProtection:{shape:"S1j"},PlayReadyDrm:{shape:"S1n"}}}},UserMetadata:{shape:"S1s"}}},output:{type:"structure",members:{Job:{shape:"S1v"}}}},CreatePipeline:{http:{requestUri:"/2012-09-25/pipelines",responseCode:201},input:{type:"structure",required:["Name","InputBucket","Role"],members:{Name:{},InputBucket:{},OutputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S27"},ContentConfig:{shape:"S29"},ThumbnailConfig:{shape:"S29"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"},Warnings:{shape:"S2k"}}}},CreatePreset:{http:{requestUri:"/2012-09-25/presets",responseCode:201},input:{type:"structure",required:["Name","Container"],members:{Name:{},Description:{},Container:{},Video:{shape:"S2o"},Audio:{shape:"S34"},Thumbnails:{shape:"S3f"}}},output:{type:"structure",members:{Preset:{shape:"S3j"},Warning:{}}}},DeletePipeline:{http:{method:"DELETE",requestUri:"/2012-09-25/pipelines/{Id}",responseCode:202},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeletePreset:{http:{method:"DELETE",requestUri:"/2012-09-25/presets/{Id}",responseCode:202},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},ListJobsByPipeline:{http:{method:"GET",requestUri:"/2012-09-25/jobsByPipeline/{PipelineId}"},input:{type:"structure",required:["PipelineId"],members:{PipelineId:{location:"uri",locationName:"PipelineId"},Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Jobs:{shape:"S3s"},NextPageToken:{}}}},ListJobsByStatus:{http:{method:"GET",requestUri:"/2012-09-25/jobsByStatus/{Status}"},input:{type:"structure",required:["Status"],members:{Status:{location:"uri",locationName:"Status"},Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Jobs:{shape:"S3s"},NextPageToken:{}}}},ListPipelines:{http:{method:"GET",requestUri:"/2012-09-25/pipelines"},input:{type:"structure",members:{Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Pipelines:{type:"list",member:{shape:"S2i"}},NextPageToken:{}}}},ListPresets:{http:{method:"GET",requestUri:"/2012-09-25/presets"},input:{type:"structure",members:{Ascending:{location:"querystring",locationName:"Ascending"},PageToken:{location:"querystring",locationName:"PageToken"}}},output:{type:"structure",members:{Presets:{type:"list",member:{shape:"S3j"}},NextPageToken:{}}}},ReadJob:{http:{method:"GET",requestUri:"/2012-09-25/jobs/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{Job:{shape:"S1v"}}}},ReadPipeline:{http:{method:"GET",requestUri:"/2012-09-25/pipelines/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"},Warnings:{shape:"S2k"}}}},ReadPreset:{http:{method:"GET",requestUri:"/2012-09-25/presets/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{Preset:{shape:"S3j"}}}},TestRole:{http:{requestUri:"/2012-09-25/roleTests",responseCode:200},input:{type:"structure",required:["Role","InputBucket","OutputBucket","Topics"],members:{Role:{},InputBucket:{},OutputBucket:{},Topics:{type:"list",member:{}}}},output:{type:"structure",members:{Success:{},Messages:{type:"list",member:{}}}}},UpdatePipeline:{http:{method:"PUT",requestUri:"/2012-09-25/pipelines/{Id}",responseCode:200},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},Name:{},InputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S27"},ContentConfig:{shape:"S29"},ThumbnailConfig:{shape:"S29"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"},Warnings:{shape:"S2k"}}}},UpdatePipelineNotifications:{http:{requestUri:"/2012-09-25/pipelines/{Id}/notifications"},input:{type:"structure",required:["Id","Notifications"],members:{Id:{location:"uri",locationName:"Id"},Notifications:{shape:"S27"}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"}}}},UpdatePipelineStatus:{http:{requestUri:"/2012-09-25/pipelines/{Id}/status"},input:{type:"structure",required:["Id","Status"],members:{Id:{location:"uri",locationName:"Id"},Status:{}}},output:{type:"structure",members:{Pipeline:{shape:"S2i"}}}}},shapes:{S5:{type:"structure",members:{Key:{},FrameRate:{},Resolution:{},AspectRatio:{},Interlaced:{},Container:{},Encryption:{shape:"Sc"},DetectedProperties:{type:"structure",members:{Width:{type:"integer"},Height:{type:"integer"},FrameRate:{},FileSize:{type:"long"},DurationMillis:{type:"long"}}}}},Sc:{type:"structure",members:{Mode:{},Key:{},KeyMd5:{},InitializationVector:{}}},Sk:{type:"structure",members:{Key:{},ThumbnailPattern:{},ThumbnailEncryption:{shape:"Sc"},Rotate:{},PresetId:{},SegmentDuration:{},Watermarks:{shape:"Sn"},AlbumArt:{shape:"Sr"},Composition:{shape:"Sz"},Captions:{shape:"S13"},Encryption:{shape:"Sc"}}},Sn:{type:"list",member:{type:"structure",members:{PresetWatermarkId:{},InputKey:{},Encryption:{shape:"Sc"}}}},Sr:{type:"structure",members:{MergePolicy:{},Artwork:{type:"list",member:{type:"structure",members:{InputKey:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},PaddingPolicy:{},AlbumArtFormat:{},Encryption:{shape:"Sc"}}}}}},Sz:{type:"list",member:{type:"structure",members:{TimeSpan:{type:"structure",members:{StartTime:{},Duration:{}}}}}},S13:{type:"structure",members:{MergePolicy:{},CaptionSources:{type:"list",member:{type:"structure",members:{Key:{},Language:{},TimeOffset:{},Label:{},Encryption:{shape:"Sc"}}}},CaptionFormats:{type:"list",member:{type:"structure",members:{Format:{},Pattern:{},Encryption:{shape:"Sc"}}}}}},S1i:{type:"list",member:{}},S1j:{type:"structure",members:{Method:{},Key:{},KeyMd5:{},InitializationVector:{},LicenseAcquisitionUrl:{},KeyStoragePolicy:{}}},S1n:{type:"structure",members:{Format:{},Key:{},KeyMd5:{},KeyId:{},InitializationVector:{},LicenseAcquisitionUrl:{}}},S1s:{type:"map",key:{},value:{}},S1v:{type:"structure",members:{Id:{},Arn:{},PipelineId:{},Input:{shape:"S5"},Output:{shape:"S1w"},Outputs:{type:"list",member:{shape:"S1w"}},OutputKeyPrefix:{},Playlists:{type:"list",member:{type:"structure",members:{Name:{},Format:{},OutputKeys:{shape:"S1i"},HlsContentProtection:{shape:"S1j"},PlayReadyDrm:{shape:"S1n"},Status:{},StatusDetail:{}}}},Status:{},UserMetadata:{shape:"S1s"},Timing:{type:"structure",members:{SubmitTimeMillis:{type:"long"},StartTimeMillis:{type:"long"},FinishTimeMillis:{type:"long"}}}}},S1w:{type:"structure",members:{Id:{},Key:{},ThumbnailPattern:{},ThumbnailEncryption:{shape:"Sc"},Rotate:{},PresetId:{},SegmentDuration:{},Status:{},StatusDetail:{},Duration:{type:"long"},Width:{type:"integer"},Height:{type:"integer"},FrameRate:{},FileSize:{type:"long"},DurationMillis:{type:"long"},Watermarks:{shape:"Sn"},AlbumArt:{shape:"Sr"},Composition:{shape:"Sz"},Captions:{shape:"S13"},Encryption:{shape:"Sc"},AppliedColorSpaceConversion:{}}},S27:{type:"structure",members:{Progressing:{},Completed:{},Warning:{},Error:{}}},S29:{type:"structure",members:{Bucket:{},StorageClass:{},Permissions:{type:"list",member:{type:"structure",members:{GranteeType:{},Grantee:{},Access:{type:"list",member:{}}}}}}},S2i:{type:"structure",members:{Id:{},Arn:{},Name:{},Status:{},InputBucket:{},OutputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S27"},ContentConfig:{shape:"S29"},ThumbnailConfig:{shape:"S29"}}},S2k:{type:"list",member:{type:"structure",members:{Code:{},Message:{}}}},S2o:{type:"structure",members:{Codec:{},CodecOptions:{type:"map",key:{},value:{}},KeyframesMaxDist:{},FixedGOP:{},BitRate:{},FrameRate:{},MaxFrameRate:{},Resolution:{},AspectRatio:{},MaxWidth:{},MaxHeight:{},DisplayAspectRatio:{},SizingPolicy:{},PaddingPolicy:{},Watermarks:{type:"list",member:{type:"structure",members:{Id:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},HorizontalAlign:{},HorizontalOffset:{},VerticalAlign:{},VerticalOffset:{},Opacity:{},Target:{}}}}}},S34:{type:"structure",members:{Codec:{},SampleRate:{},BitRate:{},Channels:{},AudioPackingMode:{},CodecOptions:{type:"structure",members:{Profile:{},BitDepth:{},BitOrder:{},Signed:{}}}}},S3f:{type:"structure",members:{Format:{},Interval:{},Resolution:{},AspectRatio:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},PaddingPolicy:{}}},S3j:{type:"structure",members:{Id:{},Arn:{},Name:{},Description:{},Container:{},Audio:{shape:"S34"},Video:{shape:"S2o"},Thumbnails:{shape:"S3f"},Type:{}}},S3s:{type:"list",member:{shape:"S1v"}}},paginators:{ListJobsByPipeline:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Jobs"},ListJobsByStatus:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Jobs"},ListPipelines:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Pipelines"},ListPresets:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Presets"}},waiters:{JobComplete:{delay:30,operation:"ReadJob",maxAttempts:120,acceptors:[{expected:"Complete",matcher:"path",state:"success",argument:"Job.Status"},{expected:"Canceled",matcher:"path",state:"failure",argument:"Job.Status"},{expected:"Error",matcher:"path",state:"failure",argument:"Job.Status"}]}}},a.apiLoader.services.elb={},a.ELB=a.Service.defineService("elb",["2012-06-01"]),a.apiLoader.services.elb["2012-06-01"]={version:"2.0",metadata:{apiVersion:"2012-06-01",endpointPrefix:"elasticloadbalancing",serviceFullName:"Elastic Load Balancing",signatureVersion:"v4",xmlNamespace:"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/",protocol:"query"},operations:{AddTags:{input:{type:"structure",required:["LoadBalancerNames","Tags"],members:{LoadBalancerNames:{shape:"S2"},Tags:{shape:"S4"}}},output:{resultWrapper:"AddTagsResult",type:"structure",members:{}},http:{}},ApplySecurityGroupsToLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","SecurityGroups"],members:{LoadBalancerName:{},SecurityGroups:{shape:"Sa"}}},output:{resultWrapper:"ApplySecurityGroupsToLoadBalancerResult",type:"structure",members:{SecurityGroups:{shape:"Sa"}}},http:{}},AttachLoadBalancerToSubnets:{input:{type:"structure",required:["LoadBalancerName","Subnets"],members:{LoadBalancerName:{},Subnets:{shape:"Se"}}},output:{resultWrapper:"AttachLoadBalancerToSubnetsResult",type:"structure",members:{Subnets:{shape:"Se"}}},http:{}},ConfigureHealthCheck:{input:{type:"structure",required:["LoadBalancerName","HealthCheck"],members:{LoadBalancerName:{},HealthCheck:{shape:"Si"}}},output:{resultWrapper:"ConfigureHealthCheckResult",type:"structure",members:{HealthCheck:{shape:"Si"}}},http:{}},CreateAppCookieStickinessPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName","CookieName"],members:{LoadBalancerName:{},PolicyName:{},CookieName:{}}},output:{resultWrapper:"CreateAppCookieStickinessPolicyResult",type:"structure",members:{}},http:{}},CreateLBCookieStickinessPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName"],members:{LoadBalancerName:{},PolicyName:{},CookieExpirationPeriod:{type:"long"}}},output:{resultWrapper:"CreateLBCookieStickinessPolicyResult",type:"structure",members:{}},http:{}},CreateLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Listeners"],members:{LoadBalancerName:{},Listeners:{shape:"Sx"},AvailabilityZones:{shape:"S13"},Subnets:{shape:"Se"},SecurityGroups:{shape:"Sa"},Scheme:{},Tags:{shape:"S4"}}},output:{resultWrapper:"CreateLoadBalancerResult",type:"structure",members:{DNSName:{}}},http:{}},CreateLoadBalancerListeners:{input:{type:"structure",required:["LoadBalancerName","Listeners"],members:{LoadBalancerName:{},Listeners:{shape:"Sx"}}},output:{resultWrapper:"CreateLoadBalancerListenersResult",type:"structure",members:{}},http:{}},CreateLoadBalancerPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName","PolicyTypeName"],members:{LoadBalancerName:{},PolicyName:{},PolicyTypeName:{},PolicyAttributes:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeValue:{}}}}}},output:{resultWrapper:"CreateLoadBalancerPolicyResult",type:"structure",members:{}},http:{}},DeleteLoadBalancer:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{}}},output:{resultWrapper:"DeleteLoadBalancerResult",type:"structure",members:{}},http:{}},DeleteLoadBalancerListeners:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPorts"],members:{LoadBalancerName:{},LoadBalancerPorts:{type:"list",member:{type:"integer"}}}},output:{resultWrapper:"DeleteLoadBalancerListenersResult",type:"structure",members:{}},http:{}},DeleteLoadBalancerPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName"],members:{LoadBalancerName:{},PolicyName:{}}},output:{resultWrapper:"DeleteLoadBalancerPolicyResult",type:"structure",members:{}},http:{}},DeregisterInstancesFromLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Instances"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"DeregisterInstancesFromLoadBalancerResult",type:"structure",members:{Instances:{shape:"S1p"}}},http:{}},DescribeInstanceHealth:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"DescribeInstanceHealthResult",type:"structure",members:{InstanceStates:{type:"list",member:{type:"structure",members:{InstanceId:{},State:{},ReasonCode:{},Description:{}}}}}},http:{}},DescribeLoadBalancerAttributes:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{}}},output:{resultWrapper:"DescribeLoadBalancerAttributesResult",type:"structure",members:{LoadBalancerAttributes:{shape:"S22"}}},http:{}},DescribeLoadBalancerPolicies:{input:{type:"structure",members:{LoadBalancerName:{},PolicyNames:{shape:"S2j"}}},output:{resultWrapper:"DescribeLoadBalancerPoliciesResult",type:"structure",members:{PolicyDescriptions:{type:"list",member:{type:"structure",members:{PolicyName:{},PolicyTypeName:{},PolicyAttributeDescriptions:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeValue:{}}}}}}}}},http:{}},DescribeLoadBalancerPolicyTypes:{input:{type:"structure",members:{PolicyTypeNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeLoadBalancerPolicyTypesResult",type:"structure",members:{PolicyTypeDescriptions:{type:"list",member:{type:"structure",members:{PolicyTypeName:{},Description:{},PolicyAttributeTypeDescriptions:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeType:{},Description:{},DefaultValue:{},Cardinality:{}}}}}}}}},http:{}},DescribeLoadBalancers:{input:{type:"structure",members:{LoadBalancerNames:{shape:"S2"},Marker:{},PageSize:{type:"integer"}}},output:{resultWrapper:"DescribeLoadBalancersResult",type:"structure",members:{LoadBalancerDescriptions:{type:"list",member:{type:"structure",members:{LoadBalancerName:{},DNSName:{},CanonicalHostedZoneName:{},CanonicalHostedZoneNameID:{},ListenerDescriptions:{type:"list",member:{type:"structure",members:{Listener:{shape:"Sy"},PolicyNames:{shape:"S2j"}}}},Policies:{type:"structure",members:{AppCookieStickinessPolicies:{type:"list",member:{type:"structure",members:{PolicyName:{},CookieName:{}}}},LBCookieStickinessPolicies:{type:"list",member:{type:"structure",members:{PolicyName:{},CookieExpirationPeriod:{type:"long"}}}},OtherPolicies:{shape:"S2j"}}},BackendServerDescriptions:{type:"list",member:{type:"structure",members:{InstancePort:{type:"integer"},PolicyNames:{shape:"S2j"}}}},AvailabilityZones:{shape:"S13"},Subnets:{shape:"Se"},VPCId:{},Instances:{shape:"S1p"},HealthCheck:{shape:"Si"},SourceSecurityGroup:{type:"structure",members:{OwnerAlias:{},GroupName:{}}},SecurityGroups:{shape:"Sa"},CreatedTime:{type:"timestamp"},Scheme:{}}}},NextMarker:{}}},http:{}},DescribeTags:{input:{type:"structure",required:["LoadBalancerNames"],members:{LoadBalancerNames:{type:"list",member:{}}}},output:{ +resultWrapper:"DescribeTagsResult",type:"structure",members:{TagDescriptions:{type:"list",member:{type:"structure",members:{LoadBalancerName:{},Tags:{shape:"S4"}}}}}},http:{}},DetachLoadBalancerFromSubnets:{input:{type:"structure",required:["LoadBalancerName","Subnets"],members:{LoadBalancerName:{},Subnets:{shape:"Se"}}},output:{resultWrapper:"DetachLoadBalancerFromSubnetsResult",type:"structure",members:{Subnets:{shape:"Se"}}},http:{}},DisableAvailabilityZonesForLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","AvailabilityZones"],members:{LoadBalancerName:{},AvailabilityZones:{shape:"S13"}}},output:{resultWrapper:"DisableAvailabilityZonesForLoadBalancerResult",type:"structure",members:{AvailabilityZones:{shape:"S13"}}},http:{}},EnableAvailabilityZonesForLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","AvailabilityZones"],members:{LoadBalancerName:{},AvailabilityZones:{shape:"S13"}}},output:{resultWrapper:"EnableAvailabilityZonesForLoadBalancerResult",type:"structure",members:{AvailabilityZones:{shape:"S13"}}},http:{}},ModifyLoadBalancerAttributes:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerAttributes"],members:{LoadBalancerName:{},LoadBalancerAttributes:{shape:"S22"}}},output:{resultWrapper:"ModifyLoadBalancerAttributesResult",type:"structure",members:{LoadBalancerName:{},LoadBalancerAttributes:{shape:"S22"}}},http:{}},RegisterInstancesWithLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Instances"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"RegisterInstancesWithLoadBalancerResult",type:"structure",members:{Instances:{shape:"S1p"}}},http:{}},RemoveTags:{input:{type:"structure",required:["LoadBalancerNames","Tags"],members:{LoadBalancerNames:{shape:"S2"},Tags:{type:"list",member:{type:"structure",members:{Key:{}}}}}},output:{resultWrapper:"RemoveTagsResult",type:"structure",members:{}},http:{}},SetLoadBalancerListenerSSLCertificate:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPort","SSLCertificateId"],members:{LoadBalancerName:{},LoadBalancerPort:{type:"integer"},SSLCertificateId:{}}},output:{resultWrapper:"SetLoadBalancerListenerSSLCertificateResult",type:"structure",members:{}},http:{}},SetLoadBalancerPoliciesForBackendServer:{input:{type:"structure",required:["LoadBalancerName","InstancePort","PolicyNames"],members:{LoadBalancerName:{},InstancePort:{type:"integer"},PolicyNames:{shape:"S2j"}}},output:{resultWrapper:"SetLoadBalancerPoliciesForBackendServerResult",type:"structure",members:{}},http:{}},SetLoadBalancerPoliciesOfListener:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPort","PolicyNames"],members:{LoadBalancerName:{},LoadBalancerPort:{type:"integer"},PolicyNames:{shape:"S2j"}}},output:{resultWrapper:"SetLoadBalancerPoliciesOfListenerResult",type:"structure",members:{}},http:{}}},shapes:{S2:{type:"list",member:{}},S4:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},Sa:{type:"list",member:{}},Se:{type:"list",member:{}},Si:{type:"structure",required:["Target","Interval","Timeout","UnhealthyThreshold","HealthyThreshold"],members:{Target:{},Interval:{type:"integer"},Timeout:{type:"integer"},UnhealthyThreshold:{type:"integer"},HealthyThreshold:{type:"integer"}}},Sx:{type:"list",member:{shape:"Sy"}},Sy:{type:"structure",required:["Protocol","LoadBalancerPort","InstancePort"],members:{Protocol:{},LoadBalancerPort:{type:"integer"},InstanceProtocol:{},InstancePort:{type:"integer"},SSLCertificateId:{}}},S13:{type:"list",member:{}},S1p:{type:"list",member:{type:"structure",members:{InstanceId:{}}}},S22:{type:"structure",members:{CrossZoneLoadBalancing:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"}}},AccessLog:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},S3BucketName:{},EmitInterval:{type:"integer"},S3BucketPrefix:{}}},ConnectionDraining:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},Timeout:{type:"integer"}}},ConnectionSettings:{type:"structure",required:["IdleTimeout"],members:{IdleTimeout:{type:"integer"}}},AdditionalAttributes:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}},S2j:{type:"list",member:{}}},examples:{},paginators:{DescribeInstanceHealth:{result_key:"InstanceStates"},DescribeLoadBalancerPolicies:{result_key:"PolicyDescriptions"},DescribeLoadBalancerPolicyTypes:{result_key:"PolicyTypeDescriptions"},DescribeLoadBalancers:{input_token:"Marker",output_token:"NextMarker",result_key:"LoadBalancerDescriptions"}},waiters:{InstanceInService:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"InService",matcher:"pathAll",state:"success",argument:"InstanceStates[].State"}]},InstanceDeregistered:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"OutOfService",matcher:"pathAll",state:"success",argument:"InstanceStates[].State"},{matcher:"error",expected:"InvalidInstance",state:"success"}]},AnyInstanceInService:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"InService",matcher:"pathAny",state:"success",argument:"InstanceStates[].State"}]}}},a.apiLoader.services.firehose={},a.Firehose=a.Service.defineService("firehose",["2015-08-04"]),a.apiLoader.services.firehose["2015-08-04"]={version:"2.0",metadata:{apiVersion:"2015-08-04",endpointPrefix:"firehose",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Firehose",serviceFullName:"Amazon Kinesis Firehose",signatureVersion:"v4",targetPrefix:"Firehose_20150804"},operations:{CreateDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},S3DestinationConfiguration:{shape:"S3"},RedshiftDestinationConfiguration:{type:"structure",required:["RoleARN","ClusterJDBCURL","CopyCommand","Username","Password","S3Configuration"],members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"Sl"},Username:{shape:"Sp"},Password:{shape:"Sq"},RetryOptions:{shape:"Sr"},S3Configuration:{shape:"S3"},CloudWatchLoggingOptions:{shape:"Sf"}}},ElasticsearchDestinationConfiguration:{type:"structure",required:["RoleARN","DomainARN","IndexName","TypeName","S3Configuration"],members:{RoleARN:{},DomainARN:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"Sy"},RetryOptions:{shape:"S11"},S3BackupMode:{},S3Configuration:{shape:"S3"},CloudWatchLoggingOptions:{shape:"Sf"}}}}},output:{type:"structure",members:{DeliveryStreamARN:{}}},http:{}},DeleteDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{}}},output:{type:"structure",members:{}},http:{}},DescribeDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},Limit:{type:"integer"},ExclusiveStartDestinationId:{}}},output:{type:"structure",required:["DeliveryStreamDescription"],members:{DeliveryStreamDescription:{type:"structure",required:["DeliveryStreamName","DeliveryStreamARN","DeliveryStreamStatus","VersionId","Destinations","HasMoreDestinations"],members:{DeliveryStreamName:{},DeliveryStreamARN:{},DeliveryStreamStatus:{},VersionId:{},CreateTimestamp:{type:"timestamp"},LastUpdateTimestamp:{type:"timestamp"},Destinations:{type:"list",member:{type:"structure",required:["DestinationId"],members:{DestinationId:{},S3DestinationDescription:{shape:"S1i"},RedshiftDestinationDescription:{type:"structure",required:["RoleARN","ClusterJDBCURL","CopyCommand","Username","S3DestinationDescription"],members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"Sl"},Username:{shape:"Sp"},RetryOptions:{shape:"Sr"},S3DestinationDescription:{shape:"S1i"},CloudWatchLoggingOptions:{shape:"Sf"}}},ElasticsearchDestinationDescription:{type:"structure",members:{RoleARN:{},DomainARN:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"Sy"},RetryOptions:{shape:"S11"},S3BackupMode:{},S3DestinationDescription:{shape:"S1i"},CloudWatchLoggingOptions:{shape:"Sf"}}}}}},HasMoreDestinations:{type:"boolean"}}}}},http:{}},ListDeliveryStreams:{input:{type:"structure",members:{Limit:{type:"integer"},ExclusiveStartDeliveryStreamName:{}}},output:{type:"structure",required:["DeliveryStreamNames","HasMoreDeliveryStreams"],members:{DeliveryStreamNames:{type:"list",member:{}},HasMoreDeliveryStreams:{type:"boolean"}}},http:{}},PutRecord:{input:{type:"structure",required:["DeliveryStreamName","Record"],members:{DeliveryStreamName:{},Record:{shape:"S1q"}}},output:{type:"structure",required:["RecordId"],members:{RecordId:{}}},http:{}},PutRecordBatch:{input:{type:"structure",required:["DeliveryStreamName","Records"],members:{DeliveryStreamName:{},Records:{type:"list",member:{shape:"S1q"}}}},output:{type:"structure",required:["FailedPutCount","RequestResponses"],members:{FailedPutCount:{type:"integer"},RequestResponses:{type:"list",member:{type:"structure",members:{RecordId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},UpdateDestination:{input:{type:"structure",required:["DeliveryStreamName","CurrentDeliveryStreamVersionId","DestinationId"],members:{DeliveryStreamName:{},CurrentDeliveryStreamVersionId:{},DestinationId:{},S3DestinationUpdate:{shape:"S23"},RedshiftDestinationUpdate:{type:"structure",members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"Sl"},Username:{shape:"Sp"},Password:{shape:"Sq"},RetryOptions:{shape:"Sr"},S3Update:{shape:"S23"},CloudWatchLoggingOptions:{shape:"Sf"}}},ElasticsearchDestinationUpdate:{type:"structure",members:{RoleARN:{},DomainARN:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"Sy"},RetryOptions:{shape:"S11"},S3Update:{shape:"S23"},CloudWatchLoggingOptions:{shape:"Sf"}}}}},output:{type:"structure",members:{}},http:{}}},shapes:{S3:{type:"structure",required:["RoleARN","BucketARN"],members:{RoleARN:{},BucketARN:{},Prefix:{},BufferingHints:{shape:"S7"},CompressionFormat:{},EncryptionConfiguration:{shape:"Sb"},CloudWatchLoggingOptions:{shape:"Sf"}}},S7:{type:"structure",members:{SizeInMBs:{type:"integer"},IntervalInSeconds:{type:"integer"}}},Sb:{type:"structure",members:{NoEncryptionConfig:{},KMSEncryptionConfig:{type:"structure",required:["AWSKMSKeyARN"],members:{AWSKMSKeyARN:{}}}}},Sf:{type:"structure",members:{Enabled:{type:"boolean"},LogGroupName:{},LogStreamName:{}}},Sl:{type:"structure",required:["DataTableName"],members:{DataTableName:{},DataTableColumns:{},CopyOptions:{}}},Sp:{type:"string",sensitive:!0},Sq:{type:"string",sensitive:!0},Sr:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},Sy:{type:"structure",members:{IntervalInSeconds:{type:"integer"},SizeInMBs:{type:"integer"}}},S11:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},S1i:{type:"structure",required:["RoleARN","BucketARN","BufferingHints","CompressionFormat","EncryptionConfiguration"],members:{RoleARN:{},BucketARN:{},Prefix:{},BufferingHints:{shape:"S7"},CompressionFormat:{},EncryptionConfiguration:{shape:"Sb"},CloudWatchLoggingOptions:{shape:"Sf"}}},S1q:{type:"structure",required:["Data"],members:{Data:{type:"blob"}}},S23:{type:"structure",members:{RoleARN:{},BucketARN:{},Prefix:{},BufferingHints:{shape:"S7"},CompressionFormat:{},EncryptionConfiguration:{shape:"Sb"},CloudWatchLoggingOptions:{shape:"Sf"}}}}},a.apiLoader.services.gamelift={},a.GameLift=a.Service.defineService("gamelift",["2015-10-01"]),a.apiLoader.services.gamelift["2015-10-01"]={version:"2.0",metadata:{apiVersion:"2015-10-01",endpointPrefix:"gamelift",jsonVersion:"1.1",serviceFullName:"Amazon GameLift",signatureVersion:"v4",targetPrefix:"GameLift",protocol:"json"},operations:{CreateAlias:{input:{type:"structure",required:["Name","RoutingStrategy"],members:{Name:{},Description:{},RoutingStrategy:{shape:"S3"}}},output:{type:"structure",members:{Alias:{shape:"S8"}}},http:{}},CreateBuild:{input:{type:"structure",members:{Name:{},Version:{},StorageLocation:{shape:"Sc"}}},output:{type:"structure",members:{Build:{shape:"Sf"},UploadCredentials:{shape:"Sj"},StorageLocation:{shape:"Sc"}}},http:{}},CreateFleet:{input:{type:"structure",required:["Name","BuildId","ServerLaunchPath","EC2InstanceType"],members:{Name:{},Description:{},BuildId:{},ServerLaunchPath:{},ServerLaunchParameters:{},LogPaths:{shape:"Sl"},EC2InstanceType:{},EC2InboundPermissions:{shape:"Sn"},NewGameSessionProtectionPolicy:{}}},output:{type:"structure",members:{FleetAttributes:{shape:"Su"}}},http:{}},CreateGameSession:{input:{type:"structure",required:["MaximumPlayerSessionCount"],members:{FleetId:{},AliasId:{},MaximumPlayerSessionCount:{type:"integer"},Name:{},GameProperties:{shape:"Sy"}}},output:{type:"structure",members:{GameSession:{shape:"S13"}}},http:{}},CreatePlayerSession:{input:{type:"structure",required:["GameSessionId","PlayerId"],members:{GameSessionId:{},PlayerId:{}}},output:{type:"structure",members:{PlayerSession:{shape:"S1a"}}},http:{}},CreatePlayerSessions:{input:{type:"structure",required:["GameSessionId","PlayerIds"],members:{GameSessionId:{},PlayerIds:{type:"list",member:{}}}},output:{type:"structure",members:{PlayerSessions:{shape:"S1g"}}},http:{}},DeleteAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},http:{}},DeleteBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},http:{}},DeleteFleet:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}},http:{}},DeleteScalingPolicy:{input:{type:"structure",required:["Name","FleetId"],members:{Name:{},FleetId:{}}},http:{}},DescribeAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},output:{type:"structure",members:{Alias:{shape:"S8"}}},http:{}},DescribeBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},output:{type:"structure",members:{Build:{shape:"Sf"}}},http:{}},DescribeEC2InstanceLimits:{input:{type:"structure",members:{EC2InstanceType:{}}},output:{type:"structure",members:{EC2InstanceLimits:{type:"list",member:{type:"structure",members:{EC2InstanceType:{},CurrentInstances:{type:"integer"},InstanceLimit:{type:"integer"}}}}}},http:{}},DescribeFleetAttributes:{input:{type:"structure",members:{FleetIds:{shape:"S1u"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetAttributes:{type:"list",member:{shape:"Su"}},NextToken:{}}},http:{}},DescribeFleetCapacity:{input:{type:"structure",members:{FleetIds:{shape:"S1u"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetCapacity:{type:"list",member:{type:"structure",members:{FleetId:{},InstanceType:{},InstanceCounts:{type:"structure",members:{DESIRED:{type:"integer"},MINIMUM:{type:"integer"},MAXIMUM:{type:"integer"},PENDING:{type:"integer"},ACTIVE:{type:"integer"},IDLE:{type:"integer"},TERMINATING:{type:"integer"}}}}}},NextToken:{}}},http:{}},DescribeFleetEvents:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Events:{type:"list",member:{type:"structure",members:{EventId:{},ResourceId:{},EventCode:{},Message:{},EventTime:{type:"timestamp"}}}},NextToken:{}}},http:{}},DescribeFleetPortSettings:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}},output:{type:"structure",members:{InboundPermissions:{shape:"Sn"}}},http:{}},DescribeFleetUtilization:{input:{type:"structure",members:{FleetIds:{shape:"S1u"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetUtilization:{type:"list",member:{type:"structure",members:{FleetId:{},ActiveGameSessionCount:{type:"integer"},CurrentPlayerSessionCount:{type:"integer"},MaximumPlayerSessionCount:{type:"integer"}}}},NextToken:{}}},http:{}},DescribeGameSessionDetails:{input:{type:"structure",members:{FleetId:{},GameSessionId:{},AliasId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessionDetails:{type:"list",member:{type:"structure",members:{GameSession:{shape:"S13"},ProtectionPolicy:{}}}},NextToken:{}}},http:{}},DescribeGameSessions:{input:{type:"structure",members:{FleetId:{},GameSessionId:{},AliasId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessions:{type:"list",member:{shape:"S13"}},NextToken:{}}},http:{}},DescribePlayerSessions:{input:{type:"structure",members:{GameSessionId:{},PlayerId:{},PlayerSessionId:{},PlayerSessionStatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{PlayerSessions:{shape:"S1g"},NextToken:{}}},http:{}},DescribeScalingPolicies:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ScalingPolicies:{type:"list",member:{type:"structure",members:{FleetId:{},Name:{},Status:{},ScalingAdjustment:{type:"integer"},ScalingAdjustmentType:{},ComparisonOperator:{},Threshold:{type:"double"},EvaluationPeriods:{type:"integer"},MetricName:{}}}},NextToken:{}}},http:{}},GetGameSessionLogUrl:{input:{type:"structure",required:["GameSessionId"],members:{GameSessionId:{}}},output:{type:"structure",members:{PreSignedUrl:{}}},http:{}},ListAliases:{input:{type:"structure",members:{RoutingStrategyType:{},Name:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Aliases:{type:"list",member:{shape:"S8"}},NextToken:{}}},http:{}},ListBuilds:{input:{type:"structure",members:{Status:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Builds:{type:"list",member:{shape:"Sf"}},NextToken:{}}},http:{}},ListFleets:{input:{type:"structure",members:{BuildId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetIds:{shape:"S1u"},NextToken:{}}},http:{}},PutScalingPolicy:{input:{type:"structure",required:["Name","FleetId","ScalingAdjustment","ScalingAdjustmentType","Threshold","ComparisonOperator","EvaluationPeriods","MetricName"],members:{Name:{},FleetId:{},ScalingAdjustment:{type:"integer"},ScalingAdjustmentType:{},Threshold:{type:"double"},ComparisonOperator:{},EvaluationPeriods:{type:"integer"},MetricName:{}}},output:{type:"structure",members:{Name:{}}},http:{}},RequestUploadCredentials:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},output:{type:"structure",members:{UploadCredentials:{shape:"Sj"},StorageLocation:{shape:"Sc"}}},http:{}},ResolveAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{},Name:{},Description:{},RoutingStrategy:{shape:"S3"}}},output:{type:"structure",members:{Alias:{shape:"S8"}}},http:{}},UpdateBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{},Name:{},Version:{}}},output:{type:"structure",members:{Build:{shape:"Sf"}}},http:{}},UpdateFleetAttributes:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},Name:{},Description:{},NewGameSessionProtectionPolicy:{}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateFleetCapacity:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},DesiredInstances:{type:"integer"},MinSize:{type:"integer"},MaxSize:{type:"integer"}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateFleetPortSettings:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},InboundPermissionAuthorizations:{shape:"Sn"},InboundPermissionRevocations:{shape:"Sn"}}},output:{type:"structure",members:{FleetId:{}}},http:{}},UpdateGameSession:{input:{type:"structure",required:["GameSessionId"],members:{GameSessionId:{},MaximumPlayerSessionCount:{type:"integer"},Name:{},PlayerSessionCreationPolicy:{},ProtectionPolicy:{}}},output:{type:"structure",members:{GameSession:{shape:"S13"}}},http:{}}},shapes:{S3:{type:"structure",members:{Type:{},FleetId:{},Message:{}}},S8:{type:"structure",members:{AliasId:{},Name:{},Description:{},RoutingStrategy:{shape:"S3"},CreationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}},Sc:{type:"structure",members:{Bucket:{},Key:{},RoleArn:{}}},Sf:{type:"structure",members:{BuildId:{},Name:{},Version:{},Status:{},SizeOnDisk:{type:"long"},CreationTime:{type:"timestamp"}}},Sj:{type:"structure",members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{}},sensitive:!0},Sl:{type:"list",member:{}},Sn:{type:"list",member:{type:"structure",required:["FromPort","ToPort","IpRange","Protocol"],members:{FromPort:{type:"integer"},ToPort:{type:"integer"},IpRange:{},Protocol:{}}}},Su:{type:"structure",members:{FleetId:{},Description:{},Name:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},Status:{},BuildId:{},ServerLaunchPath:{},ServerLaunchParameters:{},LogPaths:{shape:"Sl"},NewGameSessionProtectionPolicy:{}}},Sy:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S13:{type:"structure",members:{GameSessionId:{},Name:{},FleetId:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},CurrentPlayerSessionCount:{type:"integer"},MaximumPlayerSessionCount:{type:"integer"},Status:{},GameProperties:{shape:"Sy"},IpAddress:{},PlayerSessionCreationPolicy:{}}},S1a:{type:"structure",members:{PlayerSessionId:{},PlayerId:{},GameSessionId:{},FleetId:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},Status:{},IpAddress:{}}},S1g:{type:"list",member:{shape:"S1a"}},S1u:{type:"list",member:{}}},examples:{}},a.apiLoader.services.inspector={},a.Inspector=a.Service.defineService("inspector",["2016-02-16"]),a.apiLoader.services.inspector["2016-02-16"]={version:"2.0",metadata:{apiVersion:"2016-02-16",endpointPrefix:"inspector",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Inspector",signatureVersion:"v4",targetPrefix:"InspectorService"},operations:{AddAttributesToFindings:{input:{type:"structure",required:["findingArns","attributes"],members:{findingArns:{shape:"S2"},attributes:{shape:"S4"}}},output:{type:"structure",required:["failedItems"],members:{failedItems:{shape:"S9"}}},http:{}},CreateAssessmentTarget:{input:{type:"structure",required:["assessmentTargetName","resourceGroupArn"],members:{assessmentTargetName:{},resourceGroupArn:{}}},output:{type:"structure",required:["assessmentTargetArn"],members:{assessmentTargetArn:{}}},http:{}},CreateAssessmentTemplate:{input:{type:"structure",required:["assessmentTargetArn","assessmentTemplateName","durationInSeconds","rulesPackageArns"],members:{assessmentTargetArn:{},assessmentTemplateName:{},durationInSeconds:{type:"integer"},rulesPackageArns:{shape:"Sj"},userAttributesForFindings:{shape:"S4"}}},output:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}},http:{}},CreateResourceGroup:{input:{type:"structure",required:["resourceGroupTags"],members:{resourceGroupTags:{shape:"Sm"}}},output:{type:"structure",required:["resourceGroupArn"],members:{resourceGroupArn:{}}},http:{}},DeleteAssessmentRun:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},http:{}},DeleteAssessmentTarget:{input:{type:"structure",required:["assessmentTargetArn"],members:{assessmentTargetArn:{}}},http:{}},DeleteAssessmentTemplate:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}},http:{}},DescribeAssessmentRuns:{input:{type:"structure",required:["assessmentRunArns"],members:{assessmentRunArns:{shape:"Sv"}}},output:{type:"structure",required:["assessmentRuns","failedItems"],members:{assessmentRuns:{type:"list",member:{type:"structure",required:["arn","name","assessmentTemplateArn","state","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt","stateChangedAt","dataCollected","stateChanges","notifications"],members:{arn:{},name:{},assessmentTemplateArn:{},state:{},durationInSeconds:{type:"integer"},rulesPackageArns:{type:"list",member:{}},userAttributesForFindings:{shape:"S4"},createdAt:{type:"timestamp"},startedAt:{type:"timestamp"},completedAt:{type:"timestamp"},stateChangedAt:{type:"timestamp"},dataCollected:{type:"boolean"},stateChanges:{type:"list",member:{type:"structure",required:["stateChangedAt","state"],members:{stateChangedAt:{type:"timestamp"},state:{}}}},notifications:{type:"list",member:{type:"structure",required:["date","event","error"],members:{date:{type:"timestamp"},event:{},message:{},error:{type:"boolean"},snsTopicArn:{},snsPublishStatusCode:{}}}}}}},failedItems:{shape:"S9"}}},http:{}},DescribeAssessmentTargets:{input:{type:"structure",required:["assessmentTargetArns"],members:{assessmentTargetArns:{shape:"Sv"}}},output:{type:"structure",required:["assessmentTargets","failedItems"],members:{assessmentTargets:{type:"list",member:{type:"structure",required:["arn","name","resourceGroupArn","createdAt","updatedAt"],members:{arn:{},name:{},resourceGroupArn:{},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeAssessmentTemplates:{input:{type:"structure",required:["assessmentTemplateArns"],members:{assessmentTemplateArns:{shape:"Sv"}}},output:{type:"structure",required:["assessmentTemplates","failedItems"],members:{assessmentTemplates:{type:"list",member:{type:"structure",required:["arn","name","assessmentTargetArn","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt"],members:{arn:{},name:{},assessmentTargetArn:{},durationInSeconds:{type:"integer"},rulesPackageArns:{shape:"Sj"},userAttributesForFindings:{shape:"S4"},createdAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeCrossAccountAccessRole:{output:{type:"structure",required:["roleArn","valid","registeredAt"],members:{roleArn:{},valid:{type:"boolean"},registeredAt:{type:"timestamp"}}},http:{}},DescribeFindings:{input:{type:"structure",required:["findingArns"],members:{findingArns:{shape:"Sv"},locale:{}}},output:{type:"structure",required:["findings","failedItems"],members:{findings:{type:"list",member:{type:"structure",required:["arn","attributes","userAttributes","createdAt","updatedAt"],members:{arn:{},schemaVersion:{type:"integer"},service:{},serviceAttributes:{type:"structure",required:["schemaVersion"],members:{schemaVersion:{type:"integer"},assessmentRunArn:{},rulesPackageArn:{}}},assetType:{},assetAttributes:{type:"structure",required:["schemaVersion"],members:{schemaVersion:{type:"integer"},agentId:{},autoScalingGroup:{},amiId:{},hostname:{},ipv4Addresses:{type:"list",member:{}}}},id:{},title:{},description:{},recommendation:{},severity:{},numericSeverity:{type:"double"},confidence:{type:"integer"},indicatorOfCompromise:{type:"boolean"},attributes:{shape:"S24"},userAttributes:{shape:"S4"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeResourceGroups:{input:{type:"structure",required:["resourceGroupArns"],members:{resourceGroupArns:{shape:"Sv"}}},output:{type:"structure",required:["resourceGroups","failedItems"],members:{resourceGroups:{type:"list",member:{type:"structure",required:["arn","tags","createdAt"],members:{arn:{},tags:{shape:"Sm"},createdAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}},http:{}},DescribeRulesPackages:{input:{type:"structure",required:["rulesPackageArns"],members:{rulesPackageArns:{shape:"Sv"},locale:{}}},output:{type:"structure",required:["rulesPackages","failedItems"],members:{rulesPackages:{type:"list",member:{type:"structure",required:["arn","name","version","provider"],members:{arn:{},name:{},version:{},provider:{},description:{}}}},failedItems:{shape:"S9"}}},http:{}},GetTelemetryMetadata:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},output:{type:"structure",required:["telemetryMetadata"],members:{telemetryMetadata:{shape:"S2i"}}},http:{}},ListAssessmentRunAgents:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{},filter:{type:"structure",required:["agentHealths","agentHealthCodes"],members:{agentHealths:{type:"list",member:{}},agentHealthCodes:{type:"list",member:{}}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentRunAgents"],members:{assessmentRunAgents:{type:"list",member:{type:"structure",required:["agentId","assessmentRunArn","agentHealth","agentHealthCode","telemetryMetadata"],members:{agentId:{},assessmentRunArn:{},agentHealth:{},agentHealthCode:{},agentHealthDetails:{},autoScalingGroup:{},telemetryMetadata:{shape:"S2i"}}}},nextToken:{}}},http:{}},ListAssessmentRuns:{input:{type:"structure",members:{assessmentTemplateArns:{shape:"S2y"},filter:{type:"structure",members:{namePattern:{},states:{type:"list",member:{}},durationRange:{shape:"S32"},rulesPackageArns:{shape:"S33"},startTimeRange:{shape:"S34"},completionTimeRange:{shape:"S34"},stateChangeTimeRange:{shape:"S34"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentRunArns"],members:{assessmentRunArns:{shape:"S36"},nextToken:{}}},http:{}},ListAssessmentTargets:{input:{type:"structure",members:{filter:{type:"structure",members:{assessmentTargetNamePattern:{}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentTargetArns"],members:{assessmentTargetArns:{shape:"S36"},nextToken:{}}},http:{}},ListAssessmentTemplates:{input:{type:"structure",members:{assessmentTargetArns:{shape:"S2y"},filter:{type:"structure",members:{namePattern:{},durationRange:{shape:"S32"},rulesPackageArns:{shape:"S33"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentTemplateArns"],members:{assessmentTemplateArns:{shape:"S36"},nextToken:{}}},http:{}},ListEventSubscriptions:{input:{type:"structure",members:{resourceArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["subscriptions"],members:{subscriptions:{type:"list",member:{type:"structure",required:["resourceArn","topicArn","eventSubscriptions"],members:{resourceArn:{},topicArn:{},eventSubscriptions:{type:"list",member:{type:"structure",required:["event","subscribedAt"],members:{event:{},subscribedAt:{type:"timestamp"}}}}}}},nextToken:{}}},http:{}},ListFindings:{input:{type:"structure",members:{assessmentRunArns:{shape:"S2y"},filter:{type:"structure",members:{agentIds:{type:"list",member:{}},autoScalingGroups:{type:"list",member:{}},ruleNames:{type:"list",member:{}},severities:{type:"list",member:{}},rulesPackageArns:{shape:"S33"},attributes:{shape:"S24"},userAttributes:{shape:"S24"},creationTimeRange:{shape:"S34"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["findingArns"],members:{findingArns:{shape:"S36"},nextToken:{}}},http:{}},ListRulesPackages:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["rulesPackageArns"],members:{rulesPackageArns:{shape:"S36"},nextToken:{}}},http:{}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{}}},output:{type:"structure",required:["tags"],members:{tags:{shape:"S3w"}}},http:{}},PreviewAgents:{input:{type:"structure",required:["previewAgentsArn"],members:{previewAgentsArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["agentPreviews"],members:{agentPreviews:{type:"list",member:{type:"structure",required:["agentId"],members:{agentId:{},autoScalingGroup:{}}}},nextToken:{}}},http:{}},RegisterCrossAccountAccessRole:{input:{type:"structure",required:["roleArn"],members:{roleArn:{}}},http:{}},RemoveAttributesFromFindings:{input:{type:"structure",required:["findingArns","attributeKeys"],members:{findingArns:{shape:"S2"},attributeKeys:{type:"list",member:{}}}},output:{type:"structure",required:["failedItems"],members:{failedItems:{shape:"S9"}}},http:{}},SetTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{},tags:{shape:"S3w"}}},http:{}},StartAssessmentRun:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{},assessmentRunName:{}}},output:{type:"structure",required:["assessmentRunArn"], +members:{assessmentRunArn:{}}},http:{}},StopAssessmentRun:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},http:{}},SubscribeToEvent:{input:{type:"structure",required:["resourceArn","event","topicArn"],members:{resourceArn:{},event:{},topicArn:{}}},http:{}},UnsubscribeFromEvent:{input:{type:"structure",required:["resourceArn","event","topicArn"],members:{resourceArn:{},event:{},topicArn:{}}},http:{}},UpdateAssessmentTarget:{input:{type:"structure",required:["assessmentTargetArn","assessmentTargetName","resourceGroupArn"],members:{assessmentTargetArn:{},assessmentTargetName:{},resourceGroupArn:{}}},http:{}}},shapes:{S2:{type:"list",member:{}},S4:{type:"list",member:{shape:"S5"}},S5:{type:"structure",required:["key"],members:{key:{},value:{}}},S9:{type:"map",key:{},value:{type:"structure",required:["failureCode","retryable"],members:{failureCode:{},retryable:{type:"boolean"}}}},Sj:{type:"list",member:{}},Sm:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}},Sv:{type:"list",member:{}},S24:{type:"list",member:{shape:"S5"}},S2i:{type:"list",member:{type:"structure",required:["messageType","count"],members:{messageType:{},count:{type:"long"},dataSize:{type:"long"}}}},S2y:{type:"list",member:{}},S32:{type:"structure",members:{minSeconds:{type:"integer"},maxSeconds:{type:"integer"}}},S33:{type:"list",member:{}},S34:{type:"structure",members:{beginDate:{type:"timestamp"},endDate:{type:"timestamp"}}},S36:{type:"list",member:{}},S3w:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}}}},a.apiLoader.services.iotdata={},a.IotData=a.Service.defineService("iotdata",["2015-05-28"]),e("./services/iotdata"),a.apiLoader.services.iotdata["2015-05-28"]={version:"2.0",metadata:{apiVersion:"2015-05-28",endpointPrefix:"data.iot",protocol:"rest-json",serviceFullName:"AWS IoT Data Plane",signatureVersion:"v4",signingName:"iotdata"},operations:{DeleteThingShadow:{http:{method:"DELETE",requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",required:["payload"],members:{payload:{type:"blob"}},payload:"payload"}},GetThingShadow:{http:{method:"GET",requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",members:{payload:{type:"blob"}},payload:"payload"}},Publish:{http:{requestUri:"/topics/{topic}"},input:{type:"structure",required:["topic"],members:{topic:{location:"uri",locationName:"topic"},qos:{location:"querystring",locationName:"qos",type:"integer"},payload:{type:"blob"}},payload:"payload"}},UpdateThingShadow:{http:{requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName","payload"],members:{thingName:{location:"uri",locationName:"thingName"},payload:{type:"blob"}},payload:"payload"},output:{type:"structure",members:{payload:{type:"blob"}},payload:"payload"}}},shapes:{}},a.apiLoader.services.kinesis={},a.Kinesis=a.Service.defineService("kinesis",["2013-12-02"]),a.apiLoader.services.kinesis["2013-12-02"]={version:"2.0",metadata:{apiVersion:"2013-12-02",endpointPrefix:"kinesis",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Kinesis",serviceFullName:"Amazon Kinesis",signatureVersion:"v4",targetPrefix:"Kinesis_20131202"},operations:{AddTagsToStream:{input:{type:"structure",required:["StreamName","Tags"],members:{StreamName:{},Tags:{type:"map",key:{},value:{}}}},http:{}},CreateStream:{input:{type:"structure",required:["StreamName","ShardCount"],members:{StreamName:{},ShardCount:{type:"integer"}}},http:{}},DecreaseStreamRetentionPeriod:{input:{type:"structure",required:["StreamName","RetentionPeriodHours"],members:{StreamName:{},RetentionPeriodHours:{type:"integer"}}},http:{}},DeleteStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{}}},http:{}},DescribeStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{},Limit:{type:"integer"},ExclusiveStartShardId:{}}},output:{type:"structure",required:["StreamDescription"],members:{StreamDescription:{type:"structure",required:["StreamName","StreamARN","StreamStatus","Shards","HasMoreShards","RetentionPeriodHours","EnhancedMonitoring"],members:{StreamName:{},StreamARN:{},StreamStatus:{},Shards:{type:"list",member:{type:"structure",required:["ShardId","HashKeyRange","SequenceNumberRange"],members:{ShardId:{},ParentShardId:{},AdjacentParentShardId:{},HashKeyRange:{type:"structure",required:["StartingHashKey","EndingHashKey"],members:{StartingHashKey:{},EndingHashKey:{}}},SequenceNumberRange:{type:"structure",required:["StartingSequenceNumber"],members:{StartingSequenceNumber:{},EndingSequenceNumber:{}}}}}},HasMoreShards:{type:"boolean"},RetentionPeriodHours:{type:"integer"},EnhancedMonitoring:{type:"list",member:{type:"structure",members:{ShardLevelMetrics:{shape:"Sr"}}}}}}}},http:{}},DisableEnhancedMonitoring:{input:{type:"structure",required:["StreamName","ShardLevelMetrics"],members:{StreamName:{},ShardLevelMetrics:{shape:"Sr"}}},output:{shape:"Su"},http:{}},EnableEnhancedMonitoring:{input:{type:"structure",required:["StreamName","ShardLevelMetrics"],members:{StreamName:{},ShardLevelMetrics:{shape:"Sr"}}},output:{shape:"Su"},http:{}},GetRecords:{input:{type:"structure",required:["ShardIterator"],members:{ShardIterator:{},Limit:{type:"integer"}}},output:{type:"structure",required:["Records"],members:{Records:{type:"list",member:{type:"structure",required:["SequenceNumber","Data","PartitionKey"],members:{SequenceNumber:{},ApproximateArrivalTimestamp:{type:"timestamp"},Data:{type:"blob"},PartitionKey:{}}}},NextShardIterator:{},MillisBehindLatest:{type:"long"}}},http:{}},GetShardIterator:{input:{type:"structure",required:["StreamName","ShardId","ShardIteratorType"],members:{StreamName:{},ShardId:{},ShardIteratorType:{},StartingSequenceNumber:{},Timestamp:{type:"timestamp"}}},output:{type:"structure",members:{ShardIterator:{}}},http:{}},IncreaseStreamRetentionPeriod:{input:{type:"structure",required:["StreamName","RetentionPeriodHours"],members:{StreamName:{},RetentionPeriodHours:{type:"integer"}}},http:{}},ListStreams:{input:{type:"structure",members:{Limit:{type:"integer"},ExclusiveStartStreamName:{}}},output:{type:"structure",required:["StreamNames","HasMoreStreams"],members:{StreamNames:{type:"list",member:{}},HasMoreStreams:{type:"boolean"}}},http:{}},ListTagsForStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{},ExclusiveStartTagKey:{},Limit:{type:"integer"}}},output:{type:"structure",required:["Tags","HasMoreTags"],members:{Tags:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},HasMoreTags:{type:"boolean"}}},http:{}},MergeShards:{input:{type:"structure",required:["StreamName","ShardToMerge","AdjacentShardToMerge"],members:{StreamName:{},ShardToMerge:{},AdjacentShardToMerge:{}}},http:{}},PutRecord:{input:{type:"structure",required:["StreamName","Data","PartitionKey"],members:{StreamName:{},Data:{type:"blob"},PartitionKey:{},ExplicitHashKey:{},SequenceNumberForOrdering:{}}},output:{type:"structure",required:["ShardId","SequenceNumber"],members:{ShardId:{},SequenceNumber:{}}},http:{}},PutRecords:{input:{type:"structure",required:["Records","StreamName"],members:{Records:{type:"list",member:{type:"structure",required:["Data","PartitionKey"],members:{Data:{type:"blob"},ExplicitHashKey:{},PartitionKey:{}}}},StreamName:{}}},output:{type:"structure",required:["Records"],members:{FailedRecordCount:{type:"integer"},Records:{type:"list",member:{type:"structure",members:{SequenceNumber:{},ShardId:{},ErrorCode:{},ErrorMessage:{}}}}}},http:{}},RemoveTagsFromStream:{input:{type:"structure",required:["StreamName","TagKeys"],members:{StreamName:{},TagKeys:{type:"list",member:{}}}},http:{}},SplitShard:{input:{type:"structure",required:["StreamName","ShardToSplit","NewStartingHashKey"],members:{StreamName:{},ShardToSplit:{},NewStartingHashKey:{}}},http:{}}},shapes:{Sr:{type:"list",member:{}},Su:{type:"structure",members:{StreamName:{},CurrentShardLevelMetrics:{shape:"Sr"},DesiredShardLevelMetrics:{shape:"Sr"}}}},paginators:{DescribeStream:{input_token:"ExclusiveStartShardId",limit_key:"Limit",more_results:"StreamDescription.HasMoreShards",output_token:"StreamDescription.Shards[-1].ShardId",result_key:"StreamDescription.Shards"},ListStreams:{input_token:"ExclusiveStartStreamName",limit_key:"Limit",more_results:"HasMoreStreams",output_token:"StreamNames[-1]",result_key:"StreamNames"}},waiters:{StreamExists:{delay:10,operation:"DescribeStream",maxAttempts:18,acceptors:[{expected:"ACTIVE",matcher:"path",state:"success",argument:"StreamDescription.StreamStatus"}]}}},a.apiLoader.services.kms={},a.KMS=a.Service.defineService("kms",["2014-11-01"]),a.apiLoader.services.kms["2014-11-01"]={version:"2.0",metadata:{apiVersion:"2014-11-01",endpointPrefix:"kms",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"KMS",serviceFullName:"AWS Key Management Service",signatureVersion:"v4",targetPrefix:"TrentService"},operations:{CancelKeyDeletion:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},output:{type:"structure",members:{KeyId:{}}},http:{}},CreateAlias:{input:{type:"structure",required:["AliasName","TargetKeyId"],members:{AliasName:{},TargetKeyId:{}}},http:{}},CreateGrant:{input:{type:"structure",required:["KeyId","GranteePrincipal"],members:{KeyId:{},GranteePrincipal:{},RetiringPrincipal:{},Operations:{shape:"S8"},Constraints:{shape:"Sa"},GrantTokens:{shape:"Se"},Name:{}}},output:{type:"structure",members:{GrantToken:{},GrantId:{}}},http:{}},CreateKey:{input:{type:"structure",members:{Policy:{},Description:{},KeyUsage:{},BypassPolicyLockoutSafetyCheck:{type:"boolean"}}},output:{type:"structure",members:{KeyMetadata:{shape:"Sp"}}},http:{}},Decrypt:{input:{type:"structure",required:["CiphertextBlob"],members:{CiphertextBlob:{type:"blob"},EncryptionContext:{shape:"Sb"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{KeyId:{},Plaintext:{shape:"Sx"}}},http:{}},DeleteAlias:{input:{type:"structure",required:["AliasName"],members:{AliasName:{}}},http:{}},DescribeKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{KeyMetadata:{shape:"Sp"}}},http:{}},DisableKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},DisableKeyRotation:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},EnableKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},EnableKeyRotation:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},http:{}},Encrypt:{input:{type:"structure",required:["KeyId","Plaintext"],members:{KeyId:{},Plaintext:{shape:"Sx"},EncryptionContext:{shape:"Sb"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},KeyId:{}}},http:{}},GenerateDataKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},EncryptionContext:{shape:"Sb"},NumberOfBytes:{type:"integer"},KeySpec:{},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},Plaintext:{shape:"Sx"},KeyId:{}}},http:{}},GenerateDataKeyWithoutPlaintext:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},EncryptionContext:{shape:"Sb"},KeySpec:{},NumberOfBytes:{type:"integer"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},KeyId:{}}},http:{}},GenerateRandom:{input:{type:"structure",members:{NumberOfBytes:{type:"integer"}}},output:{type:"structure",members:{Plaintext:{shape:"Sx"}}},http:{}},GetKeyPolicy:{input:{type:"structure",required:["KeyId","PolicyName"],members:{KeyId:{},PolicyName:{}}},output:{type:"structure",members:{Policy:{}}},http:{}},GetKeyRotationStatus:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},output:{type:"structure",members:{KeyRotationEnabled:{type:"boolean"}}},http:{}},ListAliases:{input:{type:"structure",members:{Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Aliases:{type:"list",member:{type:"structure",members:{AliasName:{},AliasArn:{},TargetKeyId:{}}}},NextMarker:{},Truncated:{type:"boolean"}}},http:{}},ListGrants:{input:{type:"structure",required:["KeyId"],members:{Limit:{type:"integer"},Marker:{},KeyId:{}}},output:{shape:"S1r"},http:{}},ListKeyPolicies:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{PolicyNames:{type:"list",member:{}},NextMarker:{},Truncated:{type:"boolean"}}},http:{}},ListKeys:{input:{type:"structure",members:{Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Keys:{type:"list",member:{type:"structure",members:{KeyId:{},KeyArn:{}}}},NextMarker:{},Truncated:{type:"boolean"}}},http:{}},ListRetirableGrants:{input:{type:"structure",required:["RetiringPrincipal"],members:{Limit:{type:"integer"},Marker:{},RetiringPrincipal:{}}},output:{shape:"S1r"},http:{}},PutKeyPolicy:{input:{type:"structure",required:["KeyId","PolicyName","Policy"],members:{KeyId:{},PolicyName:{},Policy:{},BypassPolicyLockoutSafetyCheck:{type:"boolean"}}},http:{}},ReEncrypt:{input:{type:"structure",required:["CiphertextBlob","DestinationKeyId"],members:{CiphertextBlob:{type:"blob"},SourceEncryptionContext:{shape:"Sb"},DestinationKeyId:{},DestinationEncryptionContext:{shape:"Sb"},GrantTokens:{shape:"Se"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},SourceKeyId:{},KeyId:{}}},http:{}},RetireGrant:{input:{type:"structure",members:{GrantToken:{},KeyId:{},GrantId:{}}},http:{}},RevokeGrant:{input:{type:"structure",required:["KeyId","GrantId"],members:{KeyId:{},GrantId:{}}},http:{}},ScheduleKeyDeletion:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},PendingWindowInDays:{type:"integer"}}},output:{type:"structure",members:{KeyId:{},DeletionDate:{type:"timestamp"}}},http:{}},UpdateAlias:{input:{type:"structure",required:["AliasName","TargetKeyId"],members:{AliasName:{},TargetKeyId:{}}},http:{}},UpdateKeyDescription:{input:{type:"structure",required:["KeyId","Description"],members:{KeyId:{},Description:{}}},http:{}}},shapes:{S8:{type:"list",member:{}},Sa:{type:"structure",members:{EncryptionContextSubset:{shape:"Sb"},EncryptionContextEquals:{shape:"Sb"}}},Sb:{type:"map",key:{},value:{}},Se:{type:"list",member:{}},Sp:{type:"structure",required:["KeyId"],members:{AWSAccountId:{},KeyId:{},Arn:{},CreationDate:{type:"timestamp"},Enabled:{type:"boolean"},Description:{},KeyUsage:{},KeyState:{},DeletionDate:{type:"timestamp"}}},Sx:{type:"blob",sensitive:!0},S1r:{type:"structure",members:{Grants:{type:"list",member:{type:"structure",members:{KeyId:{},GrantId:{},Name:{},CreationDate:{type:"timestamp"},GranteePrincipal:{},RetiringPrincipal:{},IssuingAccount:{},Operations:{shape:"S8"},Constraints:{shape:"Sa"}}}},NextMarker:{},Truncated:{type:"boolean"}}}},paginators:{ListAliases:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"Aliases"},ListGrants:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"Grants"},ListKeyPolicies:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"PolicyNames"},ListKeys:{limit_key:"Limit",input_token:"Marker",output_token:"NextMarker",more_results:"Truncated",result_key:"Keys"}}},a.apiLoader.services.lambda={},a.Lambda=a.Service.defineService("lambda",["2014-11-11","2015-03-31"]),a.apiLoader.services.lambda["2015-03-31"]={version:"2.0",metadata:{apiVersion:"2015-03-31",endpointPrefix:"lambda",protocol:"rest-json",serviceFullName:"AWS Lambda",signatureVersion:"v4"},operations:{AddPermission:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/policy",responseCode:201},input:{type:"structure",required:["FunctionName","StatementId","Action","Principal"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},StatementId:{},Action:{},Principal:{},SourceArn:{},SourceAccount:{},EventSourceToken:{},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{type:"structure",members:{Statement:{}}}},CreateAlias:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/aliases",responseCode:201},input:{type:"structure",required:["FunctionName","Name","FunctionVersion"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{},FunctionVersion:{},Description:{}}},output:{shape:"Sg"}},CreateEventSourceMapping:{http:{requestUri:"/2015-03-31/event-source-mappings/",responseCode:202},input:{type:"structure",required:["EventSourceArn","FunctionName","StartingPosition"],members:{EventSourceArn:{},FunctionName:{},Enabled:{type:"boolean"},BatchSize:{type:"integer"},StartingPosition:{}}},output:{shape:"Sm"}},CreateFunction:{http:{requestUri:"/2015-03-31/functions",responseCode:201},input:{type:"structure",required:["FunctionName","Runtime","Role","Handler","Code"],members:{FunctionName:{},Runtime:{},Role:{},Handler:{},Code:{type:"structure",members:{ZipFile:{type:"blob"},S3Bucket:{},S3Key:{},S3ObjectVersion:{}}},Description:{},Timeout:{type:"integer"},MemorySize:{type:"integer"},Publish:{type:"boolean"},VpcConfig:{shape:"S10"}}},output:{shape:"S15"}},DeleteAlias:{http:{method:"DELETE",requestUri:"/2015-03-31/functions/{FunctionName}/aliases/{Name}",responseCode:204},input:{type:"structure",required:["FunctionName","Name"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{location:"uri",locationName:"Name"}}}},DeleteEventSourceMapping:{http:{method:"DELETE",requestUri:"/2015-03-31/event-source-mappings/{UUID}",responseCode:202},input:{type:"structure",required:["UUID"],members:{UUID:{location:"uri",locationName:"UUID"}}},output:{shape:"Sm"}},DeleteFunction:{http:{method:"DELETE",requestUri:"/2015-03-31/functions/{FunctionName}",responseCode:204},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}}},GetAlias:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/aliases/{Name}",responseCode:200},input:{type:"structure",required:["FunctionName","Name"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{location:"uri",locationName:"Name"}}},output:{shape:"Sg"}},GetEventSourceMapping:{http:{method:"GET",requestUri:"/2015-03-31/event-source-mappings/{UUID}",responseCode:200},input:{type:"structure",required:["UUID"],members:{UUID:{location:"uri",locationName:"UUID"}}},output:{shape:"Sm"}},GetFunction:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{type:"structure",members:{Configuration:{shape:"S15"},Code:{type:"structure",members:{RepositoryType:{},Location:{}}}}}},GetFunctionConfiguration:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/configuration",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{shape:"S15"}},GetPolicy:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/policy",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Qualifier:{location:"querystring",locationName:"Qualifier"}}},output:{type:"structure",members:{Policy:{}}}},Invoke:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/invocations"},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},InvocationType:{location:"header",locationName:"X-Amz-Invocation-Type"},LogType:{location:"header",locationName:"X-Amz-Log-Type"},ClientContext:{location:"header",locationName:"X-Amz-Client-Context"},Payload:{type:"blob"},Qualifier:{location:"querystring",locationName:"Qualifier"}},payload:"Payload"},output:{type:"structure",members:{StatusCode:{location:"statusCode",type:"integer"},FunctionError:{location:"header",locationName:"X-Amz-Function-Error"},LogResult:{location:"header",locationName:"X-Amz-Log-Result"},Payload:{type:"blob"}},payload:"Payload"}},InvokeAsync:{http:{requestUri:"/2014-11-13/functions/{FunctionName}/invoke-async/",responseCode:202},input:{type:"structure",required:["FunctionName","InvokeArgs"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},InvokeArgs:{type:"blob",streaming:!0}},deprecated:!0,payload:"InvokeArgs"},output:{type:"structure",members:{Status:{location:"statusCode",type:"integer"}},deprecated:!0},deprecated:!0},ListAliases:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/aliases",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},FunctionVersion:{location:"querystring",locationName:"FunctionVersion"},Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Aliases:{type:"list",member:{shape:"Sg"}}}}},ListEventSourceMappings:{http:{method:"GET",requestUri:"/2015-03-31/event-source-mappings/",responseCode:200},input:{type:"structure",members:{EventSourceArn:{location:"querystring",locationName:"EventSourceArn"},FunctionName:{location:"querystring",locationName:"FunctionName"},Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},EventSourceMappings:{type:"list",member:{shape:"Sm"}}}}},ListFunctions:{http:{method:"GET",requestUri:"/2015-03-31/functions/",responseCode:200},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Functions:{shape:"S23"}}}},ListVersionsByFunction:{http:{method:"GET",requestUri:"/2015-03-31/functions/{FunctionName}/versions",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Marker:{location:"querystring",locationName:"Marker"},MaxItems:{location:"querystring",locationName:"MaxItems",type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Versions:{shape:"S23"}}}},PublishVersion:{http:{requestUri:"/2015-03-31/functions/{FunctionName}/versions",responseCode:201},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},CodeSha256:{},Description:{}}},output:{shape:"S15"}},RemovePermission:{http:{method:"DELETE",requestUri:"/2015-03-31/functions/{FunctionName}/policy/{StatementId}",responseCode:204},input:{type:"structure",required:["FunctionName","StatementId"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},StatementId:{location:"uri",locationName:"StatementId"},Qualifier:{location:"querystring",locationName:"Qualifier"}}}},UpdateAlias:{http:{method:"PUT",requestUri:"/2015-03-31/functions/{FunctionName}/aliases/{Name}",responseCode:200},input:{type:"structure",required:["FunctionName","Name"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Name:{location:"uri",locationName:"Name"},FunctionVersion:{},Description:{}}},output:{shape:"Sg"}},UpdateEventSourceMapping:{http:{method:"PUT",requestUri:"/2015-03-31/event-source-mappings/{UUID}",responseCode:202},input:{type:"structure",required:["UUID"],members:{UUID:{location:"uri",locationName:"UUID"},FunctionName:{},Enabled:{type:"boolean"},BatchSize:{type:"integer"}}},output:{shape:"Sm"}},UpdateFunctionCode:{http:{method:"PUT",requestUri:"/2015-03-31/functions/{FunctionName}/code",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},ZipFile:{type:"blob"},S3Bucket:{},S3Key:{},S3ObjectVersion:{},Publish:{type:"boolean"}}},output:{shape:"S15"}},UpdateFunctionConfiguration:{http:{method:"PUT",requestUri:"/2015-03-31/functions/{FunctionName}/configuration",responseCode:200},input:{type:"structure",required:["FunctionName"],members:{FunctionName:{location:"uri",locationName:"FunctionName"},Role:{},Handler:{},Description:{},Timeout:{type:"integer"},MemorySize:{type:"integer"},VpcConfig:{shape:"S10"},Runtime:{}}},output:{shape:"S15"}}},shapes:{Sg:{type:"structure",members:{AliasArn:{},Name:{},FunctionVersion:{},Description:{}}},Sm:{type:"structure",members:{UUID:{},BatchSize:{type:"integer"},EventSourceArn:{},FunctionArn:{},LastModified:{type:"timestamp"},LastProcessingResult:{},State:{},StateTransitionReason:{}}},S10:{type:"structure",members:{SubnetIds:{shape:"S11"},SecurityGroupIds:{shape:"S13"}}},S11:{type:"list",member:{}},S13:{type:"list",member:{}},S15:{type:"structure",members:{FunctionName:{},FunctionArn:{},Runtime:{},Role:{},Handler:{},CodeSize:{type:"long"},Description:{},Timeout:{type:"integer"},MemorySize:{type:"integer"},LastModified:{},CodeSha256:{},Version:{},VpcConfig:{type:"structure",members:{SubnetIds:{shape:"S11"},SecurityGroupIds:{shape:"S13"},VpcId:{}}}}},S23:{type:"list",member:{shape:"S15"}}},paginators:{ListEventSourceMappings:{input_token:"Marker",output_token:"NextMarker",limit_key:"MaxItems",result_key:"EventSourceMappings"},ListFunctions:{input_token:"Marker",output_token:"NextMarker",limit_key:"MaxItems",result_key:"Functions"}}},a.apiLoader.services.machinelearning={},a.MachineLearning=a.Service.defineService("machinelearning",["2014-12-12"]),e("./services/machinelearning"),a.apiLoader.services.machinelearning["2014-12-12"]={version:"2.0",metadata:{apiVersion:"2014-12-12",endpointPrefix:"machinelearning",jsonVersion:"1.1",serviceFullName:"Amazon Machine Learning",signatureVersion:"v4",targetPrefix:"AmazonML_20141212",protocol:"json"},operations:{AddTags:{input:{type:"structure",required:["Tags","ResourceId","ResourceType"],members:{Tags:{shape:"S2"},ResourceId:{},ResourceType:{}}},output:{type:"structure",members:{ResourceId:{},ResourceType:{}}},http:{}},CreateBatchPrediction:{input:{type:"structure",required:["BatchPredictionId","MLModelId","BatchPredictionDataSourceId","OutputUri"],members:{BatchPredictionId:{},BatchPredictionName:{},MLModelId:{},BatchPredictionDataSourceId:{},OutputUri:{}}},output:{type:"structure",members:{BatchPredictionId:{}}},http:{}},CreateDataSourceFromRDS:{input:{type:"structure",required:["DataSourceId","RDSData","RoleARN"],members:{DataSourceId:{},DataSourceName:{},RDSData:{type:"structure",required:["DatabaseInformation","SelectSqlQuery","DatabaseCredentials","S3StagingLocation","ResourceRole","ServiceRole","SubnetId","SecurityGroupIds"],members:{DatabaseInformation:{shape:"Sf"},SelectSqlQuery:{},DatabaseCredentials:{type:"structure",required:["Username","Password"],members:{Username:{},Password:{}}},S3StagingLocation:{},DataRearrangement:{},DataSchema:{},DataSchemaUri:{},ResourceRole:{},ServiceRole:{},SubnetId:{},SecurityGroupIds:{type:"list",member:{}}}},RoleARN:{},ComputeStatistics:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},CreateDataSourceFromRedshift:{input:{type:"structure",required:["DataSourceId","DataSpec","RoleARN"],members:{DataSourceId:{},DataSourceName:{},DataSpec:{type:"structure",required:["DatabaseInformation","SelectSqlQuery","DatabaseCredentials","S3StagingLocation"],members:{DatabaseInformation:{shape:"Sy"},SelectSqlQuery:{},DatabaseCredentials:{type:"structure",required:["Username","Password"],members:{Username:{},Password:{}}},S3StagingLocation:{},DataRearrangement:{},DataSchema:{},DataSchemaUri:{}}},RoleARN:{},ComputeStatistics:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},CreateDataSourceFromS3:{input:{type:"structure",required:["DataSourceId","DataSpec"],members:{DataSourceId:{},DataSourceName:{},DataSpec:{type:"structure",required:["DataLocationS3"],members:{DataLocationS3:{},DataRearrangement:{},DataSchema:{},DataSchemaLocationS3:{}}},ComputeStatistics:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},CreateEvaluation:{input:{type:"structure",required:["EvaluationId","MLModelId","EvaluationDataSourceId"],members:{EvaluationId:{},EvaluationName:{},MLModelId:{},EvaluationDataSourceId:{}}},output:{type:"structure",members:{EvaluationId:{}}},http:{}},CreateMLModel:{input:{type:"structure",required:["MLModelId","MLModelType","TrainingDataSourceId"],members:{MLModelId:{},MLModelName:{},MLModelType:{},Parameters:{shape:"S1d"},TrainingDataSourceId:{},Recipe:{},RecipeUri:{}}},output:{type:"structure",members:{MLModelId:{}}},http:{}},CreateRealtimeEndpoint:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{}}},output:{type:"structure",members:{MLModelId:{},RealtimeEndpointInfo:{shape:"S1j"}}},http:{}},DeleteBatchPrediction:{input:{type:"structure",required:["BatchPredictionId"],members:{BatchPredictionId:{}}},output:{type:"structure",members:{BatchPredictionId:{}}},http:{}},DeleteDataSource:{input:{type:"structure",required:["DataSourceId"],members:{DataSourceId:{}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},DeleteEvaluation:{input:{type:"structure",required:["EvaluationId"],members:{EvaluationId:{}}},output:{type:"structure",members:{EvaluationId:{}}},http:{}},DeleteMLModel:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{}}},output:{type:"structure",members:{MLModelId:{}}},http:{}},DeleteRealtimeEndpoint:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{}}},output:{type:"structure",members:{MLModelId:{},RealtimeEndpointInfo:{shape:"S1j"}}},http:{}},DeleteTags:{input:{type:"structure",required:["TagKeys","ResourceId","ResourceType"],members:{TagKeys:{type:"list",member:{}},ResourceId:{},ResourceType:{}}},output:{type:"structure",members:{ResourceId:{},ResourceType:{}}},http:{}},DescribeBatchPredictions:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{BatchPredictionId:{},MLModelId:{},BatchPredictionDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},OutputUri:{},Message:{}}}},NextToken:{}}},http:{}},DescribeDataSources:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{DataSourceId:{},DataLocationS3:{},DataRearrangement:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},DataSizeInBytes:{type:"long"},NumberOfFiles:{type:"long"},Name:{},Status:{},Message:{},RedshiftMetadata:{shape:"S2i"},RDSMetadata:{shape:"S2j"},RoleARN:{},ComputeStatistics:{type:"boolean"}}}},NextToken:{}}},http:{}},DescribeEvaluations:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{EvaluationId:{},MLModelId:{},EvaluationDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},PerformanceMetrics:{shape:"S2q"},Message:{}}}},NextToken:{}}},http:{}},DescribeMLModels:{input:{type:"structure",members:{FilterVariable:{},EQ:{},GT:{},LT:{},GE:{},LE:{},NE:{},Prefix:{},SortOrder:{},NextToken:{},Limit:{type:"integer" +}}},output:{type:"structure",members:{Results:{type:"list",member:{type:"structure",members:{MLModelId:{},TrainingDataSourceId:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},SizeInBytes:{type:"long"},EndpointInfo:{shape:"S1j"},TrainingParameters:{shape:"S1d"},InputDataLocationS3:{},Algorithm:{},MLModelType:{},ScoreThreshold:{type:"float"},ScoreThresholdLastUpdatedAt:{type:"timestamp"},Message:{}}}},NextToken:{}}},http:{}},DescribeTags:{input:{type:"structure",required:["ResourceId","ResourceType"],members:{ResourceId:{},ResourceType:{}}},output:{type:"structure",members:{ResourceId:{},ResourceType:{},Tags:{shape:"S2"}}},http:{}},GetBatchPrediction:{input:{type:"structure",required:["BatchPredictionId"],members:{BatchPredictionId:{}}},output:{type:"structure",members:{BatchPredictionId:{},MLModelId:{},BatchPredictionDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},OutputUri:{},LogUri:{},Message:{}}},http:{}},GetDataSource:{input:{type:"structure",required:["DataSourceId"],members:{DataSourceId:{},Verbose:{type:"boolean"}}},output:{type:"structure",members:{DataSourceId:{},DataLocationS3:{},DataRearrangement:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},DataSizeInBytes:{type:"long"},NumberOfFiles:{type:"long"},Name:{},Status:{},LogUri:{},Message:{},RedshiftMetadata:{shape:"S2i"},RDSMetadata:{shape:"S2j"},RoleARN:{},ComputeStatistics:{type:"boolean"},DataSourceSchema:{}}},http:{}},GetEvaluation:{input:{type:"structure",required:["EvaluationId"],members:{EvaluationId:{}}},output:{type:"structure",members:{EvaluationId:{},MLModelId:{},EvaluationDataSourceId:{},InputDataLocationS3:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},PerformanceMetrics:{shape:"S2q"},LogUri:{},Message:{}}},http:{}},GetMLModel:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{},Verbose:{type:"boolean"}}},output:{type:"structure",members:{MLModelId:{},TrainingDataSourceId:{},CreatedByIamUser:{},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"},Name:{},Status:{},SizeInBytes:{type:"long"},EndpointInfo:{shape:"S1j"},TrainingParameters:{shape:"S1d"},InputDataLocationS3:{},MLModelType:{},ScoreThreshold:{type:"float"},ScoreThresholdLastUpdatedAt:{type:"timestamp"},LogUri:{},Message:{},Recipe:{},Schema:{}}},http:{}},Predict:{input:{type:"structure",required:["MLModelId","Record","PredictEndpoint"],members:{MLModelId:{},Record:{type:"map",key:{},value:{}},PredictEndpoint:{}}},output:{type:"structure",members:{Prediction:{type:"structure",members:{predictedLabel:{},predictedValue:{type:"float"},predictedScores:{type:"map",key:{},value:{type:"float"}},details:{type:"map",key:{},value:{}}}}}},http:{}},UpdateBatchPrediction:{input:{type:"structure",required:["BatchPredictionId","BatchPredictionName"],members:{BatchPredictionId:{},BatchPredictionName:{}}},output:{type:"structure",members:{BatchPredictionId:{}}},http:{}},UpdateDataSource:{input:{type:"structure",required:["DataSourceId","DataSourceName"],members:{DataSourceId:{},DataSourceName:{}}},output:{type:"structure",members:{DataSourceId:{}}},http:{}},UpdateEvaluation:{input:{type:"structure",required:["EvaluationId","EvaluationName"],members:{EvaluationId:{},EvaluationName:{}}},output:{type:"structure",members:{EvaluationId:{}}},http:{}},UpdateMLModel:{input:{type:"structure",required:["MLModelId"],members:{MLModelId:{},MLModelName:{},ScoreThreshold:{type:"float"}}},output:{type:"structure",members:{MLModelId:{}}},http:{}}},shapes:{S2:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},Sf:{type:"structure",required:["InstanceIdentifier","DatabaseName"],members:{InstanceIdentifier:{},DatabaseName:{}}},Sy:{type:"structure",required:["DatabaseName","ClusterIdentifier"],members:{DatabaseName:{},ClusterIdentifier:{}}},S1d:{type:"map",key:{},value:{}},S1j:{type:"structure",members:{PeakRequestsPerSecond:{type:"integer"},CreatedAt:{type:"timestamp"},EndpointUrl:{},EndpointStatus:{}}},S2i:{type:"structure",members:{RedshiftDatabase:{shape:"Sy"},DatabaseUserName:{},SelectSqlQuery:{}}},S2j:{type:"structure",members:{Database:{shape:"Sf"},DatabaseUserName:{},SelectSqlQuery:{},ResourceRole:{},ServiceRole:{},DataPipelineId:{}}},S2q:{type:"structure",members:{Properties:{type:"map",key:{},value:{}}}}},examples:{},paginators:{DescribeBatchPredictions:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"},DescribeDataSources:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"},DescribeEvaluations:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"},DescribeMLModels:{limit_key:"Limit",output_token:"NextToken",input_token:"NextToken",result_key:"Results"}},waiters:{DataSourceAvailable:{delay:30,operation:"DescribeDataSources",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]},MLModelAvailable:{delay:30,operation:"DescribeMLModels",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]},EvaluationAvailable:{delay:30,operation:"DescribeEvaluations",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]},BatchPredictionAvailable:{delay:30,operation:"DescribeBatchPredictions",maxAttempts:60,acceptors:[{expected:"COMPLETED",matcher:"pathAll",state:"success",argument:"Results[].Status"},{expected:"FAILED",matcher:"pathAny",state:"failure",argument:"Results[].Status"}]}}},a.apiLoader.services.marketplacecommerceanalytics={},a.MarketplaceCommerceAnalytics=a.Service.defineService("marketplacecommerceanalytics",["2015-07-01"]),a.apiLoader.services.marketplacecommerceanalytics["2015-07-01"]={version:"2.0",metadata:{apiVersion:"2015-07-01",endpointPrefix:"marketplacecommerceanalytics",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Marketplace Commerce Analytics",signatureVersion:"v4",signingName:"marketplacecommerceanalytics",targetPrefix:"MarketplaceCommerceAnalytics20150701"},operations:{GenerateDataSet:{input:{type:"structure",required:["dataSetType","dataSetPublicationDate","roleNameArn","destinationS3BucketName","snsTopicArn"],members:{dataSetType:{},dataSetPublicationDate:{type:"timestamp"},roleNameArn:{},destinationS3BucketName:{},destinationS3Prefix:{},snsTopicArn:{},customerDefinedValues:{type:"map",key:{},value:{}}}},output:{type:"structure",members:{dataSetRequestId:{}}},http:{}}},shapes:{}},a.apiLoader.services.mobileanalytics={},a.MobileAnalytics=a.Service.defineService("mobileanalytics",["2014-06-05"]),a.apiLoader.services.mobileanalytics["2014-06-05"]={version:"2.0",metadata:{apiVersion:"2014-06-05",endpointPrefix:"mobileanalytics",serviceFullName:"Amazon Mobile Analytics",signatureVersion:"v4",protocol:"rest-json"},operations:{PutEvents:{http:{requestUri:"/2014-06-05/events",responseCode:202},input:{type:"structure",required:["events","clientContext"],members:{events:{type:"list",member:{type:"structure",required:["eventType","timestamp"],members:{eventType:{},timestamp:{},session:{type:"structure",members:{id:{},duration:{type:"long"},startTimestamp:{},stopTimestamp:{}}},version:{},attributes:{type:"map",key:{},value:{}},metrics:{type:"map",key:{},value:{type:"double"}}}}},clientContext:{location:"header",locationName:"x-amz-Client-Context"},clientContextEncoding:{location:"header",locationName:"x-amz-Client-Context-Encoding"}}}}},shapes:{}},a.apiLoader.services.opsworks={},a.OpsWorks=a.Service.defineService("opsworks",["2013-02-18"]),a.apiLoader.services.opsworks["2013-02-18"]={version:"2.0",metadata:{apiVersion:"2013-02-18",endpointPrefix:"opsworks",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS OpsWorks",signatureVersion:"v4",targetPrefix:"OpsWorks_20130218"},operations:{AssignInstance:{input:{type:"structure",required:["InstanceId","LayerIds"],members:{InstanceId:{},LayerIds:{shape:"S3"}}},http:{}},AssignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},InstanceId:{}}},http:{}},AssociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},InstanceId:{}}},http:{}},AttachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}},http:{}},CloneStack:{input:{type:"structure",required:["SourceStackId","ServiceRoleArn"],members:{SourceStackId:{},Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},ClonePermissions:{type:"boolean"},CloneAppIds:{shape:"S3"},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}},http:{}},CreateApp:{input:{type:"structure",required:["StackId","Name","Type"],members:{StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}},output:{type:"structure",members:{AppId:{}}},http:{}},CreateDeployment:{input:{type:"structure",required:["StackId","Command"],members:{StackId:{},AppId:{},InstanceIds:{shape:"S3"},LayerIds:{shape:"S3"},Command:{shape:"Ss"},Comment:{},CustomJson:{}}},output:{type:"structure",members:{DeploymentId:{}}},http:{}},CreateInstance:{input:{type:"structure",required:["StackId","LayerIds","InstanceType"],members:{StackId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},AvailabilityZone:{},VirtualizationType:{},SubnetId:{},Architecture:{},RootDeviceType:{},BlockDeviceMappings:{shape:"Sz"},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{},Tenancy:{}}},output:{type:"structure",members:{InstanceId:{}}},http:{}},CreateLayer:{input:{type:"structure",required:["StackId","Type","Name","Shortname"],members:{StackId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S19"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1b"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1c"}}},output:{type:"structure",members:{LayerId:{}}},http:{}},CreateStack:{input:{type:"structure",required:["Name","Region","ServiceRoleArn","DefaultInstanceProfileArn"],members:{Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}},http:{}},CreateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}},output:{type:"structure",members:{IamUserArn:{}}},http:{}},DeleteApp:{input:{type:"structure",required:["AppId"],members:{AppId:{}}},http:{}},DeleteInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},DeleteElasticIp:{type:"boolean"},DeleteVolumes:{type:"boolean"}}},http:{}},DeleteLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}},http:{}},DeleteStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},http:{}},DeleteUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{}}},http:{}},DeregisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn"],members:{EcsClusterArn:{}}},http:{}},DeregisterElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}},http:{}},DeregisterInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},DeregisterRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{}}},http:{}},DeregisterVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}},http:{}},DescribeAgentVersions:{input:{type:"structure",members:{StackId:{},ConfigurationManager:{shape:"Sa"}}},output:{type:"structure",members:{AgentVersions:{type:"list",member:{type:"structure",members:{Version:{},ConfigurationManager:{shape:"Sa"}}}}}},http:{}},DescribeApps:{input:{type:"structure",members:{StackId:{},AppIds:{shape:"S3"}}},output:{type:"structure",members:{Apps:{type:"list",member:{type:"structure",members:{AppId:{},StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},CreatedAt:{},Environment:{shape:"So"}}}}}},http:{}},DescribeCommands:{input:{type:"structure",members:{DeploymentId:{},InstanceId:{},CommandIds:{shape:"S3"}}},output:{type:"structure",members:{Commands:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},DeploymentId:{},CreatedAt:{},AcknowledgedAt:{},CompletedAt:{},Status:{},ExitCode:{type:"integer"},LogUrl:{},Type:{}}}}}},http:{}},DescribeDeployments:{input:{type:"structure",members:{StackId:{},AppId:{},DeploymentIds:{shape:"S3"}}},output:{type:"structure",members:{Deployments:{type:"list",member:{type:"structure",members:{DeploymentId:{},StackId:{},AppId:{},CreatedAt:{},CompletedAt:{},Duration:{type:"integer"},IamUserArn:{},Comment:{},Command:{shape:"Ss"},Status:{},CustomJson:{},InstanceIds:{shape:"S3"}}}}}},http:{}},DescribeEcsClusters:{input:{type:"structure",members:{EcsClusterArns:{shape:"S3"},StackId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EcsClusters:{type:"list",member:{type:"structure",members:{EcsClusterArn:{},EcsClusterName:{},StackId:{},RegisteredAt:{}}}},NextToken:{}}},http:{}},DescribeElasticIps:{input:{type:"structure",members:{InstanceId:{},StackId:{},Ips:{shape:"S3"}}},output:{type:"structure",members:{ElasticIps:{type:"list",member:{type:"structure",members:{Ip:{},Name:{},Domain:{},Region:{},InstanceId:{}}}}}},http:{}},DescribeElasticLoadBalancers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{ElasticLoadBalancers:{type:"list",member:{type:"structure",members:{ElasticLoadBalancerName:{},Region:{},DnsName:{},StackId:{},LayerId:{},VpcId:{},AvailabilityZones:{shape:"S3"},SubnetIds:{shape:"S3"},Ec2InstanceIds:{shape:"S3"}}}}}},http:{}},DescribeInstances:{input:{type:"structure",members:{StackId:{},LayerId:{},InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{Instances:{type:"list",member:{type:"structure",members:{AgentVersion:{},AmiId:{},Architecture:{},AutoScalingType:{},AvailabilityZone:{},BlockDeviceMappings:{shape:"Sz"},CreatedAt:{},EbsOptimized:{type:"boolean"},Ec2InstanceId:{},EcsClusterArn:{},EcsContainerInstanceArn:{},ElasticIp:{},Hostname:{},InfrastructureClass:{},InstallUpdatesOnBoot:{type:"boolean"},InstanceId:{},InstanceProfileArn:{},InstanceType:{},LastServiceErrorId:{},LayerIds:{shape:"S3"},Os:{},Platform:{},PrivateDns:{},PrivateIp:{},PublicDns:{},PublicIp:{},RegisteredBy:{},ReportedAgentVersion:{},ReportedOs:{type:"structure",members:{Family:{},Name:{},Version:{}}},RootDeviceType:{},RootDeviceVolumeId:{},SecurityGroupIds:{shape:"S3"},SshHostDsaKeyFingerprint:{},SshHostRsaKeyFingerprint:{},SshKeyName:{},StackId:{},Status:{},SubnetId:{},Tenancy:{},VirtualizationType:{}}}}}},http:{}},DescribeLayers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{Layers:{type:"list",member:{type:"structure",members:{StackId:{},LayerId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},DefaultSecurityGroupNames:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S19"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},DefaultRecipes:{shape:"S1b"},CustomRecipes:{shape:"S1b"},CreatedAt:{},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1c"}}}}}},http:{}},DescribeLoadBasedAutoScaling:{input:{type:"structure",required:["LayerIds"],members:{LayerIds:{shape:"S3"}}},output:{type:"structure",members:{LoadBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S30"},DownScaling:{shape:"S30"}}}}}},http:{}},DescribeMyUserProfile:{output:{type:"structure",members:{UserProfile:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{}}}}},http:{}},DescribePermissions:{input:{type:"structure",members:{IamUserArn:{},StackId:{}}},output:{type:"structure",members:{Permissions:{type:"list",member:{type:"structure",members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}}}}},http:{}},DescribeRaidArrays:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayIds:{shape:"S3"}}},output:{type:"structure",members:{RaidArrays:{type:"list",member:{type:"structure",members:{RaidArrayId:{},InstanceId:{},Name:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},Device:{},MountPoint:{},AvailabilityZone:{},CreatedAt:{},StackId:{},VolumeType:{},Iops:{type:"integer"}}}}}},http:{}},DescribeRdsDbInstances:{input:{type:"structure",required:["StackId"],members:{StackId:{},RdsDbInstanceArns:{shape:"S3"}}},output:{type:"structure",members:{RdsDbInstances:{type:"list",member:{type:"structure",members:{RdsDbInstanceArn:{},DbInstanceIdentifier:{},DbUser:{},DbPassword:{},Region:{},Address:{},Engine:{},StackId:{},MissingOnRds:{type:"boolean"}}}}}},http:{}},DescribeServiceErrors:{input:{type:"structure",members:{StackId:{},InstanceId:{},ServiceErrorIds:{shape:"S3"}}},output:{type:"structure",members:{ServiceErrors:{type:"list",member:{type:"structure",members:{ServiceErrorId:{},StackId:{},InstanceId:{},Type:{},Message:{},CreatedAt:{}}}}}},http:{}},DescribeStackProvisioningParameters:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{AgentInstallerUrl:{},Parameters:{type:"map",key:{},value:{}}}},http:{}},DescribeStackSummary:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{StackSummary:{type:"structure",members:{StackId:{},Name:{},Arn:{},LayersCount:{type:"integer"},AppsCount:{type:"integer"},InstancesCount:{type:"structure",members:{Assigning:{type:"integer"},Booting:{type:"integer"},ConnectionLost:{type:"integer"},Deregistering:{type:"integer"},Online:{type:"integer"},Pending:{type:"integer"},Rebooting:{type:"integer"},Registered:{type:"integer"},Registering:{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"},Unassigning:{type:"integer"}}}}}}},http:{}},DescribeStacks:{input:{type:"structure",members:{StackIds:{shape:"S3"}}},output:{type:"structure",members:{Stacks:{type:"list",member:{type:"structure",members:{StackId:{},Name:{},Arn:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},CreatedAt:{},DefaultRootDeviceType:{},AgentVersion:{}}}}}},http:{}},DescribeTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceIds"],members:{InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{TimeBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{InstanceId:{},AutoScalingSchedule:{shape:"S40"}}}}}},http:{}},DescribeUserProfiles:{input:{type:"structure",members:{IamUserArns:{shape:"S3"}}},output:{type:"structure",members:{UserProfiles:{type:"list",member:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}}}}},http:{}},DescribeVolumes:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayId:{},VolumeIds:{shape:"S3"}}},output:{type:"structure",members:{Volumes:{type:"list",member:{type:"structure",members:{VolumeId:{},Ec2VolumeId:{},Name:{},RaidArrayId:{},InstanceId:{},Status:{},Size:{type:"integer"},Device:{},MountPoint:{},Region:{},AvailabilityZone:{},VolumeType:{},Iops:{type:"integer"}}}}}},http:{}},DetachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}},http:{}},DisassociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}},http:{}},GetHostnameSuggestion:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}},output:{type:"structure",members:{LayerId:{},Hostname:{}}},http:{}},GrantAccess:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},ValidForInMinutes:{type:"integer"}}},output:{type:"structure",members:{TemporaryCredential:{type:"structure",members:{Username:{},Password:{},ValidForInMinutes:{type:"integer"},InstanceId:{}}}}},http:{}},RebootInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},RegisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn","StackId"],members:{EcsClusterArn:{},StackId:{}}},output:{type:"structure",members:{EcsClusterArn:{}}},http:{}},RegisterElasticIp:{input:{type:"structure",required:["ElasticIp","StackId"],members:{ElasticIp:{},StackId:{}}},output:{type:"structure",members:{ElasticIp:{}}},http:{}},RegisterInstance:{input:{type:"structure",required:["StackId"],members:{StackId:{},Hostname:{},PublicIp:{},PrivateIp:{},RsaPublicKey:{},RsaPublicKeyFingerprint:{},InstanceIdentity:{type:"structure",members:{Document:{},Signature:{}}}}},output:{type:"structure",members:{InstanceId:{}}},http:{}},RegisterRdsDbInstance:{input:{type:"structure",required:["StackId","RdsDbInstanceArn","DbUser","DbPassword"],members:{StackId:{},RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}},http:{}},RegisterVolume:{input:{type:"structure",required:["StackId"],members:{Ec2VolumeId:{},StackId:{}}},output:{type:"structure",members:{VolumeId:{}}},http:{}},SetLoadBasedAutoScaling:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S30"},DownScaling:{shape:"S30"}}},http:{}},SetPermission:{input:{type:"structure",required:["StackId","IamUserArn"],members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}},http:{}},SetTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},AutoScalingSchedule:{shape:"S40"}}},http:{}},StartInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},StartStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},http:{}},StopInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},StopStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},http:{}},UnassignInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},http:{}},UnassignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}},http:{}},UpdateApp:{input:{type:"structure",required:["AppId"],members:{AppId:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}},http:{}},UpdateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},Name:{}}},http:{}},UpdateInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},Architecture:{},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{}}},http:{}},UpdateLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S19"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1b"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1c"}}},http:{}},UpdateMyUserProfile:{input:{type:"structure",members:{SshPublicKey:{}}},http:{}},UpdateRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}},http:{}},UpdateStack:{input:{type:"structure",required:["StackId"],members:{StackId:{},Name:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},UseOpsworksSecurityGroups:{type:"boolean"},AgentVersion:{}}},http:{}},UpdateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}},http:{}},UpdateVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},Name:{},MountPoint:{}}},http:{}}},shapes:{S3:{type:"list",member:{}},S8:{type:"map",key:{},value:{}},Sa:{type:"structure",members:{Name:{},Version:{}}},Sb:{type:"structure",members:{ManageBerkshelf:{type:"boolean"},BerkshelfVersion:{}}},Sd:{type:"structure",members:{Type:{},Url:{},Username:{},Password:{},SshKey:{},Revision:{}}},Si:{type:"list",member:{type:"structure",members:{Type:{},Arn:{},DatabaseName:{}}}},Sl:{type:"structure",required:["Certificate","PrivateKey"],members:{Certificate:{},PrivateKey:{},Chain:{}}},Sm:{type:"map",key:{},value:{}},So:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{},Secure:{type:"boolean"}}}},Ss:{type:"structure",required:["Name"],members:{Name:{},Args:{type:"map",key:{},value:{shape:"S3"}}}},Sz:{type:"list",member:{type:"structure",members:{DeviceName:{},NoDevice:{},VirtualName:{},Ebs:{type:"structure",members:{SnapshotId:{},Iops:{type:"integer"},VolumeSize:{type:"integer"},VolumeType:{},DeleteOnTermination:{type:"boolean"}}}}}},S17:{type:"map",key:{},value:{}},S19:{type:"list",member:{type:"structure",required:["MountPoint","NumberOfDisks","Size"],members:{MountPoint:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},VolumeType:{},Iops:{type:"integer"}}}},S1b:{type:"structure",members:{Setup:{shape:"S3"},Configure:{shape:"S3"},Deploy:{shape:"S3"},Undeploy:{shape:"S3"},Shutdown:{shape:"S3"}}},S1c:{type:"structure",members:{Shutdown:{type:"structure",members:{ExecutionTimeout:{type:"integer"},DelayUntilElbConnectionsDrained:{type:"boolean"}}}}},S30:{type:"structure",members:{InstanceCount:{type:"integer"},ThresholdsWaitTime:{type:"integer"},IgnoreMetricsTime:{type:"integer"},CpuThreshold:{type:"double"},MemoryThreshold:{type:"double"},LoadThreshold:{type:"double"},Alarms:{shape:"S3"}}},S40:{type:"structure",members:{Monday:{shape:"S41"},Tuesday:{shape:"S41"},Wednesday:{shape:"S41"},Thursday:{shape:"S41"},Friday:{shape:"S41"},Saturday:{shape:"S41"},Sunday:{shape:"S41"}}},S41:{type:"map",key:{},value:{}}},paginators:{DescribeApps:{result_key:"Apps"},DescribeCommands:{result_key:"Commands"},DescribeDeployments:{result_key:"Deployments"},DescribeEcsClusters:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"EcsClusters"},DescribeElasticIps:{result_key:"ElasticIps"},DescribeElasticLoadBalancers:{result_key:"ElasticLoadBalancers"},DescribeInstances:{result_key:"Instances"},DescribeLayers:{result_key:"Layers"},DescribeLoadBasedAutoScaling:{result_key:"LoadBasedAutoScalingConfigurations"},DescribePermissions:{result_key:"Permissions"},DescribeRaidArrays:{result_key:"RaidArrays"},DescribeServiceErrors:{result_key:"ServiceErrors"},DescribeStacks:{result_key:"Stacks"},DescribeTimeBasedAutoScaling:{result_key:"TimeBasedAutoScalingConfigurations"},DescribeUserProfiles:{result_key:"UserProfiles"},DescribeVolumes:{result_key:"Volumes"}},waiters:{AppExists:{delay:1,operation:"DescribeApps",maxAttempts:40,acceptors:[{expected:200,matcher:"status",state:"success"},{matcher:"status",expected:400,state:"failure"}]},DeploymentSuccessful:{delay:15,operation:"DescribeDeployments",maxAttempts:40,description:"Wait until a deployment has completed successfully",acceptors:[{expected:"successful",matcher:"pathAll",state:"success",argument:"Deployments[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"Deployments[].Status"}]},InstanceOnline:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is online.",acceptors:[{expected:"online",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"shutting_down",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopped",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminating",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is stopped.",acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status" +}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is terminated.",acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"ResourceNotFoundException",matcher:"error",state:"success"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]}}},a.apiLoader.services.rds={},a.RDS=a.Service.defineService("rds",["2013-01-10","2013-02-12","2013-09-09","2014-10-31"]),a.apiLoader.services.rds["2014-10-31"]={version:"2.0",metadata:{apiVersion:"2014-10-31",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",signatureVersion:"v4",xmlNamespace:"http://rds.amazonaws.com/doc/2014-10-31/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}},http:{}},ApplyPendingMaintenanceAction:{input:{type:"structure",required:["ResourceIdentifier","ApplyAction","OptInType"],members:{ResourceIdentifier:{},ApplyAction:{},OptInType:{}}},output:{resultWrapper:"ApplyPendingMaintenanceActionResult",type:"structure",members:{ResourcePendingMaintenanceActions:{shape:"Sd"}}},http:{}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sj"}}},http:{}},CopyDBClusterSnapshot:{input:{type:"structure",required:["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],members:{SourceDBClusterSnapshotIdentifier:{},TargetDBClusterSnapshotIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sq"}}},http:{}},CopyDBParameterGroup:{input:{type:"structure",required:["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],members:{SourceDBParameterGroupIdentifier:{},TargetDBParameterGroupIdentifier:{},TargetDBParameterGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sv"}}},http:{}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},KmsKeyId:{},Tags:{shape:"S9"},CopyTags:{type:"boolean"}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sz"}}},http:{}},CopyOptionGroup:{input:{type:"structure",required:["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],members:{SourceOptionGroupIdentifier:{},TargetOptionGroupIdentifier:{},TargetOptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S13"}}},http:{}},CreateDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword"],members:{AvailabilityZones:{shape:"Sr"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},DBSubnetGroupName:{},Engine:{},EngineVersion:{},Port:{type:"integer"},MasterUsername:{},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},ReplicationSourceIdentifier:{},Tags:{shape:"S9"},StorageEncrypted:{type:"boolean"},KmsKeyId:{}}},output:{resultWrapper:"CreateDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},CreateDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBClusterParameterGroupResult",type:"structure",members:{DBClusterParameterGroup:{shape:"S1m"}}},http:{}},CreateDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","DBClusterIdentifier"],members:{DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sq"}}},http:{}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","DBInstanceClass","Engine"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S1q"},VpcSecurityGroupIds:{shape:"S1d"},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:{shape:"S9"},DBClusterIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},DBSubnetGroupName:{},StorageType:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sv"}}},http:{}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sj"}}},http:{}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sz"}}},http:{}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2h"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1w"}}},http:{}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S13"}}},http:{}},DeleteDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},DeleteDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{}}},http:{}},DeleteDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sq"}}},http:{}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}},http:{}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}},http:{}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sz"}}},http:{}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}},http:{}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}},http:{}},DescribeAccountAttributes:{input:{type:"structure",members:{}},output:{resultWrapper:"DescribeAccountAttributesResult",type:"structure",members:{AccountQuotas:{type:"list",member:{locationName:"AccountQuota",type:"structure",members:{AccountQuotaName:{},Used:{type:"long"},Max:{type:"long"}},wrapper:!0}}}},http:{}},DescribeCertificates:{input:{type:"structure",members:{CertificateIdentifier:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCertificatesResult",type:"structure",members:{Certificates:{type:"list",member:{locationName:"Certificate",type:"structure",members:{CertificateIdentifier:{},CertificateType:{},Thumbprint:{},ValidFrom:{type:"timestamp"},ValidTill:{type:"timestamp"}},wrapper:!0}},Marker:{}}},http:{}},DescribeDBClusterParameterGroups:{input:{type:"structure",members:{DBClusterParameterGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParameterGroupsResult",type:"structure",members:{Marker:{},DBClusterParameterGroups:{type:"list",member:{shape:"S1m",locationName:"DBClusterParameterGroup"}}}},http:{}},DescribeDBClusterParameters:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},Source:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParametersResult",type:"structure",members:{Parameters:{shape:"S3j"},Marker:{}}},http:{}},DescribeDBClusterSnapshotAttributes:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBClusterSnapshotAttributesResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3o"}}},http:{}},DescribeDBClusterSnapshots:{input:{type:"structure",members:{DBClusterIdentifier:{},DBClusterSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBClusterSnapshotsResult",type:"structure",members:{Marker:{},DBClusterSnapshots:{type:"list",member:{shape:"Sq",locationName:"DBClusterSnapshot"}}}},http:{}},DescribeDBClusters:{input:{type:"structure",members:{DBClusterIdentifier:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClustersResult",type:"structure",members:{Marker:{},DBClusters:{type:"list",member:{shape:"S1f",locationName:"DBCluster"}}}},http:{}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S42"},SupportedCharacterSets:{type:"list",member:{shape:"S42",locationName:"CharacterSet"}},ValidUpgradeTarget:{type:"list",member:{locationName:"UpgradeTarget",type:"structure",members:{Engine:{},EngineVersion:{},Description:{},AutoUpgrade:{type:"boolean"},IsMajorVersionUpgrade:{type:"boolean"}}}}}}}}},http:{}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"S1s",locationName:"DBInstance"}}}},http:{}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}},http:{}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"Sv",locationName:"DBParameterGroup"}}}},http:{}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S3j"},Marker:{}}},http:{}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sj",locationName:"DBSecurityGroup"}}}},http:{}},DescribeDBSnapshotAttributes:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBSnapshotAttributesResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4n"}}},http:{}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sz",locationName:"DBSnapshot"}}}},http:{}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S1w",locationName:"DBSubnetGroup"}}}},http:{}},DescribeEngineDefaultClusterParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultClusterParametersResult",type:"structure",members:{EngineDefaults:{shape:"S4y"}}},http:{}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{shape:"S4y"}}},http:{}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S38"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}},http:{}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}},http:{}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}},http:{}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}},http:{}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S38"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S13",locationName:"OptionGroup"}},Marker:{}}},http:{}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S1z",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"},SupportsStorageEncryption:{type:"boolean"},StorageType:{},SupportsIops:{type:"boolean"},SupportsEnhancedMonitoring:{type:"boolean"}},wrapper:!0}},Marker:{}}},http:{}},DescribePendingMaintenanceActions:{input:{type:"structure",members:{ResourceIdentifier:{},Filters:{shape:"S38"},Marker:{},MaxRecords:{type:"integer"}}},output:{resultWrapper:"DescribePendingMaintenanceActionsResult",type:"structure",members:{PendingMaintenanceActions:{type:"list",member:{shape:"Sd",locationName:"ResourcePendingMaintenanceActions"}},Marker:{}}},http:{}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S5y",locationName:"ReservedDBInstance"}}}},http:{}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S38"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S60"}},wrapper:!0}}}},http:{}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}},http:{}},FailoverDBCluster:{input:{type:"structure",members:{DBClusterIdentifier:{}}},output:{resultWrapper:"FailoverDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S38"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}},http:{}},ModifyDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},NewDBClusterIdentifier:{},ApplyImmediately:{type:"boolean"},BackupRetentionPeriod:{type:"integer"},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},Port:{type:"integer"},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{}}},output:{resultWrapper:"ModifyDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},ModifyDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","Parameters"],members:{DBClusterParameterGroupName:{},Parameters:{shape:"S3j"}}},output:{shape:"S6f",resultWrapper:"ModifyDBClusterParameterGroupResult"},http:{}},ModifyDBClusterSnapshotAttribute:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","AttributeName"],members:{DBClusterSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S3r"},ValuesToRemove:{shape:"S3r"}}},output:{resultWrapper:"ModifyDBClusterSnapshotAttributeResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3o"}}},http:{}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"S1q"},VpcSecurityGroupIds:{shape:"S1d"},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:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},CACertificateIdentifier:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},DBPortNumber:{type:"integer"},PubliclyAccessible:{type:"boolean"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S3j"}}},output:{shape:"S6l",resultWrapper:"ModifyDBParameterGroupResult"},http:{}},ModifyDBSnapshotAttribute:{input:{type:"structure",required:["DBSnapshotIdentifier","AttributeName"],members:{DBSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S3r"},ValuesToRemove:{shape:"S3r"}}},output:{resultWrapper:"ModifyDBSnapshotAttributeResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4n"}}},http:{}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2h"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1w"}}},http:{}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"S1q"},VpcSecurityGroupMemberships:{shape:"S1d"},OptionSettings:{type:"list",member:{shape:"S17",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S13"}}},http:{}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"S9"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S5y"}}},http:{}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}},http:{}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}},http:{}},ResetDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3j"}}},output:{shape:"S6f",resultWrapper:"ResetDBClusterParameterGroupResult"},http:{}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3j"}}},output:{shape:"S6l",resultWrapper:"ResetDBParameterGroupResult"},http:{}},RestoreDBClusterFromSnapshot:{input:{type:"structure",required:["DBClusterIdentifier","SnapshotIdentifier","Engine"],members:{AvailabilityZones:{shape:"Sr"},DBClusterIdentifier:{},SnapshotIdentifier:{},Engine:{},EngineVersion:{},Port:{type:"integer"},DBSubnetGroupName:{},DatabaseName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},Tags:{shape:"S9"},KmsKeyId:{}}},output:{resultWrapper:"RestoreDBClusterFromSnapshotResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},RestoreDBClusterToPointInTime:{input:{type:"structure",required:["DBClusterIdentifier","SourceDBClusterIdentifier"],members:{DBClusterIdentifier:{},SourceDBClusterIdentifier:{},RestoreToTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},Port:{type:"integer"},DBSubnetGroupName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1d"},Tags:{shape:"S9"},KmsKeyId:{}}},output:{resultWrapper:"RestoreDBClusterToPointInTimeResult",type:"structure",members:{DBCluster:{shape:"S1f"}}},http:{}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},DomainIAMRoleName:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},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:{},CopyTagsToSnapshot:{type:"boolean"},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},DomainIAMRoleName:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"S1s"}}},http:{}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult", +type:"structure",members:{DBSecurityGroup:{shape:"Sj"}}},http:{}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{ResourceIdentifier:{},PendingMaintenanceActionDetails:{type:"list",member:{locationName:"PendingMaintenanceAction",type:"structure",members:{Action:{},AutoAppliedAfterDate:{type:"timestamp"},ForcedApplyDate:{type:"timestamp"},OptInStatus:{},CurrentApplyDate:{type:"timestamp"},Description:{}}}}},wrapper:!0},Sj:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sq:{type:"structure",members:{AvailabilityZones:{shape:"Sr"},DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},VpcId:{},ClusterCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},PercentProgress:{type:"integer"},StorageEncrypted:{type:"boolean"},KmsKeyId:{}},wrapper:!0},Sr:{type:"list",member:{locationName:"AvailabilityZone"}},Sv:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},Sz:{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:{},SourceDBSnapshotIdentifier:{},StorageType:{},TdeCredentialArn:{},Encrypted:{type:"boolean"},KmsKeyId:{}},wrapper:!0},S13:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"S17",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"S18"},VpcSecurityGroupMemberships:{shape:"S1a"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S17:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S18:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},S1a:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S1d:{type:"list",member:{locationName:"VpcSecurityGroupId"}},S1f:{type:"structure",members:{AllocatedStorage:{type:"integer"},AvailabilityZones:{shape:"Sr"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroup:{},DBSubnetGroup:{},Status:{},PercentProgress:{},EarliestRestorableTime:{type:"timestamp"},Endpoint:{},Engine:{},EngineVersion:{},LatestRestorableTime:{type:"timestamp"},Port:{type:"integer"},MasterUsername:{},DBClusterOptionGroupMemberships:{type:"list",member:{locationName:"DBClusterOptionGroup",type:"structure",members:{DBClusterOptionGroupName:{},Status:{}}}},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},DBClusterMembers:{type:"list",member:{locationName:"DBClusterMember",type:"structure",members:{DBInstanceIdentifier:{},IsClusterWriter:{type:"boolean"},DBClusterParameterGroupStatus:{},PromotionTier:{type:"integer"}},wrapper:!0}},VpcSecurityGroups:{shape:"S1a"},HostedZoneId:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbClusterResourceId:{}},wrapper:!0},S1m:{type:"structure",members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1q:{type:"list",member:{locationName:"DBSecurityGroupName"}},S1s:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"},HostedZoneId:{}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"S18"},VpcSecurityGroups:{shape:"S1a"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S1w"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{},StorageType:{},CACertificateIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}},StorageType:{},TdeCredentialArn:{},DbInstancePort:{type:"integer"},DBClusterIdentifier:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbiResourceId:{},CACertificateIdentifier:{},DomainMemberships:{type:"list",member:{locationName:"DomainMembership",type:"structure",members:{Domain:{},Status:{},FQDN:{},IAMRoleName:{}}}},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},EnhancedMonitoringResourceArn:{},MonitoringRoleArn:{},PromotionTier:{type:"integer"}},wrapper:!0},S1w:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S1z"},SubnetStatus:{}}}}},wrapper:!0},S1z:{type:"structure",members:{Name:{}},wrapper:!0},S2h:{type:"list",member:{locationName:"SubnetIdentifier"}},S38:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S3j:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3o:{type:"structure",members:{DBClusterSnapshotIdentifier:{},DBClusterSnapshotAttributes:{type:"list",member:{locationName:"DBClusterSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S3r"}}}}},wrapper:!0},S3r:{type:"list",member:{locationName:"AttributeValue"}},S42:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S4n:{type:"structure",members:{DBSnapshotIdentifier:{},DBSnapshotAttributes:{type:"list",member:{locationName:"DBSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S3r"}},wrapper:!0}}},wrapper:!0},S4y:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S3j"}},wrapper:!0},S5y:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S60"}},wrapper:!0},S60:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S6f:{type:"structure",members:{DBClusterParameterGroupName:{}}},S6l:{type:"structure",members:{DBParameterGroupName:{}}}},paginators:{DescribeDBEngineVersions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBEngineVersions"},DescribeDBInstances:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBInstances"},DescribeDBLogFiles:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DescribeDBLogFiles"},DescribeDBParameterGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBParameterGroups"},DescribeDBParameters:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"Parameters"},DescribeDBSecurityGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBSecurityGroups"},DescribeDBSnapshots:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBSnapshots"},DescribeDBSubnetGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"DBSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",output_token:"EngineDefaults.Marker",limit_key:"MaxRecords",result_key:"EngineDefaults.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"Events"},DescribeOptionGroupOptions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"OptionGroupOptions"},DescribeOptionGroups:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"OptionGroupsList"},DescribeOrderableDBInstanceOptions:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"OrderableDBInstanceOptions"},DescribeReservedDBInstances:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"ReservedDBInstances"},DescribeReservedDBInstancesOfferings:{input_token:"Marker",output_token:"Marker",limit_key:"MaxRecords",result_key:"ReservedDBInstancesOfferings"},DownloadDBLogFilePortion:{input_token:"Marker",output_token:"Marker",limit_key:"NumberOfLines",more_results:"AdditionalDataPending",result_key:"LogFileData"},ListTagsForResource:{result_key:"TagList"}},waiters:{DBInstanceAvailable:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBInstanceDeleted:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"DBInstanceNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]}}},a.apiLoader.services.route53={},a.Route53=a.Service.defineService("route53",["2013-04-01"]),e("./services/route53"),a.apiLoader.services.route53["2013-04-01"]={version:"2.0",metadata:{apiVersion:"2013-04-01",endpointPrefix:"route53",globalEndpoint:"route53.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Route 53",serviceFullName:"Amazon Route 53",signatureVersion:"v4"},operations:{AssociateVPCWithHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/associatevpc"},input:{locationName:"AssociateVPCWithHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeResourceRecordSets:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/rrset/"},input:{locationName:"ChangeResourceRecordSetsRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","ChangeBatch"],members:{HostedZoneId:{location:"uri",locationName:"Id"},ChangeBatch:{type:"structure",required:["Changes"],members:{Comment:{},Changes:{shape:"Se"}}}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeTagsForResource:{http:{requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{locationName:"ChangeTagsForResourceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"},AddTags:{shape:"S14"},RemoveTagKeys:{type:"list",member:{locationName:"Key"}}}},output:{type:"structure",members:{}}},CreateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck",responseCode:201},input:{locationName:"CreateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference","HealthCheckConfig"],members:{CallerReference:{},HealthCheckConfig:{shape:"S1c"}}},output:{type:"structure",required:["HealthCheck","Location"],members:{HealthCheck:{shape:"S1x"},Location:{location:"header",locationName:"Location"}}}},CreateHostedZone:{http:{requestUri:"/2013-04-01/hostedzone",responseCode:201},input:{locationName:"CreateHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","CallerReference"],members:{Name:{},VPC:{shape:"S3"},CallerReference:{},HostedZoneConfig:{shape:"S2d"},DelegationSetId:{}}},output:{type:"structure",required:["HostedZone","ChangeInfo","DelegationSet","Location"],members:{HostedZone:{shape:"S2g"},ChangeInfo:{shape:"S8"},DelegationSet:{shape:"S2i"},VPC:{shape:"S3"},Location:{location:"header",locationName:"Location"}}}},CreateReusableDelegationSet:{http:{requestUri:"/2013-04-01/delegationset",responseCode:201},input:{locationName:"CreateReusableDelegationSetRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference"],members:{CallerReference:{},HostedZoneId:{}}},output:{type:"structure",required:["DelegationSet","Location"],members:{DelegationSet:{shape:"S2i"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicy:{http:{requestUri:"/2013-04-01/trafficpolicy",responseCode:201},input:{locationName:"CreateTrafficPolicyRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","Document"],members:{Name:{},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2r"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance",responseCode:201},input:{locationName:"CreateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","Name","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{HostedZoneId:{},Name:{},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance","Location"],members:{TrafficPolicyInstance:{shape:"S2w"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyVersion:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}",responseCode:201},input:{locationName:"CreateTrafficPolicyVersionRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Document"],members:{Id:{location:"uri",locationName:"Id"},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2r"},Location:{location:"header",locationName:"Location"}}}},DeleteHealthCheck:{http:{method:"DELETE",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",members:{}}},DeleteHostedZone:{http:{method:"DELETE",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},DeleteReusableDelegationSet:{http:{method:"DELETE",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicy:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicyInstance:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DisassociateVPCFromHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/disassociatevpc"},input:{locationName:"DisassociateVPCFromHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetChange:{http:{method:"GET",requestUri:"/2013-04-01/change/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetChangeDetails:{http:{method:"GET",requestUri:"/2013-04-01/changedetails/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}},deprecated:!0},output:{type:"structure",required:["ChangeBatchRecord"],members:{ChangeBatchRecord:{shape:"S3i"}},deprecated:!0},deprecated:!0},GetCheckerIpRanges:{http:{method:"GET",requestUri:"/2013-04-01/checkeripranges"},input:{type:"structure",members:{}},output:{type:"structure",required:["CheckerIpRanges"],members:{CheckerIpRanges:{type:"list",member:{}}}}},GetGeoLocation:{http:{method:"GET",requestUri:"/2013-04-01/geolocation"},input:{type:"structure",members:{ContinentCode:{location:"querystring",locationName:"continentcode"},CountryCode:{location:"querystring",locationName:"countrycode"},SubdivisionCode:{location:"querystring",locationName:"subdivisioncode"}}},output:{type:"structure",required:["GeoLocationDetails"],members:{GeoLocationDetails:{shape:"S3q"}}}},GetHealthCheck:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1x"}}}},GetHealthCheckCount:{http:{method:"GET",requestUri:"/2013-04-01/healthcheckcount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HealthCheckCount"],members:{HealthCheckCount:{type:"long"}}}},GetHealthCheckLastFailureReason:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S41"}}}},GetHealthCheckStatus:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/status"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S41"}}}},GetHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2g"},DelegationSet:{shape:"S2i"},VPCs:{type:"list",member:{shape:"S3",locationName:"VPC"}}}}},GetHostedZoneCount:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HostedZoneCount"],members:{HostedZoneCount:{type:"long"}}}},GetReusableDelegationSet:{http:{method:"GET",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["DelegationSet"],members:{DelegationSet:{shape:"S2i"}}}},GetTrafficPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2r"}}}},GetTrafficPolicyInstance:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S2w"}}}},GetTrafficPolicyInstanceCount:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstancecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["TrafficPolicyInstanceCount"],members:{TrafficPolicyInstanceCount:{type:"integer"}}}},ListChangeBatchesByHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/changes"},input:{type:"structure",required:["HostedZoneId","StartDate","EndDate"],members:{HostedZoneId:{location:"uri",locationName:"Id"},StartDate:{shape:"S4n",location:"querystring",locationName:"startDate"},EndDate:{shape:"S4n",location:"querystring",locationName:"endDate"},MaxItems:{location:"querystring",locationName:"maxItems"},Marker:{location:"querystring",locationName:"marker"}},deprecated:!0},output:{type:"structure",required:["MaxItems","Marker","ChangeBatchRecords"],members:{MaxItems:{},Marker:{},IsTruncated:{type:"boolean"},ChangeBatchRecords:{shape:"S4s"},NextMarker:{}},deprecated:!0},deprecated:!0},ListChangeBatchesByRRSet:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/rrsChanges"},input:{type:"structure",required:["HostedZoneId","Name","Type","StartDate","EndDate"],members:{HostedZoneId:{location:"uri",locationName:"Id"},Name:{location:"querystring",locationName:"rrSet_name"},Type:{location:"querystring",locationName:"type"},SetIdentifier:{location:"querystring",locationName:"identifier"},StartDate:{shape:"S4n",location:"querystring",locationName:"startDate"},EndDate:{shape:"S4n",location:"querystring",locationName:"endDate"},MaxItems:{location:"querystring",locationName:"maxItems"},Marker:{location:"querystring",locationName:"marker"}},deprecated:!0},output:{type:"structure",required:["MaxItems","Marker","ChangeBatchRecords"],members:{MaxItems:{},Marker:{},IsTruncated:{type:"boolean"},ChangeBatchRecords:{shape:"S4s"},NextMarker:{}},deprecated:!0},deprecated:!0},ListGeoLocations:{http:{method:"GET",requestUri:"/2013-04-01/geolocations"},input:{type:"structure",members:{StartContinentCode:{location:"querystring",locationName:"startcontinentcode"},StartCountryCode:{location:"querystring",locationName:"startcountrycode"},StartSubdivisionCode:{location:"querystring",locationName:"startsubdivisioncode"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["GeoLocationDetailsList","IsTruncated","MaxItems"],members:{GeoLocationDetailsList:{type:"list",member:{shape:"S3q",locationName:"GeoLocationDetails"}},IsTruncated:{type:"boolean"},NextContinentCode:{},NextCountryCode:{},NextSubdivisionCode:{},MaxItems:{}}}},ListHealthChecks:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HealthChecks","Marker","IsTruncated","MaxItems"],members:{HealthChecks:{type:"list",member:{shape:"S1x",locationName:"HealthCheck"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZones:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"},DelegationSetId:{location:"querystring",locationName:"delegationsetid"}}},output:{type:"structure",required:["HostedZones","Marker","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S53"},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZonesByName:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonesbyname"},input:{type:"structure",members:{DNSName:{location:"querystring",locationName:"dnsname"},HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HostedZones","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S53"},DNSName:{},HostedZoneId:{},IsTruncated:{type:"boolean"},NextDNSName:{},NextHostedZoneId:{},MaxItems:{}}}},ListResourceRecordSets:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/rrset"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"uri",locationName:"Id"},StartRecordName:{location:"querystring",locationName:"name"},StartRecordType:{location:"querystring",locationName:"type"},StartRecordIdentifier:{location:"querystring",locationName:"identifier"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["ResourceRecordSets","IsTruncated","MaxItems"],members:{ResourceRecordSets:{type:"list",member:{shape:"Sh",locationName:"ResourceRecordSet"}},IsTruncated:{type:"boolean"},NextRecordName:{},NextRecordType:{},NextRecordIdentifier:{},MaxItems:{}}}},ListReusableDelegationSets:{http:{method:"GET",requestUri:"/2013-04-01/delegationset"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["DelegationSets","Marker","IsTruncated","MaxItems"],members:{DelegationSets:{type:"list",member:{shape:"S2i",locationName:"DelegationSet"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListTagsForResource:{http:{method:"GET",requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"}}},output:{type:"structure",required:["ResourceTagSet"],members:{ResourceTagSet:{shape:"S5e"}}}},ListTagsForResources:{http:{requestUri:"/2013-04-01/tags/{ResourceType}"},input:{locationName:"ListTagsForResourcesRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceIds"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceIds:{type:"list",member:{locationName:"ResourceId"}}}},output:{type:"structure",required:["ResourceTagSets"],members:{ResourceTagSets:{type:"list",member:{shape:"S5e",locationName:"ResourceTagSet"}}}}},ListTrafficPolicies:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies"},input:{type:"structure",members:{TrafficPolicyIdMarker:{location:"querystring",locationName:"trafficpolicyid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicySummaries","IsTruncated","TrafficPolicyIdMarker","MaxItems"],members:{TrafficPolicySummaries:{type:"list",member:{locationName:"TrafficPolicySummary",type:"structure",required:["Id","Name","Type","LatestVersion","TrafficPolicyCount"],members:{Id:{},Name:{},Type:{},LatestVersion:{type:"integer"},TrafficPolicyCount:{type:"integer"}}}},IsTruncated:{type:"boolean"},TrafficPolicyIdMarker:{},MaxItems:{}}}},ListTrafficPolicyInstances:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances"},input:{type:"structure",members:{HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S5p"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/hostedzone"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"querystring",locationName:"id"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S5p"},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/trafficpolicy"},input:{type:"structure",required:["TrafficPolicyId","TrafficPolicyVersion"],members:{TrafficPolicyId:{location:"querystring",locationName:"id"},TrafficPolicyVersion:{location:"querystring",locationName:"version",type:"integer"},HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"}, +TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S5p"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyVersions:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies/{Id}/versions"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},TrafficPolicyVersionMarker:{location:"querystring",locationName:"trafficpolicyversion"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicies","IsTruncated","TrafficPolicyVersionMarker","MaxItems"],members:{TrafficPolicies:{type:"list",member:{shape:"S2r",locationName:"TrafficPolicy"}},IsTruncated:{type:"boolean"},TrafficPolicyVersionMarker:{},MaxItems:{}}}},UpdateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{locationName:"UpdateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"},HealthCheckVersion:{type:"long"},IPAddress:{},Port:{type:"integer"},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},FailureThreshold:{type:"integer"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1o"},EnableSNI:{type:"boolean"},Regions:{shape:"S1q"},AlarmIdentifier:{shape:"S1s"},InsufficientDataHealthStatus:{}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1x"}}}},UpdateHostedZoneComment:{http:{requestUri:"/2013-04-01/hostedzone/{Id}"},input:{locationName:"UpdateHostedZoneCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},Comment:{}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2g"}}}},UpdateTrafficPolicyComment:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{locationName:"UpdateTrafficPolicyCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Version","Comment"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"},Comment:{}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2r"}}}},UpdateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{locationName:"UpdateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{Id:{location:"uri",locationName:"Id"},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S2w"}}}}},shapes:{S3:{type:"structure",members:{VPCRegion:{},VPCId:{}}},S8:{type:"structure",required:["Id","Status","SubmittedAt"],members:{Id:{},Status:{},SubmittedAt:{type:"timestamp"},Comment:{}}},Se:{type:"list",member:{locationName:"Change",type:"structure",required:["Action","ResourceRecordSet"],members:{Action:{},ResourceRecordSet:{shape:"Sh"}}}},Sh:{type:"structure",required:["Name","Type"],members:{Name:{},Type:{},SetIdentifier:{},Weight:{type:"long"},Region:{},GeoLocation:{type:"structure",members:{ContinentCode:{},CountryCode:{},SubdivisionCode:{}}},Failover:{},TTL:{type:"long"},ResourceRecords:{type:"list",member:{locationName:"ResourceRecord",type:"structure",required:["Value"],members:{Value:{}}}},AliasTarget:{type:"structure",required:["HostedZoneId","DNSName","EvaluateTargetHealth"],members:{HostedZoneId:{},DNSName:{},EvaluateTargetHealth:{type:"boolean"}}},HealthCheckId:{},TrafficPolicyInstanceId:{}}},S14:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},S1c:{type:"structure",required:["Type"],members:{IPAddress:{},Port:{type:"integer"},Type:{},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},RequestInterval:{type:"integer"},FailureThreshold:{type:"integer"},MeasureLatency:{type:"boolean"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1o"},EnableSNI:{type:"boolean"},Regions:{shape:"S1q"},AlarmIdentifier:{shape:"S1s"},InsufficientDataHealthStatus:{}}},S1o:{type:"list",member:{locationName:"ChildHealthCheck"}},S1q:{type:"list",member:{locationName:"Region"}},S1s:{type:"structure",required:["Region","Name"],members:{Region:{},Name:{}}},S1x:{type:"structure",required:["Id","CallerReference","HealthCheckConfig","HealthCheckVersion"],members:{Id:{},CallerReference:{},HealthCheckConfig:{shape:"S1c"},HealthCheckVersion:{type:"long"},CloudWatchAlarmConfiguration:{type:"structure",required:["EvaluationPeriods","Threshold","ComparisonOperator","Period","MetricName","Namespace","Statistic"],members:{EvaluationPeriods:{type:"integer"},Threshold:{type:"double"},ComparisonOperator:{},Period:{type:"integer"},MetricName:{},Namespace:{},Statistic:{},Dimensions:{type:"list",member:{locationName:"Dimension",type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}}}}},S2d:{type:"structure",members:{Comment:{},PrivateZone:{type:"boolean"}}},S2g:{type:"structure",required:["Id","Name","CallerReference"],members:{Id:{},Name:{},CallerReference:{},Config:{shape:"S2d"},ResourceRecordSetCount:{type:"long"}}},S2i:{type:"structure",required:["NameServers"],members:{Id:{},CallerReference:{},NameServers:{type:"list",member:{locationName:"NameServer"}}}},S2r:{type:"structure",required:["Id","Version","Name","Type","Document"],members:{Id:{},Version:{type:"integer"},Name:{},Type:{},Document:{},Comment:{}}},S2w:{type:"structure",required:["Id","HostedZoneId","Name","TTL","State","Message","TrafficPolicyId","TrafficPolicyVersion","TrafficPolicyType"],members:{Id:{},HostedZoneId:{},Name:{},TTL:{type:"long"},State:{},Message:{},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"},TrafficPolicyType:{}}},S3i:{type:"structure",required:["Id","Status"],members:{Id:{},SubmittedAt:{type:"timestamp"},Status:{},Comment:{},Submitter:{},Changes:{shape:"Se"}},deprecated:!0},S3q:{type:"structure",members:{ContinentCode:{},ContinentName:{},CountryCode:{},CountryName:{},SubdivisionCode:{},SubdivisionName:{}}},S41:{type:"list",member:{locationName:"HealthCheckObservation",type:"structure",members:{Region:{},IPAddress:{},StatusReport:{type:"structure",members:{Status:{},CheckedTime:{type:"timestamp"}}}}}},S4n:{type:"string",deprecated:!0},S4s:{type:"list",member:{shape:"S3i",locationName:"ChangeBatchRecord"},deprecated:!0},S53:{type:"list",member:{shape:"S2g",locationName:"HostedZone"}},S5e:{type:"structure",members:{ResourceType:{},ResourceId:{},Tags:{shape:"S14"}}},S5p:{type:"list",member:{shape:"S2w",locationName:"TrafficPolicyInstance"}}},paginators:{ListHealthChecks:{input_token:"Marker",output_token:"NextMarker",more_results:"IsTruncated",limit_key:"MaxItems",result_key:"HealthChecks"},ListHostedZones:{input_token:"Marker",output_token:"NextMarker",more_results:"IsTruncated",limit_key:"MaxItems",result_key:"HostedZones"},ListResourceRecordSets:{more_results:"IsTruncated",limit_key:"MaxItems",result_key:"ResourceRecordSets",input_token:["StartRecordName","StartRecordType","StartRecordIdentifier"],output_token:["NextRecordName","NextRecordType","NextRecordIdentifier"]}},waiters:{ResourceRecordSetsChanged:{delay:30,maxAttempts:60,operation:"GetChange",acceptors:[{matcher:"path",expected:"INSYNC",argument:"ChangeInfo.Status",state:"success"}]}}},a.apiLoader.services.route53domains={},a.Route53Domains=a.Service.defineService("route53domains",["2014-05-15"]),a.apiLoader.services.route53domains["2014-05-15"]={version:"2.0",metadata:{apiVersion:"2014-05-15",endpointPrefix:"route53domains",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Route 53 Domains",signatureVersion:"v4",targetPrefix:"Route53Domains_v20140515"},operations:{CheckDomainAvailability:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},IdnLangCode:{}}},output:{type:"structure",required:["Availability"],members:{Availability:{}}},http:{}},DeleteTagsForDomain:{input:{type:"structure",required:["DomainName","TagsToDelete"],members:{DomainName:{},TagsToDelete:{type:"list",member:{}}}},output:{type:"structure",members:{}},http:{}},DisableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}},http:{}},DisableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},EnableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}},http:{}},EnableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},GetContactReachabilityStatus:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},status:{}}},http:{}},GetDomainDetail:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["DomainName","Nameservers","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},Nameservers:{shape:"So"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"},RegistrarName:{},WhoIsServer:{},RegistrarUrl:{},AbuseContactEmail:{},AbuseContactPhone:{},RegistryDomainId:{},CreationDate:{type:"timestamp"},UpdatedDate:{type:"timestamp"},ExpirationDate:{type:"timestamp"},Reseller:{},DnsSec:{},StatusList:{type:"list",member:{}}}},http:{}},GetOperationDetail:{input:{type:"structure",required:["OperationId"],members:{OperationId:{}}},output:{type:"structure",members:{OperationId:{},Status:{},Message:{},DomainName:{},Type:{},SubmittedDate:{type:"timestamp"}}},http:{}},ListDomains:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Domains"],members:{Domains:{type:"list",member:{type:"structure",required:["DomainName"],members:{DomainName:{},AutoRenew:{type:"boolean"},TransferLock:{type:"boolean"},Expiry:{type:"timestamp"}}}},NextPageMarker:{}}},http:{}},ListOperations:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Operations"],members:{Operations:{type:"list",member:{type:"structure",required:["OperationId","Status","Type","SubmittedDate"],members:{OperationId:{},Status:{},Type:{},SubmittedDate:{type:"timestamp"}}}},NextPageMarker:{}}},http:{}},ListTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["TagList"],members:{TagList:{shape:"S1y"}}},http:{}},RegisterDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},ResendContactReachabilityEmail:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},emailAddress:{},isAlreadyVerified:{type:"boolean"}}},http:{}},RetrieveDomainAuthCode:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["AuthCode"],members:{AuthCode:{shape:"S28"}}},http:{}},TransferDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},Nameservers:{shape:"So"},AuthCode:{shape:"S28"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateDomainContact:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminContact:{shape:"Su"},RegistrantContact:{shape:"Su"},TechContact:{shape:"Su"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateDomainContactPrivacy:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateDomainNameservers:{input:{type:"structure",required:["DomainName","Nameservers"],members:{DomainName:{},FIAuthKey:{},Nameservers:{shape:"So"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}},http:{}},UpdateTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},TagsToUpdate:{shape:"S1y"}}},output:{type:"structure",members:{}},http:{}}},shapes:{So:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},GlueIps:{type:"list",member:{}}}}},Su:{type:"structure",members:{FirstName:{},LastName:{},ContactType:{},OrganizationName:{},AddressLine1:{},AddressLine2:{},City:{},State:{},CountryCode:{},ZipCode:{},PhoneNumber:{},Email:{},Fax:{},ExtraParams:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}},sensitive:!0},S1y:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S28:{type:"string",sensitive:!0}},paginators:{ListDomains:{limit_key:"MaxItems",input_token:"Marker",output_token:"NextPageMarker",result_key:"Domains"},ListOperations:{limit_key:"MaxItems",input_token:"Marker",output_token:"NextPageMarker",result_key:"Operations"}}},a.apiLoader.services.s3={},a.S3=a.Service.defineService("s3",["2006-03-01"]),e("./services/s3"),a.apiLoader.services.s3["2006-03-01"]={version:"2.0",metadata:{apiVersion:"2006-03-01",checksumFormat:"md5",endpointPrefix:"s3",globalEndpoint:"s3.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Amazon S3",serviceFullName:"Amazon Simple Storage Service",signatureVersion:"s3",timestampFormat:"rfc822"},operations:{AbortMultipartUpload:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CompleteMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MultipartUpload:{locationName:"CompleteMultipartUpload",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{ETag:{},PartNumber:{type:"integer"}}},flattened:!0}}},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"MultipartUpload"},output:{type:"structure",members:{Location:{},Bucket:{},Key:{},Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CopyObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},MetadataDirective:{location:"header",locationName:"x-amz-metadata-directive"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1b",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{CopyObjectResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},Expiration:{location:"header",locationName:"x-amz-expiration"},CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},VersionId:{location:"header",locationName:"x-amz-version-id"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyObjectResult"},alias:"PutObjectCopy"},CreateBucket:{http:{method:"PUT",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CreateBucketConfiguration:{locationName:"CreateBucketConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LocationConstraint:{}}},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"CreateBucketConfiguration"},output:{type:"structure",members:{Location:{location:"header",locationName:"Location"}}},alias:"PutBucket"},CreateMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}?uploads"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{locationName:"Bucket"},Key:{},UploadId:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}},alias:"InitiateMultipartUpload"},DeleteBucket:{http:{method:"DELETE",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketCors:{http:{method:"DELETE",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketLifecycle:{http:{method:"DELETE",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketPolicy:{http:{method:"DELETE",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketReplication:{http:{method:"DELETE",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketTagging:{http:{method:"DELETE",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketWebsite:{http:{method:"DELETE",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteObject:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MFA:{location:"header",locationName:"x-amz-mfa"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},VersionId:{location:"header",locationName:"x-amz-version-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},DeleteObjects:{http:{requestUri:"/{Bucket}?delete"},input:{type:"structure",required:["Bucket","Delete"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delete:{locationName:"Delete",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Objects"],members:{Objects:{locationName:"Object",type:"list",member:{type:"structure",required:["Key"],members:{Key:{},VersionId:{}}},flattened:!0},Quiet:{type:"boolean"}}},MFA:{location:"header",locationName:"x-amz-mfa"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Delete"},output:{type:"structure",members:{Deleted:{type:"list",member:{type:"structure",members:{Key:{},VersionId:{},DeleteMarker:{type:"boolean"},DeleteMarkerVersionId:{}}},flattened:!0},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},Errors:{locationName:"Error",type:"list",member:{type:"structure",members:{Key:{},VersionId:{},Code:{},Message:{}}},flattened:!0}}},alias:"DeleteMultipleObjects"},GetBucketAccelerateConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{}}}},GetBucketAcl:{http:{method:"GET",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Owner:{shape:"S2k"},Grants:{shape:"S2n",locationName:"AccessControlList"}}}},GetBucketCors:{http:{method:"GET",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{CORSRules:{shape:"S2w",locationName:"CORSRule"}}}},GetBucketLifecycle:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S39",locationName:"Rule"}}},deprecated:!0},GetBucketLifecycleConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S3p",locationName:"Rule"}}}},GetBucketLocation:{http:{method:"GET",requestUri:"/{Bucket}?location"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LocationConstraint:{}}}},GetBucketLogging:{http:{method:"GET",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LoggingEnabled:{shape:"S3x"}}}},GetBucketNotification:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S43"},output:{shape:"S44"},deprecated:!0},GetBucketNotificationConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S43"},output:{shape:"S4f"}},GetBucketPolicy:{http:{method:"GET",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Policy:{}},payload:"Policy"}},GetBucketReplication:{http:{method:"GET",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{ReplicationConfiguration:{shape:"S4y"}},payload:"ReplicationConfiguration"}},GetBucketRequestPayment:{http:{method:"GET",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Payer:{}}}},GetBucketTagging:{http:{method:"GET",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",required:["TagSet"],members:{TagSet:{shape:"S59"}}}},GetBucketVersioning:{http:{method:"GET",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{},MFADelete:{locationName:"MfaDelete"}}}},GetBucketWebsite:{http:{method:"GET",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{RedirectAllRequestsTo:{shape:"S5i"},IndexDocument:{shape:"S5l"},ErrorDocument:{shape:"S5n"},RoutingRules:{shape:"S5o"}}}},GetObject:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},ResponseCacheControl:{location:"querystring",locationName:"response-cache-control"},ResponseContentDisposition:{location:"querystring",locationName:"response-content-disposition"},ResponseContentEncoding:{location:"querystring",locationName:"response-content-encoding"},ResponseContentLanguage:{location:"querystring",locationName:"response-content-language"},ResponseContentType:{location:"querystring",locationName:"response-content-type"},ResponseExpires:{location:"querystring",locationName:"response-expires",type:"timestamp"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{ +location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentRange:{location:"header",locationName:"Content-Range"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"}},payload:"Body"}},GetObjectAcl:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Owner:{shape:"S2k"},Grants:{shape:"S2n",locationName:"AccessControlList"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},GetObjectTorrent:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?torrent"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"Body"}},HeadBucket:{http:{method:"HEAD",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},HeadObject:{http:{method:"HEAD",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"}}}},ListBuckets:{http:{method:"GET"},output:{type:"structure",members:{Buckets:{type:"list",member:{locationName:"Bucket",type:"structure",members:{Name:{},CreationDate:{type:"timestamp"}}}},Owner:{shape:"S2k"}}},alias:"GetService"},ListMultipartUploads:{http:{method:"GET",requestUri:"/{Bucket}?uploads"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxUploads:{location:"querystring",locationName:"max-uploads",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},UploadIdMarker:{location:"querystring",locationName:"upload-id-marker"}}},output:{type:"structure",members:{Bucket:{},KeyMarker:{},UploadIdMarker:{},NextKeyMarker:{},Prefix:{},Delimiter:{},NextUploadIdMarker:{},MaxUploads:{type:"integer"},IsTruncated:{type:"boolean"},Uploads:{locationName:"Upload",type:"list",member:{type:"structure",members:{UploadId:{},Key:{},Initiated:{type:"timestamp"},StorageClass:{},Owner:{shape:"S2k"},Initiator:{shape:"S75"}}},flattened:!0},CommonPrefixes:{shape:"S76"},EncodingType:{}}}},ListObjectVersions:{http:{method:"GET",requestUri:"/{Bucket}?versions"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},VersionIdMarker:{location:"querystring",locationName:"version-id-marker"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},KeyMarker:{},VersionIdMarker:{},NextKeyMarker:{},NextVersionIdMarker:{},Versions:{locationName:"Version",type:"list",member:{type:"structure",members:{ETag:{},Size:{type:"integer"},StorageClass:{},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"},Owner:{shape:"S2k"}}},flattened:!0},DeleteMarkers:{locationName:"DeleteMarker",type:"list",member:{type:"structure",members:{Owner:{shape:"S2k"},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"}}},flattened:!0},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S76"},EncodingType:{}}},alias:"GetBucketObjectVersions"},ListObjects:{http:{method:"GET",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},Marker:{location:"querystring",locationName:"marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Marker:{},NextMarker:{},Contents:{shape:"S7o"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S76"},EncodingType:{}}},alias:"GetBucket"},ListObjectsV2:{http:{method:"GET",requestUri:"/{Bucket}?list-type=2"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},ContinuationToken:{location:"querystring",locationName:"continuation-token"},FetchOwner:{location:"querystring",locationName:"fetch-owner",type:"boolean"},StartAfter:{location:"querystring",locationName:"start-after"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Contents:{shape:"S7o"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S76"},EncodingType:{},KeyCount:{type:"integer"},ContinuationToken:{},NextContinuationToken:{},StartAfter:{}}}},ListParts:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MaxParts:{location:"querystring",locationName:"max-parts",type:"integer"},PartNumberMarker:{location:"querystring",locationName:"part-number-marker",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{},Key:{},UploadId:{},PartNumberMarker:{type:"integer"},NextPartNumberMarker:{type:"integer"},MaxParts:{type:"integer"},IsTruncated:{type:"boolean"},Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{PartNumber:{type:"integer"},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"}}},flattened:!0},Initiator:{shape:"S75"},Owner:{shape:"S2k"},StorageClass:{},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutBucketAccelerateConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket","AccelerateConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},AccelerateConfiguration:{locationName:"AccelerateConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Status:{}}}},payload:"AccelerateConfiguration"}},PutBucketAcl:{http:{method:"PUT",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"S88",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"AccessControlPolicy"}},PutBucketCors:{http:{method:"PUT",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket","CORSConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},CORSConfiguration:{locationName:"CORSConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["CORSRules"],members:{CORSRules:{shape:"S2w",locationName:"CORSRule"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"CORSConfiguration"}},PutBucketLifecycle:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S39",locationName:"Rule"}}}},payload:"LifecycleConfiguration"},deprecated:!0},PutBucketLifecycleConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S3p",locationName:"Rule"}}}},payload:"LifecycleConfiguration"}},PutBucketLogging:{http:{method:"PUT",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket","BucketLoggingStatus"],members:{Bucket:{location:"uri",locationName:"Bucket"},BucketLoggingStatus:{locationName:"BucketLoggingStatus",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LoggingEnabled:{shape:"S3x"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"BucketLoggingStatus"}},PutBucketNotification:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},NotificationConfiguration:{shape:"S44",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"},deprecated:!0},PutBucketNotificationConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},NotificationConfiguration:{shape:"S4f",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"}},PutBucketPolicy:{http:{method:"PUT",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket","Policy"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},Policy:{}},payload:"Policy"}},PutBucketReplication:{http:{method:"PUT",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket","ReplicationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ReplicationConfiguration:{shape:"S4y",locationName:"ReplicationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"ReplicationConfiguration"}},PutBucketRequestPayment:{http:{method:"PUT",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket","RequestPaymentConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},RequestPaymentConfiguration:{locationName:"RequestPaymentConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Payer"],members:{Payer:{}}}},payload:"RequestPaymentConfiguration"}},PutBucketTagging:{http:{method:"PUT",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket","Tagging"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},Tagging:{locationName:"Tagging",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["TagSet"],members:{TagSet:{shape:"S59"}}}},payload:"Tagging"}},PutBucketVersioning:{http:{method:"PUT",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket","VersioningConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},MFA:{location:"header",locationName:"x-amz-mfa"},VersioningConfiguration:{locationName:"VersioningConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{MFADelete:{locationName:"MfaDelete"},Status:{}}}},payload:"VersioningConfiguration"}},PutBucketWebsite:{http:{method:"PUT",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket","WebsiteConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},WebsiteConfiguration:{locationName:"WebsiteConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{ErrorDocument:{shape:"S5n"},IndexDocument:{shape:"S5l"},RedirectAllRequestsTo:{shape:"S5i"},RoutingRules:{shape:"S5o"}}}},payload:"WebsiteConfiguration"}},PutObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ContentMD5:{location:"header",locationName:"Content-MD5"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Body"},output:{type:"structure",members:{Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{location:"header",locationName:"ETag"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutObjectAcl:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"S88",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},VersionId:{location:"querystring",locationName:"versionId"}},payload:"AccessControlPolicy"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},RestoreObject:{http:{requestUri:"/{Bucket}/{Key+}?restore"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RestoreRequest:{locationName:"RestoreRequest",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Days"],members:{Days:{type:"integer"}}},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"RestoreRequest"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}},alias:"PostObjectRestore"},UploadPart:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","PartNumber","UploadId"],members:{Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ContentMD5:{location:"header",locationName:"Content-MD5"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Body"},output:{type:"structure",members:{ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},ETag:{location:"header",locationName:"ETag"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},UploadPartCopy:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key","PartNumber","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},CopySourceRange:{location:"header",locationName:"x-amz-copy-source-range"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S18",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1b",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},CopyPartResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyPartResult"}}},shapes:{Sj:{type:"string",sensitive:!0},S11:{type:"map",key:{},value:{}},S18:{type:"blob",sensitive:!0},S1b:{type:"blob",sensitive:!0},S2k:{type:"structure",members:{DisplayName:{},ID:{}}},S2n:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S2p"},Permission:{}}}},S2p:{type:"structure",required:["Type"],members:{DisplayName:{},EmailAddress:{},ID:{},Type:{locationName:"xsi:type",xmlAttribute:!0},URI:{}},xmlNamespace:{prefix:"xsi",uri:"http://www.w3.org/2001/XMLSchema-instance"}},S2w:{type:"list",member:{type:"structure",required:["AllowedMethods","AllowedOrigins"],members:{AllowedHeaders:{locationName:"AllowedHeader",type:"list",member:{},flattened:!0},AllowedMethods:{locationName:"AllowedMethod",type:"list",member:{},flattened:!0},AllowedOrigins:{locationName:"AllowedOrigin",type:"list",member:{},flattened:!0},ExposeHeaders:{locationName:"ExposeHeader",type:"list",member:{},flattened:!0},MaxAgeSeconds:{type:"integer"}}},flattened:!0},S39:{type:"list",member:{type:"structure",required:["Prefix","Status"],members:{Expiration:{shape:"S3b"},ID:{},Prefix:{},Status:{},Transition:{shape:"S3h"},NoncurrentVersionTransition:{shape:"S3j"},NoncurrentVersionExpiration:{shape:"S3k"},AbortIncompleteMultipartUpload:{shape:"S3l"}}},flattened:!0},S3b:{type:"structure",members:{Date:{shape:"S3c"},Days:{type:"integer"},ExpiredObjectDeleteMarker:{type:"boolean"}}},S3c:{type:"timestamp",timestampFormat:"iso8601"},S3h:{type:"structure",members:{Date:{shape:"S3c"},Days:{type:"integer"},StorageClass:{}}},S3j:{type:"structure",members:{NoncurrentDays:{type:"integer"},StorageClass:{}}},S3k:{type:"structure",members:{NoncurrentDays:{type:"integer"}}},S3l:{type:"structure",members:{DaysAfterInitiation:{type:"integer"}}},S3p:{type:"list",member:{type:"structure",required:["Prefix","Status"],members:{Expiration:{shape:"S3b"},ID:{},Prefix:{},Status:{},Transitions:{locationName:"Transition",type:"list",member:{shape:"S3h"},flattened:!0},NoncurrentVersionTransitions:{locationName:"NoncurrentVersionTransition",type:"list",member:{shape:"S3j"},flattened:!0},NoncurrentVersionExpiration:{shape:"S3k"},AbortIncompleteMultipartUpload:{shape:"S3l"}}},flattened:!0},S3x:{type:"structure",members:{TargetBucket:{},TargetGrants:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S2p"},Permission:{}}}},TargetPrefix:{}}},S43:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},S44:{type:"structure",members:{TopicConfiguration:{type:"structure",members:{Id:{},Events:{shape:"S47",locationName:"Event"},Event:{deprecated:!0},Topic:{}}},QueueConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S47",locationName:"Event"},Queue:{}}},CloudFunctionConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S47",locationName:"Event"},CloudFunction:{},InvocationRole:{}}}}},S47:{type:"list",member:{},flattened:!0},S4f:{type:"structure",members:{TopicConfigurations:{locationName:"TopicConfiguration",type:"list",member:{type:"structure",required:["TopicArn","Events"],members:{Id:{},TopicArn:{locationName:"Topic"},Events:{shape:"S47",locationName:"Event"},Filter:{shape:"S4i"}}},flattened:!0},QueueConfigurations:{locationName:"QueueConfiguration",type:"list",member:{type:"structure",required:["QueueArn","Events"],members:{Id:{},QueueArn:{locationName:"Queue"},Events:{shape:"S47",locationName:"Event"},Filter:{shape:"S4i"}}},flattened:!0},LambdaFunctionConfigurations:{locationName:"CloudFunctionConfiguration",type:"list",member:{type:"structure",required:["LambdaFunctionArn","Events"],members:{Id:{},LambdaFunctionArn:{locationName:"CloudFunction"},Events:{shape:"S47",locationName:"Event"},Filter:{shape:"S4i"}}},flattened:!0}}},S4i:{type:"structure",members:{Key:{locationName:"S3Key",type:"structure",members:{FilterRules:{locationName:"FilterRule",type:"list",member:{type:"structure",members:{Name:{},Value:{}}},flattened:!0}}}}},S4y:{type:"structure",required:["Role","Rules"],members:{Role:{},Rules:{locationName:"Rule",type:"list",member:{type:"structure",required:["Prefix","Status","Destination"],members:{ID:{},Prefix:{},Status:{},Destination:{type:"structure",required:["Bucket"],members:{Bucket:{},StorageClass:{}}}}},flattened:!0}}},S59:{type:"list",member:{locationName:"Tag",type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S5i:{type:"structure",required:["HostName"],members:{HostName:{},Protocol:{}}},S5l:{type:"structure",required:["Suffix"],members:{Suffix:{}}},S5n:{type:"structure",required:["Key"],members:{Key:{}}},S5o:{type:"list",member:{locationName:"RoutingRule",type:"structure",required:["Redirect"],members:{Condition:{type:"structure",members:{HttpErrorCodeReturnedEquals:{},KeyPrefixEquals:{}}},Redirect:{type:"structure",members:{HostName:{},HttpRedirectCode:{},Protocol:{},ReplaceKeyPrefixWith:{},ReplaceKeyWith:{}}}}}},S75:{type:"structure",members:{ID:{},DisplayName:{}}},S76:{type:"list",member:{type:"structure",members:{Prefix:{}}},flattened:!0},S7o:{type:"list",member:{type:"structure",members:{Key:{},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"},StorageClass:{},Owner:{shape:"S2k"}}},flattened:!0},S88:{type:"structure",members:{Grants:{shape:"S2n",locationName:"AccessControlList"},Owner:{shape:"S2k"}}}},paginators:{ListBuckets:{result_key:"Buckets"},ListMultipartUploads:{limit_key:"MaxUploads",more_results:"IsTruncated",output_token:["NextKeyMarker","NextUploadIdMarker"],input_token:["KeyMarker","UploadIdMarker"],result_key:["Uploads","CommonPrefixes"]},ListObjectVersions:{more_results:"IsTruncated",limit_key:"MaxKeys",output_token:["NextKeyMarker","NextVersionIdMarker"],input_token:["KeyMarker","VersionIdMarker"],result_key:["Versions","DeleteMarkers","CommonPrefixes"]},ListObjects:{more_results:"IsTruncated",limit_key:"MaxKeys",output_token:"NextMarker || Contents[-1].Key",input_token:"Marker",result_key:["Contents","CommonPrefixes"]},ListObjectsV2:{limit_key:"MaxKeys",output_token:"NextContinuationToken",input_token:"ContinuationToken",result_key:["Contents","CommonPrefixes"]},ListParts:{more_results:"IsTruncated",limit_key:"MaxParts",output_token:"NextPartNumberMarker",input_token:"PartNumberMarker",result_key:"Parts"}},waiters:{BucketExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:301,matcher:"status",state:"success"},{expected:403,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},BucketNotExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]},ObjectExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success" +},{expected:404,matcher:"status",state:"retry"}]},ObjectNotExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]}}},a.apiLoader.services.ses={},a.SES=a.Service.defineService("ses",["2010-12-01"]),a.apiLoader.services.ses["2010-12-01"]={version:"2.0",metadata:{apiVersion:"2010-12-01",endpointPrefix:"email",protocol:"query",serviceAbbreviation:"Amazon SES",serviceFullName:"Amazon Simple Email Service",signatureVersion:"v4",signingName:"ses",xmlNamespace:"http://ses.amazonaws.com/doc/2010-12-01/"},operations:{CloneReceiptRuleSet:{input:{type:"structure",required:["RuleSetName","OriginalRuleSetName"],members:{RuleSetName:{},OriginalRuleSetName:{}}},output:{resultWrapper:"CloneReceiptRuleSetResult",type:"structure",members:{}},http:{}},CreateReceiptFilter:{input:{type:"structure",required:["Filter"],members:{Filter:{shape:"S5"}}},output:{resultWrapper:"CreateReceiptFilterResult",type:"structure",members:{}},http:{}},CreateReceiptRule:{input:{type:"structure",required:["RuleSetName","Rule"],members:{RuleSetName:{},After:{},Rule:{shape:"Sd"}}},output:{resultWrapper:"CreateReceiptRuleResult",type:"structure",members:{}},http:{}},CreateReceiptRuleSet:{input:{type:"structure",required:["RuleSetName"],members:{RuleSetName:{}}},output:{resultWrapper:"CreateReceiptRuleSetResult",type:"structure",members:{}},http:{}},DeleteIdentity:{input:{type:"structure",required:["Identity"],members:{Identity:{}}},output:{resultWrapper:"DeleteIdentityResult",type:"structure",members:{}},http:{}},DeleteIdentityPolicy:{input:{type:"structure",required:["Identity","PolicyName"],members:{Identity:{},PolicyName:{}}},output:{resultWrapper:"DeleteIdentityPolicyResult",type:"structure",members:{}},http:{}},DeleteReceiptFilter:{input:{type:"structure",required:["FilterName"],members:{FilterName:{}}},output:{resultWrapper:"DeleteReceiptFilterResult",type:"structure",members:{}},http:{}},DeleteReceiptRule:{input:{type:"structure",required:["RuleSetName","RuleName"],members:{RuleSetName:{},RuleName:{}}},output:{resultWrapper:"DeleteReceiptRuleResult",type:"structure",members:{}},http:{}},DeleteReceiptRuleSet:{input:{type:"structure",required:["RuleSetName"],members:{RuleSetName:{}}},output:{resultWrapper:"DeleteReceiptRuleSetResult",type:"structure",members:{}},http:{}},DeleteVerifiedEmailAddress:{input:{type:"structure",required:["EmailAddress"],members:{EmailAddress:{}}},http:{}},DescribeActiveReceiptRuleSet:{input:{type:"structure",members:{}},output:{resultWrapper:"DescribeActiveReceiptRuleSetResult",type:"structure",members:{Metadata:{shape:"S1l"},Rules:{shape:"S1n"}}},http:{}},DescribeReceiptRule:{input:{type:"structure",required:["RuleSetName","RuleName"],members:{RuleSetName:{},RuleName:{}}},output:{resultWrapper:"DescribeReceiptRuleResult",type:"structure",members:{Rule:{shape:"Sd"}}},http:{}},DescribeReceiptRuleSet:{input:{type:"structure",required:["RuleSetName"],members:{RuleSetName:{}}},output:{resultWrapper:"DescribeReceiptRuleSetResult",type:"structure",members:{Metadata:{shape:"S1l"},Rules:{shape:"S1n"}}},http:{}},GetIdentityDkimAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityDkimAttributesResult",type:"structure",required:["DkimAttributes"],members:{DkimAttributes:{type:"map",key:{},value:{type:"structure",required:["DkimEnabled","DkimVerificationStatus"],members:{DkimEnabled:{type:"boolean"},DkimVerificationStatus:{},DkimTokens:{shape:"S1y"}}}}}},http:{}},GetIdentityMailFromDomainAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityMailFromDomainAttributesResult",type:"structure",required:["MailFromDomainAttributes"],members:{MailFromDomainAttributes:{type:"map",key:{},value:{type:"structure",required:["MailFromDomain","MailFromDomainStatus","BehaviorOnMXFailure"],members:{MailFromDomain:{},MailFromDomainStatus:{},BehaviorOnMXFailure:{}}}}}},http:{}},GetIdentityNotificationAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityNotificationAttributesResult",type:"structure",required:["NotificationAttributes"],members:{NotificationAttributes:{type:"map",key:{},value:{type:"structure",required:["BounceTopic","ComplaintTopic","DeliveryTopic","ForwardingEnabled"],members:{BounceTopic:{},ComplaintTopic:{},DeliveryTopic:{},ForwardingEnabled:{type:"boolean"}}}}}},http:{}},GetIdentityPolicies:{input:{type:"structure",required:["Identity","PolicyNames"],members:{Identity:{},PolicyNames:{shape:"S2d"}}},output:{resultWrapper:"GetIdentityPoliciesResult",type:"structure",required:["Policies"],members:{Policies:{type:"map",key:{},value:{}}}},http:{}},GetIdentityVerificationAttributes:{input:{type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"}}},output:{resultWrapper:"GetIdentityVerificationAttributesResult",type:"structure",required:["VerificationAttributes"],members:{VerificationAttributes:{type:"map",key:{},value:{type:"structure",required:["VerificationStatus"],members:{VerificationStatus:{},VerificationToken:{}}}}}},http:{}},GetSendQuota:{output:{resultWrapper:"GetSendQuotaResult",type:"structure",members:{Max24HourSend:{type:"double"},MaxSendRate:{type:"double"},SentLast24Hours:{type:"double"}}},http:{}},GetSendStatistics:{output:{resultWrapper:"GetSendStatisticsResult",type:"structure",members:{SendDataPoints:{type:"list",member:{type:"structure",members:{Timestamp:{type:"timestamp"},DeliveryAttempts:{type:"long"},Bounces:{type:"long"},Complaints:{type:"long"},Rejects:{type:"long"}}}}}},http:{}},ListIdentities:{input:{type:"structure",members:{IdentityType:{},NextToken:{},MaxItems:{type:"integer"}}},output:{resultWrapper:"ListIdentitiesResult",type:"structure",required:["Identities"],members:{Identities:{shape:"S1t"},NextToken:{}}},http:{}},ListIdentityPolicies:{input:{type:"structure",required:["Identity"],members:{Identity:{}}},output:{resultWrapper:"ListIdentityPoliciesResult",type:"structure",required:["PolicyNames"],members:{PolicyNames:{shape:"S2d"}}},http:{}},ListReceiptFilters:{input:{type:"structure",members:{}},output:{resultWrapper:"ListReceiptFiltersResult",type:"structure",members:{Filters:{type:"list",member:{shape:"S5"}}}},http:{}},ListReceiptRuleSets:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListReceiptRuleSetsResult",type:"structure",members:{RuleSets:{type:"list",member:{shape:"S1l"}},NextToken:{}}},http:{}},ListVerifiedEmailAddresses:{output:{resultWrapper:"ListVerifiedEmailAddressesResult",type:"structure",members:{VerifiedEmailAddresses:{shape:"S37"}}},http:{}},PutIdentityPolicy:{input:{type:"structure",required:["Identity","PolicyName","Policy"],members:{Identity:{},PolicyName:{},Policy:{}}},output:{resultWrapper:"PutIdentityPolicyResult",type:"structure",members:{}},http:{}},ReorderReceiptRuleSet:{input:{type:"structure",required:["RuleSetName","RuleNames"],members:{RuleSetName:{},RuleNames:{type:"list",member:{}}}},output:{resultWrapper:"ReorderReceiptRuleSetResult",type:"structure",members:{}},http:{}},SendBounce:{input:{type:"structure",required:["OriginalMessageId","BounceSender","BouncedRecipientInfoList"],members:{OriginalMessageId:{},BounceSender:{},Explanation:{},MessageDsn:{type:"structure",required:["ReportingMta"],members:{ReportingMta:{},ArrivalDate:{type:"timestamp"},ExtensionFields:{shape:"S3j"}}},BouncedRecipientInfoList:{type:"list",member:{type:"structure",required:["Recipient"],members:{Recipient:{},RecipientArn:{},BounceType:{},RecipientDsnFields:{type:"structure",required:["Action","Status"],members:{FinalRecipient:{},Action:{},RemoteMta:{},Status:{},DiagnosticCode:{},LastAttemptDate:{type:"timestamp"},ExtensionFields:{shape:"S3j"}}}}}},BounceSenderArn:{}}},output:{resultWrapper:"SendBounceResult",type:"structure",members:{MessageId:{}}},http:{}},SendEmail:{input:{type:"structure",required:["Source","Destination","Message"],members:{Source:{},Destination:{type:"structure",members:{ToAddresses:{shape:"S37"},CcAddresses:{shape:"S37"},BccAddresses:{shape:"S37"}}},Message:{type:"structure",required:["Subject","Body"],members:{Subject:{shape:"S40"},Body:{type:"structure",members:{Text:{shape:"S40"},Html:{shape:"S40"}}}}},ReplyToAddresses:{shape:"S37"},ReturnPath:{},SourceArn:{},ReturnPathArn:{}}},output:{resultWrapper:"SendEmailResult",type:"structure",required:["MessageId"],members:{MessageId:{}}},http:{}},SendRawEmail:{input:{type:"structure",required:["RawMessage"],members:{Source:{},Destinations:{shape:"S37"},RawMessage:{type:"structure",required:["Data"],members:{Data:{type:"blob"}}},FromArn:{},SourceArn:{},ReturnPathArn:{}}},output:{resultWrapper:"SendRawEmailResult",type:"structure",required:["MessageId"],members:{MessageId:{}}},http:{}},SetActiveReceiptRuleSet:{input:{type:"structure",members:{RuleSetName:{}}},output:{resultWrapper:"SetActiveReceiptRuleSetResult",type:"structure",members:{}},http:{}},SetIdentityDkimEnabled:{input:{type:"structure",required:["Identity","DkimEnabled"],members:{Identity:{},DkimEnabled:{type:"boolean"}}},output:{resultWrapper:"SetIdentityDkimEnabledResult",type:"structure",members:{}},http:{}},SetIdentityFeedbackForwardingEnabled:{input:{type:"structure",required:["Identity","ForwardingEnabled"],members:{Identity:{},ForwardingEnabled:{type:"boolean"}}},output:{resultWrapper:"SetIdentityFeedbackForwardingEnabledResult",type:"structure",members:{}},http:{}},SetIdentityMailFromDomain:{input:{type:"structure",required:["Identity"],members:{Identity:{},MailFromDomain:{},BehaviorOnMXFailure:{}}},output:{resultWrapper:"SetIdentityMailFromDomainResult",type:"structure",members:{}},http:{}},SetIdentityNotificationTopic:{input:{type:"structure",required:["Identity","NotificationType"],members:{Identity:{},NotificationType:{},SnsTopic:{}}},output:{resultWrapper:"SetIdentityNotificationTopicResult",type:"structure",members:{}},http:{}},SetReceiptRulePosition:{input:{type:"structure",required:["RuleSetName","RuleName"],members:{RuleSetName:{},RuleName:{},After:{}}},output:{resultWrapper:"SetReceiptRulePositionResult",type:"structure",members:{}},http:{}},UpdateReceiptRule:{input:{type:"structure",required:["RuleSetName","Rule"],members:{RuleSetName:{},Rule:{shape:"Sd"}}},output:{resultWrapper:"UpdateReceiptRuleResult",type:"structure",members:{}},http:{}},VerifyDomainDkim:{input:{type:"structure",required:["Domain"],members:{Domain:{}}},output:{resultWrapper:"VerifyDomainDkimResult",type:"structure",required:["DkimTokens"],members:{DkimTokens:{shape:"S1y"}}},http:{}},VerifyDomainIdentity:{input:{type:"structure",required:["Domain"],members:{Domain:{}}},output:{resultWrapper:"VerifyDomainIdentityResult",type:"structure",required:["VerificationToken"],members:{VerificationToken:{}}},http:{}},VerifyEmailAddress:{input:{type:"structure",required:["EmailAddress"],members:{EmailAddress:{}}},http:{}},VerifyEmailIdentity:{input:{type:"structure",required:["EmailAddress"],members:{EmailAddress:{}}},output:{resultWrapper:"VerifyEmailIdentityResult",type:"structure",members:{}},http:{}}},shapes:{S5:{type:"structure",required:["Name","IpFilter"],members:{Name:{},IpFilter:{type:"structure",required:["Policy","Cidr"],members:{Policy:{},Cidr:{}}}}},Sd:{type:"structure",required:["Name"],members:{Name:{},Enabled:{type:"boolean"},TlsPolicy:{},Recipients:{type:"list",member:{}},Actions:{type:"list",member:{type:"structure",members:{S3Action:{type:"structure",required:["BucketName"],members:{TopicArn:{},BucketName:{},ObjectKeyPrefix:{},KmsKeyArn:{}}},BounceAction:{type:"structure",required:["SmtpReplyCode","Message","Sender"],members:{TopicArn:{},SmtpReplyCode:{},StatusCode:{},Message:{},Sender:{}}},WorkmailAction:{type:"structure",required:["OrganizationArn"],members:{TopicArn:{},OrganizationArn:{}}},LambdaAction:{type:"structure",required:["FunctionArn"],members:{TopicArn:{},FunctionArn:{},InvocationType:{}}},StopAction:{type:"structure",required:["Scope"],members:{Scope:{},TopicArn:{}}},AddHeaderAction:{type:"structure",required:["HeaderName","HeaderValue"],members:{HeaderName:{},HeaderValue:{}}},SNSAction:{type:"structure",required:["TopicArn"],members:{TopicArn:{},Encoding:{}}}}}},ScanEnabled:{type:"boolean"}}},S1l:{type:"structure",members:{Name:{},CreatedTimestamp:{type:"timestamp"}}},S1n:{type:"list",member:{shape:"Sd"}},S1t:{type:"list",member:{}},S1y:{type:"list",member:{}},S2d:{type:"list",member:{}},S37:{type:"list",member:{}},S3j:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}},S40:{type:"structure",required:["Data"],members:{Data:{},Charset:{}}}},paginators:{ListIdentities:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxItems",result_key:"Identities"},ListVerifiedEmailAddresses:{result_key:"VerifiedEmailAddresses"}},waiters:{IdentityExists:{delay:3,operation:"GetIdentityVerificationAttributes",maxAttempts:20,acceptors:[{expected:"Success",matcher:"pathAll",state:"success",argument:"VerificationAttributes.*.VerificationStatus"}]}}},a.apiLoader.services.sns={},a.SNS=a.Service.defineService("sns",["2010-03-31"]),a.apiLoader.services.sns["2010-03-31"]={metadata:{apiVersion:"2010-03-31",endpointPrefix:"sns",serviceAbbreviation:"Amazon SNS",serviceFullName:"Amazon Simple Notification Service",signatureVersion:"v4",xmlNamespace:"http://sns.amazonaws.com/doc/2010-03-31/",protocol:"query"},operations:{AddPermission:{input:{type:"structure",required:["TopicArn","Label","AWSAccountId","ActionName"],members:{TopicArn:{},Label:{},AWSAccountId:{type:"list",member:{}},ActionName:{type:"list",member:{}}}},http:{}},ConfirmSubscription:{input:{type:"structure",required:["TopicArn","Token"],members:{TopicArn:{},Token:{},AuthenticateOnUnsubscribe:{}}},output:{resultWrapper:"ConfirmSubscriptionResult",type:"structure",members:{SubscriptionArn:{}}},http:{}},CreatePlatformApplication:{input:{type:"structure",required:["Name","Platform","Attributes"],members:{Name:{},Platform:{},Attributes:{shape:"Sf"}}},output:{resultWrapper:"CreatePlatformApplicationResult",type:"structure",members:{PlatformApplicationArn:{}}},http:{}},CreatePlatformEndpoint:{input:{type:"structure",required:["PlatformApplicationArn","Token"],members:{PlatformApplicationArn:{},Token:{},CustomUserData:{},Attributes:{shape:"Sf"}}},output:{resultWrapper:"CreatePlatformEndpointResult",type:"structure",members:{EndpointArn:{}}},http:{}},CreateTopic:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{resultWrapper:"CreateTopicResult",type:"structure",members:{TopicArn:{}}},http:{}},DeleteEndpoint:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},http:{}},DeletePlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}},http:{}},DeleteTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}},http:{}},GetEndpointAttributes:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},output:{resultWrapper:"GetEndpointAttributesResult",type:"structure",members:{Attributes:{shape:"Sf"}}},http:{}},GetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}},output:{resultWrapper:"GetPlatformApplicationAttributesResult",type:"structure",members:{Attributes:{shape:"Sf"}}},http:{}},GetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}},output:{resultWrapper:"GetSubscriptionAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}},http:{}},GetTopicAttributes:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}},output:{resultWrapper:"GetTopicAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}},http:{}},ListEndpointsByPlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{},NextToken:{}}},output:{resultWrapper:"ListEndpointsByPlatformApplicationResult",type:"structure",members:{Endpoints:{type:"list",member:{type:"structure",members:{EndpointArn:{},Attributes:{shape:"Sf"}}}},NextToken:{}}},http:{}},ListPlatformApplications:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListPlatformApplicationsResult",type:"structure",members:{PlatformApplications:{type:"list",member:{type:"structure",members:{PlatformApplicationArn:{},Attributes:{shape:"Sf"}}}},NextToken:{}}},http:{}},ListSubscriptions:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListSubscriptionsResult",type:"structure",members:{Subscriptions:{shape:"S1c"},NextToken:{}}},http:{}},ListSubscriptionsByTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{},NextToken:{}}},output:{resultWrapper:"ListSubscriptionsByTopicResult",type:"structure",members:{Subscriptions:{shape:"S1c"},NextToken:{}}},http:{}},ListTopics:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListTopicsResult",type:"structure",members:{Topics:{type:"list",member:{type:"structure",members:{TopicArn:{}}}},NextToken:{}}},http:{}},Publish:{input:{type:"structure",required:["Message"],members:{TopicArn:{},TargetArn:{},Message:{},Subject:{},MessageStructure:{},MessageAttributes:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{DataType:{},StringValue:{},BinaryValue:{type:"blob"}}}}}},output:{resultWrapper:"PublishResult",type:"structure",members:{MessageId:{}}},http:{}},RemovePermission:{input:{type:"structure",required:["TopicArn","Label"],members:{TopicArn:{},Label:{}}},http:{}},SetEndpointAttributes:{input:{type:"structure",required:["EndpointArn","Attributes"],members:{EndpointArn:{},Attributes:{shape:"Sf"}}},http:{}},SetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn","Attributes"],members:{PlatformApplicationArn:{},Attributes:{shape:"Sf"}}},http:{}},SetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn","AttributeName"],members:{SubscriptionArn:{},AttributeName:{},AttributeValue:{}}},http:{}},SetTopicAttributes:{input:{type:"structure",required:["TopicArn","AttributeName"],members:{TopicArn:{},AttributeName:{},AttributeValue:{}}},http:{}},Subscribe:{input:{type:"structure",required:["TopicArn","Protocol"],members:{TopicArn:{},Protocol:{},Endpoint:{}}},output:{resultWrapper:"SubscribeResult",type:"structure",members:{SubscriptionArn:{}}},http:{}},Unsubscribe:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}},http:{}}},shapes:{Sf:{type:"map",key:{},value:{}},S1c:{type:"list",member:{type:"structure",members:{SubscriptionArn:{},Owner:{},Protocol:{},Endpoint:{},TopicArn:{}}}}},paginators:{ListEndpointsByPlatformApplication:{input_token:"NextToken",output_token:"NextToken",result_key:"Endpoints"},ListPlatformApplications:{input_token:"NextToken",output_token:"NextToken",result_key:"PlatformApplications"},ListSubscriptions:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListSubscriptionsByTopic:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListTopics:{input_token:"NextToken",output_token:"NextToken",result_key:"Topics"}}},a.apiLoader.services.sqs={},a.SQS=a.Service.defineService("sqs",["2012-11-05"]),e("./services/sqs"),a.apiLoader.services.sqs["2012-11-05"]={version:"2.0",metadata:{apiVersion:"2012-11-05",endpointPrefix:"sqs",protocol:"query",serviceAbbreviation:"Amazon SQS",serviceFullName:"Amazon Simple Queue Service",signatureVersion:"v4",xmlNamespace:"http://queue.amazonaws.com/doc/2012-11-05/"},operations:{AddPermission:{input:{type:"structure",required:["QueueUrl","Label","AWSAccountIds","Actions"],members:{QueueUrl:{},Label:{},AWSAccountIds:{type:"list",member:{locationName:"AWSAccountId"},flattened:!0},Actions:{type:"list",member:{locationName:"ActionName"},flattened:!0}}},http:{}},ChangeMessageVisibility:{input:{type:"structure",required:["QueueUrl","ReceiptHandle","VisibilityTimeout"],members:{QueueUrl:{},ReceiptHandle:{},VisibilityTimeout:{type:"integer"}}},http:{}},ChangeMessageVisibilityBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"ChangeMessageVisibilityBatchRequestEntry",type:"structure",required:["Id","ReceiptHandle"],members:{Id:{},ReceiptHandle:{},VisibilityTimeout:{type:"integer"}}},flattened:!0}}},output:{resultWrapper:"ChangeMessageVisibilityBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"ChangeMessageVisibilityBatchResultEntry",type:"structure",required:["Id"],members:{Id:{}}},flattened:!0},Failed:{shape:"Sd"}}},http:{}},CreateQueue:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},Attributes:{shape:"Sh",locationName:"Attribute"}}},output:{resultWrapper:"CreateQueueResult",type:"structure",members:{QueueUrl:{}}},http:{}},DeleteMessage:{input:{type:"structure",required:["QueueUrl","ReceiptHandle"],members:{QueueUrl:{},ReceiptHandle:{}}},http:{}},DeleteMessageBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"DeleteMessageBatchRequestEntry",type:"structure",required:["Id","ReceiptHandle"],members:{Id:{},ReceiptHandle:{}}},flattened:!0}}},output:{resultWrapper:"DeleteMessageBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"DeleteMessageBatchResultEntry",type:"structure",required:["Id"],members:{Id:{}}},flattened:!0},Failed:{shape:"Sd"}}},http:{}},DeleteQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},http:{}},GetQueueAttributes:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"St"}}},output:{resultWrapper:"GetQueueAttributesResult",type:"structure",members:{Attributes:{shape:"Sh",locationName:"Attribute"}}},http:{}},GetQueueUrl:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},QueueOwnerAWSAccountId:{}}},output:{resultWrapper:"GetQueueUrlResult",type:"structure",members:{QueueUrl:{}}},http:{}},ListDeadLetterSourceQueues:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListDeadLetterSourceQueuesResult",type:"structure",required:["queueUrls"],members:{queueUrls:{shape:"Sz"}}},http:{}},ListQueues:{input:{type:"structure",members:{QueueNamePrefix:{}}},output:{resultWrapper:"ListQueuesResult",type:"structure",members:{QueueUrls:{shape:"Sz"}}},http:{}},PurgeQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},http:{}},ReceiveMessage:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"St"},MessageAttributeNames:{type:"list",member:{locationName:"MessageAttributeName"},flattened:!0},MaxNumberOfMessages:{type:"integer"},VisibilityTimeout:{type:"integer"},WaitTimeSeconds:{type:"integer"}}},output:{resultWrapper:"ReceiveMessageResult",type:"structure",members:{Messages:{type:"list",member:{locationName:"Message",type:"structure",members:{MessageId:{},ReceiptHandle:{},MD5OfBody:{},Body:{},Attributes:{shape:"Sh",locationName:"Attribute"},MD5OfMessageAttributes:{},MessageAttributes:{shape:"S19",locationName:"MessageAttribute"}}},flattened:!0}}},http:{}},RemovePermission:{input:{type:"structure",required:["QueueUrl","Label"],members:{QueueUrl:{},Label:{}}},http:{}},SendMessage:{input:{type:"structure",required:["QueueUrl","MessageBody"],members:{QueueUrl:{},MessageBody:{},DelaySeconds:{type:"integer"},MessageAttributes:{shape:"S19",locationName:"MessageAttribute"}}},output:{resultWrapper:"SendMessageResult",type:"structure",members:{MD5OfMessageBody:{},MD5OfMessageAttributes:{},MessageId:{}}},http:{}},SendMessageBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"SendMessageBatchRequestEntry",type:"structure",required:["Id","MessageBody"],members:{Id:{},MessageBody:{},DelaySeconds:{type:"integer"},MessageAttributes:{shape:"S19",locationName:"MessageAttribute"}}},flattened:!0}}},output:{resultWrapper:"SendMessageBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"SendMessageBatchResultEntry",type:"structure",required:["Id","MessageId","MD5OfMessageBody"],members:{Id:{},MessageId:{},MD5OfMessageBody:{},MD5OfMessageAttributes:{}}},flattened:!0},Failed:{shape:"Sd"}}},http:{}},SetQueueAttributes:{input:{type:"structure",required:["QueueUrl","Attributes"],members:{QueueUrl:{},Attributes:{shape:"Sh",locationName:"Attribute"}}},http:{}}},shapes:{Sd:{type:"list",member:{locationName:"BatchResultErrorEntry",type:"structure",required:["Id","SenderFault","Code"],members:{Id:{},SenderFault:{type:"boolean"},Code:{},Message:{}}},flattened:!0},Sh:{type:"map",key:{locationName:"Name"},value:{locationName:"Value"},flattened:!0,locationName:"Attribute"},St:{type:"list",member:{locationName:"AttributeName"},flattened:!0},Sz:{type:"list",member:{locationName:"QueueUrl"},flattened:!0},S19:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{StringValue:{},BinaryValue:{type:"blob"},StringListValues:{flattened:!0,locationName:"StringListValue",type:"list",member:{locationName:"StringListValue"}},BinaryListValues:{flattened:!0,locationName:"BinaryListValue",type:"list",member:{locationName:"BinaryListValue",type:"blob"}},DataType:{}}},flattened:!0}},paginators:{ListQueues:{result_key:"QueueUrls"}}},a.apiLoader.services.ssm={},a.SSM=a.Service.defineService("ssm",["2014-11-06"]),a.apiLoader.services.ssm["2014-11-06"]={version:"2.0",metadata:{apiVersion:"2014-11-06",endpointPrefix:"ssm",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon SSM",serviceFullName:"Amazon Simple Systems Management Service",signatureVersion:"v4",targetPrefix:"AmazonSSM"},operations:{CancelCommand:{input:{type:"structure",required:["CommandId"],members:{CommandId:{},InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{}},http:{}},CreateAssociation:{input:{type:"structure",required:["Name","InstanceId"],members:{Name:{},InstanceId:{},Parameters:{shape:"S8"}}},output:{type:"structure",members:{AssociationDescription:{shape:"Sd"}}},http:{}},CreateAssociationBatch:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{shape:"Sl",locationName:"entries"}}}},output:{type:"structure",members:{Successful:{type:"list",member:{shape:"Sd",locationName:"AssociationDescription"}},Failed:{type:"list",member:{locationName:"FailedCreateAssociationEntry",type:"structure",members:{Entry:{shape:"Sl"},Message:{},Fault:{}}}}}},http:{}},CreateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Name:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"Sv"}}},http:{}},DeleteAssociation:{input:{type:"structure",required:["Name","InstanceId"],members:{Name:{},InstanceId:{}}},output:{type:"structure",members:{}},http:{}},DeleteDocument:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}},http:{}},DescribeAssociation:{input:{type:"structure",required:["Name","InstanceId"],members:{Name:{},InstanceId:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"Sd"}}},http:{}},DescribeDocument:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Document:{shape:"Sv"}}},http:{}},DescribeDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{}}},output:{type:"structure",members:{AccountIds:{shape:"S1m"}}},http:{}},DescribeInstanceInformation:{input:{type:"structure",members:{InstanceInformationFilterList:{type:"list",member:{locationName:"InstanceInformationFilter",type:"structure",required:["key","valueSet"],members:{key:{},valueSet:{type:"list",member:{locationName:"InstanceInformationFilterValue"}}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{InstanceInformationList:{type:"list",member:{locationName:"InstanceInformation",type:"structure",members:{InstanceId:{},PingStatus:{},LastPingDateTime:{type:"timestamp"},AgentVersion:{},IsLatestVersion:{type:"boolean"},PlatformType:{},PlatformName:{},PlatformVersion:{}}}},NextToken:{}}},http:{}},GetDocument:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},Content:{}}},http:{}},ListAssociations:{input:{type:"structure",required:["AssociationFilterList"],members:{AssociationFilterList:{type:"list",member:{locationName:"AssociationFilter",type:"structure",required:["key","value"],members:{key:{},value:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Associations:{type:"list",member:{locationName:"Association",type:"structure",members:{Name:{},InstanceId:{}}}},NextToken:{}}},http:{}},ListCommandInvocations:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"S2g"},Details:{type:"boolean"}}},output:{type:"structure",members:{CommandInvocations:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},Comment:{},DocumentName:{},RequestedDateTime:{type:"timestamp"},Status:{},TraceOutput:{},CommandPlugins:{type:"list",member:{type:"structure",members:{Name:{},Status:{},ResponseCode:{type:"integer"},ResponseStartDateTime:{type:"timestamp"},ResponseFinishDateTime:{type:"timestamp"},Output:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}}}}},NextToken:{}}},http:{}},ListCommands:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"S2g"}}},output:{type:"structure",members:{Commands:{type:"list",member:{shape:"S31"}},NextToken:{}}},http:{}},ListDocuments:{input:{type:"structure",members:{DocumentFilterList:{type:"list",member:{locationName:"DocumentFilter",type:"structure",required:["key","value"],members:{key:{},value:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{DocumentIdentifiers:{type:"list",member:{locationName:"DocumentIdentifier",type:"structure",members:{Name:{},Owner:{},PlatformTypes:{shape:"S19"}}}},NextToken:{}}},http:{}},ModifyDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{},AccountIdsToAdd:{shape:"S1m"},AccountIdsToRemove:{shape:"S1m"}}},output:{type:"structure",members:{}},http:{}},SendCommand:{input:{type:"structure",required:["InstanceIds","DocumentName"],members:{InstanceIds:{shape:"S3"},DocumentName:{},DocumentHash:{},DocumentHashType:{},TimeoutSeconds:{type:"integer"},Comment:{},Parameters:{shape:"S8"},OutputS3BucketName:{},OutputS3KeyPrefix:{}}},output:{type:"structure",members:{Command:{shape:"S31"}}},http:{}},UpdateAssociationStatus:{input:{type:"structure",required:["Name","InstanceId","AssociationStatus"],members:{Name:{},InstanceId:{},AssociationStatus:{shape:"Sf"}}},output:{type:"structure",members:{AssociationDescription:{shape:"Sd"}}},http:{}}},shapes:{S3:{type:"list",member:{}},S8:{type:"map",key:{},value:{type:"list",member:{}}},Sd:{type:"structure",members:{Name:{},InstanceId:{},Date:{type:"timestamp"},Status:{shape:"Sf"},Parameters:{shape:"S8"}}},Sf:{type:"structure",required:["Date","Name","Message"],members:{Date:{type:"timestamp"},Name:{},Message:{},AdditionalInfo:{}}},Sl:{type:"structure",members:{Name:{},InstanceId:{},Parameters:{shape:"S8"}}},Sv:{type:"structure",members:{Sha1:{},Hash:{},HashType:{},Name:{},Owner:{},CreatedDate:{type:"timestamp"},Status:{},Description:{},Parameters:{type:"list",member:{locationName:"DocumentParameter",type:"structure",members:{Name:{},Type:{},Description:{},DefaultValue:{}}}},PlatformTypes:{shape:"S19" +}}},S19:{type:"list",member:{locationName:"PlatformType"}},S1m:{type:"list",member:{locationName:"AccountId"}},S2g:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},S31:{type:"structure",members:{CommandId:{},DocumentName:{},Comment:{},ExpiresAfter:{type:"timestamp"},Parameters:{shape:"S8"},InstanceIds:{shape:"S3"},RequestedDateTime:{type:"timestamp"},Status:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}},paginators:{ListAssociations:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Associations"},ListCommandInvocations:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"CommandInvocations"},ListCommands:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"Commands"},ListDocuments:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"DocumentIdentifiers"}}},a.apiLoader.services.storagegateway={},a.StorageGateway=a.Service.defineService("storagegateway",["2013-06-30"]),a.apiLoader.services.storagegateway["2013-06-30"]={version:"2.0",metadata:{apiVersion:"2013-06-30",endpointPrefix:"storagegateway",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Storage Gateway",signatureVersion:"v4",targetPrefix:"StorageGateway_20130630"},operations:{ActivateGateway:{input:{type:"structure",required:["ActivationKey","GatewayName","GatewayTimezone","GatewayRegion"],members:{ActivationKey:{},GatewayName:{},GatewayTimezone:{},GatewayRegion:{},GatewayType:{},TapeDriveType:{},MediumChangerType:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},AddCache:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},AddTagsToResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sh"}}},output:{type:"structure",members:{ResourceARN:{}}},http:{}},AddUploadBuffer:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},AddWorkingStorage:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},CancelArchival:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},CancelRetrieval:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},CreateCachediSCSIVolume:{input:{type:"structure",required:["GatewayARN","VolumeSizeInBytes","TargetName","NetworkInterfaceId","ClientToken"],members:{GatewayARN:{},VolumeSizeInBytes:{type:"long"},SnapshotId:{},TargetName:{},NetworkInterfaceId:{},ClientToken:{}}},output:{type:"structure",members:{VolumeARN:{},TargetARN:{}}},http:{}},CreateSnapshot:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{VolumeARN:{},SnapshotId:{}}},http:{}},CreateSnapshotFromVolumeRecoveryPoint:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{SnapshotId:{},VolumeARN:{},VolumeRecoveryPointTime:{}}},http:{}},CreateStorediSCSIVolume:{input:{type:"structure",required:["GatewayARN","DiskId","PreserveExistingData","TargetName","NetworkInterfaceId"],members:{GatewayARN:{},DiskId:{},SnapshotId:{},PreserveExistingData:{type:"boolean"},TargetName:{},NetworkInterfaceId:{}}},output:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},TargetARN:{}}},http:{}},CreateTapeWithBarcode:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","TapeBarcode"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},TapeBarcode:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},CreateTapes:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","ClientToken","NumTapesToCreate","TapeBarcodePrefix"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},ClientToken:{},NumTapesToCreate:{type:"integer"},TapeBarcodePrefix:{}}},output:{type:"structure",members:{TapeARNs:{shape:"S1l"}}},http:{}},DeleteBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN","BandwidthType"],members:{GatewayARN:{},BandwidthType:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},DeleteChapCredentials:{input:{type:"structure",required:["TargetARN","InitiatorName"],members:{TargetARN:{},InitiatorName:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}},http:{}},DeleteGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},DeleteSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{}}},http:{}},DeleteTape:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},DeleteTapeArchive:{input:{type:"structure",required:["TapeARN"],members:{TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},DeleteVolume:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{}}},http:{}},DescribeBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},http:{}},DescribeCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},CacheAllocatedInBytes:{type:"long"},CacheUsedPercentage:{type:"double"},CacheDirtyPercentage:{type:"double"},CacheHitPercentage:{type:"double"},CacheMissPercentage:{type:"double"}}},http:{}},DescribeCachediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2a"}}},output:{type:"structure",members:{CachediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},SourceSnapshotId:{},VolumeiSCSIAttributes:{shape:"S2i"}}}}}},http:{}},DescribeChapCredentials:{input:{type:"structure",required:["TargetARN"],members:{TargetARN:{}}},output:{type:"structure",members:{ChapCredentials:{type:"list",member:{type:"structure",members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}}}}},http:{}},DescribeGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayId:{},GatewayName:{},GatewayTimezone:{},GatewayState:{},GatewayNetworkInterfaces:{type:"list",member:{type:"structure",members:{Ipv4Address:{},MacAddress:{},Ipv6Address:{}}}},GatewayType:{},NextUpdateAvailabilityDate:{},LastSoftwareUpdate:{}}},http:{}},DescribeMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"},Timezone:{}}},http:{}},DescribeSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{},Timezone:{}}},http:{}},DescribeStorediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2a"}}},output:{type:"structure",members:{StorediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},VolumeDiskId:{},SourceSnapshotId:{},PreservedExistingData:{type:"boolean"},VolumeiSCSIAttributes:{shape:"S2i"}}}}}},http:{}},DescribeTapeArchives:{input:{type:"structure",members:{TapeARNs:{shape:"S1l"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeArchives:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},CompletionTime:{type:"timestamp"},RetrievedTo:{},TapeStatus:{}}}},Marker:{}}},http:{}},DescribeTapeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},TapeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeRecoveryPointTime:{type:"timestamp"},TapeSizeInBytes:{type:"long"},TapeStatus:{}}}},Marker:{}}},http:{}},DescribeTapes:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},TapeARNs:{shape:"S1l"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Tapes:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},VTLDevice:{},Progress:{type:"double"}}}},Marker:{}}},http:{}},DescribeUploadBuffer:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},UploadBufferUsedInBytes:{type:"long"},UploadBufferAllocatedInBytes:{type:"long"}}},http:{}},DescribeVTLDevices:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},VTLDeviceARNs:{type:"list",member:{}},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},VTLDevices:{type:"list",member:{type:"structure",members:{VTLDeviceARN:{},VTLDeviceType:{},VTLDeviceVendor:{},VTLDeviceProductIdentifier:{},DeviceiSCSIAttributes:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},Marker:{}}},http:{}},DescribeWorkingStorage:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},WorkingStorageUsedInBytes:{type:"long"},WorkingStorageAllocatedInBytes:{type:"long"}}},http:{}},DisableGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},ListGateways:{input:{type:"structure",members:{Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Gateways:{type:"list",member:{type:"structure",members:{GatewayId:{},GatewayARN:{},GatewayType:{},GatewayOperationalState:{},GatewayName:{}}}},Marker:{}}},http:{}},ListLocalDisks:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},Disks:{type:"list",member:{type:"structure",members:{DiskId:{},DiskPath:{},DiskNode:{},DiskStatus:{},DiskSizeInBytes:{type:"long"},DiskAllocationType:{},DiskAllocationResource:{}}}}}},http:{}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ResourceARN:{},Marker:{},Tags:{shape:"Sh"}}},http:{}},ListTapes:{input:{type:"structure",members:{TapeARNs:{shape:"S1l"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},GatewayARN:{}}}},Marker:{}}},http:{}},ListVolumeInitiators:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{Initiators:{type:"list",member:{}}}},http:{}},ListVolumeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},VolumeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},VolumeUsageInBytes:{type:"long"},VolumeRecoveryPointTime:{}}}}}},http:{}},ListVolumes:{input:{type:"structure",members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},Marker:{},VolumeInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},GatewayARN:{},GatewayId:{},VolumeType:{},VolumeSizeInBytes:{type:"long"}}}}}},http:{}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{ResourceARN:{}}},http:{}},ResetCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},RetrieveTapeArchive:{input:{type:"structure",required:["TapeARN","GatewayARN"],members:{TapeARN:{},GatewayARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},RetrieveTapeRecoveryPoint:{input:{type:"structure",required:["TapeARN","GatewayARN"],members:{TapeARN:{},GatewayARN:{}}},output:{type:"structure",members:{TapeARN:{}}},http:{}},SetLocalConsolePassword:{input:{type:"structure",required:["GatewayARN","LocalConsolePassword"],members:{GatewayARN:{},LocalConsolePassword:{type:"string",sensitive:!0}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},ShutdownGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},StartGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateChapCredentials:{input:{type:"structure",required:["TargetARN","SecretToAuthenticateInitiator","InitiatorName"],members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}},http:{}},UpdateGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},GatewayName:{},GatewayTimezone:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayName:{}}},http:{}},UpdateGatewaySoftwareNow:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN","HourOfDay","MinuteOfHour","DayOfWeek"],members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{}}},http:{}},UpdateSnapshotSchedule:{input:{type:"structure",required:["VolumeARN","StartAt","RecurrenceInHours"],members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{}}},output:{type:"structure",members:{VolumeARN:{}}},http:{}},UpdateVTLDeviceType:{input:{type:"structure",required:["VTLDeviceARN","DeviceType"],members:{VTLDeviceARN:{},DeviceType:{}}},output:{type:"structure",members:{VTLDeviceARN:{}}},http:{}}},shapes:{Sc:{type:"list",member:{}},Sh:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S1l:{type:"list",member:{}},S2a:{type:"list",member:{}},S2i:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},LunNumber:{type:"integer"},ChapEnabled:{type:"boolean"}}}},paginators:{DescribeCachediSCSIVolumes:{result_key:"CachediSCSIVolumes"},DescribeStorediSCSIVolumes:{result_key:"StorediSCSIVolumes"},DescribeTapeArchives:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeArchives"},DescribeTapeRecoveryPoints:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeRecoveryPointInfos"},DescribeTapes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Tapes"},DescribeVTLDevices:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VTLDevices"},ListGateways:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Gateways"},ListLocalDisks:{result_key:"Disks"},ListVolumeRecoveryPoints:{result_key:"VolumeRecoveryPointInfos"},ListVolumes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VolumeInfos"}}},a.apiLoader.services.sts={},a.STS=a.Service.defineService("sts",["2011-06-15"]),e("./services/sts"),a.apiLoader.services.sts["2011-06-15"]={version:"2.0",metadata:{apiVersion:"2011-06-15",endpointPrefix:"sts",globalEndpoint:"sts.amazonaws.com",protocol:"query",serviceAbbreviation:"AWS STS",serviceFullName:"AWS Security Token Service",signatureVersion:"v4",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/"},operations:{AssumeRole:{input:{type:"structure",required:["RoleArn","RoleSessionName"],members:{RoleArn:{},RoleSessionName:{},Policy:{},DurationSeconds:{type:"integer"},ExternalId:{},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"AssumeRoleResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"}}},http:{}},AssumeRoleWithSAML:{input:{type:"structure",required:["RoleArn","PrincipalArn","SAMLAssertion"],members:{RoleArn:{},PrincipalArn:{},SAMLAssertion:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithSAMLResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Subject:{},SubjectType:{},Issuer:{},Audience:{},NameQualifier:{}}},http:{}},AssumeRoleWithWebIdentity:{input:{type:"structure",required:["RoleArn","RoleSessionName","WebIdentityToken"],members:{RoleArn:{},RoleSessionName:{},WebIdentityToken:{},ProviderId:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithWebIdentityResult",type:"structure",members:{Credentials:{shape:"Sa"},SubjectFromWebIdentityToken:{},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Provider:{},Audience:{}}},http:{}},DecodeAuthorizationMessage:{input:{type:"structure",required:["EncodedMessage"],members:{EncodedMessage:{}}},output:{resultWrapper:"DecodeAuthorizationMessageResult",type:"structure",members:{DecodedMessage:{}}},http:{}},GetCallerIdentity:{input:{type:"structure",members:{}},output:{resultWrapper:"GetCallerIdentityResult",type:"structure",members:{UserId:{},Account:{},Arn:{}}},http:{}},GetFederationToken:{input:{type:"structure",required:["Name"],members:{Name:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"GetFederationTokenResult",type:"structure",members:{Credentials:{shape:"Sa"},FederatedUser:{type:"structure",required:["FederatedUserId","Arn"],members:{FederatedUserId:{},Arn:{}}},PackedPolicySize:{type:"integer"}}},http:{}},GetSessionToken:{input:{type:"structure",members:{DurationSeconds:{type:"integer"},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"GetSessionTokenResult",type:"structure",members:{Credentials:{shape:"Sa"}}},http:{}}},shapes:{Sa:{type:"structure",required:["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{},Expiration:{type:"timestamp"}}},Sf:{type:"structure",required:["AssumedRoleId","Arn"],members:{AssumedRoleId:{},Arn:{}}}}},a.apiLoader.services.waf={},a.WAF=a.Service.defineService("waf",["2015-08-24"]),a.apiLoader.services.waf["2015-08-24"]={version:"2.0",metadata:{apiVersion:"2015-08-24",endpointPrefix:"waf",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"WAF",serviceFullName:"AWS WAF",signatureVersion:"v4",targetPrefix:"AWSWAF_20150824"},operations:{CreateByteMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{ByteMatchSet:{shape:"S5"},ChangeToken:{}}},http:{}},CreateIPSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{IPSet:{shape:"Sh"},ChangeToken:{}}},http:{}},CreateRule:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{}}},output:{type:"structure",members:{Rule:{shape:"Sp"},ChangeToken:{}}},http:{}},CreateSizeConstraintSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"Sw"},ChangeToken:{}}},http:{}},CreateSqlInjectionMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S13"},ChangeToken:{}}},http:{}},CreateWebACL:{input:{type:"structure",required:["Name","MetricName","DefaultAction","ChangeToken"],members:{Name:{},MetricName:{},DefaultAction:{shape:"S17"},ChangeToken:{}}},output:{type:"structure",members:{WebACL:{shape:"S1a"},ChangeToken:{}}},http:{}},CreateXssMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S1g"},ChangeToken:{}}},http:{}},DeleteByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId","ChangeToken"],members:{ByteMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteIPSet:{input:{type:"structure",required:["IPSetId","ChangeToken"],members:{IPSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteRule:{input:{type:"structure",required:["RuleId","ChangeToken"],members:{RuleId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId","ChangeToken"],members:{SizeConstraintSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId","ChangeToken"],members:{SqlInjectionMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteWebACL:{input:{type:"structure",required:["WebACLId","ChangeToken"],members:{WebACLId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},DeleteXssMatchSet:{input:{type:"structure",required:["XssMatchSetId","ChangeToken"],members:{XssMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},GetByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId"],members:{ByteMatchSetId:{}}},output:{type:"structure",members:{ByteMatchSet:{shape:"S5"}}},http:{}},GetChangeToken:{input:{type:"structure",members:{}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},GetChangeTokenStatus:{input:{type:"structure",required:["ChangeToken"],members:{ChangeToken:{}}},output:{type:"structure",members:{ChangeTokenStatus:{}}},http:{}},GetIPSet:{input:{type:"structure",required:["IPSetId"],members:{IPSetId:{}}},output:{type:"structure",members:{IPSet:{shape:"Sh"}}},http:{}},GetRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"Sp"}}},http:{}},GetSampledRequests:{input:{type:"structure",required:["WebAclId","RuleId","TimeWindow","MaxItems"],members:{WebAclId:{},RuleId:{},TimeWindow:{shape:"S29"},MaxItems:{type:"long"}}},output:{type:"structure",members:{SampledRequests:{type:"list",member:{type:"structure",required:["Request","Weight"],members:{Request:{type:"structure",members:{ClientIP:{},Country:{},URI:{},Method:{},HTTPVersion:{},Headers:{type:"list",member:{type:"structure",members:{Name:{},Value:{}}}}}},Weight:{type:"long"},Timestamp:{type:"timestamp"},Action:{}}}},PopulationSize:{type:"long"},TimeWindow:{shape:"S29"}}},http:{}},GetSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId"],members:{SizeConstraintSetId:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"Sw"}}},http:{}},GetSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId"],members:{SqlInjectionMatchSetId:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S13"}}},http:{}},GetWebACL:{input:{type:"structure",required:["WebACLId"],members:{WebACLId:{}}},output:{type:"structure",members:{WebACL:{shape:"S1a"}}},http:{}},GetXssMatchSet:{input:{type:"structure",required:["XssMatchSetId"],members:{XssMatchSetId:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S1g"}}},http:{}},ListByteMatchSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},ByteMatchSets:{type:"list",member:{type:"structure",required:["ByteMatchSetId","Name"],members:{ByteMatchSetId:{},Name:{}}}}}},http:{}},ListIPSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},IPSets:{type:"list",member:{type:"structure",required:["IPSetId","Name"],members:{IPSetId:{},Name:{}}}}}},http:{}},ListRules:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Rules:{type:"list",member:{type:"structure",required:["RuleId","Name"],members:{RuleId:{},Name:{}}}}}},http:{}},ListSizeConstraintSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},SizeConstraintSets:{type:"list",member:{type:"structure",required:["SizeConstraintSetId","Name"],members:{SizeConstraintSetId:{},Name:{}}}}}},http:{}},ListSqlInjectionMatchSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},SqlInjectionMatchSets:{type:"list",member:{type:"structure",required:["SqlInjectionMatchSetId","Name"],members:{SqlInjectionMatchSetId:{},Name:{}}}}}},http:{}},ListWebACLs:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},WebACLs:{type:"list",member:{type:"structure",required:["WebACLId","Name"],members:{WebACLId:{},Name:{}}}}}},http:{}},ListXssMatchSets:{input:{type:"structure",required:["Limit"],members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},XssMatchSets:{type:"list",member:{type:"structure",required:["XssMatchSetId","Name"],members:{XssMatchSetId:{},Name:{}}}}}},http:{}},UpdateByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId","ChangeToken","Updates"],members:{ByteMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","ByteMatchTuple"],members:{Action:{},ByteMatchTuple:{shape:"S8"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateIPSet:{input:{type:"structure",required:["IPSetId","ChangeToken","Updates"],members:{IPSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","IPSetDescriptor"],members:{Action:{},IPSetDescriptor:{shape:"Sj"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateRule:{input:{type:"structure",required:["RuleId","ChangeToken","Updates"],members:{RuleId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","Predicate"],members:{Action:{},Predicate:{shape:"Sr"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId","ChangeToken","Updates"],members:{SizeConstraintSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","SizeConstraint"],members:{Action:{},SizeConstraint:{shape:"Sy"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId","ChangeToken","Updates"],members:{SqlInjectionMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","SqlInjectionMatchTuple"],members:{Action:{},SqlInjectionMatchTuple:{shape:"S15"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateWebACL:{input:{type:"structure",required:["WebACLId","ChangeToken"],members:{WebACLId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","ActivatedRule"],members:{Action:{},ActivatedRule:{shape:"S1c"}}}},DefaultAction:{shape:"S17"}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}},UpdateXssMatchSet:{input:{type:"structure",required:["XssMatchSetId","ChangeToken","Updates"],members:{XssMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","XssMatchTuple"],members:{Action:{},XssMatchTuple:{shape:"S1i"}}}}}},output:{type:"structure",members:{ChangeToken:{}}},http:{}}},shapes:{S5:{type:"structure",required:["ByteMatchSetId","ByteMatchTuples"],members:{ByteMatchSetId:{},Name:{},ByteMatchTuples:{type:"list",member:{shape:"S8"}}}},S8:{type:"structure",required:["FieldToMatch","TargetString","TextTransformation","PositionalConstraint"],members:{FieldToMatch:{shape:"S9"},TargetString:{type:"blob"},TextTransformation:{},PositionalConstraint:{}}},S9:{type:"structure",required:["Type"],members:{Type:{},Data:{}}},Sh:{type:"structure",required:["IPSetId","IPSetDescriptors"],members:{IPSetId:{},Name:{},IPSetDescriptors:{type:"list",member:{shape:"Sj"}}}},Sj:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{}}},Sp:{type:"structure",required:["RuleId","Predicates"],members:{RuleId:{},Name:{},MetricName:{},Predicates:{type:"list",member:{shape:"Sr"}}}},Sr:{type:"structure",required:["Negated","Type","DataId"],members:{Negated:{type:"boolean"},Type:{},DataId:{}}},Sw:{type:"structure",required:["SizeConstraintSetId","SizeConstraints"],members:{SizeConstraintSetId:{},Name:{},SizeConstraints:{type:"list",member:{shape:"Sy"}}}},Sy:{type:"structure",required:["FieldToMatch","TextTransformation","ComparisonOperator","Size"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},ComparisonOperator:{},Size:{type:"long"}}},S13:{type:"structure",required:["SqlInjectionMatchSetId","SqlInjectionMatchTuples"],members:{SqlInjectionMatchSetId:{},Name:{},SqlInjectionMatchTuples:{type:"list",member:{shape:"S15"}}}},S15:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S17:{type:"structure",required:["Type"],members:{Type:{}}},S1a:{type:"structure",required:["WebACLId","DefaultAction","Rules"],members:{WebACLId:{},Name:{},MetricName:{},DefaultAction:{shape:"S17"},Rules:{type:"list",member:{shape:"S1c"}}}},S1c:{type:"structure",required:["Priority","RuleId","Action"],members:{Priority:{type:"integer"},RuleId:{},Action:{shape:"S17"}}},S1g:{type:"structure",required:["XssMatchSetId","XssMatchTuples"],members:{XssMatchSetId:{},Name:{},XssMatchTuples:{type:"list",member:{shape:"S1i"}}}},S1i:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S29:{type:"structure",required:["StartTime","EndTime"],members:{StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}}}}},{"./core":4,"./http/xhr":18,"./services/apigateway":42,"./services/cloudfront":43,"./services/cognitoidentity":44,"./services/dynamodb":45,"./services/ec2":46,"./services/iotdata":47,"./services/machinelearning":48,"./services/route53":49,"./services/s3":50,"./services/sqs":51,"./services/sts":52,"./xml/browser_parser":62}],2:[function(e,t,r){var a=e("crypto"),i=e("url"),s=e("../core"),n=s.util.base64.encode,o=s.util.inherit,u=function(e){var t={"+":"-","=":"_","/":"~"};return e.replace(/[\+=\/]/g,function(e){return t[e]})},p=function(e,t){var r=a.createSign("RSA-SHA1");return r.write(e),u(r.sign(t,"base64"))},c=function(e,t,r,a){var i=JSON.stringify({ +Statement:[{Resource:e,Condition:{DateLessThan:{"AWS:EpochTime":t}}}]});return{Expires:t,"Key-Pair-Id":r,Signature:p(i.toString(),a)}},m=function(e,t,r){return e=e.replace(/\s/gm,e),{Policy:u(n(e)),"Key-Pair-Id":t,Signature:p(e,r)}},l=function(e){var t=e.split("://");if(t.length<2)throw new Error("Invalid URL.");return t[0].replace("*","")},d=function(e){var t=i.parse(e);return t.path.replace(/^\//,"")+t.hash},y=function(e){switch(l(e)){case"http":case"https":return e;case"rtmp":return d(e);default:throw new Error("Invalid URI scheme. Scheme must be one of http, https, or rtmp")}},h=function(e,t){if(!t||"function"!=typeof t)throw e;t(e)},b=function(e,t){return t&&"function"==typeof t?void t(null,e):e};s.CloudFront.Signer=o({constructor:function(e,t){if(void 0===e||void 0===t)throw new Error("A key pair ID and private key are required");this.keyPairId=e,this.privateKey=t},getSignedCookie:function(e,t){var r="policy"in e?m(e.policy,this.keyPairId,this.privateKey):c(e.url,e.expires,this.keyPairId,this.privateKey),a={};for(var i in r)r.hasOwnProperty(i)&&(a["CloudFront-"+i]=r[i]);return b(a,t)},getSignedUrl:function(e,t){try{var r=y(e.url)}catch(a){return h(a,t)}var s=i.parse(e.url,!0),n=e.hasOwnProperty("policy")?m(e.policy,this.keyPairId,this.privateKey):c(r,e.expires,this.keyPairId,this.privateKey);s.search=null;for(var o in n)n.hasOwnProperty(o)&&(s.query[o]=n[o]);try{var u="rtmp"===l(e.url)?d(i.format(s)):i.format(s)}catch(a){return h(a,t)}return b(u,t)}}),t.exports=s.CloudFront.Signer},{"../core":4,crypto:69,url:81}],3:[function(e,t,r){var a=e("./core");e("./credentials"),e("./credentials/credential_provider_chain"),a.Config=a.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),a.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:n.credentials)}function r(e,t){return new a.util.error(t||new Error,{code:"CredentialsError",message:e})}function i(){n.credentials.get(function(e){if(e){var a="Could not load credentials from "+n.credentials.constructor.name;e=r(a,e)}t(e)})}function s(){var e=null;n.credentials.accessKeyId&&n.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}var n=this;n.credentials?"function"==typeof n.credentials.get?i():s():n.credentialProvider?n.credentialProvider.resolve(function(e,a){e&&(e=r("Could not load credentials from any providers",e)),n.credentials=a,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),a.util.each.call(this,e,function(e,r){(t||this.keys.hasOwnProperty(e)||a.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(a.util.readFileSync(e)),r=new a.FileSystemCredentials(e),i=new a.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){a.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),"function"==typeof r?this[e]=r.call(this):this[e]=r):"httpOptions"===e&&this[e]?this[e]=a.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{base:100},useAccelerateEndpoint:!1},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=a.util.copy(e),e.credentials=new a.Credentials(e)),e},setPromisesDependency:function(e){a.util.addPromisesToRequests(a.Request,e)}}),a.config=new a.Config},{"./core":4,"./credentials":5,"./credentials/credential_provider_chain":7}],4:[function(e,t,r){var a={util:e("./util")},i={};i.toString(),t.exports=a,a.util.update(a,{VERSION:"2.3.19",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},util:e("./util"),apiLoader:function(){throw new Error("No API loader set")}}),e("./service"),e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/web_identity_credentials"),e("./credentials/cognito_identity_credentials"),e("./credentials/saml_credentials"),e("./config"),e("./http"),e("./sequential_executor"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),a.events=new a.SequentialExecutor},{"./config":3,"./credentials":5,"./credentials/cognito_identity_credentials":6,"./credentials/credential_provider_chain":7,"./credentials/saml_credentials":8,"./credentials/temporary_credentials":9,"./credentials/web_identity_credentials":10,"./event_listeners":16,"./http":17,"./json/builder":19,"./json/parser":20,"./model/api":21,"./model/operation":23,"./model/paginator":24,"./model/resource_waiter":25,"./model/shape":26,"./param_validator":27,"./protocol/json":28,"./protocol/query":29,"./protocol/rest":30,"./protocol/rest_json":31,"./protocol/rest_xml":32,"./request":36,"./resource_waiter":37,"./response":38,"./sequential_executor":40,"./service":41,"./signers/request_signer":54,"./util":61,"./xml/builder":63}],5:[function(e,t,r){var a=e("./core");a.Credentials=a.util.inherit({constructor:function(){if(a.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=a.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return this.expireTime&&t>this.expireTime?!0:this.expired||!this.accessKeyId||!this.secretAccessKey},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()}})},{"./core":4}],6:[function(e,t,r){var a=e("../core");a.CognitoIdentityCredentials=a.util.inherit(a.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this.identityId=null,this.loadCachedId()},refresh:function(e){var t=this;t.createClients(),t.data=null,t.identityId=null,t.getId(function(r){r?(t.clearCachedId(),e(r)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)})},clearCachedId:function(){this.identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},getId:function(e){var t=this;return"string"==typeof t.params.IdentityId?e(null,t.params.IdentityId):void t.cognito.getId(function(r,a){!r&&a.IdentityId?(t.params.IdentityId=a.IdentityId,e(null,a.IdentityId)):e(r)})},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity(function(r,a){r?t.clearCachedId():(t.cacheId(a),t.data=a,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,a){r?(t.clearCachedId(),e(r)):(t.cacheId(a),t.params.WebIdentityToken=a.Token,t.webIdentityCredentials.refresh(function(r){r?t.clearCachedId():(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(r)}))})},loadCachedId:function(){var e=this;if(a.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage("id");if(t&&e.params.Logins){var r=Object.keys(e.params.Logins),i=(e.getStorage("providers")||"").split(","),s=i.filter(function(e){return-1!==r.indexOf(e)});0!==s.length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){this.webIdentityCredentials=this.webIdentityCredentials||new a.WebIdentityCredentials(this.params),this.cognito=this.cognito||new a.CognitoIdentity({params:this.params}),this.sts=this.sts||new a.STS},cacheId:function(e){this.identityId=e.IdentityId,this.params.IdentityId=this.identityId,a.util.isBrowser()&&(this.setStorage("id",e.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]=t}catch(r){}},storage:function(){try{return a.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{}}catch(e){return{}}}()})},{"../core":4}],7:[function(e,t,r){var a=e("../core");a.CredentialProviderChain=a.util.inherit(a.Credentials,{constructor:function(e){e?this.providers=e:this.providers=a.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(e){function t(i,s){if(!i&&s||r===a.length)return void e(i,s);var n=a[r++];s="function"==typeof n?n.call():n,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}if(0===this.providers.length)return e(new Error("No providers")),this;var r=0,a=this.providers.slice(0);return t(),this}}),a.CredentialProviderChain.defaultProviders=[]},{"../core":4}],8:[function(e,t,r){var a=e("../core");a.SAMLCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithSAML(function(r,a){r||t.service.credentialsFrom(a,t),e(r)})},createClients:function(){this.service=this.service||new a.STS({params:this.params})}})},{"../core":4}],9:[function(e,t,r){var a=e("../core");a.TemporaryCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.loadMasterCredentials(),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.config.credentials=t.masterCredentials;var r=t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken;r.call(t.service,function(r,a){r||t.service.credentialsFrom(a,t),e(r)})},loadMasterCredentials:function(){for(this.masterCredentials=a.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials},createClients:function(){this.service=this.service||new a.STS({params:this.params})}})},{"../core":4}],10:[function(e,t,r){var a=e("../core");a.WebIdentityCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithWebIdentity(function(r,a){t.data=null,r||(t.data=a,t.service.credentialsFrom(a,t)),e(r)})},createClients:function(){this.service=this.service||new a.STS({params:this.params})}})},{"../core":4}],11:[function(e,t,r){function a(e){if("Object"===o(e)){var t={M:{}};for(var r in e)t.M[r]=a(e[r]);return t}if("Array"===o(e)){for(var s={L:[]},n=0;ns;s++)if(i(r[s])!==e.type)throw a.error(new Error,{code:"InvalidType",message:e.type+" Set contains "+i(r[s])+" value"})}});t.exports=s},{"../core":4,"./types":15}],14:[function(e,t,r){var a=e("../core").util,i=e("./converter"),s=function(e){e=e||{},this.attrValue=e.attrValue};s.prototype.translateInput=function(e,t){return this.mode="input",this.translate(e,t)},s.prototype.translateOutput=function(e,t){return this.mode="output",this.translate(e,t)},s.prototype.translate=function(e,t){var r=this;if(t&&void 0!==e){if(t.shape===r.attrValue)return i[r.mode](e);switch(t.type){case"structure":return r.translateStructure(e,t);case"map":return r.translateMap(e,t);case"list":return r.translateList(e,t);default:return r.translateScalar(e,t)}}},s.prototype.translateStructure=function(e,t){var r=this;if(null!=e){var i={};return a.each(e,function(e,a){var s=t.members[e];if(s){var n=r.translate(a,s);void 0!==n&&(i[e]=n)}}),i}},s.prototype.translateList=function(e,t){var r=this;if(null!=e){var i=[];return a.arrayEach(e,function(e){var a=r.translate(e,t.member);void 0===a?i.push(null):i.push(a)}),i}},s.prototype.translateMap=function(e,t){var r=this;if(null!=e){var i={};return a.each(e,function(e,a){var s=r.translate(a,t.value);void 0===s?i[e]=null:i[e]=s}),i}},s.prototype.translateScalar=function(e,t){return t.toType(e)},t.exports=s},{"../core":4,"./converter":11}],15:[function(e,t,r){function a(e){return null===e&&"object"==typeof e?"null":void 0!==e&&i(e)?"Binary":void 0!==e&&e.constructor?s.typeName(e.constructor):"undefined"}function i(e){var t=["Buffer","File","Blob","ArrayBuffer","DataView","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"];if(s.isNode()){var r=s.nodeRequire("stream").Stream;if(s.Buffer.isBuffer(e)||e instanceof r)return!0}else for(var a=0;a=600?this.emit("sign",[this],function(e){e?t(e):n()}):n()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r){r.httpResponse.statusCode=e,r.httpResponse.headers=t,r.httpResponse.body=new a.util.Buffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var i=t.date||t.Date;if(i){var s=Date.parse(i);r.request.service.config.correctClockSkew&&a.util.isClockSkewed(s)&&a.util.applyClockOffset(s)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(a.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],i={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[i,t])}t.httpResponse.buffers.push(new a.util.Buffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=a.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e("FINALIZE_ERROR","retry",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e("INVALIDATE_CREDENTIALS","retry",function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e("EXPIRED_SIGNATURE","retry",function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e("CLOCK_SKEWED","retry",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&a.config.isClockSkewed&&(e.error.retryable=!0)}),e("REDIRECT","retry",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new a.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount=this.HEADERS_RECEIVED&&!m){try{c.responseType="arraybuffer"}catch(e){}u.statusCode=c.status,u.headers=n.parseHeaders(c.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers),m=!0}this.readyState===this.DONE&&n.finishRequest(c,u)},!1),c.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),c.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),c.addEventListener("timeout",function(){s(a.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),c.addEventListener("error",function(){s(a.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),r(u),c.open(e.method,p,t.xhrAsync!==!1),a.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&c.setRequestHeader(e,t)}),t.timeout&&t.xhrAsync!==!1&&(c.timeout=t.timeout),t.xhrWithCredentials&&(c.withCredentials=!0);try{c.send(e.body)}catch(l){if(!e.body||"object"!=typeof e.body.buffer)throw l;c.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return a.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],a=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=a)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var i=e.response;r=new a.util.Buffer(i.byteLength);for(var s=new Uint8Array(i),n=0;n1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,a.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(a.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var a,i=0;e.required&&i= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+a+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation["enum"]&&void 0!==e["enum"]&&-1===e["enum"].indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e["enum"].join("|")+" for "+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var s=!1,n=0;n0){var a=JSON.parse(r.body.toString());(a.__type||a.code)&&(t.code=(a.__type||a.code).split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=a.message||a.Message||null}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=n.error(new Error,t)}function s(e){var t=e.httpResponse.body.toString()||"{}";if(e.request.service.config.convertResponseTypes===!1)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],a=r.output||{},i=new u;e.data=i.parse(t,a)}}var n=e("../util"),o=e("../json/builder"),u=e("../json/parser");t.exports={buildRequest:a,extractError:i,extractData:s}},{"../json/builder":19,"../json/parser":20,"../util":61}],29:[function(e,t,r){function a(e){var t=e.service.api.operations[e.operation],r=e.httpRequest;r.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",r.params={Version:e.service.api.apiVersion,Action:t.name};var a=new u;a.serialize(e.params,t.input,function(e,t){r.params[e]=t}),r.body=o.queryParamsToString(r.params)}function i(e){var t,r=e.httpResponse.body.toString();t=r.match("=0?"&":"?";var n=[];p.arrayEach(Object.keys(i).sort(),function(e){Array.isArray(i[e])||(i[e]=[i[e]]);for(var t=0;t0){t=new o.XML.Parser;var m=t.parse(a.toString(),s);u.update(e.data,m)}}var o=e("../core"),u=e("../util"),p=e("./rest");t.exports={buildRequest:i,extractError:s,extractData:n}},{"../core":4,"../util":61,"./rest":30}],33:[function(e,t,r){function a(){}function i(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function s(e,t,r,a){p.each(r.members,function(r,s){var n=t[r];if(null!==n&&void 0!==n){var o=i(s);o=e?e+"."+o:o,u(o,n,s,a)}})}function n(e,t,r,a){var i=1;p.each(t,function(t,s){var n=r.flattened?".":".entry.",o=n+i++ +".",p=o+(r.key.name||"key"),c=o+(r.value.name||"value");u(e+p,t,r.key,a),u(e+c,s,r.value,a)})}function o(e,t,r,a){var s=r.member||{};return 0===t.length?void a.call(this,e,null):void p.arrayEach(t,function(t,n){var o="."+(n+1);if("ec2"===r.api.protocol)o+="";else if(r.flattened){if(s.name){var p=e.split(".");p.pop(),p.push(i(s)),e=p.join(".")}}else o=".member"+o;u(e+o,t,s,a)})}function u(e,t,r,a){null!==t&&void 0!==t&&("structure"===r.type?s(e,t,r,a):"list"===r.type?o(e,t,r,a):"map"===r.type?n(e,t,r,a):a(e,r.toWireFormat(t).toString()))}var p=e("../util");a.prototype.serialize=function(e,t,r){s("",e,t,r)},t.exports=a},{"../util":61}],34:[function(e,t,r){t.exports={rules:{"*/*":{endpoint:"{service}.{region}.amazonaws.com"},"cn-*/*":{endpoint:"{service}.{region}.amazonaws.com.cn"},"*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{endpoint:"{service}.amazonaws.com",signatureVersion:"v2",globalEndpoint:!0},"*/route53":{endpoint:"https://{service}.amazonaws.com",signatureVersion:"v3https",globalEndpoint:!0},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{endpoint:"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3dash","us-west-1/s3":"s3dash","us-west-2/s3":"s3dash","eu-west-1/s3":"s3dash","ap-southeast-1/s3":"s3dash","ap-southeast-2/s3":"s3dash","ap-northeast-1/s3":"s3dash","sa-east-1/s3":"s3dash","us-east-1/s3":{endpoint:"{service}.amazonaws.com",signatureVersion:"s3"},"us-east-1/sdb":{endpoint:"{service}.amazonaws.com",signatureVersion:"v2"},"*/sdb":{endpoint:"{service}.{region}.amazonaws.com",signatureVersion:"v2"}},patterns:{globalSSL:{endpoint:"https://{service}.amazonaws.com",globalEndpoint:!0},globalGovCloud:{endpoint:"{service}.us-gov.amazonaws.com"},s3dash:{endpoint:"{service}-{region}.amazonaws.com",signatureVersion:"s3"}}}},{}],35:[function(e,t,r){function a(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}function i(e){var t=e.config.region,r=a(t),i=e.api.endpointPrefix;return[[t,i],[r,i],[t,"*"],[r,"*"],["*",i],["*","*"]].map(function(e){return e[0]&&e[1]?e.join("/"):null})}function s(e,t){o.each(t,function(t,r){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function n(e){for(var t=i(e),r=0;re){r.removeListener("httpData",a.EventListeners.Core.HTTP_DATA),r.removeListener("httpError",a.EventListeners.Core.HTTP_ERROR),r.on("httpError",function(e){s.error=e,s.error.retryable=!1});var n=s.httpResponse.createUnbufferedStream();2===a.HttpClient.streamsApiVersion?n.pipe(i):(n.on("data",function(e){i.emit("data",e)}),n.on("end",function(){i.emit("end")})),n.on("error",function(e){i.emit("error",e)})}}),this.on("error",function(e){i.emit("error",e)}),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response));var i=a.SequentialExecutor.prototype.emit;i.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new a.Signers.Presign).sign(this.toGet(),e,t)},toUnauthenticated:function(){return this.removeListener("validate",a.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",a.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),a.util.addPromisesToRequests(a.Request),a.util.mixin(a.Request,a.SequentialExecutor)}).call(this,e("_process"))},{"./core":4,"./state_machine":60,_process:76,jmespath:84}],37:[function(e,t,r){function a(e){var t=e.request._waiter,r=t.config.acceptors,a=!1,i="retry";r.forEach(function(r){if(!a){var s=t.matchers[r.matcher];s&&s(e,r.expected,r.argument)&&(a=!0,i=r.state)}}),!a&&e.error&&(i="failure"),"success"===i?t.setSuccess(e):t.setError(e,"retry"===i)}var i=e("./core"),s=i.util.inherit,n=e("jmespath");i.ResourceWaiter=s({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,r){var a=n.search(e.data,r);return n.strictDeepEqual(a,t)},pathAll:function(e,t,r){var a=n.search(e.data,r);Array.isArray(a)||(a=[a]);var i=a.length;if(!i)return!1;for(var s=0;i>s;s++)if(!n.strictDeepEqual(a[s],t))return!1;return!0},pathAny:function(e,t,r){var a=n.search(e.data,r);Array.isArray(a)||(a=[a]);for(var i=a.length,s=0;i>s;s++)if(n.strictDeepEqual(a[s],t))return!0;return!1},status:function(e,t){var r=e.httpResponse.statusCode;return"number"==typeof r&&r===t},error:function(e,t){return"string"==typeof t&&e.error?t===e.error.code:t===!!e.error}},listeners:(new i.SequentialExecutor).addNamedListeners(function(e){e("RETRY_CHECK","retry",function(e){var t=e.request._waiter;e.error&&"ResourceNotReady"===e.error.code&&(e.error.retryDelay=1e3*(t.config.delay||0))}),e("CHECK_OUTPUT","extractData",a),e("CHECK_ERROR","extractError",a)}),wait:function(e,t){"function"==typeof e&&(t=e,e=void 0);var r=this.service.makeRequest(this.config.operation,e);return r._waiter=this,r.response.maxRetries=this.config.maxAttempts,r.addListeners(this.listeners),t&&r.send(t),r},setSuccess:function(e){e.error=null,e.data=e.data||{},e.request.removeAllListeners("extractData")},setError:function(e,t){e.data=null,e.error=i.util.error(e.error||new Error,{code:"ResourceNotReady",message:"Resource is not in the state "+this.state,retryable:t})},loadWaiterConfig:function(e){if(!this.service.api.waiters[e])throw new i.util.error(new Error,{code:"StateNotFoundError",message:"State "+e+" not found."});this.config=this.service.api.waiters[e]}})},{"./core":4,jmespath:84}],38:[function(e,t,r){var a=e("./core"),i=a.util.inherit,s=e("jmespath");a.Response=i({constructor:function(e){this.request=e,this.data=null,this.error=null,this.retryCount=0,this.redirectCount=0,this.httpResponse=new a.HttpResponse,e&&(this.maxRetries=e.service.numRetries(),this.maxRedirects=e.service.config.maxRedirects)},nextPage:function(e){var t,r=this.request.service,i=this.request.operation;try{t=r.paginationConfig(i,!0)}catch(s){this.error=s}if(!this.hasNextPage()){if(e)e(this.error,null);else if(this.error)throw this.error;return null}var n=a.util.copy(this.request.params);if(this.nextPageTokens){var o=t.inputToken;"string"==typeof o&&(o=[o]);for(var u=0;ue.partSize&&(e.partSize=r)}else e.totalBytes=void 0},isDoneChunking:!1,partPos:0,totalChunkedBytes:0,totalUploadedBytes:0,totalBytes:void 0,numParts:0,totalPartNumbers:0,activeParts:0,doneParts:0,parts:null,completeInfo:null,failed:!1,multipartReq:null,partBuffers:null,partBufferLength:0,fillBuffer:function(){var e=this,t=i(e.body);if(0===t)return e.isDoneChunking=!0,e.numParts=1,void e.nextChunk(e.body);for(;e.activeParts=e.queueSize)){var t=e.body.read(e.partSize-e.partBufferLength)||e.body.read();if(t&&(e.partBuffers.push(t),e.partBufferLength+=t.length,e.totalChunkedBytes+=t.length),e.partBufferLength>=e.partSize){var a=1===e.partBuffers.length?e.partBuffers[0]:r.concat(e.partBuffers);if(e.partBuffers=[],e.partBufferLength=0,a.length>e.partSize){var i=a.slice(e.partSize);e.partBuffers.push(i),e.partBufferLength+=i.length,a=a.slice(0,e.partSize)}e.nextChunk(a)}e.isDoneChunking&&!e.isDoneSending&&(a=1===e.partBuffers.length?e.partBuffers[0]:r.concat(e.partBuffers),e.partBuffers=[],e.partBufferLength=0,e.totalBytes=e.totalChunkedBytes,e.isDoneSending=!0,(0===e.numParts||a.length>0)&&(e.numParts++,e.nextChunk(a))),e.body.read(0)}},nextChunk:function(e){var t=this;if(t.failed)return null;var r=++t.totalPartNumbers;if(t.isDoneChunking&&1===r){var i=t.service.putObject({Body:e});return i._managedUpload=t,i.on("httpUploadProgress",t.progress).send(t.finishSinglePart),null}if(t.service.config.params.ContentMD5){var s=a.util.error(new Error("The Content-MD5 you specified is invalid for multi-part uploads."),{code:"InvalidDigest",retryable:!1});return t.cleanup(s),null}return t.completeInfo[r]&&null!==t.completeInfo[r].ETag?null:(t.activeParts++,void(t.service.config.params.UploadId?t.uploadPart(e,r):t.multipartReq?t.queueChunks(e,r):(t.multipartReq=t.service.createMultipartUpload(),t.multipartReq.on("success",function(e){t.service.config.params.UploadId=e.data.UploadId,t.multipartReq=null}),t.queueChunks(e,r),t.multipartReq.on("error",function(e){t.cleanup(e)}),t.multipartReq.send())))},uploadPart:function(e,t){var r=this,i={Body:e,ContentLength:a.util.string.byteLength(e),PartNumber:t},s={ETag:null,PartNumber:t};r.completeInfo[t]=s;var n=r.service.uploadPart(i);r.parts[t]=n,n._lastUploadedBytes=0,n._managedUpload=r,n.on("httpUploadProgress",r.progress),n.send(function(e,t){if(delete r.parts[i.PartNumber],r.activeParts--,!(e||t&&t.ETag)){var n="No access to ETag property on response.";a.util.isBrowser()&&(n+=" Check CORS configuration to expose ETag header."),e=a.util.error(new Error(n),{code:"ETagMissing",retryable:!1})}return e?r.cleanup(e):(s.ETag=t.ETag,r.doneParts++,void(r.isDoneChunking&&r.doneParts===r.numParts?r.finishMultiPart():r.fillQueue.call(r)))})},queueChunks:function(e,t){var r=this;r.multipartReq.on("success",function(){r.uploadPart(e,t)})},cleanup:function(e){var t=this;t.failed||("function"==typeof t.body.removeAllListeners&&"function"==typeof t.body.resume&&(t.body.removeAllListeners("readable"),t.body.removeAllListeners("end"),t.body.resume()),t.service.config.params.UploadId&&!t.leavePartsOnError&&t.service.abortMultipartUpload().send(),a.util.each(t.parts,function(e,t){t.removeAllListeners("complete"),t.abort()}),t.activeParts=0,t.partPos=0,t.numParts=0,t.totalPartNumbers=0,t.parts={},t.failed=!0,t.callback(e))},finishMultiPart:function(){var e=this,t={MultipartUpload:{Parts:e.completeInfo.slice(1)}};e.service.completeMultipartUpload(t,function(t,r){return t?e.cleanup(t):void e.callback(t,r)})},finishSinglePart:function(e,t){var r=this.request._managedUpload,a=this.request.httpRequest,i=a.endpoint;return e?r.callback(e):(t.Location=[i.protocol,"//",i.host,a.path].join(""),t.key=this.request.params.Key,t.Key=this.request.params.Key,t.Bucket=this.request.params.Bucket,void r.callback(e,t))},progress:function(e){var t=this._managedUpload;"putObject"===this.operation?(e.part=1,e.key=this.params.Key):(t.totalUploadedBytes+=e.loaded-this._lastUploadedBytes,this._lastUploadedBytes=e.loaded,e={loaded:t.totalUploadedBytes,total:t.totalBytes,part:this.params.PartNumber,key:this.params.Key}),t.emit("httpUploadProgress",[e])}}),a.util.mixin(a.S3.ManagedUpload,a.SequentialExecutor),t.exports=a.S3.ManagedUpload}).call(this,e("buffer").Buffer)},{"../core":4,buffer:64}],40:[function(e,t,r){var a=e("./core");a.SequentialExecutor=a.util.inherit({constructor:function(){this._events={}},listeners:function(e){return this._events[e]?this._events[e].slice(0):[]},on:function(e,t){return this._events[e]?this._events[e].push(t):this._events[e]=[t],this},onAsync:function(e,t){return t._isAsync=!0,this.on(e,t)},removeListener:function(e,t){var r=this._events[e];if(r){for(var a=r.length,i=-1,s=0;a>s;++s)r[s]===t&&(i=s);i>-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var a=this.listeners(e),i=a.length;return this.callListeners(a,t,r),i>0},callListeners:function(e,t,r,i){function s(i){return i&&(o=a.util.error(o||new Error,i),n._haltHandlersOnError)?r.call(n,o):void n.callListeners(e,t,r,o)}for(var n=this,o=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(n,t.concat([s]));try{u.apply(n,t)}catch(p){o=a.util.error(o||new Error,p)}if(o&&n._haltHandlersOnError)return void r.call(n,o)}r.call(n,o)},addListeners:function(e){var t=this;return e._events&&(e=e._events),a.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),a.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r){return this[e]=r,this.addListener(t,r),this},addNamedAsyncListener:function(e,t,r){return r._isAsync=!0,this.addNamedListener(e,t,r)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),a.SequentialExecutor.prototype.addListener=a.SequentialExecutor.prototype.on,t.exports=a.SequentialExecutor},{"./core":4}],41:[function(e,t,r){var a=e("./core"),i=e("./model/api"),s=e("./region_config"),n=a.util.inherit;a.Service=n({constructor:function(e){if(!this.loadServiceClass)throw a.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});return t?new t(e):void this.initialize(e)},initialize:function(e){var t=a.config[this.serviceIdentifier];this.config=new a.Config(a.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||s(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(e){var t=e;if(a.util.isEmpty(this.api)){if(t.apiConfig)return a.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new a.Config(a.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&a.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?a.util.isType(e,Date)&&(e=a.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,makeRequest:function(e,t,r){if("function"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=a.util.copy(t),a.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var s=new a.Request(this,e,t);return this.addAllRequestListeners(s),r&&s.send(r),s},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var a=this.makeRequest(e,t).toUnauthenticated();return r?a.send(r):a},waitFor:function(e,t,r){var i=new a.ResourceWaiter(this,e);return i.wait(t,r)},addAllRequestListeners:function(e){for(var t=[a.events,a.EventListeners.Core,this.serviceInterface(),a.EventListeners.CorePost],r=0;r=500},networkingError:function(e){return"NetworkingError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},throttledError:function(e){switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new a.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw a.util.error(i,"No pagination configuration for "+e)}return null}return r}}),a.util.update(a.Service,{defineMethods:function(e){a.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){var r=e.prototype.api.operations[t];"none"===r.authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){a.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=n(a.Service,r||{});if("string"==typeof e){a.Service.addVersions(i,t);var s=i.serviceIdentifier||e;i.serviceIdentifier=s}else i.prototype.api=e,a.Service.defineMethods(i);return i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r0?50*Math.pow(2,e-1):0;return t}})},{"../core":4,"../dynamodb/document_client":12}],46:[function(e,t,r){var a=e("../core");a.util.update(a.EC2.prototype,{setupRequestListeners:function(e){e.removeListener("extractError",a.EventListeners.Query.EXTRACT_ERROR),e.addListener("extractError",this.extractError),"copySnapshot"===e.operation&&e.onAsync("validate",this.buildCopySnapshotPresignedUrl)},buildCopySnapshotPresignedUrl:function(e,t){if(e.params.PresignedUrl||e._subRequest)return t();e.params=a.util.copy(e.params),e.params.DestinationRegion=e.service.config.region;var r=a.util.copy(e.service.config);delete r.endpoint,r.region=e.params.SourceRegion;var i=new e.service.constructor(r),s=i[e.operation](e.params);s._subRequest=!0,s.presign(function(r,a){r?t(r):(e.params.PresignedUrl=a,t())})},extractError:function(e){var t=e.httpResponse,r=(new a.XML.Parser).parse(t.body.toString()||"");r.Errors?e.error=a.util.error(new Error,{code:r.Errors.Error.Code,message:r.Errors.Error.Message}):e.error=a.util.error(new Error,{code:t.statusCode,message:null}),e.error.requestId=r.RequestID||null}})},{"../core":4}],47:[function(e,t,r){var a=e("../core");a.util.update(a.IotData.prototype,{validateService:function(){if(!this.config.endpoint||this.config.endpoint.indexOf("{")>=0){var e="AWS.IotData requires an explicit `endpoint' configuration option.";throw a.util.error(new Error,{name:"InvalidEndpoint",message:e})}},setupRequestListeners:function(e){e.addListener("validateResponse",this.validateResponseBody)},validateResponseBody:function(e){var t=e.httpResponse.body.toString()||"{}",r=t.trim();r&&"{"===r.charAt(0)||(e.httpResponse.body="")}})},{"../core":4}],48:[function(e,t,r){var a=e("../core");a.util.update(a.MachineLearning.prototype,{setupRequestListeners:function(e){"predict"===e.operation&&e.addListener("build",this.buildEndpoint)},buildEndpoint:function(e){var t=e.params.PredictEndpoint;t&&(e.httpRequest.endpoint=new a.Endpoint(t))}})},{"../core":4}],49:[function(e,t,r){var a=e("../core");a.util.update(a.Route53.prototype,{setupRequestListeners:function(e){e.on("build",this.sanitizeUrl)},sanitizeUrl:function(e){var t=e.httpRequest.path;e.httpRequest.path=t.replace(/\/%2F\w+%2F/,"/")}})},{"../core":4}],50:[function(e,t,r){var a=e("../core");e("../s3/managed_upload");var i={completeMultipartUpload:!0,copyObject:!0,uploadPartCopy:!0},s=["AuthorizationHeaderMalformed","BadRequest","PermanentRedirect",301];a.util.update(a.S3.prototype,{validateService:function(){if(this.config.region||(this.config.region="us-east-1"),!this.config.endpoint&&this.config.s3BucketEndpoint){var e="An endpoint must be provided when configuring `s3BucketEndpoint` to true.";throw a.util.error(new Error,{name:"InvalidEndpoint",message:e})}},setupRequestListeners:function(e){e.addListener("validate",this.validateScheme),e.addListener("validate",this.validateBucketEndpoint),e.addListener("validate",this.correctBucketRegionFromCache),e.addListener("build",this.addContentType),e.addListener("build",this.populateURI),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("afterBuild",this.addExpect100Continue),e.removeListener("validate",a.EventListeners.Core.VALIDATE_REGION),e.addListener("extractError",this.extractError),e.onAsync("extractError",this.requestBucketRegion),e.addListener("extractData",this.extractData),e.addListener("extractData",a.util.hoistPayloadMember),e.addListener("beforePresign",this.prepareSignedUrl),a.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError)},validateScheme:function(e){var t=e.params,r=e.httpRequest.endpoint.protocol,i=t.SSECustomerKey||t.CopySourceSSECustomerKey;if(i&&"https:"!==r){var s="Cannot send SSE keys over HTTP. Set 'sslEnabled'to 'true' in your configuration";throw a.util.error(new Error,{code:"ConfigError",message:s})}},validateBucketEndpoint:function(e){if(!e.params.Bucket&&e.service.config.s3BucketEndpoint){var t="Cannot send requests to root API with `s3BucketEndpoint` set.";throw a.util.error(new Error,{code:"ConfigError",message:t})}},isValidAccelerateOperation:function(e){var t=["createBucket","deleteBucket","listBuckets"];return-1===t.indexOf(e)},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,a=e.service,i=t.endpoint;if(r&&!a.pathStyleBucketName(r)){a.config.useAccelerateEndpoint&&a.isValidAccelerateOperation(e.operation)?i.hostname=r+".s3-accelerate.amazonaws.com":a.config.s3BucketEndpoint||(i.hostname=r+"."+i.hostname);var s=i.port;80!==s&&443!==s?i.host=i.hostname+":"+i.port:i.host=i.hostname,t.virtualHostedBucket=r,a.removeVirtualHostedBucketFromPath(e)}},removeVirtualHostedBucketFromPath:function(e){var t=e.httpRequest,r=t.virtualHostedBucket;r&&t.path&&(t.path=t.path.replace(new RegExp("/"+r),""),"/"!==t.path[0]&&(t.path="/"+t.path))},addExpect100Continue:function(e){var t=e.httpRequest.headers["Content-Length"];a.util.isNode()&&t>=1048576&&(e.httpRequest.headers.Expect="100-continue")},addContentType:function(e){var t=e.httpRequest;if("GET"===t.method||"HEAD"===t.method)return void delete t.headers["Content-Type"];t.headers["Content-Type"]||(t.headers["Content-Type"]="application/octet-stream");var r=t.headers["Content-Type"];if(a.util.isBrowser())if("string"!=typeof t.body||r.match(/;\s*charset=/)){var i=function(e,t,r){return t+r.toUpperCase()};t.headers["Content-Type"]=r.replace(/(;\s*charset=)(.+)$/,i)}else{var s="; charset=UTF-8";t.headers["Content-Type"]+=s}},computableChecksumOperations:{putBucketCors:!0,putBucketLifecycle:!0,putBucketLifecycleConfiguration:!0,putBucketTagging:!0,deleteObjects:!0,putBucketReplication:!0},willComputeChecksums:function(e){if(this.computableChecksumOperations[e.operation])return!0;if(!this.config.computeChecksums)return!1;if(!a.util.Buffer.isBuffer(e.httpRequest.body)&&"string"!=typeof e.httpRequest.body)return!1;var t=e.service.api.operations[e.operation].input.members;return e.service.getSignerClass(e)===a.Signers.V4&&t.ContentMD5&&!t.ContentMD5.required?!1:t.ContentMD5&&!e.params.ContentMD5?!0:void 0},computeContentMd5:function(e){if(e.service.willComputeChecksums(e)){var t=a.util.crypto.md5(e.httpRequest.body,"base64");e.httpRequest.headers["Content-MD5"]=t}},computeSseCustomerKeyMd5:function(e){var t={SSECustomerKey:"x-amz-server-side-encryption-customer-key-MD5",CopySourceSSECustomerKey:"x-amz-copy-source-server-side-encryption-customer-key-MD5"};a.util.each(t,function(t,r){if(e.params[t]){var i=a.util.crypto.md5(e.params[t],"base64");e.httpRequest.headers[r]=i}})},pathStyleBucketName:function(e){return this.config.s3ForcePathStyle?!0:this.config.s3BucketEndpoint?!1:this.dnsCompatibleBucketName(e)?!(!this.config.sslEnabled||!e.match(/\./)):!0},dnsCompatibleBucketName:function(e){var t=e,r=new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/),a=new RegExp(/(\d+\.){3}\d+/),i=new RegExp(/\.\./);return t.match(r)&&!t.match(a)&&!t.match(i)},successfulResponse:function(e){var t=e.request,r=e.httpResponse;return i[t.operation]&&r.body.toString().match("")?!1:r.statusCode<300},retryableError:function(e,t){if(i[t.operation]&&200===e.statusCode)return!0;if(t._requestRegionForBucket&&t.service.bucketRegionCache[t._requestRegionForBucket])return!1;if(e&&"RequestTimeout"===e.code)return!0;if(e&&-1!=s.indexOf(e.code)&&e.region&&e.region!=t.httpRequest.region)return t.httpRequest.region=e.region,301===e.statusCode&&t.service.updateReqBucketRegion(t),!0;var r=a.Service.prototype.retryableError;return r.call(this,e,t)},updateReqBucketRegion:function(e,t){var r=e.httpRequest;if("string"==typeof t&&t.length&&(r.region=t),r.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)){var i=e.service,s=i.config,n=s.s3BucketEndpoint;n&&delete s.s3BucketEndpoint;var o=a.util.copy(s);delete o.endpoint,o.region=r.region,r.endpoint=new a.S3(o).endpoint,i.populateURI(e),s.s3BucketEndpoint=n,r.headers.Host=r.endpoint.host,"validate"===e._asm.currentState&&(e.removeListener("build",i.populateURI),e.addListener("build",i.removeVirtualHostedBucketFromPath))}},extractData:function(e){var t=e.request;if("getBucketLocation"===t.operation){var r=e.httpResponse.body.toString().match(/>(.+)<\/Location/);delete e.data._,r?e.data.LocationConstraint=r[1]:e.data.LocationConstraint=""}var a=t.params.Bucket||null;if("deleteBucket"!==t.operation||"string"!=typeof a||e.error){var i=e.httpResponse.headers||{},s=i["x-amz-bucket-region"]||null;if(!s&&"createBucket"===t.operation&&!e.error){var n=t.params.CreateBucketConfiguration;s=n?"EU"===n.LocationConstraint?"eu-west-1":n.LocationConstraint:"us-east-1"}s&&a&&s!==t.service.bucketRegionCache[a]&&(t.service.bucketRegionCache[a]=s)}else t.service.clearBucketRegionCache(a);t.service.extractRequestIds(e)},extractError:function(e){var t={304:"NotModified",403:"Forbidden",400:"BadRequest",404:"NotFound"},r=e.request,i=e.httpResponse.statusCode,s=e.httpResponse.body||"",n=e.httpResponse.headers||{},o=n["x-amz-bucket-region"]||null,u=r.params.Bucket||null,p=r.service.bucketRegionCache;o&&u&&o!==p[u]&&(p[u]=o);var c;if(t[i]&&0===s.length)u&&!o&&(c=p[u]||null,c!==r.httpRequest.region&&(o=c)),e.error=a.util.error(new Error,{code:t[i],message:null,region:o});else{var m=(new a.XML.Parser).parse(s.toString());m.Region&&!o?(o=m.Region,u&&o!==p[u]&&(p[u]=o)):!u||o||m.Region||(c=p[u]||null,c!==r.httpRequest.region&&(o=c)),e.error=a.util.error(new Error,{code:m.Code||i,message:m.Message||null,region:o})}r.service.extractRequestIds(e)},requestBucketRegion:function(e,t){var r=e.error,i=e.request,n=i.params.Bucket||null;if(!r||!n||r.region||"listObjects"===i.operation||a.util.isNode()&&"headBucket"===i.operation||400===r.statusCode&&"headObject"!==i.operation||-1===s.indexOf(r.code))return t();var o=i.service.listObjects({Bucket:n,MaxKeys:0});o._requestRegionForBucket=n,o.send(function(){var e=i.service.bucketRegionCache[n]||null;r.region=e,t()})},reqRegionForNetworkingError:function(e,t){if(!a.util.isBrowser())return t();var r=e.error,i=e.request,s=i.params.Bucket;if(!r||"NetworkingError"!==r.code||!s||"us-east-1"===i.httpRequest.region)return t();var n=i.service,o=n.bucketRegionCache,u=o[s]||null;if(u&&u!==i.httpRequest.region)n.updateReqBucketRegion(i,u),t();else if(n.dnsCompatibleBucketName(s))if(i.httpRequest.virtualHostedBucket){var p=n.listObjects({Bucket:s,MaxKeys:0});n.updateReqBucketRegion(p,"us-east-1"),p._requestRegionForBucket=s,p.send(function(){var e=n.bucketRegionCache[s]||null;e&&e!==i.httpRequest.region&&n.updateReqBucketRegion(i,e),t()})}else t();else n.updateReqBucketRegion(i,"us-east-1"),"us-east-1"!==o[s]&&(o[s]="us-east-1"),t()},bucketRegionCache:{},clearBucketRegionCache:function(e){var t=this.bucketRegionCache;e?"string"==typeof e&&(e=[e]):e=Object.keys(t);for(var r=0;r0&&t.throwInvalidChecksumError(e,s,"Invalid messages: "+i.join(", "))}},verifyReceiveMessageChecksum:function(e){if(e.data){var t=this.service,r=[];a.util.arrayEach(e.data.Messages,function(e){var a=e.MD5OfBody,i=e.Body;t.isChecksumValid(a,i)||r.push(e.MessageId)}),r.length>0&&t.throwInvalidChecksumError(e,r,"Invalid messages: "+r.join(", "))}},throwInvalidChecksumError:function(e,t,r){e.error=a.util.error(new Error,{retryable:!0,code:"InvalidChecksum",messageIds:t,message:e.request.operation+" returned an invalid MD5 response. "+r})},isChecksumValid:function(e,t){return this.calculateChecksum(t)===e},calculateChecksum:function(e){return a.util.crypto.md5(e,"hex")},buildEndpoint:function(e){var t=e.httpRequest.params.QueueUrl;if(t){e.httpRequest.endpoint=new a.Endpoint(t);var r=e.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);r&&(e.httpRequest.region=r[1])}}})},{"../core":4}],52:[function(e,t,r){var a=e("../core");a.util.update(a.STS.prototype,{credentialsFrom:function(e,t){return e?(t||(t=new a.TemporaryCredentials),t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretAccessKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration,t):null},assumeRoleWithWebIdentity:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithWebIdentity",e,t)},assumeRoleWithSAML:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithSAML",e,t)}})},{"../core":4}],53:[function(e,t,r){function a(e){var t=e.httpRequest.headers[o];if(delete e.httpRequest.headers["User-Agent"],delete e.httpRequest.headers["X-Amz-User-Agent"],e.service.getSignerClass()===s.Signers.V4){if(t>604800){var r="Presigning does not support expiry time greater than a week with SigV4 signing.";throw s.util.error(new Error,{code:"InvalidExpiryTime",message:r,retryable:!1})}e.httpRequest.headers[o]=t}else{if(e.service.getSignerClass()!==s.Signers.S3)throw s.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});e.httpRequest.headers[o]=parseInt(s.util.date.unixTimestamp()+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=s.util.urlParse(e.httpRequest.path),a={};r.search&&(a=s.util.queryStringParse(r.search.substr(1))),s.util.each(e.httpRequest.headers,function(e,t){e===o&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(e=e.toLowerCase()),a[e]=t}),delete e.httpRequest.headers[o];var i=a.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),a.AWSAccessKeyId=i[0],a.Signature=i[1];else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var n=i.join(" "),u=n.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];a["X-Amz-Signature"]=u,delete a.Expires}delete a.Authorization,delete a.Host,t.pathname=r.pathname,t.search=s.util.queryParamsToString(a)}var s=e("../core"),n=s.util.inherit,o="presigned-expires"; +s.Signers.Presign=n({sign:function(e,t,r){if(e.httpRequest.headers[o]=t||3600,e.on("build",a),e.on("sign",i),e.removeListener("afterBuild",s.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",s.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return s.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,s.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=s.Signers.Presign},{"../core":4}],54:[function(e,t,r){var a=e("../core"),i=a.util.inherit;a.Signers.RequestSigner=i({constructor:function(e){this.request=e}}),a.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return a.Signers.V2;case"v3":return a.Signers.V3;case"v4":return a.Signers.V4;case"s3":return a.Signers.S3;case"v3https":return a.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":4,"./presign":53,"./s3":55,"./v2":56,"./v3":57,"./v3https":58,"./v4":59}],55:[function(e,t,r){var a=e("../core"),i=a.util.inherit;a.Signers.S3=i(a.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,cors:1,lifecycle:1,"delete":1,location:1,logging:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},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(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=a.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];a.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()=0?"&":"?";this.request.path+=s+a.util.queryParamsToString(i)},authorization:function(e,t){var r=[],a=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+a),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=null;if(this.signatureCache)var r=s[this.serviceName];var i=t.substr(0,8);if(!r||r.akid!==e.accessKeyId||r.region!==this.request.region||r.date!==i){var n=e.secretAccessKey,o=a.util.crypto.hmac("AWS4"+n,i,"buffer"),u=a.util.crypto.hmac(o,this.request.region,"buffer"),p=a.util.crypto.hmac(u,this.serviceName,"buffer"),c=a.util.crypto.hmac(p,"aws4_request","buffer");if(!this.signatureCache)return a.util.crypto.hmac(c,this.stringToSign(t),"hex");s[this.serviceName]={region:this.request.region,date:i,key:c,akid:e.accessKeyId}}var m=s[this.serviceName].key;return a.util.crypto.hmac(m,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&(t=a.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];a.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()=e.length)return t.push(null);var i=r+a;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,a=0,i=null;for(t=0;t>>8^t[255&(r^i)]}return(-1^r)>>>0},hmac:function(e,t,r,a){return r||(r="binary"),"buffer"===r&&(r=void 0),a||(a="sha256"),"string"==typeof t&&(t=new s(t)),i.createHmac(a,e).update(t).digest(r)},md5:function(e,t,r){return n.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return n.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,a){var i=n.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=new s(t));var o=n.arraySliceFn(t),u=s.isBuffer(t);if(n.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(u=!0),a&&"object"==typeof t&&"function"==typeof t.on&&!u)t.on("data",function(e){i.update(e)}),t.on("error",function(e){a(e)}),t.on("end",function(){a(null,i.digest(r))});else{if(!a||!o||u||"undefined"==typeof FileReader){n.isBrowser()&&"object"==typeof t&&!u&&(t=new s(new Uint8Array(t)));var p=i.update(t).digest(r);return a&&a(null,p),p}var c=0,m=524288,l=new FileReader;l.onerror=function(){a(new Error("Failed to read data."))},l.onload=function(){var e=new s(new Uint8Array(l.result));i.update(e),c+=e.length,l._continueReading()},l._continueReading=function(){if(c>=t.size)return void a(null,i.digest(r));var e=c+m;e>t.size&&(e=t.size),l.readAsArrayBuffer(o.call(t,c,e))},l._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),a.config.isClockSkewed):void 0},applyClockOffset:function(e){e&&(a.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromisesToRequests:function(e,t){return t=t||null,t||"undefined"==typeof Promise||(t=Promise),"function"!=typeof t?void delete e.prototype.promise:void(e.prototype.promise=function(){var e=this;return new t(function(t,r){e.on("complete",function(e){e.error?r(e.error):t(e.data)}),e.runTo()})})}};t.exports=n}).call(this,e("_process"))},{"./core":4,_process:76,buffer:64,crypto:69,querystring:80,url:81}],62:[function(e,t,r){function a(){}function i(e,t){switch(t||(t={}),t.type){case"structure":return s(e,t);case"map":return n(e,t);case"list":return o(e,t);case void 0:case null:return p(e);default:return u(e,t)}}function s(e,t){var r={};return null===e?r:(c.each(t.members,function(t,a){if(a.isXmlAttribute){if(e.attributes.hasOwnProperty(a.name)){var s=e.attributes[a.name].value;r[t]=i({textContent:s},a)}}else{var n=a.flattened?e:e.getElementsByTagName(a.name)[0];n?r[t]=i(n,a):a.flattened||"list"!==a.type||(r[t]=a.defaultValue)}}),r)}function n(e,t){for(var r={},a=t.key.name||"key",s=t.value.name||"value",n=t.flattened?t.name:"entry",o=e.firstElementChild;o;){if(o.nodeName===n){var u=o.getElementsByTagName(a)[0].textContent,p=o.getElementsByTagName(s)[0];r[u]=i(p,t.value)}o=o.nextElementSibling}return r}function o(e,t){for(var r=[],a=t.flattened?t.name:t.member.name||"member",s=e.firstElementChild;s;)s.nodeName===a&&r.push(i(s,t.member)),s=s.nextElementSibling;return r}function u(e,t){if(e.getAttribute){var r=e.getAttribute("encoding");"base64"===r&&(t=new m.create({type:r}))}var a=e.textContent;return""===a&&(a=null),"function"==typeof t.toType?t.toType(a):a}function p(e){if(void 0===e||null===e)return"";if(!e.firstElementChild)return null===e.parentNode.parentNode?{}:0===e.childNodes.length?"":e.textContent;for(var t={type:"structure",members:{}},r=e.firstElementChild;r;){var a=r.nodeName;t.members.hasOwnProperty(a)?t.members[a].type="list":t.members[a]={name:a},r=r.nextElementSibling}return s(e,t)}var c=e("../util"),m=e("../model/shape");a.prototype.parse=function(e,t){if(""===e.replace(/^\s+/,""))return{};var r,a;try{if(window.DOMParser){try{var s=new DOMParser;r=s.parseFromString(e,"text/xml")}catch(n){throw c.error(new Error("Parse error in document"),{originalError:n,code:"XMLParserError",retryable:!0})}if(null===r.documentElement)throw c.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var o=r.getElementsByTagName("parsererror")[0];if(o&&(o.parentNode===r||"body"===o.parentNode.nodeName||o.parentNode.parentNode===r||"body"===o.parentNode.parentNode.nodeName)){var u=o.getElementsByTagName("div")[0]||o;throw c.error(new Error(u.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(r=new window.ActiveXObject("Microsoft.XMLDOM"),r.async=!1,!r.loadXML(e))throw c.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(p){a=p}if(r&&r.documentElement&&!a){var m=i(r.documentElement,t),l=r.getElementsByTagName("ResponseMetadata")[0];return l&&(m.ResponseMetadata=i(l,{})),m}if(a)throw c.error(a||new Error,{code:"XMLParserError",retryable:!0});return{}},t.exports=a},{"../model/shape":26,"../util":61}],63:[function(e,t,r){function a(){}function i(e,t,r){switch(r.type){case"structure":return s(e,t,r);case"map":return n(e,t,r);case"list":return o(e,t,r);default:return u(e,t,r)}}function s(e,t,r){c.arrayEach(r.memberNames,function(a){var s=r.members[a];if("body"===s.location){var n=t[a],o=s.name;if(void 0!==n&&null!==n)if(s.isXmlAttribute)e.att(o,n);else if(s.flattened)i(e,n,s);else{var u=e.ele(o);p(u,s),i(u,n,s)}}})}function n(e,t,r){var a=r.key.name||"key",s=r.value.name||"value";c.each(t,function(t,n){var o=e.ele(r.flattened?r.name:"entry");i(o.ele(a),t,r.key),i(o.ele(s),n,r.value)})}function o(e,t,r){r.flattened?c.arrayEach(t,function(t){var a=r.member.name||r.name,s=e.ele(a);i(s,t,r.member)}):c.arrayEach(t,function(t){var a=r.member.name||"member",s=e.ele(a);i(s,t,r.member)})}function u(e,t,r){e.txt(r.toWireFormat(t))}function p(e,t){var r,a="xmlns";t.xmlNamespaceUri?(r=t.xmlNamespaceUri,t.xmlNamespacePrefix&&(a+=":"+t.xmlNamespacePrefix)):e.isRoot&&t.api.xmlNamespaceUri&&(r=t.api.xmlNamespaceUri),r&&e.att(a,r)}var c=e("../util"),m=e("xmlbuilder");a.prototype.toXML=function(e,t,r,a){var s=m.create(r);return p(s,t),i(s,e,t),s.children.length>0||a?s.root().toString():""},t.exports=a},{"../util":61,xmlbuilder:101}],64:[function(e,t,r){(function(t){"use strict";function a(){try{var e=new Uint8Array(1);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e){return this instanceof s?(s.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof e?n(this,e):"string"==typeof e?o(this,e,arguments.length>1?arguments[1]:"utf8"):u(this,e)):arguments.length>1?new s(e,arguments[1]):new s(e)}function n(e,t){if(e=h(e,0>t?0:0|b(t)),!s.TYPED_ARRAY_SUPPORT)for(var r=0;t>r;r++)e[r]=0;return e}function o(e,t,r){"string"==typeof r&&""!==r||(r="utf8");var a=0|g(t,r);return e=h(e,a),e.write(t,r),e}function u(e,t){if(s.isBuffer(t))return p(e,t);if(X(t))return c(e,t);if(null==t)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(t.buffer instanceof ArrayBuffer)return m(e,t);if(t instanceof ArrayBuffer)return l(e,t)}return t.length?d(e,t):y(e,t)}function p(e,t){var r=0|b(t.length);return e=h(e,r),t.copy(e,0,0,r),e}function c(e,t){var r=0|b(t.length);e=h(e,r);for(var a=0;r>a;a+=1)e[a]=255&t[a];return e}function m(e,t){var r=0|b(t.length);e=h(e,r);for(var a=0;r>a;a+=1)e[a]=255&t[a];return e}function l(e,t){return t.byteLength,s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):e=m(e,new Uint8Array(t)),e}function d(e,t){var r=0|b(t.length);e=h(e,r);for(var a=0;r>a;a+=1)e[a]=255&t[a];return e}function y(e,t){var r,a=0;"Buffer"===t.type&&X(t.data)&&(r=t.data,a=0|b(r.length)),e=h(e,a);for(var i=0;a>i;i+=1)e[i]=255&r[i];return e}function h(e,t){s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):e.length=t;var r=0!==t&&t<=s.poolSize>>>1;return r&&(e.parent=J),e}function b(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function S(e,t){if(!(this instanceof S))return new S(e,t);var r=new s(e,t);return delete r.parent,r}function g(e,t){"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var a=!1;;)switch(t){case"ascii":case"binary":case"raw":case"raws":return r;case"utf8":case"utf-8":return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(a)return z(e).length;t=(""+t).toLowerCase(),a=!0}}function f(e,t,r){var a=!1;if(t=0|t,r=void 0===r||r===1/0?this.length:0|r,e||(e="utf8"),0>t&&(t=0),r>this.length&&(r=this.length),t>=r)return"";for(;;)switch(e){case"hex":return x(this,t,r);case"utf8":case"utf-8":return A(this,t,r);case"ascii":return q(this,t,r);case"binary":return P(this,t,r);case"base64":return k(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function I(e,t,r,a){r=Number(r)||0;var i=e.length-r;a?(a=Number(a),a>i&&(a=i)):a=i;var s=t.length;if(s%2!==0)throw new Error("Invalid hex string");a>s/2&&(a=s/2);for(var n=0;a>n;n++){var o=parseInt(t.substr(2*n,2),16);if(isNaN(o))throw new Error("Invalid hex string");e[r+n]=o}return n}function N(e,t,r,a){return W(z(t,e.length-r),e,r,a)}function v(e,t,r,a){return W(j(t),e,r,a)}function C(e,t,r,a){return v(e,t,r,a)}function D(e,t,r,a){return W(H(t),e,r,a)}function T(e,t,r,a){return W(K(t,e.length-r),e,r,a)}function k(e,t,r){return 0===t&&r===e.length?Z.fromByteArray(e):Z.fromByteArray(e.slice(t,r))}function A(e,t,r){r=Math.min(e.length,r);for(var a=[],i=t;r>i;){var s=e[i],n=null,o=s>239?4:s>223?3:s>191?2:1;if(r>=i+o){var u,p,c,m;switch(o){case 1:128>s&&(n=s);break;case 2:u=e[i+1],128===(192&u)&&(m=(31&s)<<6|63&u,m>127&&(n=m));break;case 3:u=e[i+1],p=e[i+2],128===(192&u)&&128===(192&p)&&(m=(15&s)<<12|(63&u)<<6|63&p,m>2047&&(55296>m||m>57343)&&(n=m));break;case 4:u=e[i+1],p=e[i+2],c=e[i+3],128===(192&u)&&128===(192&p)&&128===(192&c)&&(m=(15&s)<<18|(63&u)<<12|(63&p)<<6|63&c,m>65535&&1114112>m&&(n=m))}}null===n?(n=65533,o=1):n>65535&&(n-=65536,a.push(n>>>10&1023|55296),n=56320|1023&n),a.push(n),i+=o}return R(a)}function R(e){var t=e.length;if(Y>=t)return String.fromCharCode.apply(String,e);for(var r="",a=0;t>a;)r+=String.fromCharCode.apply(String,e.slice(a,a+=Y));return r}function q(e,t,r){var a="";r=Math.min(e.length,r);for(var i=t;r>i;i++)a+=String.fromCharCode(127&e[i]);return a}function P(e,t,r){var a="";r=Math.min(e.length,r);for(var i=t;r>i;i++)a+=String.fromCharCode(e[i]);return a}function x(e,t,r){var a=e.length;(!t||0>t)&&(t=0),(!r||0>r||r>a)&&(r=a);for(var i="",s=t;r>s;s++)i+=O(e[s]);return i}function E(e,t,r){for(var a=e.slice(t,r),i="",s=0;se)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function w(e,t,r,a,i,n){if(!s.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");if(t>i||n>t)throw new RangeError("value is out of bounds");if(r+a>e.length)throw new RangeError("index out of range")}function L(e,t,r,a){0>t&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-r,2);s>i;i++)e[r+i]=(t&255<<8*(a?i:1-i))>>>8*(a?i:1-i)}function B(e,t,r,a){0>t&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);s>i;i++)e[r+i]=t>>>8*(a?i:3-i)&255; +}function _(e,t,r,a,i,s){if(r+a>e.length)throw new RangeError("index out of range");if(0>r)throw new RangeError("index out of range")}function U(e,t,r,a,i){return i||_(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(e,t,r,a,23,4),r+4}function G(e,t,r,a,i){return i||_(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(e,t,r,a,52,8),r+8}function V(e){if(e=F(e).replace($,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function F(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function O(e){return 16>e?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var r,a=e.length,i=null,s=[],n=0;a>n;n++){if(r=e.charCodeAt(n),r>55295&&57344>r){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(n+1===a){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(56320>r){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,128>r){if((t-=1)<0)break;s.push(r)}else if(2048>r){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(65536>r){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(1114112>r))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function j(e){for(var t=[],r=0;r>8,i=r%256,s.push(i),s.push(a);return s}function H(e){return Z.toByteArray(V(e))}function W(e,t,r,a){for(var i=0;a>i&&!(i+r>=t.length||i>=e.length);i++)t[i+r]=e[i];return i}var Z=e("base64-js"),Q=e("ieee754"),X=e("isarray");r.Buffer=s,r.SlowBuffer=S,r.INSPECT_MAX_BYTES=50,s.poolSize=8192;var J={};s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),s._augment=function(e){return e.__proto__=s.prototype,e},s.TYPED_ARRAY_SUPPORT?(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})):(s.prototype.length=void 0,s.prototype.parent=void 0),s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,a=t.length,i=0,n=Math.min(r,a);n>i;++i)if(e[i]!==t[i]){r=e[i],a=t[i];break}return a>r?-1:r>a?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!X(e))throw new TypeError("list argument must be an Array of Buffers.");if(0===e.length)return new s(0);var r;if(void 0===t)for(t=0,r=0;r0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},s.prototype.compare=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return s.compare(this,e)},s.prototype.indexOf=function(e,t){function r(e,t,r){for(var a=-1,i=0;r+i2147483647?t=2147483647:-2147483648>t&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(0>t&&(t=Math.max(this.length+t,0)),"string"==typeof e)return 0===e.length?-1:String.prototype.indexOf.call(this,e,t);if(s.isBuffer(e))return r(this,e,t);if("number"==typeof e)return s.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,e,t):r(this,[e],t);throw new TypeError("val must be string, number or Buffer")},s.prototype.write=function(e,t,r,a){if(void 0===t)a="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)a=t,r=this.length,t=0;else if(isFinite(t))t=0|t,isFinite(r)?(r=0|r,void 0===a&&(a="utf8")):(a=r,r=void 0);else{var i=a;a=t,t=0|r,r=i}var s=this.length-t;if((void 0===r||r>s)&&(r=s),e.length>0&&(0>r||0>t)||t>this.length)throw new RangeError("attempt to write outside buffer bounds");a||(a="utf8");for(var n=!1;;)switch(a){case"hex":return I(this,e,t,r);case"utf8":case"utf-8":return N(this,e,t,r);case"ascii":return v(this,e,t,r);case"binary":return C(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(n)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),n=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Y=4096;s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,0>e?(e+=r,0>e&&(e=0)):e>r&&(e=r),0>t?(t+=r,0>t&&(t=0)):t>r&&(t=r),e>t&&(t=e);var a;if(s.TYPED_ARRAY_SUPPORT)a=this.subarray(e,t),a.__proto__=s.prototype;else{var i=t-e;a=new s(i,void 0);for(var n=0;i>n;n++)a[n]=this[n+e]}return a.length&&(a.parent=this.parent||this),a},s.prototype.readUIntLE=function(e,t,r){e=0|e,t=0|t,r||M(e,t,this.length);for(var a=this[e],i=1,s=0;++s0&&(i*=256);)a+=this[e+--t]*i;return a},s.prototype.readUInt8=function(e,t){return t||M(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||M(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||M(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e=0|e,t=0|t,r||M(e,t,this.length);for(var a=this[e],i=1,s=0;++s=i&&(a-=Math.pow(2,8*t)),a},s.prototype.readIntBE=function(e,t,r){e=0|e,t=0|t,r||M(e,t,this.length);for(var a=t,i=1,s=this[e+--a];a>0&&(i*=256);)s+=this[e+--a]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||M(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||M(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||M(e,4,this.length),Q.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||M(e,4,this.length),Q.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||M(e,8,this.length),Q.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||M(e,8,this.length),Q.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,a){e=+e,t=0|t,r=0|r,a||w(this,e,t,r,Math.pow(2,8*r),0);var i=1,s=0;for(this[t]=255&e;++s=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t=0|t,!a){var i=Math.pow(2,8*r-1);w(this,e,t,r,i-1,-i)}var s=0,n=1,o=0>e?1:0;for(this[t]=255&e;++s>0)-o&255;return t+r},s.prototype.writeIntBE=function(e,t,r,a){if(e=+e,t=0|t,!a){var i=Math.pow(2,8*r-1);w(this,e,t,r,i-1,-i)}var s=r-1,n=1,o=0>e?1:0;for(this[t+s]=255&e;--s>=0&&(n*=256);)this[t+s]=(e/n>>0)-o&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),0>e&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t=0|t,r||w(this,e,t,4,2147483647,-2147483648),0>e&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return G(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return G(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,a){if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&r>a&&(a=r),a===r)return 0;if(0===e.length||0===this.length)return 0;if(0>t)throw new RangeError("targetStart out of bounds");if(0>r||r>=this.length)throw new RangeError("sourceStart out of bounds");if(0>a)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-tr&&a>t)for(i=n-1;i>=0;i--)e[i+t]=this[i+r];else if(1e3>n||!s.TYPED_ARRAY_SUPPORT)for(i=0;n>i;i++)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+n),t);return n},s.prototype.fill=function(e,t,r){if(e||(e=0),t||(t=0),r||(r=this.length),t>r)throw new RangeError("end < start");if(r!==t&&0!==this.length){if(0>t||t>=this.length)throw new RangeError("start out of bounds");if(0>r||r>this.length)throw new RangeError("end out of bounds");var a;if("number"==typeof e)for(a=t;r>a;a++)this[a]=e;else{var i=z(e.toString()),s=i.length;for(a=t;r>a;a++)this[a]=i[a%s]}return this}};var $=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":65,ieee754:66,isarray:67}],65:[function(e,t,r){"use strict";function a(){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;r>t;++t)u[t]=e[t],p[e.charCodeAt(t)]=t;p["-".charCodeAt(0)]=62,p["_".charCodeAt(0)]=63}function i(e){var t,r,a,i,s,n,o=e.length;if(o%4>0)throw new Error("Invalid string. Length must be a multiple of 4");s="="===e[o-2]?2:"="===e[o-1]?1:0,n=new c(3*o/4-s),a=s>0?o-4:o;var u=0;for(t=0,r=0;a>t;t+=4,r+=3)i=p[e.charCodeAt(t)]<<18|p[e.charCodeAt(t+1)]<<12|p[e.charCodeAt(t+2)]<<6|p[e.charCodeAt(t+3)],n[u++]=i>>16&255,n[u++]=i>>8&255,n[u++]=255&i;return 2===s?(i=p[e.charCodeAt(t)]<<2|p[e.charCodeAt(t+1)]>>4,n[u++]=255&i):1===s&&(i=p[e.charCodeAt(t)]<<10|p[e.charCodeAt(t+1)]<<4|p[e.charCodeAt(t+2)]>>2,n[u++]=i>>8&255,n[u++]=255&i),n}function s(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function n(e,t,r){for(var a,i=[],n=t;r>n;n+=3)a=(e[n]<<16)+(e[n+1]<<8)+e[n+2],i.push(s(a));return i.join("")}function o(e){for(var t,r=e.length,a=r%3,i="",s=[],o=16383,p=0,c=r-a;c>p;p+=o)s.push(n(e,p,p+o>c?c:p+o));return 1===a?(t=e[r-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===a&&(t=(e[r-2]<<8)+e[r-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),s.push(i),s.join("")}r.toByteArray=i,r.fromByteArray=o;var u=[],p=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array;a()},{}],66:[function(e,t,r){r.read=function(e,t,r,a,i){var s,n,o=8*i-a-1,u=(1<>1,c=-7,m=r?i-1:0,l=r?-1:1,d=e[t+m];for(m+=l,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+m],m+=l,c-=8);for(n=s&(1<<-c)-1,s>>=-c,c+=a;c>0;n=256*n+e[t+m],m+=l,c-=8);if(0===s)s=1-p;else{if(s===u)return n?NaN:(d?-1:1)*(1/0);n+=Math.pow(2,a),s-=p}return(d?-1:1)*n*Math.pow(2,s-a)},r.write=function(e,t,r,a,i,s){var n,o,u,p=8*s-i-1,c=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=a?0:s-1,y=a?1:-1,h=0>t||0===t&&0>1/t?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,n=c):(n=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-n))<1&&(n--,u*=2),t+=n+m>=1?l/u:l*Math.pow(2,1-m),t*u>=2&&(n++,u/=2),n+m>=c?(o=0,n=c):n+m>=1?(o=(t*u-1)*Math.pow(2,i),n+=m):(o=t*Math.pow(2,m-1)*Math.pow(2,i),n=0));i>=8;e[r+d]=255&o,d+=y,o/=256,i-=8);for(n=n<0;e[r+d]=255&n,d+=y,n/=256,p-=8);e[r+d-y]|=128*h}},{}],67:[function(e,t,r){var a={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},{}],68:[function(e,t,r){function a(e,t){if(e.length%o!==0){var r=e.length+(o-e.length%o);e=n.concat([e,u],r)}for(var a=[],i=t?e.readInt32BE:e.readInt32LE,s=0;sd?t=e(t):t.lengths;s++)a[s]=54^t[s],i[s]=92^t[s];var n=e(o.concat([a,r]));return e(o.concat([i,n]))}function i(e,t){e=e||"sha1";var r=l[e],i=[],n=0;return r||s("algorithm:",e,"is not yet supported"),{update:function(e){return o.isBuffer(e)||(e=new o(e)),i.push(e),n+=e.length,this},digest:function(e){var s=o.concat(i),n=t?a(r,t,s):r(s);return i=null,e?n.toString(e):n}}}function s(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}function n(e,t){for(var r in e)t(e[r],r)}var o=e("buffer").Buffer,u=e("./sha"),p=e("./sha256"),c=e("./rng"),m=e("./md5"),l={sha1:u,sha256:p,md5:m},d=64,y=new o(d);y.fill(0),r.createHash=function(e){return i(e)},r.createHmac=function(e,t){return i(e,t)},r.randomBytes=function(e,t){if(!t||!t.call)return new o(c(e));try{t.call(this,void 0,new o(c(e)))}catch(r){t(r)}},n(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],function(e){r[e]=function(){s("sorry,",e,"is not implemented yet")}})},{"./md5":70,"./rng":71,"./sha":72,"./sha256":73,buffer:64}],70:[function(e,t,r){function a(e,t){e[t>>5]|=128<>>9<<4)+14]=t;for(var r=1732584193,a=-271733879,i=-1732584194,c=271733878,m=0;m>16)+(t>>16)+(r>>16);return a<<16|65535&r}function c(e,t){return e<>>32-t}var m=e("./helpers");t.exports=function(e){return m.hash(e,a,16)}},{"./helpers":68}],71:[function(e,t,r){!function(){var e,r,a=this;e=function(e){for(var t,t,r=new Array(e),a=0;e>a;a++)0==(3&a)&&(t=4294967296*Math.random()),r[a]=t>>>((3&a)<<3)&255;return r},a.crypto&&crypto.getRandomValues&&(r=function(e){var t=new Uint8Array(e);return crypto.getRandomValues(t),t}),t.exports=r||e}()},{}],72:[function(e,t,r){function a(e,t){e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;for(var r=Array(80),a=1732584193,u=-271733879,p=-1732584194,c=271733878,m=-1009589776,l=0;lg;g++){16>g?r[g]=e[l+g]:r[g]=o(r[g-3]^r[g-8]^r[g-14]^r[g-16],1);var f=n(n(o(a,5),i(g,u,p,c)),n(n(m,r[g]),s(g)));m=c,c=p,p=o(u,30),u=a,a=f}a=n(a,d),u=n(u,y),p=n(p,h),c=n(c,b),m=n(m,S)}return Array(a,u,p,c,m)}function i(e,t,r,a){return 20>e?t&r|~t&a:40>e?t^r^a:60>e?t&r|t&a|r&a:t^r^a}function s(e){return 20>e?1518500249:40>e?1859775393:60>e?-1894007588:-899497514}function n(e,t){var r=(65535&e)+(65535&t),a=(e>>16)+(t>>16)+(r>>16);return a<<16|65535&r}function o(e,t){return e<>>32-t}var u=e("./helpers");t.exports=function(e){return u.hash(e,a,20,!0)}},{"./helpers":68}],73:[function(e,t,r){var a=e("./helpers"),i=function(e,t){var r=(65535&e)+(65535&t),a=(e>>16)+(t>>16)+(r>>16);return a<<16|65535&r},s=function(e,t){return e>>>t|e<<32-t},n=function(e,t){return e>>>t},o=function(e,t,r){return e&t^~e&r},u=function(e,t,r){return e&t^e&r^t&r},p=function(e){return s(e,2)^s(e,13)^s(e,22)},c=function(e){return s(e,6)^s(e,11)^s(e,25)},m=function(e){return s(e,7)^s(e,18)^n(e,3)},l=function(e){return s(e,17)^s(e,19)^n(e,10)},d=function(e,t){var r,a,s,n,d,y,h,b,S,g,f,I,N=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),v=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),C=new Array(64);e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;for(var S=0;Sg;g++)16>g?C[g]=e[g+S]:C[g]=i(i(i(l(C[g-2]),C[g-7]),m(C[g-15])),C[g-16]),f=i(i(i(i(b,c(d)),o(d,y,h)),N[g]),C[g]),I=i(p(r),u(r,a,s)),b=h,h=y,y=d,d=i(n,f),n=s,s=a,a=r,r=i(f,I);v[0]=i(r,v[0]),v[1]=i(a,v[1]),v[2]=i(s,v[2]),v[3]=i(n,v[3]),v[4]=i(d,v[4]),v[5]=i(y,v[5]),v[6]=i(h,v[6]),v[7]=i(b,v[7])}return v};t.exports=function(e){return a.hash(e,d,32,!0)}},{"./helpers":68}],74:[function(e,t,r){function a(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function s(e){return"number"==typeof e}function n(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._maxListeners=void 0,a.defaultMaxListeners=10,a.prototype.setMaxListeners=function(e){if(!s(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},a.prototype.emit=function(e){var t,r,a,s,u,p;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(a=arguments.length,s=new Array(a-1),u=1;a>u;u++)s[u-1]=arguments[u];r.apply(this,s)}else if(n(r)){for(a=arguments.length,s=new Array(a-1),u=1;a>u;u++)s[u-1]=arguments[u];for(p=r.slice(),a=p.length,u=0;a>u;u++)p[u].apply(this,s)}return!0},a.prototype.addListener=function(e,t){var r;if(!i(t))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?n(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,n(this._events[e])&&!this._events[e].warned){var r;r=o(this._maxListeners)?a.defaultMaxListeners:this._maxListeners,r&&r>0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())}return this},a.prototype.on=a.prototype.addListener,a.prototype.once=function(e,t){function r(){this.removeListener(e,r),a||(a=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var a=!1;return r.listener=t,this.on(e,r),this},a.prototype.removeListener=function(e,t){var r,a,s,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,a=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(r)){for(o=s;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=o;break}if(0>a)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},a.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},a.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},a.listenerCount=function(e,t){var r;return r=e._events&&e._events[t]?i(e._events[t])?1:e._events[t].length:0}},{}],75:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],76:[function(e,t,r){function a(){if(!o){o=!0;for(var e,t=n.length;t;){e=n,n=[];for(var r=-1;++ri;)t=e.charCodeAt(i++),t>=55296&&56319>=t&&s>i?(r=e.charCodeAt(i++),56320==(64512&r)?a.push(((1023&t)<<10)+(1023&r)+65536):(a.push(t),i--)):a.push(t);return a}function u(e){return s(e,function(e){var t="";return e>65535&&(e-=65536,t+=B(e>>>10&1023|55296),e=56320|1023&e),t+=B(e)}).join("")}function p(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:v}function c(e,t){return e+22+75*(26>e)-((0!=t)<<5)}function m(e,t,r){var a=0;for(e=r?L(e/k):e>>1,e+=L(e/t);e>w*D>>1;a+=v)e=L(e/w);return L(a+(w+1)*e/(e+T))}function l(e){var t,r,a,s,n,o,c,l,d,y,h=[],b=e.length,S=0,g=R,f=A;for(r=e.lastIndexOf(q),0>r&&(r=0),a=0;r>a;++a)e.charCodeAt(a)>=128&&i("not-basic"),h.push(e.charCodeAt(a));for(s=r>0?r+1:0;b>s;){for(n=S,o=1,c=v;s>=b&&i("invalid-input"),l=p(e.charCodeAt(s++)),(l>=v||l>L((N-S)/o))&&i("overflow"),S+=l*o,d=f>=c?C:c>=f+D?D:c-f,!(d>l);c+=v)y=v-d,o>L(N/y)&&i("overflow"),o*=y;t=h.length+1,f=m(S-n,t,0==n),L(S/t)>N-g&&i("overflow"),g+=L(S/t),S%=t,h.splice(S++,0,g)}return u(h)}function d(e){var t,r,a,s,n,u,p,l,d,y,h,b,S,g,f,I=[];for(e=o(e),b=e.length,t=R,r=0,n=A,u=0;b>u;++u)h=e[u],128>h&&I.push(B(h));for(a=s=I.length,s&&I.push(q);b>a;){for(p=N,u=0;b>u;++u)h=e[u],h>=t&&p>h&&(p=h);for(S=a+1,p-t>L((N-r)/S)&&i("overflow"),r+=(p-t)*S,t=p,u=0;b>u;++u)if(h=e[u],t>h&&++r>N&&i("overflow"),h==t){for(l=r,d=v;y=n>=d?C:d>=n+D?D:d-n,!(y>l);d+=v)f=l-y,g=v-y,I.push(B(c(y+f%g,0))),l=L(f/g);I.push(B(c(l,0))),n=m(r,S,a==s),r=0,++a}++r,++t}return I.join("")}function y(e){return n(e,function(e){return P.test(e)?l(e.slice(4).toLowerCase()):e})}function h(e){return n(e,function(e){return x.test(e)?"xn--"+d(e):e})}var b="object"==typeof r&&r,S="object"==typeof t&&t&&t.exports==b&&t,g="object"==typeof e&&e;g.global!==g&&g.window!==g||(a=g);var f,I,N=2147483647,v=36,C=1,D=26,T=38,k=700,A=72,R=128,q="-",P=/^xn--/,x=/[^ -~]/,E=/\x2E|\u3002|\uFF0E|\uFF61/g,M={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=v-C,L=Math.floor,B=String.fromCharCode;if(f={version:"1.2.4",ucs2:{decode:o,encode:u},decode:l,encode:d,toASCII:h,toUnicode:y},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return f});else if(b&&!b.nodeType)if(S)S.exports=f;else for(I in f)f.hasOwnProperty(I)&&(b[I]=f[I]);else a.punycode=f}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],78:[function(e,t,r){"use strict";function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,s){t=t||"&",r=r||"=";var n={};if("string"!=typeof e||0===e.length)return n;var o=/\+/g;e=e.split(t);var u=1e3;s&&"number"==typeof s.maxKeys&&(u=s.maxKeys);var p=e.length;u>0&&p>u&&(p=u);for(var c=0;p>c;++c){var m,l,d,y,h=e[c].replace(o,"%20"),b=h.indexOf(r);b>=0?(m=h.substr(0,b),l=h.substr(b+1)):(m=h,l=""),d=decodeURIComponent(m),y=decodeURIComponent(l),a(n,d)?i(n[d])?n[d].push(y):n[d]=[n[d],y]:n[d]=y}return n};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],79:[function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a",'"',"`"," ","\r","\n"," "],b=["{","}","|","\\","^","`"].concat(h),S=["'"].concat(b),g=["%","/","?",";","#"].concat(S),f=["/","?","#"],I=255,N=/^[a-z0-9A-Z_-]{0,63}$/,v=/^([a-z0-9A-Z_-]{0,63})(.*)$/,C={javascript:!0,"javascript:":!0},D={javascript:!0,"javascript:":!0},T={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},k=e("querystring");a.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e;a=a.trim();var i=d.exec(a);if(i){i=i[0];var s=i.toLowerCase();this.protocol=s,a=a.substr(i.length)}if(r||i||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var n="//"===a.substr(0,2);!n||i&&D[i]||(a=a.substr(2),this.slashes=!0)}if(!D[i]&&(n||i&&!T[i])){for(var o=-1,p=0;pc)&&(o=c)}var m,y;y=-1===o?a.lastIndexOf("@"):a.lastIndexOf("@",o),-1!==y&&(m=a.slice(0,y), +a=a.slice(y+1),this.auth=decodeURIComponent(m)),o=-1;for(var p=0;pc)&&(o=c)}-1===o&&(o=a.length),this.host=a.slice(0,o),a=a.slice(o),this.parseHost(),this.hostname=this.hostname||"";var h="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!h)for(var b=this.hostname.split(/\./),p=0,A=b.length;A>p;p++){var R=b[p];if(R&&!R.match(N)){for(var q="",P=0,x=R.length;x>P;P++)q+=R.charCodeAt(P)>127?"x":R[P];if(!q.match(N)){var E=b.slice(0,p),M=b.slice(p+1),w=R.match(v);w&&(E.push(w[1]),M.unshift(w[2])),M.length&&(a="/"+M.join(".")+a),this.hostname=E.join(".");break}}}if(this.hostname.length>I?this.hostname="":this.hostname=this.hostname.toLowerCase(),!h){for(var L=this.hostname.split("."),B=[],p=0;pp;p++){var V=S[p],F=encodeURIComponent(V);F===V&&(F=escape(V)),a=a.split(V).join(F)}var O=a.indexOf("#");-1!==O&&(this.hash=a.substr(O),a=a.slice(0,O));var z=a.indexOf("?");if(-1!==z?(this.search=a.substr(z),this.query=a.substr(z+1),t&&(this.query=k.parse(this.query)),a=a.slice(0,z)):t&&(this.search="",this.query={}),a&&(this.pathname=a),T[s]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var U=this.pathname||"",_=this.search||"";this.path=U+_}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",a=this.hash||"",i=!1,s="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&p(this.query)&&Object.keys(this.query).length&&(s=k.stringify(this.query));var n=this.search||s&&"?"+s||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||T[t])&&i!==!1?(i="//"+(i||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):i||(i=""),a&&"#"!==a.charAt(0)&&(a="#"+a),n&&"?"!==n.charAt(0)&&(n="?"+n),r=r.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),n=n.replace("#","%23"),t+i+r+n+a},a.prototype.resolve=function(e){return this.resolveObject(i(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(u(e)){var t=new a;t.parse(e,!1,!0),e=t}var r=new a;if(Object.keys(this).forEach(function(e){r[e]=this[e]},this),r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol)return Object.keys(e).forEach(function(t){"protocol"!==t&&(r[t]=e[t])}),T[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r;if(e.protocol&&e.protocol!==r.protocol){if(!T[e.protocol])return Object.keys(e).forEach(function(t){r[t]=e[t]}),r.href=r.format(),r;if(r.protocol=e.protocol,e.host||D[e.protocol])r.pathname=e.pathname;else{for(var i=(e.pathname||"").split("/");i.length&&!(e.host=i.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==i[0]&&i.unshift(""),i.length<2&&i.unshift(""),r.pathname=i.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var s=r.pathname||"",n=r.search||"";r.path=s+n}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var o=r.pathname&&"/"===r.pathname.charAt(0),p=e.host||e.pathname&&"/"===e.pathname.charAt(0),l=p||o||r.host&&e.pathname,d=l,y=r.pathname&&r.pathname.split("/")||[],i=e.pathname&&e.pathname.split("/")||[],h=r.protocol&&!T[r.protocol];if(h&&(r.hostname="",r.port=null,r.host&&(""===y[0]?y[0]=r.host:y.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===i[0]?i[0]=e.host:i.unshift(e.host)),e.host=null),l=l&&(""===i[0]||""===y[0])),p)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,y=i;else if(i.length)y||(y=[]),y.pop(),y=y.concat(i),r.search=e.search,r.query=e.query;else if(!m(e.search)){if(h){r.hostname=r.host=y.shift();var b=r.host&&r.host.indexOf("@")>0?r.host.split("@"):!1;b&&(r.auth=b.shift(),r.host=r.hostname=b.shift())}return r.search=e.search,r.query=e.query,c(r.pathname)&&c(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!y.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var S=y.slice(-1)[0],g=(r.host||e.host)&&("."===S||".."===S)||""===S,f=0,I=y.length;I>=0;I--)S=y[I],"."==S?y.splice(I,1):".."===S?(y.splice(I,1),f++):f&&(y.splice(I,1),f--);if(!l&&!d)for(;f--;f)y.unshift("..");!l||""===y[0]||y[0]&&"/"===y[0].charAt(0)||y.unshift(""),g&&"/"!==y.join("/").substr(-1)&&y.push("");var N=""===y[0]||y[0]&&"/"===y[0].charAt(0);if(h){r.hostname=r.host=N?"":y.length?y.shift():"";var b=r.host&&r.host.indexOf("@")>0?r.host.split("@"):!1;b&&(r.auth=b.shift(),r.host=r.hostname=b.shift())}return l=l||r.host&&y.length,l&&!N&&y.unshift(""),y.length?r.pathname=y.join("/"):(r.pathname=null,r.path=null),c(r.pathname)&&c(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=y.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:77,querystring:80}],82:[function(e,t,r){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],83:[function(e,t,r){(function(t,a){function i(e,t){var a={seen:[],stylize:n};return arguments.length>=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),h(t)?a.showHidden=t:t&&r._extend(a,t),N(a.showHidden)&&(a.showHidden=!1),N(a.depth)&&(a.depth=2),N(a.colors)&&(a.colors=!1),N(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=s),u(a,e,a.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function n(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,a){if(e.customInspect&&t&&k(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(a,e);return f(i)||(i=u(e,i,a)),i}var s=p(e,t);if(s)return s;var n=Object.keys(t),h=o(n);if(e.showHidden&&(n=Object.getOwnPropertyNames(t)),T(t)&&(n.indexOf("message")>=0||n.indexOf("description")>=0))return c(t);if(0===n.length){if(k(t)){var b=t.name?": "+t.name:"";return e.stylize("[Function"+b+"]","special")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(D(t))return e.stylize(Date.prototype.toString.call(t),"date");if(T(t))return c(t)}var S="",g=!1,I=["{","}"];if(y(t)&&(g=!0,I=["[","]"]),k(t)){var N=t.name?": "+t.name:"";S=" [Function"+N+"]"}if(v(t)&&(S=" "+RegExp.prototype.toString.call(t)),D(t)&&(S=" "+Date.prototype.toUTCString.call(t)),T(t)&&(S=" "+c(t)),0===n.length&&(!g||0==t.length))return I[0]+S+I[1];if(0>a)return v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var C;return C=g?m(e,t,a,h,n):n.map(function(r){return l(e,t,a,h,r,g)}),e.seen.pop(),d(C,S,I)}function p(e,t){if(N(t))return e.stylize("undefined","undefined");if(f(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):b(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function m(e,t,r,a,i){for(var s=[],n=0,o=t.length;o>n;++n)x(t,String(n))?s.push(l(e,t,r,a,String(n),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(l(e,t,r,a,i,!0))}),s}function l(e,t,r,a,i,s){var n,o,p;if(p=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},p.get?o=p.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):p.set&&(o=e.stylize("[Setter]","special")),x(a,i)||(n="["+i+"]"),o||(e.seen.indexOf(p.value)<0?(o=b(r)?u(e,p.value,null):u(e,p.value,r-1),o.indexOf("\n")>-1&&(o=s?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n"))):o=e.stylize("[Circular]","special")),N(n)){if(s&&i.match(/^\d+$/))return o;n=JSON.stringify(""+i),n.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(n=n.substr(1,n.length-2),n=e.stylize(n,"name")):(n=n.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),n=e.stylize(n,"string"))}return n+": "+o}function d(e,t,r){var a=0,i=e.reduce(function(e,t){return a++,t.indexOf("\n")>=0&&a++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function y(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function b(e){return null===e}function S(e){return null==e}function g(e){return"number"==typeof e}function f(e){return"string"==typeof e}function I(e){return"symbol"==typeof e}function N(e){return void 0===e}function v(e){return C(e)&&"[object RegExp]"===R(e)}function C(e){return"object"==typeof e&&null!==e}function D(e){return C(e)&&"[object Date]"===R(e)}function T(e){return C(e)&&("[object Error]"===R(e)||e instanceof Error)}function k(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function R(e){return Object.prototype.toString.call(e)}function q(e){return 10>e?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[q(e.getHours()),q(e.getMinutes()),q(e.getSeconds())].join(":");return[e.getDate(),L[e.getMonth()],t].join(" ")}function x(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var E=/%[sdj%]/g;r.format=function(e){if(!f(e)){for(var t=[],r=0;r=s)return e;switch(e){case"%s":return String(a[r++]);case"%d":return Number(a[r++]);case"%j":try{return JSON.stringify(a[r++])}catch(t){return"[Circular]"}default:return e}}),o=a[r];s>r;o=a[++r])n+=b(o)||!C(o)?" "+o:" "+i(o);return n},r.deprecate=function(e,i){function s(){if(!n){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),n=!0}return e.apply(this,arguments)}if(N(a.process))return function(){return r.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var n=!1;return s};var M,w={};r.debuglog=function(e){if(N(M)&&(M=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!w[e])if(new RegExp("\\b"+e+"\\b","i").test(M)){var a=t.pid;w[e]=function(){var t=r.format.apply(r,arguments);console.error("%s %d: %s",e,a,t)}}else w[e]=function(){};return w[e]},r.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=y,r.isBoolean=h,r.isNull=b,r.isNullOrUndefined=S,r.isNumber=g,r.isString=f,r.isSymbol=I,r.isUndefined=N,r.isRegExp=v,r.isObject=C,r.isDate=D,r.isError=T,r.isFunction=k,r.isPrimitive=A,r.isBuffer=e("./support/isBuffer");var L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];r.log=function(){console.log("%s - %s",P(),r.format.apply(r,arguments))},r.inherits=e("inherits"),r._extend=function(e,t){if(!t||!C(t))return e;for(var r=Object.keys(t),a=r.length;a--;)e[r[a]]=t[r[a]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":82,_process:76,inherits:75}],84:[function(e,t,r){!function(e){"use strict";function t(e){return null!==e?"[object Array]"===Object.prototype.toString.call(e):!1}function r(e){return null!==e?"[object Object]"===Object.prototype.toString.call(e):!1}function a(e,i){if(e===i)return!0;var s=Object.prototype.toString.call(e);if(s!==Object.prototype.toString.call(i))return!1;if(t(e)===!0){if(e.length!==i.length)return!1;for(var n=0;n="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e}function o(e){return e>="0"&&"9">=e||"-"===e}function u(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||"_"===e}function p(){}function c(){}function m(e){this.runtime=e}function l(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[S]}]},avg:{_func:this._functionAvg,_signature:[{types:[T]}]},ceil:{_func:this._functionCeil,_signature:[{types:[S]}]},contains:{_func:this._functionContains,_signature:[{types:[f,I]},{types:[g]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[f]},{types:[f]}]},floor:{_func:this._functionFloor,_signature:[{types:[S]}]},length:{_func:this._functionLength,_signature:[{types:[f,I,N]}]},map:{_func:this._functionMap,_signature:[{types:[C]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[T,k]}]},merge:{_func:this._functionMerge,_signature:[{types:[N],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[C]}]},sum:{_func:this._functionSum,_signature:[{types:[T]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[f]},{types:[f]}]},min:{_func:this._functionMin,_signature:[{types:[T,k]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[C]}]},type:{_func:this._functionType,_signature:[{types:[g]}]},keys:{_func:this._functionKeys,_signature:[{types:[N]}]},values:{_func:this._functionValues,_signature:[{types:[N]}]},sort:{_func:this._functionSort,_signature:[{types:[k,T]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[C]}]},join:{_func:this._functionJoin,_signature:[{types:[f]},{types:[k]}]},reverse:{_func:this._functionReverse,_signature:[{types:[f,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[g]}]},to_string:{_func:this._functionToString,_signature:[{types:[g]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[g]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[g],variadic:!0}]}}}function d(e){var t=new c,r=t.parse(e);return r}function y(e){var t=new p;return t.tokenize(e)}function h(e,t){var r=new c,a=new l,i=new m(a);a._interpreter=i;var s=r.parse(t);return i.search(s,e)}var b;b="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var S=0,g=1,f=2,I=3,N=4,v=5,C=6,D=7,T=8,k=9,A="EOF",R="UnquotedIdentifier",q="QuotedIdentifier",P="Rbracket",x="Rparen",E="Comma",M="Colon",w="Rbrace",L="Number",B="Current",_="Expref",U="Pipe",G="Or",V="And",F="EQ",O="GT",z="LT",j="GTE",K="LTE",H="NE",W="Flatten",Z="Star",Q="Filter",X="Dot",J="Not",Y="Lbrace",$="Lbracket",ee="Lparen",te="Literal",re={".":X,"*":Z,",":E,":":M,"{":Y,"}":w,"]":P,"(":ee,")":x,"@":B},ae={"<":!0,">":!0,"=":!0,"!":!0},ie={" ":!0," ":!0,"\n":!0};p.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,a,i;this._current"===r?"="===e[this._current]?(this._current++,{type:j,value:">=",start:t}):{type:O,value:">",start:t}:"="===r&&"="===e[this._current]?(this._current++,{type:F,value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,a=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(a.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(i){return!1}}};var se={};se[A]=0,se[R]=0,se[q]=0,se[P]=0,se[x]=0,se[E]=0,se[w]=0,se[L]=0,se[B]=0,se[_]=0,se[U]=1,se[G]=2,se[V]=3,se[F]=5,se[O]=5,se[z]=5,se[j]=5,se[K]=5,se[H]=5,se[W]=9,se[Z]=20,se[Q]=21,se[X]=40,se[J]=45,se[Y]=50,se[$]=55,se[ee]=60,c.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if(this._lookahead(0)!==A){var r=this._lookaheadToken(0),a=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw a.name="ParserError",a}return t},_loadTokens:function(e){var t=new p,r=t.tokenize(e);r.push({type:A,value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),a=this._lookahead(0);et;){if(r===M)t++,this._advance();else{if(r!==L){var a=this._lookahead(0),i=new Error("Syntax error, unexpected token: "+a.value+"("+a.type+")");throw i.name="Parsererror",i}e[t]=this._lookaheadToken(0).value,this._advance()}r=this._lookahead(0)}return this._match(P),{type:"Slice",children:e}},_parseComparator:function(e,t){var r=this.expression(se[t]);return{type:"Comparator",name:t,children:[e,r]}},_parseDotRHS:function(e){var t=this._lookahead(0),r=[R,q,Z];return r.indexOf(t)>=0?this.expression(e):t===$?(this._match($),this._parseMultiselectList()):t===Y?(this._match(Y),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(se[this._lookahead(0)]<10)t={type:"Identity"};else if(this._lookahead(0)===$)t=this.expression(e);else if(this._lookahead(0)===Q)t=this.expression(e);else{if(this._lookahead(0)!==X){var r=this._lookaheadToken(0),a=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw a.name="ParserError",a}this._match(X),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];this._lookahead(0)!==P;){var t=this.expression(0);if(e.push(t),this._lookahead(0)===E&&(this._match(E),this._lookahead(0)===P))throw new Error("Unexpected token Rbracket")}return this._match(P),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,r,a,i=[],s=[R,q];;){if(e=this._lookaheadToken(0),s.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match(M),r=this.expression(0),a={type:"KeyValuePair",name:t,value:r},i.push(a),this._lookahead(0)===E)this._match(E);else if(this._lookahead(0)===w){this._match(w);break}}return{type:"MultiSelectHash",children:i}}},m.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,n){var o,u,p,c,m,l,d,y,h,b;switch(e.type){case"Field":return null===n?null:r(n)?(l=n[e.name],void 0===l?null:l):null;case"Subexpression":for(p=this.visit(e.children[0],n),b=1;bS&&(S=n.length+S),p=n[S],void 0===p&&(p=null),p;case"Slice":if(!t(n))return null;var g=e.children.slice(0),f=this.computeSliceParams(n.length,g),I=f[0],N=f[1],v=f[2];if(p=[],v>0)for(b=I;N>b;b+=v)p.push(n[b]);else for(b=I;b>N;b+=v)p.push(n[b]);return p;case"Projection":var C=this.visit(e.children[0],n);if(!t(C))return null;for(h=[],b=0;bm;break;case j:p=c>=m;break;case z:p=m>c;break;case K:p=m>=c;break;default:throw new Error("Unknown comparator: "+e.name)}return p;case W:var R=this.visit(e.children[0],n);if(!t(R))return null;var q=[];for(b=0;bi;return r=null===r?o?e-1:0:this.capSliceRange(e,r,i),a=null===a?o?-1:e:this.capSliceRange(e,a,i),s[0]=r,s[1]=a,s[2]=i,s},capSliceRange:function(e,t,r){return 0>t?(t+=e,0>t&&(t=0>r?-1:0)):t>=e&&(t=0>r?e-1:e),t}},l.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var a;if(r[r.length-1].variadic){if(t.length=0;i--)a+=r[i];return a}var s=e[0].slice(0);return s.reverse(),s},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],a=0;a=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,a=e[0],i=e[1],s=0;s0){var t=this._getTypeName(e[0][0]);if(t===S)return Math.max.apply(Math,e[0]);for(var r=e[0],a=r[0],i=1;i0){var t=this._getTypeName(e[0][0]);if(t===S)return Math.min.apply(Math,e[0]);for(var r=e[0],a=r[0],i=1;io?1:o>n?-1:e[0]-t[0]});for(var u=0;un&&(n=r,t=i[o]);return t},_functionMinBy:function(e){for(var t,r,a=e[1],i=e[0],s=this.createKeyFunction(a,[S,f]),n=1/0,o=0;or&&(n=r,t=i[o]);return t},createKeyFunction:function(e,t){var r=this,a=this._interpreter,i=function(i){var s=a.visit(e,i);if(t.indexOf(r._getTypeName(s))<0){var n="TypeError: expected one of "+t+", received "+r._getTypeName(s);throw new Error(n)}return s};return i}},e.tokenize=y,e.compile=d,e.search=h,e.strictDeepEqual=a}("undefined"==typeof r?this.jmespath={}:r)},{}],85:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing attribute name of element "+e.name);if(null==r)throw new Error("Missing attribute value for attribute "+t+" of element "+e.name);this.name=this.stringify.attName(t),this.value=this.stringify.attValue(r)}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){return" "+this.name+'="'+this.value+'"'},e}()}).call(this)},{"lodash/object/create":144}],86:[function(e,t,r){(function(){var r,a,i,s,n;n=e("./XMLStringifier"),a=e("./XMLDeclaration"),i=e("./XMLDocType"),s=e("./XMLElement"),t.exports=r=function(){function e(e,t){var r,a;if(null==e)throw new Error("Root element needs a name");null==t&&(t={}),this.options=t,this.stringify=new n(t),a=new s(this,"doc"),r=a.element(e),r.isRoot=!0,r.documentObject=this,this.rootObject=r,t.headless||(r.declaration(t),null==t.pubID&&null==t.sysID||r.doctype(t))}return e.prototype.root=function(){return this.rootObject},e.prototype.end=function(e){return this.toString(e)},e.prototype.toString=function(e){var t,r,a,i,s,n,o,u;return i=(null!=e?e.pretty:void 0)||!1,t=null!=(n=null!=e?e.indent:void 0)?n:" ",a=null!=(o=null!=e?e.offset:void 0)?o:0,r=null!=(u=null!=e?e.newline:void 0)?u:"\n",s="",null!=this.xmldec&&(s+=this.xmldec.toString(e)),null!=this.doctype&&(s+=this.doctype.toString(e)),s+=this.rootObject.toString(e),i&&s.slice(-r.length)===r&&(s=s.slice(0,-r.length)),s},e}()}).call(this)},{"./XMLDeclaration":93,"./XMLDocType":94,"./XMLElement":95,"./XMLStringifier":99}],87:[function(e,t,r){(function(){var r,a,i,s=function(e,t){function r(){this.constructor=e}for(var a in t)n.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;i=e("lodash/object/create"),a=e("./XMLNode"),t.exports=r=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(r)}return s(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(a)}).call(this)},{"./XMLNode":96,"lodash/object/create":144}],88:[function(e,t,r){(function(){var r,a,i,s=function(e,t){function r(){this.constructor=e}for(var a in t)n.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;i=e("lodash/object/create"),a=e("./XMLNode"),t.exports=r=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing comment text");this.text=this.stringify.comment(r)}return s(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(a)}).call(this)},{"./XMLNode":96,"lodash/object/create":144}],89:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r,a,i,s){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");if(null==r)throw new Error("Missing DTD attribute name");if(!a)throw new Error("Missing DTD attribute type");if(!i)throw new Error("Missing DTD attribute default");if(0!==i.indexOf("#")&&(i="#"+i),!i.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");if(s&&!i.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(t),this.attributeName=this.stringify.attName(r),this.attributeType=this.stringify.dtdAttType(a),this.defaultValue=this.stringify.dtdAttDefault(s),this.defaultValueType=i}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/object/create":144}],90:[function(e,t,r){(function(){var r,a,i;a=e("lodash/object/create"),i=e("lodash/lang/isArray"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");r||(r="(#PCDATA)"),i(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.eleName(t),this.value=this.stringify.dtdElementValue(r)}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/lang/isArray":136,"lodash/object/create":144}],91:[function(e,t,r){(function(){var r,a,i;a=e("lodash/object/create"),i=e("lodash/lang/isObject"),t.exports=r=function(){function e(e,t,r,a){if(this.stringify=e.stringify,null==r)throw new Error("Missing entity name");if(null==a)throw new Error("Missing entity value");if(this.pe=!!t,this.name=this.stringify.eleName(r),i(a)){if(!a.pubID&&!a.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(a.pubID&&!a.sysID)throw new Error("System identifier is required for a public external entity");if(null!=a.pubID&&(this.pubID=this.stringify.dtdPubID(a.pubID)),null!=a.sysID&&(this.sysID=this.stringify.dtdSysID(a.sysID)),null!=a.nData&&(this.nData=this.stringify.dtdNData(a.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(a)}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/lang/isObject":140,"lodash/object/create":144}],92:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing notation name");if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(t),null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/object/create":144}],93:[function(e,t,r){(function(){var r,a,i,s,n=function(e,t){function r(){this.constructor=e}for(var a in t)o.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},o={}.hasOwnProperty;i=e("lodash/object/create"),s=e("lodash/lang/isObject"),a=e("./XMLNode"),t.exports=r=function(e){function t(e,r,a,i){var n;t.__super__.constructor.call(this,e),s(r)&&(n=r,r=n.version,a=n.encoding,i=n.standalone),r||(r="1.0"),null!=r&&(this.version=this.stringify.xmlVersion(r)),null!=a&&(this.encoding=this.stringify.xmlEncoding(a)),null!=i&&(this.standalone=this.stringify.xmlStandalone(i))}return n(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(a)}).call(this)},{"./XMLNode":96,"lodash/lang/isObject":140,"lodash/object/create":144}],94:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m;c=e("lodash/object/create"),m=e("lodash/lang/isObject"),r=e("./XMLCData"),a=e("./XMLComment"),i=e("./XMLDTDAttList"),n=e("./XMLDTDEntity"),s=e("./XMLDTDElement"),o=e("./XMLDTDNotation"),p=e("./XMLProcessingInstruction"),t.exports=u=function(){function e(e,t,r){var a,i;this.documentObject=e,this.stringify=this.documentObject.stringify,this.children=[],m(t)&&(a=t,t=a.pubID,r=a.sysID),null==r&&(i=[t,r],r=i[0],t=i[1]),null!=t&&(this.pubID=this.stringify.dtdPubID(t)),null!=r&&(this.sysID=this.stringify.dtdSysID(r))}return e.prototype.clone=function(){return c(e.prototype,this)},e.prototype.element=function(e,t){var r;return r=new s(this,e,t),this.children.push(r),this},e.prototype.attList=function(e,t,r,a,s){var n;return n=new i(this,e,t,r,a,s),this.children.push(n),this},e.prototype.entity=function(e,t){var r;return r=new n(this,!1,e,t),this.children.push(r),this},e.prototype.pEntity=function(e,t){var r;return r=new n(this,!0,e,t),this.children.push(r),this},e.prototype.notation=function(e,t){var r;return r=new o(this,e,t),this.children.push(r),this},e.prototype.cdata=function(e){var t;return t=new r(this,e),this.children.push(t),this},e.prototype.comment=function(e){var t;return t=new a(this,e),this.children.push(t),this},e.prototype.instruction=function(e,t){var r;return r=new p(this,e,t),this.children.push(r),this},e.prototype.root=function(){return this.documentObject.root()},e.prototype.document=function(){return this.documentObject},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c,m,l,d,y;if(u=(null!=e?e.pretty:void 0)||!1,i=null!=(c=null!=e?e.indent:void 0)?c:" ",o=null!=(m=null!=e?e.offset:void 0)?m:0,n=null!=(l=null!=e?e.newline:void 0)?l:"\n",t||(t=0),y=new Array(t+o+1).join(i),p="",u&&(p+=y),p+="0){for(p+=" [",u&&(p+=n),d=this.children,a=0,s=d.length;s>a;a++)r=d[a],p+=r.toString(e,t+1);p+="]"}return p+=">",u&&(p+=n),p},e.prototype.ele=function(e,t){return this.element(e,t)},e.prototype.att=function(e,t,r,a,i){return this.attList(e,t,r,a,i)},e.prototype.ent=function(e,t){return this.entity(e,t)},e.prototype.pent=function(e,t){return this.pEntity(e,t)},e.prototype.not=function(e,t){return this.notation(e,t)},e.prototype.dat=function(e){return this.cdata(e)},e.prototype.com=function(e){return this.comment(e)},e.prototype.ins=function(e,t){return this.instruction(e,t)},e.prototype.up=function(){return this.root()},e.prototype.doc=function(){return this.document()},e}()}).call(this)},{"./XMLCData":87,"./XMLComment":88,"./XMLDTDAttList":89,"./XMLDTDElement":90,"./XMLDTDEntity":91,"./XMLDTDNotation":92,"./XMLProcessingInstruction":97,"lodash/lang/isObject":140,"lodash/object/create":144}],95:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m=function(e,t){function r(){this.constructor=e}for(var a in t)l.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},l={}.hasOwnProperty;n=e("lodash/object/create"),c=e("lodash/lang/isObject"),u=e("lodash/lang/isArray"),p=e("lodash/lang/isFunction"),o=e("lodash/collection/every"),i=e("./XMLNode"),r=e("./XMLAttribute"),s=e("./XMLProcessingInstruction"),t.exports=a=function(e){function t(e,r,a){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing element name");this.name=this.stringify.eleName(r),this.children=[],this.instructions=[],this.attributes={},null!=a&&this.attribute(a)}return m(t,e),t.prototype.clone=function(){var e,r,a,i,s,o,u,p;a=n(t.prototype,this),a.isRoot&&(a.documentObject=null),a.attributes={},u=this.attributes;for(r in u)l.call(u,r)&&(e=u[r],a.attributes[r]=e.clone());for(a.instructions=[],p=this.instructions,i=0,s=p.length;s>i;i++)o=p[i],a.instructions.push(o.clone());return a.children=[],this.children.forEach(function(e){var t;return t=e.clone(),t.parent=a,a.children.push(t)}),a},t.prototype.attribute=function(e,t){var a,i;if(null!=e&&(e=e.valueOf()),c(e))for(a in e)l.call(e,a)&&(i=e[a],this.attribute(a,i));else p(t)&&(t=t.apply()),this.options.skipNullAttributes&&null==t||(this.attributes[e]=new r(this,e,t));return this},t.prototype.removeAttribute=function(e){var t,r,a;if(null==e)throw new Error("Missing attribute name");if(e=e.valueOf(),u(e))for(r=0,a=e.length;a>r;r++)t=e[r],delete this.attributes[t];else delete this.attributes[e];return this},t.prototype.instruction=function(e,t){var r,a,i,n,o;if(null!=e&&(e=e.valueOf()),null!=t&&(t=t.valueOf()),u(e))for(r=0,o=e.length;o>r;r++)a=e[r],this.instruction(a);else if(c(e))for(a in e)l.call(e,a)&&(i=e[a],this.instruction(a,i));else p(t)&&(t=t.apply()),n=new s(this,e,t),this.instructions.push(n);return this},t.prototype.toString=function(e,t){var r,a,i,s,n,u,p,c,m,d,y,h,b,S,g,f,I,N,v,C;for(h=(null!=e?e.pretty:void 0)||!1,s=null!=(S=null!=e?e.indent:void 0)?S:" ",y=null!=(g=null!=e?e.offset:void 0)?g:0,d=null!=(f=null!=e?e.newline:void 0)?f:"\n",t||(t=0),C=new Array(t+y+1).join(s),b="",I=this.instructions,i=0,p=I.length;p>i;i++)n=I[i],b+=n.toString(e,t+1);h&&(b+=C),b+="<"+this.name,N=this.attributes;for(m in N)l.call(N,m)&&(r=N[m],b+=r.toString(e));if(0===this.children.length||o(this.children,function(e){return""===e.value}))b+="/>",h&&(b+=d);else if(h&&1===this.children.length&&null!=this.children[0].value)b+=">",b+=this.children[0].value,b+="",b+=d;else{for(b+=">",h&&(b+=d),v=this.children,u=0,c=v.length;c>u;u++)a=v[u],b+=a.toString(e,t+1);h&&(b+=C),b+="",h&&(b+=d)}return b},t.prototype.att=function(e,t){return this.attribute(e,t)},t.prototype.ins=function(e,t){return this.instruction(e,t)},t.prototype.a=function(e,t){return this.attribute(e,t)},t.prototype.i=function(e,t){return this.instruction(e,t)},t}(i)}).call(this)},{"./XMLAttribute":85,"./XMLNode":96,"./XMLProcessingInstruction":97,"lodash/collection/every":102,"lodash/lang/isArray":136,"lodash/lang/isFunction":138,"lodash/lang/isObject":140,"lodash/object/create":144}],96:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m,l,d,y={}.hasOwnProperty;d=e("lodash/lang/isObject"),c=e("lodash/lang/isArray"),l=e("lodash/lang/isFunction"),m=e("lodash/lang/isEmpty"),n=null,r=null,a=null,i=null,s=null,u=null,p=null,t.exports=o=function(){function t(t){this.parent=t,this.options=this.parent.options,this.stringify=this.parent.stringify,null===n&&(n=e("./XMLElement"),r=e("./XMLCData"),a=e("./XMLComment"),i=e("./XMLDeclaration"),s=e("./XMLDocType"),u=e("./XMLRaw"),p=e("./XMLText"))}return t.prototype.clone=function(){throw new Error("Cannot clone generic XMLNode")},t.prototype.element=function(e,t,r){var a,i,s,n,o,u,p;if(n=null,null==t&&(t={}),t=t.valueOf(),d(t)||(u=[t,r],r=u[0],t=u[1]),null!=e&&(e=e.valueOf()),c(e))for(i=0,o=e.length;o>i;i++)a=e[i],n=this.element(a);else if(l(e))n=this.element(e.apply());else if(d(e))for(s in e)y.call(e,s)&&(p=e[s],l(p)&&(p=p.apply()),d(p)&&m(p)&&(p=null),!this.options.ignoreDecorators&&this.stringify.convertAttKey&&0===s.indexOf(this.stringify.convertAttKey)?n=this.attribute(s.substr(this.stringify.convertAttKey.length),p):!this.options.ignoreDecorators&&this.stringify.convertPIKey&&0===s.indexOf(this.stringify.convertPIKey)?n=this.instruction(s.substr(this.stringify.convertPIKey.length),p):d(p)?!this.options.ignoreDecorators&&this.stringify.convertListKey&&0===s.indexOf(this.stringify.convertListKey)&&c(p)?n=this.element(p):(n=this.element(s),n.element(p)):n=this.element(s,p));else n=!this.options.ignoreDecorators&&this.stringify.convertTextKey&&0===e.indexOf(this.stringify.convertTextKey)?this.text(r):!this.options.ignoreDecorators&&this.stringify.convertCDataKey&&0===e.indexOf(this.stringify.convertCDataKey)?this.cdata(r):!this.options.ignoreDecorators&&this.stringify.convertCommentKey&&0===e.indexOf(this.stringify.convertCommentKey)?this.comment(r):!this.options.ignoreDecorators&&this.stringify.convertRawKey&&0===e.indexOf(this.stringify.convertRawKey)?this.raw(r):this.node(e,t,r);if(null==n)throw new Error("Could not create any elements with: "+e);return n},t.prototype.insertBefore=function(e,t,r){var a,i,s;if(this.isRoot)throw new Error("Cannot insert elements at root level");return i=this.parent.children.indexOf(this),s=this.parent.children.splice(i),a=this.parent.element(e,t,r),Array.prototype.push.apply(this.parent.children,s),a},t.prototype.insertAfter=function(e,t,r){var a,i,s;if(this.isRoot)throw new Error("Cannot insert elements at root level");return i=this.parent.children.indexOf(this),s=this.parent.children.splice(i+1),a=this.parent.element(e,t,r),Array.prototype.push.apply(this.parent.children,s),a},t.prototype.remove=function(){var e,t;if(this.isRoot)throw new Error("Cannot remove the root element");return e=this.parent.children.indexOf(this),[].splice.apply(this.parent.children,[e,e-e+1].concat(t=[])),t,this.parent},t.prototype.node=function(e,t,r){var a,i;return null!=e&&(e=e.valueOf()),null==t&&(t={}),t=t.valueOf(),d(t)||(i=[t,r],r=i[0],t=i[1]),a=new n(this,e,t),null!=r&&a.text(r),this.children.push(a),a},t.prototype.text=function(e){var t;return t=new p(this,e),this.children.push(t),this},t.prototype.cdata=function(e){var t;return t=new r(this,e),this.children.push(t),this},t.prototype.comment=function(e){var t;return t=new a(this,e),this.children.push(t),this},t.prototype.raw=function(e){var t;return t=new u(this,e),this.children.push(t),this},t.prototype.declaration=function(e,t,r){var a,s;return a=this.document(),s=new i(a,e,t,r),a.xmldec=s,a.root()},t.prototype.doctype=function(e,t){var r,a;return r=this.document(),a=new s(r,e,t),r.doctype=a,a},t.prototype.up=function(){if(this.isRoot)throw new Error("The root node has no parent. Use doc() if you need to get the document object.");return this.parent},t.prototype.root=function(){var e;if(this.isRoot)return this;for(e=this.parent;!e.isRoot;)e=e.parent;return e},t.prototype.document=function(){return this.root().documentObject},t.prototype.end=function(e){return this.document().toString(e)},t.prototype.prev=function(){var e;if(this.isRoot)throw new Error("Root node has no siblings");if(e=this.parent.children.indexOf(this),1>e)throw new Error("Already at the first node");return this.parent.children[e-1]},t.prototype.next=function(){var e;if(this.isRoot)throw new Error("Root node has no siblings");if(e=this.parent.children.indexOf(this),-1===e||e===this.parent.children.length-1)throw new Error("Already at the last node");return this.parent.children[e+1]},t.prototype.importXMLBuilder=function(e){var t;return t=e.root().clone(),t.parent=this,t.isRoot=!1,this.children.push(t),this},t.prototype.ele=function(e,t,r){return this.element(e,t,r)},t.prototype.nod=function(e,t,r){return this.node(e,t,r)},t.prototype.txt=function(e){return this.text(e)},t.prototype.dat=function(e){return this.cdata(e)},t.prototype.com=function(e){return this.comment(e)},t.prototype.doc=function(){return this.document()},t.prototype.dec=function(e,t,r){return this.declaration(e,t,r)},t.prototype.dtd=function(e,t){return this.doctype(e,t)},t.prototype.e=function(e,t,r){return this.element(e,t,r)},t.prototype.n=function(e,t,r){return this.node(e,t,r)},t.prototype.t=function(e){return this.text(e)},t.prototype.d=function(e){return this.cdata(e)},t.prototype.c=function(e){return this.comment(e)},t.prototype.r=function(e){return this.raw(e)},t.prototype.u=function(){return this.up()},t}()}).call(this)},{"./XMLCData":87,"./XMLComment":88,"./XMLDeclaration":93,"./XMLDocType":94,"./XMLElement":95,"./XMLRaw":98,"./XMLText":100,"lodash/lang/isArray":136,"lodash/lang/isEmpty":137,"lodash/lang/isFunction":138,"lodash/lang/isObject":140}],97:[function(e,t,r){(function(){var r,a;a=e("lodash/object/create"),t.exports=r=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing instruction target");this.target=this.stringify.insTarget(t),r&&(this.value=this.stringify.insValue(r))}return e.prototype.clone=function(){return a(e.prototype,this)},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/object/create":144}],98:[function(e,t,r){(function(){var r,a,i,s=function(e,t){function r(){this.constructor=e}for(var a in t)n.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;i=e("lodash/object/create"),r=e("./XMLNode"),t.exports=a=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing raw text");this.value=this.stringify.raw(r)}return s(t,e),t.prototype.clone=function(){return i(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+=this.value,s&&(n+=a),n},t}(r)}).call(this)},{"./XMLNode":96,"lodash/object/create":144}],99:[function(e,t,r){(function(){var e,r=function(e,t){return function(){return e.apply(t,arguments)}},a={}.hasOwnProperty;t.exports=e=function(){function e(e){this.assertLegalChar=r(this.assertLegalChar,this);var t,i,s;this.allowSurrogateChars=null!=e?e.allowSurrogateChars:void 0,i=(null!=e?e.stringify:void 0)||{};for(t in i)a.call(i,t)&&(s=i[t],this[t]=s)}return e.prototype.eleName=function(e){return e=""+e||"",this.assertLegalChar(e)},e.prototype.eleText=function(e){return e=""+e||"",this.assertLegalChar(this.elEscape(e))},e.prototype.cdata=function(e){if(e=""+e||"",e.match(/]]>/))throw new Error("Invalid CDATA text: "+e);return this.assertLegalChar(e)},e.prototype.comment=function(e){if(e=""+e||"",e.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+e);return this.assertLegalChar(e)},e.prototype.raw=function(e){return""+e||""},e.prototype.attName=function(e){return""+e||""},e.prototype.attValue=function(e){return e=""+e||"",this.attEscape(e)},e.prototype.insTarget=function(e){return""+e||""},e.prototype.insValue=function(e){if(e=""+e||"",e.match(/\?>/))throw new Error("Invalid processing instruction value: "+e);return e},e.prototype.xmlVersion=function(e){if(e=""+e||"",!e.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+e);return e},e.prototype.xmlEncoding=function(e){if(e=""+e||"",!e.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/))throw new Error("Invalid encoding: "+e);return e},e.prototype.xmlStandalone=function(e){return e?"yes":"no"},e.prototype.dtdPubID=function(e){return""+e||""},e.prototype.dtdSysID=function(e){return""+e||""},e.prototype.dtdElementValue=function(e){return""+e||""},e.prototype.dtdAttType=function(e){return""+e||""},e.prototype.dtdAttDefault=function(e){return null!=e?""+e||"":e},e.prototype.dtdEntityValue=function(e){return""+e||""},e.prototype.dtdNData=function(e){return""+e||""},e.prototype.convertAttKey="@",e.prototype.convertPIKey="?",e.prototype.convertTextKey="#text",e.prototype.convertCDataKey="#cdata",e.prototype.convertCommentKey="#comment",e.prototype.convertRawKey="#raw",e.prototype.convertListKey="#list",e.prototype.assertLegalChar=function(e){var t,r;if(t=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,r=e.match(t))throw new Error("Invalid character ("+r+") in string: "+e+" at index "+r.index);return e},e.prototype.elEscape=function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/\r/g," ")},e.prototype.attEscape=function(e){return e.replace(/&/g,"&").replace(/r||null==a)return a;var n=t[r-2],o=t[r-1],u=t[3];r>3&&"function"==typeof n?(n=i(n,o,5),r-=2):(n=r>2&&"function"==typeof o?o:null,r-=n?1:0),u&&s(t[1],t[2],u)&&(n=3==r?null:n,r=2);for(var p=0;++pu))return!1;for(;c&&++o-1&&e%1==0&&t>e}var i=Math.pow(2,53)-1;t.exports=a},{}],128:[function(e,t,r){function a(e,t,r){if(!n(r))return!1;var a=typeof t;if("number"==a)var o=r.length,u=s(o)&&i(t,o);else u="string"==a&&t in r;if(u){var p=r[t];return e===e?e===p:p!==p}return!1}var i=e("./isIndex"),s=e("./isLength"),n=e("../lang/isObject");t.exports=a},{"../lang/isObject":140,"./isIndex":127,"./isLength":129}],129:[function(e,t,r){function a(e){return"number"==typeof e&&e>-1&&e%1==0&&i>=e}var i=Math.pow(2,53)-1;t.exports=a},{}],130:[function(e,t,r){function a(e){return e&&"object"==typeof e||!1}t.exports=a},{}],131:[function(e,t,r){function a(e){return e===e&&(0===e?1/e>0:!i(e))}var i=e("../lang/isObject");t.exports=a},{"../lang/isObject":140}],132:[function(e,t,r){(function(r){var a=e("../lang/isNative"),i=a(i=r.WeakMap)&&i,s=i&&new i;t.exports=s}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lang/isNative":139}],133:[function(e,t,r){function a(e){for(var t=u(e),r=t.length,a=r&&e.length,c=a&&o(a)&&(s(e)||p.nonEnumArgs&&i(e)),l=-1,d=[];++l0;++a, some require you to add "/cfx/st" into your URL). + * + * @param options [Object] The options to create a signed URL. + * @option options url [String] The URL to which the signature will grant + * access. Required. + * @option options expires [Number] A Unix UTC timestamp indicating when the + * signature should expire. Required unless you + * pass in a full policy. + * @option options policy [String] A CloudFront JSON policy. Required unless + * you pass in a url and an expiry time. + * + * @param cb [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. + */ + getSignedUrl: function (options, cb) { + try { + var resource = getResource(options.url); + } catch (err) { + return handleError(err, cb); + } + + var parsedUrl = url.parse(options.url, true), + signatureHash = options.hasOwnProperty('policy') + ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) + : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey); + + parsedUrl.search = null; + for (var key in signatureHash) { + if (signatureHash.hasOwnProperty(key)) { + parsedUrl.query[key] = signatureHash[key]; + } + } + + try { + var signedUrl = determineScheme(options.url) === 'rtmp' + ? getRtmpUrl(url.format(parsedUrl)) + : url.format(parsedUrl); + } catch (err) { + return handleError(err, cb); + } + + return handleSuccess(signedUrl, cb); + } +}); + +module.exports = AWS.CloudFront.Signer; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/config.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/config.js new file mode 100755 index 0000000..370f40d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/config.js @@ -0,0 +1,502 @@ +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 + * + * @!group General Configuration Options + * + * @!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|map] whether input parameters should be validated against + * the operation description before sending the request. Defaults to true. + * Pass a map to enable any of the following specific validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + * + * @!attribute computeChecksums + * @return [Boolean] whether to compute checksums for payload bodies when + * the service accepts it (currently supported in S3 only). + * + * @!attribute convertResponseTypes + * @return [Boolean] whether types are converted when parsing response data. + * Currently only supported for JSON based services. Turning this off may + * improve performance on large response payloads. Defaults to `true`. + * + * @!attribute correctClockSkew + * @return [Boolean] whether to apply a clock skew correction and retry + * requests that fail because of an skewed client clock. Defaults to + * `false`. + * + * @!attribute sslEnabled + * @return [Boolean] whether SSL is enabled for requests + * + * @!attribute s3ForcePathStyle + * @return [Boolean] whether to force path style URLs for S3 objects + * + * @!attribute s3BucketEndpoint + * @note Setting this configuration option requires an `endpoint` to be + * provided explicitly to the service constructor. + * @return [Boolean] whether the provided endpoint addresses an individual + * bucket (false if it addresses the root API endpoint). + * + * @!attribute useAccelerateEndpoint + * @note This configuration option is only compatible with S3 while accessing + * dns-compatible buckets. + * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service. + * Defaults to `false`. + * + * @!attribute retryDelayOptions + * @example Set the base retry delay for all services to 300 ms + * AWS.config.update({retryDelayOptions: {base: 300}}); + * // Delays with maxRetries = 3: 300, 600, 1200 + * @example Set a custom backoff function to provide delay values on retries + * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount) { + * // returns delay in ms + * }}}); + * @note This works with all services except DynamoDB. + * @return [map] A set of options to configure the retry delay on retryable errors. + * Currently supported options are: + * + * * **base** [Integer] — The base number of milliseconds to use in the + * exponential backoff for operation retries. Defaults to 100 ms. + * * **customBackoff ** [function] — A custom function that accepts a retry count + * and returns the amount of time to delay in milliseconds. The `base` option will be + * ignored if this option is supplied. + * + * @!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 two minutes (120000). + * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous + * HTTP requests. Used in the browser environment only. Set to false to + * send requests synchronously. Defaults to true (async on). + * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" + * property of an XMLHttpRequest object. Used in the browser environment + * only. Defaults to false. + * @!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 systemClockOffset + * @return [Number] an offset value in milliseconds to apply to all signing + * times. Use this to compensate for clock skew when your system may be + * out of sync with the service time. Note that this configuration option + * can only be applied to the global `AWS.config` object and cannot be + * overridden in service-specific configuration. Defaults to 0 milliseconds. + * + * @!attribute signatureVersion + * @return [String] the signature version to sign requests with (overriding + * the API configuration). Possible values are: 'v2', 'v3', 'v4'. + * + * @!attribute signatureCache + * @return [Boolean] whether the signature to sign requests with (overriding + * the API configuration) is cached. Only applies to the signature version 'v4'. + * Defaults to `true`. + */ +AWS.Config = AWS.util.inherit({ + /** + * @!endgroup + */ + + /** + * 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|map] whether input parameters + * should be validated against the operation description before sending + * the request. Defaults to true. Pass a map to enable any of the + * following specific validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + * @option options computeChecksums [Boolean] whether to compute checksums + * for payload bodies when the service accepts it (currently supported + * in S3 only) + * @option options convertResponseTypes [Boolean] whether types are converted + * when parsing response data. Currently only supported for JSON based + * services. Turning this off may improve performance on large response + * payloads. Defaults to `true`. + * @option options correctClockSkew [Boolean] whether to apply a clock skew + * correction and retry requests that fail because of an skewed client + * clock. Defaults to `false`. + * @option options s3ForcePathStyle [Boolean] whether to force path + * style URLs for S3 objects. + * @option options s3BucketEndpoint [Boolean] whether the provided endpoint + * addresses an individual bucket (false if it addresses the root API + * endpoint). Note that setting this configuration option requires an + * `endpoint` to be provided explicitly to the service constructor. + * @option options retryDelayOptions [map] A set of options to configure + * the retry delay on retryable errors. Currently supported options are: + * + * * **base** [Integer] — The base number of milliseconds to use in the + * exponential backoff for operation retries. Defaults to 100 ms. + * * **customBackoff ** [function] — A custom function that accepts a retry count + * and returns the amount of time to delay in milliseconds. The `base` option will be + * ignored if this option is supplied. + * @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 two minutes + * (120000). + * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous + * HTTP requests. Used in the browser environment only. Set to false to + * send requests synchronously. Defaults to true (async on). + * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" + * property of an XMLHttpRequest object. Used in the browser environment + * only. Defaults to false. + * @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 systemClockOffset [Number] an offset value in milliseconds + * to apply to all signing times. Use this to compensate for clock skew + * when your system may be out of sync with the service time. Note that + * this configuration option can only be applied to the global `AWS.config` + * object and cannot be overridden in service-specific configuration. + * Defaults to 0 milliseconds. + * @option options signatureVersion [String] the signature version to sign + * requests with (overriding the API configuration). Possible values are: + * 'v2', 'v3', 'v4'. + * @option options signatureCache [Boolean] whether the signature to sign + * requests with (overriding the API configuration) is cached. Only applies + * to the signature version 'v4'. Defaults to `true`. + */ + 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); + }); + }, + + /** + * @!group Managing Credentials + */ + + /** + * 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')); + } + }, + + /** + * @!group Loading and Setting Configuration Options + */ + + /** + * @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) || + AWS.Service.hasService(key)) { + this.set(key, value); + } + }); + }, + + /** + * 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 relative to your process's current + * working directory 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 if (property === 'httpOptions' && this[property]) { + // deep merge httpOptions + this[property] = AWS.util.merge(this[property], value); + } 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: { + timeout: 120000 + }, + maxRetries: undefined, + maxRedirects: 10, + paramValidation: true, + sslEnabled: true, + s3ForcePathStyle: false, + s3BucketEndpoint: false, + computeChecksums: true, + convertResponseTypes: true, + correctClockSkew: false, + customUserAgent: null, + dynamoDbCrc32: true, + systemClockOffset: 0, + signatureVersion: null, + signatureCache: true, + retryDelayOptions: { + base: 100 + }, + useAccelerateEndpoint: false + }, + + /** + * 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; + }, + + /** + * Sets the promise dependency the SDK will use wherever Promises are returned. + * @param [Constructor] dep A reference to a Promise constructor + */ + setPromisesDependency: function setPromisesDependency(dep) { + AWS.util.addPromisesToRequests(AWS.Request, dep); + } +}); + +/** + * @return [AWS.Config] The global configuration object singleton instance + * @readonly + * @see AWS.Config + */ +AWS.config = new AWS.Config(); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/core.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/core.js new file mode 100755 index 0000000..4964209 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/core.js @@ -0,0 +1,107 @@ +/** + * The main AWS namespace + */ +var AWS = { util: require('./util') }; + +/** + * @api private + * @!macro [new] nobrowser + * @note This feature is not supported in the browser environment of the SDK. + */ +var _hidden = {}; _hidden.toString(); // hack to parse macro + +module.exports = AWS; + +AWS.util.update(AWS, { + + /** + * @constant + */ + VERSION: '2.3.19', + + /** + * @api private + */ + Signers: {}, + + /** + * @api private + */ + Protocol: { + Json: require('./protocol/json'), + Query: require('./protocol/query'), + Rest: require('./protocol/rest'), + RestJson: require('./protocol/rest_json'), + RestXml: require('./protocol/rest_xml') + }, + + /** + * @api private + */ + XML: { + Builder: require('./xml/builder'), + Parser: null // conditionally set based on environment + }, + + /** + * @api private + */ + JSON: { + Builder: require('./json/builder'), + Parser: require('./json/parser') + }, + + /** + * @api private + */ + Model: { + Api: require('./model/api'), + Operation: require('./model/operation'), + Shape: require('./model/shape'), + Paginator: require('./model/paginator'), + ResourceWaiter: require('./model/resource_waiter') + }, + + util: require('./util'), + + /** + * @api private + */ + apiLoader: function() { throw new Error('No API loader set'); } +}); + +require('./service'); + +require('./credentials'); +require('./credentials/credential_provider_chain'); +require('./credentials/temporary_credentials'); +require('./credentials/web_identity_credentials'); +require('./credentials/cognito_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(); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials.js new file mode 100755 index 0000000..70a234f --- /dev/null +++ b/cognitoLambdaTrigger/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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js new file mode 100755 index 0000000..d572feb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js @@ -0,0 +1,330 @@ +var AWS = require('../core'); + +/** + * Represents credentials retrieved from STS Web Identity Federation using + * the Amazon Cognito Identity service. + * + * By default this provider gets credentials using the + * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which + * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito + * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to + * obtain an `IdentityId`. If the identity or identity pool is not configured in + * the Amazon Cognito Console to use IAM roles with the appropriate permissions, + * then additionally a `RoleArn` is required containing the ARN of the IAM trust + * policy for the Amazon Cognito role that the user will log into. If a `RoleArn` + * is provided, then this provider gets credentials using the + * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an + * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}. + * + * In addition, if this credential provider is used to provide authenticated + * login, the `Logins` map may be set to the tokens provided by the respective + * identity providers. See {constructor} for an example on creating a credentials + * object with proper property 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.Logins['graph.facebook.com'] = updatedToken; + * ``` + * + * Future calls to `credentials.refresh()` will now use the new token. + * + * @!attribute params + * @return [map] the map of params passed to + * {AWS.CognitoIdentity.getId}, + * {AWS.CognitoIdentity.getOpenIdToken}, and + * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the + * `params.WebIdentityToken` property. + * @!attribute data + * @return [map] the raw data response from the call to + * {AWS.CognitoIdentity.getCredentialsForIdentity}, or + * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get + * access to other properties from the response. + * @!attribute identityId + * @return [String] the Cognito ID returned by the last call to + * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual + * final resolved identity ID from Amazon Cognito. + */ +AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * @api private + */ + localStorageKey: { + id: 'aws.cognito.identity-id.', + providers: 'aws.cognito.identity-providers.' + }, + + /** + * Creates a new credentials object. + * @example Creating a new credentials object + * AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + * + * // either IdentityPoolId or IdentityId is required + * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below) + * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity + * // or AWS.CognitoIdentity.getOpenIdToken (linked below) + * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030', + * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f' + * + * // optional, only necessary when the identity pool is not configured + * // to use IAM roles in the Amazon Cognito Console + * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below) + * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity', + * + * // optional tokens, used for authenticated login + * // See the Logins param for AWS.CognitoIdentity.getID (linked below) + * Logins: { + * 'graph.facebook.com': 'FBTOKEN', + * 'www.amazon.com': 'AMAZONTOKEN', + * 'accounts.google.com': 'GOOGLETOKEN', + * 'api.twitter.com': 'TWITTERTOKEN', + * 'www.digits.com': 'DIGITSTOKEN' + * }, + * + * // optional name, defaults to web-identity + * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below) + * RoleSessionName: 'web', + * + * // optional, only necessary when application runs in a browser + * // and multiple users are signed in at once, used for caching + * LoginId: 'example@gmail.com' + * + * }); + * @see AWS.CognitoIdentity.getId + * @see AWS.CognitoIdentity.getCredentialsForIdentity + * @see AWS.STS.assumeRoleWithWebIdentity + * @see AWS.CognitoIdentity.getOpenIdToken + */ + constructor: function CognitoIdentityCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + this.data = null; + this.identityId = null; + this.loadCachedId(); + }, + + /** + * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity}, + * or {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; + self.createClients(); + self.data = null; + self.identityId = null; + self.getId(function(err) { + if (!err) { + if (!self.params.RoleArn) { + self.getCredentialsForIdentity(callback); + } else { + self.getCredentialsFromSTS(callback); + } + } else { + self.clearCachedId(); + callback(err); + } + }); + }, + + /** + * Clears the cached Cognito ID associated with the currently configured + * identity pool ID. Use this to manually invalidate your cache if + * the identity pool ID was deleted. + */ + clearCachedId: function clearCache() { + this.identityId = null; + delete this.params.IdentityId; + + var poolId = this.params.IdentityPoolId; + var loginId = this.params.LoginId || ''; + delete this.storage[this.localStorageKey.id + poolId + loginId]; + delete this.storage[this.localStorageKey.providers + poolId + loginId]; + }, + + /** + * Retrieves a Cognito ID, loading from cache if it was already retrieved + * on this device. + * + * @callback callback function(err, identityId) + * @param err [Error, null] an error object if the call failed or null if + * it succeeded. + * @param identityId [String, null] if successful, the callback will return + * the Cognito ID. + * @note If not loaded explicitly, the Cognito ID is loaded and stored in + * localStorage in the browser environment of a device. + * @api private + */ + getId: function getId(callback) { + var self = this; + if (typeof self.params.IdentityId === 'string') { + return callback(null, self.params.IdentityId); + } + + self.cognito.getId(function(err, data) { + if (!err && data.IdentityId) { + self.params.IdentityId = data.IdentityId; + callback(null, data.IdentityId); + } else { + callback(err); + } + }); + }, + + + /** + * @api private + */ + loadCredentials: function loadCredentials(data, credentials) { + if (!data || !credentials) return; + credentials.expired = false; + credentials.accessKeyId = data.Credentials.AccessKeyId; + credentials.secretAccessKey = data.Credentials.SecretKey; + credentials.sessionToken = data.Credentials.SessionToken; + credentials.expireTime = data.Credentials.Expiration; + }, + + /** + * @api private + */ + getCredentialsForIdentity: function getCredentialsForIdentity(callback) { + var self = this; + self.cognito.getCredentialsForIdentity(function(err, data) { + if (!err) { + self.cacheId(data); + self.data = data; + self.loadCredentials(self.data, self); + } else { + self.clearCachedId(); + } + callback(err); + }); + }, + + /** + * @api private + */ + getCredentialsFromSTS: function getCredentialsFromSTS(callback) { + var self = this; + self.cognito.getOpenIdToken(function(err, data) { + if (!err) { + self.cacheId(data); + self.params.WebIdentityToken = data.Token; + self.webIdentityCredentials.refresh(function(webErr) { + if (!webErr) { + self.data = self.webIdentityCredentials.data; + self.sts.credentialsFrom(self.data, self); + } else { + self.clearCachedId(); + } + callback(webErr); + }); + } else { + self.clearCachedId(); + callback(err); + } + }); + }, + + /** + * @api private + */ + loadCachedId: function loadCachedId() { + var self = this; + + // in the browser we source default IdentityId from localStorage + if (AWS.util.isBrowser() && !self.params.IdentityId) { + var id = self.getStorage('id'); + if (id && self.params.Logins) { + var actualProviders = Object.keys(self.params.Logins); + var cachedProviders = + (self.getStorage('providers') || '').split(','); + + // only load ID if at least one provider used this ID before + var intersect = cachedProviders.filter(function(n) { + return actualProviders.indexOf(n) !== -1; + }); + if (intersect.length !== 0) { + self.params.IdentityId = id; + } + } else if (id) { + self.params.IdentityId = id; + } + } + }, + + /** + * @api private + */ + createClients: function() { + this.webIdentityCredentials = this.webIdentityCredentials || + new AWS.WebIdentityCredentials(this.params); + this.cognito = this.cognito || + new AWS.CognitoIdentity({params: this.params}); + this.sts = this.sts || new AWS.STS(); + }, + + /** + * @api private + */ + cacheId: function cacheId(data) { + this.identityId = data.IdentityId; + this.params.IdentityId = this.identityId; + + // cache this IdentityId in browser localStorage if possible + if (AWS.util.isBrowser()) { + this.setStorage('id', data.IdentityId); + + if (this.params.Logins) { + this.setStorage('providers', Object.keys(this.params.Logins).join(',')); + } + } + }, + + /** + * @api private + */ + getStorage: function getStorage(key) { + return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')]; + }, + + /** + * @api private + */ + setStorage: function setStorage(key, val) { + try { + this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val; + } catch (_) {} + }, + + /** + * @api private + */ + storage: (function() { + try { + return AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ? + window.localStorage : {}; + } catch (_) { + return {}; + } + })() +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js new file mode 100755 index 0000000..604d11b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js @@ -0,0 +1,130 @@ +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(getErr) { + resolveNext(getErr, getErr ? null : creds); + }); + } else { + resolveNext(null, creds); + } + } + + resolveNext(); + return this; + } + +}); + +/** + * The default set of providers used by a vanilla CredentialProviderChain. + * + * In the browser: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [] + * ``` + * + * In Node.js: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [ + * function () { return new AWS.EnvironmentCredentials('AWS'); }, + * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + * function () { return new AWS.SharedIniFileCredentials(); }, + * function () { return new AWS.EC2MetadataCredentials(); } + * ] + * ``` + */ +AWS.CredentialProviderChain.defaultProviders = []; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js new file mode 100755 index 0000000..42d5480 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js @@ -0,0 +1,69 @@ +var AWS = require('../core'); +require('../metadata_service'); + +/** + * Represents credentials received 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. + * + * This credentials class will timeout after 1 second of inactivity by default. + * If your requests to the EC2 metadata service are timing out, you can increase + * the value by configuring them directly: + * + * ```javascript + * AWS.config.credentials = new AWS.EC2MetadataCredentials({ + * httpOptions: { timeout: 5000 } // 5 second timeout + * }); + * ``` + * + * @!macro nobrowser + */ +AWS.EC2MetadataCredentials = AWS.util.inherit(AWS.Credentials, { + constructor: function EC2MetadataCredentials(options) { + AWS.Credentials.call(this); + + options = options ? AWS.util.copy(options) : {}; + if (!options.httpOptions) options.httpOptions = {}; + options.httpOptions = AWS.util.merge( + {timeout: this.defaultTimeout}, options.httpOptions); + + this.metadataService = new AWS.MetadataService(options); + this.metadata = {}; + }, + + /** + * @api private + */ + defaultTimeout: 1000, + + /** + * 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/environment_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/environment_credentials.js new file mode 100755 index 0000000..dc4d9ea --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/environment_credentials.js @@ -0,0 +1,85 @@ +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 after the (prefixed) ACCESS_KEY_ID, SECRET_ACCESS_KEY, and + * SESSION_TOKEN environment variables are read. 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/file_system_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/file_system_credentials.js new file mode 100755 index 0000000..8d5d0de --- /dev/null +++ b/cognitoLambdaTrigger/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 after the JSON file on disk is read and parsed. 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/saml_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/saml_credentials.js new file mode 100755 index 0000000..8b144e2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/saml_credentials.js @@ -0,0 +1,88 @@ +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.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; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithSAML(function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + /** + * @api private + */ + createClients: function() { + this.service = this.service || new AWS.STS({params: this.params}); + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js new file mode 100755 index 0000000..45dae1b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js @@ -0,0 +1,184 @@ +var AWS = require('../core'); +var path = require('path'); + +/** + * Represents credentials loaded from shared credentials file + * (defaulting to ~/.aws/credentials). + * + * ## Using the shared credentials file + * + * This provider is checked by default in the Node.js environment. To use the + * credentials file provider, simply add your access and secret keys to the + * ~/.aws/credentials file in the following format: + * + * [default] + * aws_access_key_id = AKID... + * aws_secret_access_key = YOUR_SECRET_KEY + * + * ## Using custom profiles + * + * The SDK supports loading credentials for separate profiles. This can be done + * in two ways: + * + * 1. Set the `AWS_PROFILE` environment variable in your process prior to + * loading the SDK. + * 2. Directly load the AWS.SharedIniFileCredentials provider: + * + * ```javascript + * var creds = new AWS.SharedIniFileCredentials({profile: 'myprofile'}); + * AWS.config.credentials = creds; + * ``` + * + * @!macro nobrowser + */ +AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new SharedIniFileCredentials object. + * + * @param options [map] a set of options + * @option options profile [String] (AWS_PROFILE env var or 'default') + * the name of the profile to load. + * @option options filename [String] ('~/.aws/credentials') the filename + * to use when loading credentials. + * @option options disableAssumeRole [Boolean] (false) True to disable + * support for profiles that assume an IAM role. If true, and an assume + * role profile is selected, an error is raised. + */ + constructor: function SharedIniFileCredentials(options) { + AWS.Credentials.call(this); + + options = options || {}; + + this.filename = options.filename; + this.profile = options.profile || process.env.AWS_PROFILE || 'default'; + this.disableAssumeRole = !!options.disableAssumeRole; + this.get(function() {}); + }, + + /** + * Loads the credentials from the shared credentials file + * + * @callback callback function(err) + * Called after the shared INI file on disk is read and parsed. 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 { + if (!this.filename) this.loadDefaultFilename(); + var creds = AWS.util.ini.parse(AWS.util.readFileSync(this.filename)); + var profile = creds[this.profile]; + + if (typeof profile !== 'object') { + throw new Error('Profile ' + this.profile + ' not found in ' + + this.filename); + } + + if (profile['role_arn']) { + this.loadRoleProfile(creds, profile, callback); + return; + } + + this.accessKeyId = profile['aws_access_key_id']; + this.secretAccessKey = profile['aws_secret_access_key']; + this.sessionToken = profile['aws_session_token']; + + if (!this.accessKeyId || !this.secretAccessKey) { + throw new Error('Credentials not set in ' + this.filename + + ' using profile ' + this.profile); + } + this.expired = false; + callback(); + } catch (err) { + callback(err); + } + }, + + /** + * @api private + */ + loadRoleProfile: function loadRoleProfile(creds, roleProfile, callback) { + if (this.disableAssumeRole) { + throw new Error('Role assumption profiles are disabled. ' + + 'Failed to load profile ' + this.profile + ' from ' + + this.filename); + } + + var self = this; + var roleArn = roleProfile['role_arn']; + var roleSessionName = roleProfile['role_session_name']; + var externalId = roleProfile['external_id']; + var sourceProfileName = roleProfile['source_profile']; + + if (!sourceProfileName) { + throw new Error('source_profile is not set in ' + this.filename + + ' using profile ' + this.profile); + } + + var sourceProfile = creds[sourceProfileName]; + + if (typeof sourceProfile !== 'object') { + throw new Error('source_profile ' + sourceProfileName + ' set in ' + + this.filename + ' using profile ' + this.profile + + ' does not exist') + } + + var sourceCredentials = { + accessKeyId: sourceProfile['aws_access_key_id'], + secretAccessKey: sourceProfile['aws_secret_access_key'], + sessionToken: sourceProfile['aws_session_token'] + }; + + if (!sourceCredentials.accessKeyId || !sourceCredentials.secretAccessKey) { + throw new Error('Credentials not set in source_profile ' + + sourceProfileName + ' set in ' + this.filename + + ' using profile ' + this.profile); + } + + var sts = new AWS.STS({ + credentials: new AWS.Credentials(sourceCredentials) + }); + + var roleParams = { + RoleArn: roleArn, + RoleSessionName: roleSessionName || 'aws-sdk-js-' + Date.now() + }; + + if (externalId) { + roleParams.ExternalId = externalId; + } + + sts.assumeRole(roleParams, function (err, data) { + if (err) { + callback(err); + return; + } + + self.accessKeyId = data.Credentials.AccessKeyId; + self.secretAccessKey = data.Credentials.SecretAccessKey; + self.sessionToken = data.Credentials.SessionToken; + self.expireTime = data.Credentials.Expiration; + callback(); + }); + }, + + /** + * @api private + */ + loadDefaultFilename: function loadDefaultFilename() { + var env = process.env; + var home = env.HOME || + env.USERPROFILE || + (env.HOMEPATH ? ((env.HOMEDRIVE || 'C:/') + env.HOMEPATH) : null); + if (!home) { + throw AWS.util.error( + new Error('Cannot load credentials, HOME path not set')); + } + + this.filename = path.join(home, '.aws', 'credentials'); + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/temporary_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/temporary_credentials.js new file mode 100755 index 0000000..f09f991 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/temporary_credentials.js @@ -0,0 +1,111 @@ +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 credentials 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.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; + self.createClients(); + 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, 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; + } + }, + + /** + * @api private + */ + createClients: function() { + this.service = this.service || new AWS.STS({params: this.params}); + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js new file mode 100755 index 0000000..11b5dde --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js @@ -0,0 +1,95 @@ +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. + * @!attribute data + * @return [map] the raw data response from the call to + * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get + * access to other properties from the response. + */ +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.params = params; + this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; + this.data = null; + }, + + /** + * 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; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithWebIdentity(function (err, data) { + self.data = null; + if (!err) { + self.data = data; + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + /** + * @api private + */ + createClients: function() { + this.service = this.service || new AWS.STS({params: this.params}); + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/converter.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/converter.js new file mode 100755 index 0000000..a5e35e3 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/converter.js @@ -0,0 +1,96 @@ +var util = require('../core').util; +var typeOf = require('./types').typeOf; +var DynamoDBSet = require('./set'); + +function convertInput(data) { + if (typeOf(data) === 'Object') { + var map = {M: {}}; + for (var key in data) { + map['M'][key] = convertInput(data[key]); + } + return map; + } else if (typeOf(data) === 'Array') { + var list = {L: []}; + for (var i = 0; i < data.length; i++) { + list['L'].push(convertInput(data[i])); + } + return list; + } else if (typeOf(data) === 'Set') { + return formatSet(data); + } else if (typeOf(data) === 'String') { + return { 'S': data }; + } else if (typeOf(data) === 'Number') { + return { 'N': data.toString() }; + } else if (typeOf(data) === 'Binary') { + return { 'B': data }; + } else if (typeOf(data) === 'Boolean') { + return {'BOOL': data}; + } else if (typeOf(data) === 'null') { + return {'NULL': true}; + } +} + +function formatSet(data) { + var map = {}; + switch (data.type) { + case 'String': map['SS'] = data.values; break; + case 'Binary': map['BS'] = data.values; break; + case 'Number': map['NS'] = data.values.map(function (value) { + return value.toString(); + }); + } + return map; +} + +function convertOutput(data) { + var list, map, i; + for (var type in data) { + var values = data[type]; + if (type === 'M') { + map = {}; + for (var key in values) { + map[key] = convertOutput(values[key]); + } + return map; + } else if (type === 'L') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(convertOutput(values[i])); + } + return list; + } else if (type === 'SS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(values[i] + ''); + } + return new DynamoDBSet(list); + } else if (type === 'NS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(Number(values[i])); + } + return new DynamoDBSet(list); + } else if (type === 'BS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(new util.Buffer(values[i])); + } + return new DynamoDBSet(list); + } else if (type === 'S') { + return values + ''; + } else if (type === 'N') { + return Number(values); + } else if (type === 'B') { + return new util.Buffer(values); + } else if (type === 'BOOL') { + return (values === 'true' || values === 'TRUE' || values === true); + } else if (type === 'NULL') { + return null; + } + } +} + +module.exports = { + input: convertInput, + output: convertOutput +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/document_client.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/document_client.js new file mode 100755 index 0000000..f3f9756 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/document_client.js @@ -0,0 +1,519 @@ +var AWS = require('../core'); +var Translator = require('./translator'); +var DynamoDBSet = require('./set'); + +/** + * The document client simplifies working with items in Amazon DynamoDB + * by abstracting away the notion of attribute values. This abstraction + * annotates native JavaScript types supplied as input parameters, as well + * as converts annotated response data to native JavaScript types. + * + * ## Marshalling Input and Unmarshalling Response Data + * + * The document client affords developers the use of native JavaScript types + * instead of `AttributeValue`s to simplify the JavaScript development + * experience with Amazon DynamoDB. JavaScript objects passed in as parameters + * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB. + * Responses from DynamoDB are unmarshalled into plain JavaScript objects + * by the `DocumentClient`. The `DocumentClient`, does not accept + * `AttributeValue`s in favor of native JavaScript types. + * + * | JavaScript Type | DynamoDB AttributeValue | + * |:----------------------------------------------------------------------:|-------------------------| + * | String | S | + * | Number | N | + * | Boolean | BOOL | + * | null | NULL | + * | Array | L | + * | Object | M | + * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B | + * + * ## Support for Sets + * + * The `DocumentClient` offers a convenient way to create sets from + * JavaScript Arrays. The type of set is inferred from the first element + * in the array. DynamoDB supports string, number, and binary sets. To + * learn more about supported types see the + * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html) + * For more information see {AWS.DynamoDB.DocumentClient.createSet} + * + */ +AWS.DynamoDB.DocumentClient = AWS.util.inherit({ + + /** + * @api private + */ + operations: { + batchGetItem: 'batchGet', + batchWriteItem: 'batchWrite', + putItem: 'put', + getItem: 'get', + deleteItem: 'delete', + updateItem: 'update', + scan: 'scan', + query: 'query' + }, + + /** + * Creates a DynamoDB document client with a set of configuration options. + * + * @option options params [map] An optional map of parameters to bind to every + * request sent by this service object. + * @option options service [AWS.DynamoDB] An optional pre-configured instance + * of the AWS.DynamoDB service object to use for requests. The object may + * bound parameters used by the document client. + * @see AWS.DynamoDB.constructor + * + */ + constructor: function DocumentClient(options) { + var self = this; + self.options = options || {}; + self.configure(self.options); + }, + + /** + * @api private + */ + configure: function configure(options) { + var self = this; + self.service = options.service; + self.bindServiceObject(options); + self.attrValue = + self.service.api.operations.putItem.input.members.Item.value.shape; + }, + + /** + * @api private + */ + bindServiceObject: function bindServiceObject(options) { + var self = this; + options = options || {}; + + if (!self.service) { + self.service = new AWS.DynamoDB(options); + } else { + var config = AWS.util.copy(self.service.config); + self.service = new self.service.constructor.__super__(config); + self.service.config.params = + AWS.util.merge(self.service.config.params || {}, options.params); + } + }, + + /** + * Returns the attributes of one or more items from one or more tables + * by delegating to `AWS.DynamoDB.batchGetItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.batchGetItem + * @example Get items from multiple tables + * var params = { + * RequestItems: { + * 'Table-1': { + * Keys: [ + * { + * HashKey: 'haskey', + * NumberRangeKey: 1 + * } + * ] + * }, + * 'Table-2': { + * Keys: [ + * { foo: 'bar' }, + * ] + * } + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.batchGet(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + batchGet: function(params, callback) { + var self = this; + var request = self.service.batchGetItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Puts or deletes multiple items in one or more tables by delegating + * to `AWS.DynamoDB.batchWriteItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.batchWriteItem + * @example Write to and delete from a table + * var params = { + * RequestItems: { + * 'Table-1': [ + * { + * DeleteRequest: { + * Key: { HashKey: 'someKey' } + * } + * }, + * { + * PutRequest: { + * Item: { + * HashKey: 'anotherKey', + * NumAttribute: 1, + * BoolAttribute: true, + * ListAttribute: [1, 'two', false], + * MapAttribute: { foo: 'bar' } + * } + * } + * } + * ] + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.batchWrite(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + batchWrite: function(params, callback) { + var self = this; + var request = self.service.batchWriteItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Deletes a single item in a table by primary key by delegating to + * `AWS.DynamoDB.deleteItem()` + * + * Supply the same parameters as {AWS.DynamoDB.deleteItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.deleteItem + * @example Delete an item from a table + * var params = { + * TableName : 'Table', + * Key: { + * HashKey: 'hashkey', + * NumberRangeKey: 1 + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.delete(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + delete: function(params, callback) { + var self = this; + var request = self.service.deleteItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Returns a set of attributes for the item with the given primary key + * by delegating to `AWS.DynamoDB.getItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.getItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.getItem + * @example Get an item from a table + * var params = { + * TableName : 'Table', + * Key: { + * HashKey: 'hashkey' + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.get(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + get: function(params, callback) { + var self = this; + var request = self.service.getItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Creates a new item, or replaces an old item with a new item by + * delegating to `AWS.DynamoDB.putItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.putItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.putItem + * @example Create a new item in a table + * var params = { + * TableName : 'Table', + * Item: { + * HashKey: 'haskey', + * NumAttribute: 1, + * BoolAttribute: true, + * ListAttribute: [1, 'two', false], + * MapAttribute: { foo: 'bar'}, + * NullAttribute: null + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.put(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + put: function put(params, callback) { + var self = this; + var request = self.service.putItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Edits an existing item's attributes, or adds a new item to the table if + * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.updateItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.updateItem + * @example Update an item with expressions + * var params = { + * TableName: 'Table', + * Key: { HashKey : 'hashkey' }, + * UpdateExpression: 'set #a = :x + :y', + * ConditionExpression: '#a < :MAX', + * ExpressionAttributeNames: {'#a' : 'Sum'}, + * ExpressionAttributeValues: { + * ':x' : 20, + * ':y' : 45, + * ':MAX' : 100, + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.update(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + update: function(params, callback) { + var self = this; + var request = self.service.updateItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Returns one or more items and item attributes by accessing every item + * in a table or a secondary index. + * + * Supply the same parameters as {AWS.DynamoDB.scan} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.scan + * @example Scan the table with a filter expression + * var params = { + * TableName : 'Table', + * FilterExpression : 'Year = :this_year', + * ExpressionAttributeValues : {':this_year' : 2015} + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.scan(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + scan: function(params, callback) { + var self = this; + var request = self.service.scan(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Directly access items from a table by primary key or a secondary index. + * + * Supply the same parameters as {AWS.DynamoDB.query} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.query + * @example Query an index + * var params = { + * TableName: 'Table', + * IndexName: 'Index', + * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey', + * ExpressionAttributeValues: { + * ':hkey': 'key', + * ':rkey': 2015 + * } + * }; + * + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * docClient.query(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + query: function(params, callback) { + var self = this; + var request = self.service.query(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Creates a set of elements inferring the type of set from + * the type of the first element. Amazon DynamoDB currently supports + * the number sets, string sets, and binary sets. For more information + * about DynamoDB data types see the documentation on the + * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes). + * + * @param list [Array] Collection to represent your DynamoDB Set + * @param options [map] + * * **validate** [Boolean] set to true if you want to validate the type + * of each element in the set. Defaults to `false`. + * @example Creating a number set + * var docClient = new AWS.DynamoDB.DocumentClient(); + * + * var params = { + * Item: { + * hashkey: 'hashkey' + * numbers: docClient.createSet([1, 2, 3]); + * } + * }; + * + * docClient.put(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + createSet: function(list, options) { + options = options || {}; + return new DynamoDBSet(list, options); + }, + + /** + * @api private + */ + getTranslator: function() { + return new Translator({attrValue: this.attrValue}); + }, + + /** + * @api private + */ + setupRequest: function setupRequest(request) { + var self = this; + var translator = self.getTranslator(); + var operation = request.operation; + var inputShape = request.service.api.operations[operation].input; + request._events.validate.unshift(function(req) { + req.rawParams = AWS.util.copy(req.params); + req.params = translator.translateInput(req.rawParams, inputShape); + }); + }, + + /** + * @api private + */ + setupResponse: function setupResponse(request) { + var self = this; + var translator = self.getTranslator(); + var outputShape = self.service.api.operations[request.operation].output; + request.on('extractData', function(response) { + response.data = translator.translateOutput(response.data, outputShape); + }); + + var response = request.response; + response.nextPage = function(cb) { + var resp = this; + var req = resp.request; + var config; + var service = req.service; + var operation = req.operation; + try { + config = service.paginationConfig(operation, true); + } catch (e) { resp.error = e; } + + if (!resp.hasNextPage()) { + if (cb) cb(resp.error, null); + else if (resp.error) throw resp.error; + return null; + } + + var params = AWS.util.copy(req.rawParams); + if (!resp.nextPageTokens) { + return cb ? cb(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]] = resp.nextPageTokens[i]; + } + return self[operation](params, cb); + } + }; + } + +}); + +module.exports = AWS.DynamoDB.DocumentClient; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/set.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/set.js new file mode 100755 index 0000000..e07d555 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/set.js @@ -0,0 +1,53 @@ +var util = require('../core').util; +var typeOf = require('./types').typeOf; + +var DynamoDBSet = util.inherit({ + + constructor: function Set(list, options) { + options = options || {}; + this.initialize(list, options.validate); + }, + + initialize: function(list, validate) { + var self = this; + self.values = [].concat(list); + self.detectType(); + if (validate) { + self.validate(); + } + }, + + detectType: function() { + var self = this; + var value = self.values[0]; + if (typeOf(value) === 'String') { + self.type = 'String'; + } else if (typeOf(value) === 'Number') { + self.type = 'Number'; + } else if (typeOf(value) === 'Binary') { + self.type = 'Binary'; + } else { + throw util.error(new Error(), { + code: 'InvalidSetType', + message: 'Sets can contain string, number, or binary values' + }); + } + }, + + validate: function() { + var self = this; + var length = self.values.length; + var values = self.values; + for (var i = 0; i < length; i++) { + if (typeOf(values[i]) !== self.type) { + throw util.error(new Error(), { + code: 'InvalidType', + message: self.type + ' Set contains ' + typeOf(values[i]) + ' value' + }); + } + } + } + +}); + +module.exports = DynamoDBSet; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/translator.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/translator.js new file mode 100755 index 0000000..116c095 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/translator.js @@ -0,0 +1,79 @@ +var util = require('../core').util; +var convert = require('./converter'); + +var Translator = function(options) { + options = options || {}; + this.attrValue = options.attrValue; +}; + +Translator.prototype.translateInput = function(value, shape) { + this.mode = 'input'; + return this.translate(value, shape); +}; + +Translator.prototype.translateOutput = function(value, shape) { + this.mode = 'output'; + return this.translate(value, shape); +}; + +Translator.prototype.translate = function(value, shape) { + var self = this; + if (!shape || value === undefined) return undefined; + + if (shape.shape === self.attrValue) { + return convert[self.mode](value); + } + switch (shape.type) { + case 'structure': return self.translateStructure(value, shape); + case 'map': return self.translateMap(value, shape); + case 'list': return self.translateList(value, shape); + default: return self.translateScalar(value, shape); + } +}; + +Translator.prototype.translateStructure = function(structure, shape) { + var self = this; + if (structure == null) return undefined; + + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + var result = self.translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; +}; + +Translator.prototype.translateList = function(list, shape) { + var self = this; + if (list == null) return undefined; + + var out = []; + util.arrayEach(list, function(value) { + var result = self.translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; +}; + +Translator.prototype.translateMap = function(map, shape) { + var self = this; + if (map == null) return undefined; + + var out = {}; + util.each(map, function(key, value) { + var result = self.translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; +}; + +Translator.prototype.translateScalar = function(value, shape) { + return shape.toType(value); +}; + +module.exports = Translator; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/types.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/types.js new file mode 100755 index 0000000..faeba14 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/dynamodb/types.js @@ -0,0 +1,40 @@ +var util = require('../core').util; + +function typeOf(data) { + if (data === null && typeof data === 'object') { + return 'null'; + } else if (data !== undefined && isBinary(data)) { + return 'Binary'; + } else if (data !== undefined && data.constructor) { + return util.typeName(data.constructor); + } else { + return 'undefined'; + } +} + +function isBinary(data) { + var types = [ + 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView', + 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', + 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', + 'Float32Array', 'Float64Array' + ]; + if (util.isNode()) { + var Stream = util.nodeRequire('stream').Stream; + if (util.Buffer.isBuffer(data) || data instanceof Stream) + return true; + } else { + for (var i = 0; i < types.length; i++) { + if (data !== undefined && data.constructor) { + if (util.isType(data, types[i])) return true; + if (util.typeName(data.constructor) === types[i]) return true; + } + } + } + return false; +} + +module.exports = { + typeOf: typeOf, + isBinary: isBinary +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/event_listeners.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/event_listeners.js new file mode 100755 index 0000000..38e2ca2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/event_listeners.js @@ -0,0 +1,469 @@ +var AWS = require('./core'); +var SequentialExecutor = require('./sequential_executor'); + +/** + * 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 SequentialExecutor().addNamedListeners(function(add, addAsync) { + addAsync('VALIDATE_CREDENTIALS', 'validate', + function VALIDATE_CREDENTIALS(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + req.service.config.getCredentials(function(err) { + if (err) { + req.response.error = AWS.util.error(err, + {code: 'CredentialsError', message: 'Missing credentials in config'}); + } + done(); + }); + }); + + add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { + if (!req.service.config.region && !req.service.isGlobalEndpoint) { + req.response.error = AWS.util.error(new Error(), + {code: 'ConfigError', message: 'Missing region in config'}); + } + }); + + add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { + var rules = req.service.api.operations[req.operation].input; + var validation = req.service.config.paramValidation; + new AWS.ParamValidator(validation).validate(rules, req.params); + }); + + addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { + req.haltHandlersOnError(); + if (!req.service.api.signatureVersion) return done(); // none + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + var body = req.httpRequest.body || ''; + AWS.util.computeSha256(body, function(err, sha) { + if (err) { + done(err); + } + else { + req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; + done(); + } + }); + } else { + done(); + } + }); + + 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; + }); + + add('RESTART', 'restart', function RESTART() { + var err = this.response.error; + if (!err || !err.retryable) return; + + this.httpRequest = new AWS.HttpRequest( + this.service.endpoint, + this.service.region + ); + + if (this.response.retryCount < this.service.config.maxRetries) { + this.response.retryCount++; + } else { + this.response.error = null; + } + }); + + 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, + req.service.config.signatureCache); + + // 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.httpResponse.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(value) { + resp.request.emit('httpUploadProgress', [value, resp]); + }); + + httpResp.on('receiveProgress', function onReceiveProgress(value) { + resp.request.emit('httpDownloadProgress', [value, 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 || {}; + try { + var stream = http.handleRequest(resp.request.httpRequest, httpOptions, + callback, error); + progress(stream); + } catch (err) { + error(err); + } + } + + 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; + var dateHeader = headers.date || headers.Date; + if (dateHeader) { + var serverTime = Date.parse(dateHeader); + if (resp.request.service.config.correctClockSkew + && AWS.util.isClockSkewed(serverTime)) { + AWS.util.applyClockOffset(serverTime); + } + } + }); + + 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) { + if (!resp.error) return; + switch (resp.error.code) { + case 'RequestExpired': // EC2 only + case 'ExpiredTokenException': + case 'ExpiredToken': + resp.error.retryable = true; + resp.request.service.config.credentials.expired = true; + } + }); + + add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { + var err = resp.error; + if (!err) return; + if (typeof err.code === 'string' && typeof err.message === 'string') { + if (err.code.match(/Signature/) && err.message.match(/expired/)) { + resp.error.retryable = true; + } + } + }); + + add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { + if (!resp.error) return; + if (this.service.clockSkewError(resp.error) + && this.service.config.correctClockSkew + && AWS.config.isClockSkewed) { + resp.error.retryable = 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']); + this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; + 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; + } else if (resp.retryCount < resp.maxRetries) { + resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; + } + } + }); + + addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { + var delay, willRetry = false; + + if (resp.error) { + delay = resp.error.retryDelay || 0; + if (resp.error.retryable && resp.retryCount < resp.maxRetries) { + resp.retryCount++; + willRetry = true; + } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.redirectCount++; + willRetry = true; + } + } + + if (willRetry) { + resp.error = null; + setTimeout(done, delay); + } else { + done(); + } + }); + }), + + CorePost: new SequentialExecutor().addNamedListeners(function(add) { + add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); + add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); + + add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { + if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { + var message = 'Inaccessible host: `' + err.hostname + + '\'. This service may not be available in the `' + err.region + + '\' region.'; + this.response.error = AWS.util.error(new Error(message), { + code: 'UnknownEndpoint', + region: err.region, + hostname: err.hostname, + retryable: true, + originalError: err + }); + } + }); + }), + + Logger: new 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, null); + + 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 += ' ' + AWS.util.string.lowerFirst(req.operation); + message += '(' + 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 SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/json'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Rest: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/rest'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestJson: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/rest_json'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestXml: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/rest_xml'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Query: new SequentialExecutor().addNamedListeners(function(add) { + var svc = require('./protocol/query'); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }) +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http.js new file mode 100755 index 0000000..394088f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http.js @@ -0,0 +1,208 @@ +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, customUserAgent) { + endpoint = new AWS.Endpoint(endpoint); + this.method = 'POST'; + this.path = endpoint.path || '/'; + this.headers = {}; + this.body = ''; + this.endpoint = endpoint; + this.region = region; + this.setUserAgent(customUserAgent); + }, + + /** + * @api private + */ + setUserAgent: function setUserAgent(customUserAgent) { + var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; + var customSuffix = ''; + if (typeof customUserAgent === 'string' && customUserAgent) { + customSuffix += ' ' + customUserAgent; + } + this.headers[prefix + 'User-Agent'] = AWS.util.userAgent() + customSuffix; + }, + + /** + * @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() { + var query = this.path.split('?', 2)[1]; + if (query) { + query = AWS.util.queryStringParse(query); + return AWS.util.queryParamsToString(query); + } + return ''; + } + +}); + +/** + * 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 + * @!attribute [r] streaming + * @return [Boolean] whether this response is being streamed at a low-level. + * Defaults to `false` (buffered reads). Do not modify this manually, use + * {createUnbufferedStream} to convert the stream to unbuffered mode + * instead. + */ +AWS.HttpResponse = inherit({ + + /** + * @api private + */ + constructor: function HttpResponse() { + this.statusCode = undefined; + this.headers = {}; + this.body = undefined; + this.streaming = false; + this.stream = null; + }, + + /** + * Disables buffering on the HTTP response and returns the stream for reading. + * @return [Stream, XMLHttpRequest, null] the underlying stream object. + * Use this object to directly read data off of the stream. + * @note This object is only available after the {AWS.Request~httpHeaders} + * event has fired. This method must be called prior to + * {AWS.Request~httpData}. + * @example Taking control of a stream + * request.on('httpHeaders', function(statusCode, headers) { + * if (statusCode < 300) { + * if (headers.etag === 'xyz') { + * // pipe the stream, disabling buffering + * var stream = this.response.httpResponse.createUnbufferedStream(); + * stream.pipe(process.stdout); + * } else { // abort this request and set a better error message + * this.abort(); + * this.response.error = new Error('Invalid ETag'); + * } + * } + * }).send(console.log); + */ + createUnbufferedStream: function createUnbufferedStream() { + this.streaming = true; + return this.stream; + } +}); + + +AWS.HttpClient = inherit({}); + +/** + * @api private + */ +AWS.HttpClient.getInstance = function getInstance() { + if (this.singleton === undefined) { + this.singleton = new this(); + } + return this.singleton; +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/node.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/node.js new file mode 100755 index 0000000..8b485fa --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/node.js @@ -0,0 +1,161 @@ +var AWS = require('../core'); +var Stream = AWS.util.nodeRequire('stream').Stream; +var TransformStream = AWS.util.nodeRequire('stream').Transform; +var ReadableStream = AWS.util.nodeRequire('stream').Readable; +require('../http'); + +/** + * @api private + */ +AWS.NodeHttpClient = AWS.util.inherit({ + handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { + var self = this; + var cbAlreadyCalled = false; + 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) { + if (cbAlreadyCalled) return; cbAlreadyCalled = true; + + callback(httpResp); + httpResp.emit('headers', httpResp.statusCode, httpResp.headers); + }); + httpRequest.stream = stream; // attach stream to httpRequest + + // timeout support + stream.setTimeout(httpOptions.timeout || 0, function() { + if (cbAlreadyCalled) return; cbAlreadyCalled = true; + + var msg = 'Connection timed out after ' + httpOptions.timeout + 'ms'; + errCallback(AWS.util.error(new Error(msg), {code: 'TimeoutError'})); + stream.abort(); + }); + + stream.on('error', function() { + if (cbAlreadyCalled) return; cbAlreadyCalled = true; + errCallback.apply(this, arguments); + }); + + var expect = httpRequest.headers.Expect || httpRequest.headers.expect; + if (expect === '100-continue') { + stream.on('continue', function() { + self.writeBody(stream, httpRequest); + }); + } else { + this.writeBody(stream, httpRequest); + } + + return stream; + }, + + writeBody: function writeBody(stream, httpRequest) { + var body = httpRequest.body; + var totalBytes = parseInt(httpRequest.headers['Content-Length'], 10); + + if (body instanceof Stream) { + // For progress support of streaming content - + // pipe the data through a transform stream to emit 'sendProgress' events + var progressStream = this.progressStream(stream, totalBytes); + if (progressStream) { + body.pipe(progressStream).pipe(stream); + } else { + body.pipe(stream); + } + } else if (body) { + // The provided body is a buffer/string and is already fully available in memory - + // For performance it's best to send it as a whole by calling stream.end(body), + // Callers expect a 'sendProgress' event which is best emitted once + // the http request stream has been fully written and all data flushed. + // The use of totalBytes is important over body.length for strings where + // length is char length and not byte length. + stream.once('finish', function() { + stream.emit('sendProgress', { + loaded: totalBytes, + total: totalBytes + }); + }); + stream.end(body); + } else { + // no request body + 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, totalBytes) { + if (typeof TransformStream === 'undefined') { + // for node 0.8 there is no streaming progress + return; + } + var loadedBytes = 0; + var reporter = new TransformStream(); + reporter._transform = function(chunk, encoding, callback) { + if (chunk) { + loadedBytes += chunk.length; + stream.emit('sendProgress', { + loaded: loadedBytes, + total: totalBytes + }); + } + callback(null, chunk); + }; + return reporter; + }, + + emitter: null +}); + +/** + * @!ignore + */ + +/** + * @api private + */ +AWS.HttpClient.prototype = AWS.NodeHttpClient.prototype; + +/** + * @api private + */ +AWS.HttpClient.streamsApiVersion = ReadableStream ? 2 : 1; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/xhr.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/xhr.js new file mode 100755 index 0000000..9fc80a7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/http/xhr.js @@ -0,0 +1,122 @@ +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(), headersEmitted = false; + httpRequest.stream = xhr; + + xhr.addEventListener('readystatechange', function() { + try { + if (xhr.status === 0) return; // 0 code is invalid + } catch (e) { return; } + + if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) { + try { xhr.responseType = 'arraybuffer'; } catch (e) {} + emitter.statusCode = xhr.status; + emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders()); + emitter.emit('headers', emitter.statusCode, emitter.headers); + headersEmitted = true; + } + 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, httpOptions.xhrAsync !== false); + AWS.util.each(httpRequest.headers, function (key, value) { + if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { + xhr.setRequestHeader(key, value); + } + }); + + if (httpOptions.timeout && httpOptions.xhrAsync !== false) { + xhr.timeout = httpOptions.timeout; + } + + if (httpOptions.xhrWithCredentials) { + xhr.withCredentials = true; + } + + try { + xhr.send(httpRequest.body); + } catch (err) { + if (httpRequest.body && typeof httpRequest.body.buffer === 'object') { + xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly + } else { + throw err; + } + } + + 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.toLowerCase()] = 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/builder.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/builder.js new file mode 100755 index 0000000..53cb9eb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/builder.js @@ -0,0 +1,56 @@ +var util = require('../util'); + +function JsonBuilder() { } + +JsonBuilder.prototype.build = function(value, shape) { + return JSON.stringify(translate(value, shape)); +}; + +function translate(value, shape) { + if (!shape || value === undefined || value === null) return undefined; + + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } +} + +function translateStructure(structure, shape) { + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + if (memberShape.location !== 'body') return; + var locationName = memberShape.isLocationName ? memberShape.name : name; + var result = translate(value, memberShape); + if (result !== undefined) struct[locationName] = result; + } + }); + return struct; +} + +function translateList(list, shape) { + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result !== undefined) out.push(result); + }); + return out; +} + +function translateMap(map, shape) { + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result !== undefined) out[key] = result; + }); + return out; +} + +function translateScalar(value, shape) { + return shape.toWireFormat(value); +} + +module.exports = JsonBuilder; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/parser.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/parser.js new file mode 100755 index 0000000..ab71a9e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/json/parser.js @@ -0,0 +1,64 @@ +var util = require('../util'); + +function JsonParser() { } + +JsonParser.prototype.parse = function(value, shape) { + return translate(JSON.parse(value), shape); +}; + +function translate(value, shape) { + if (!shape || value === undefined) return undefined; + + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } +} + +function translateStructure(structure, shape) { + if (structure == null) return undefined; + + var struct = {}; + var shapeMembers = shape.members; + util.each(shapeMembers, function(name, memberShape) { + var locationName = memberShape.isLocationName ? memberShape.name : name; + if (structure.hasOwnProperty(locationName)) { + var value = structure[locationName]; + var result = translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; +} + +function translateList(list, shape) { + if (list == null) return undefined; + + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; +} + +function translateMap(map, shape) { + if (map == null) return undefined; + + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; +} + +function translateScalar(value, shape) { + return shape.toType(value); +} + +module.exports = JsonParser; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/metadata_service.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/metadata_service.js new file mode 100755 index 0000000..0eaf453 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/metadata_service.js @@ -0,0 +1,127 @@ +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: + * + * * **timeout** (Number) — a timeout value in milliseconds to wait + * before aborting the connection. Set to 0 for no timeout. + * + * @!macro nobrowser + */ +AWS.MetadataService = inherit({ + /** + * @return [String] the hostname of the instance metadata service + */ + host: '169.254.169.254', + + /** + * @!ignore + */ + + /** + * Default HTTP options. By default, the metadata service is set to not + * timeout on long requests. This means that on non-EC2 machines, this + * request will never return. If you are calling this operation from an + * environment that may not always run on EC2, set a `timeout` value so + * the SDK will abort the request after a given number of milliseconds. + */ + httpOptions: { timeout: 0 }, + + /** + * 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: + * + * * **timeout** (Number) — a timeout value in milliseconds to wait + * before aborting the connection. Set to 0 for no timeout. + */ + 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'; + var httpOptions = this.httpOptions; + + process.nextTick(function() { + http.handleRequest(httpRequest, httpOptions, function(httpResponse) { + httpResponse.on('data', function(chunk) { data += chunk.toString(); }); + httpResponse.on('end', function() { callback(null, data); }); + }, callback); + }); + }, + + /** + * @api private + */ + loadCredentialsCallbacks: [], + + /** + * 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.loadCredentialsCallbacks.push(callback); + if (self.loadCredentialsCallbacks.length > 1) { return; } + + function callbacks(err, creds) { + var cb; + while ((cb = self.loadCredentialsCallbacks.shift()) !== undefined) { + cb(err, creds); + } + } + + self.request(basePath, function (err, roleName) { + if (err) callbacks(err); + else { + roleName = roleName.split('\n')[0]; // grab first (and only) role + self.request(basePath + roleName, function (credErr, credData) { + if (credErr) callbacks(credErr); + else { + try { + var credentials = JSON.parse(credData); + callbacks(null, credentials); + } catch (parseError) { + callbacks(parseError); + } + } + }); + } + }); + } +}); + +module.exports = AWS.MetadataService; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/api.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/api.js new file mode 100755 index 0000000..53c7384 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/api.js @@ -0,0 +1,63 @@ +var Collection = require('./collection'); +var Operation = require('./operation'); +var Shape = require('./shape'); +var Paginator = require('./paginator'); +var ResourceWaiter = require('./resource_waiter'); + +var util = require('../util'); +var property = util.property; +var memoizedProperty = util.memoizedProperty; + +function Api(api, options) { + api = api || {}; + options = options || {}; + options.api = this; + + api.metadata = api.metadata || {}; + + property(this, 'isApi', true, false); + property(this, 'apiVersion', api.metadata.apiVersion); + property(this, 'endpointPrefix', api.metadata.endpointPrefix); + property(this, 'signingName', api.metadata.signingName); + property(this, 'globalEndpoint', api.metadata.globalEndpoint); + property(this, 'signatureVersion', api.metadata.signatureVersion); + property(this, 'jsonVersion', api.metadata.jsonVersion); + property(this, 'targetPrefix', api.metadata.targetPrefix); + property(this, 'protocol', api.metadata.protocol); + property(this, 'timestampFormat', api.metadata.timestampFormat); + property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); + property(this, 'abbreviation', api.metadata.serviceAbbreviation); + property(this, 'fullName', api.metadata.serviceFullName); + + memoizedProperty(this, 'className', function() { + var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; + if (!name) return null; + + name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); + if (name === 'ElasticLoadBalancing') name = 'ELB'; + return name; + }); + + property(this, 'operations', new Collection(api.operations, options, function(name, operation) { + return new Operation(name, operation, options); + }, util.string.lowerFirst)); + + property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { + return Shape.create(shape, options); + })); + + property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { + return new Paginator(name, paginator, options); + })); + + property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { + return new ResourceWaiter(name, waiter, options); + }, util.string.lowerFirst)); + + if (options.documentation) { + property(this, 'documentation', api.documentation); + property(this, 'documentationUrl', api.documentationUrl); + } +} + +module.exports = Api; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/collection.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/collection.js new file mode 100755 index 0000000..c81e737 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/collection.js @@ -0,0 +1,20 @@ +var memoizedProperty = require('../util').memoizedProperty; + +function memoize(name, value, fn, nameTr) { + memoizedProperty(this, nameTr(name), function() { + return fn(name, value); + }); +} + +function Collection(iterable, options, fn, nameTr) { + nameTr = nameTr || String; + var self = this; + + for (var id in iterable) { + if (iterable.hasOwnProperty(id)) { + memoize.call(self, id, iterable[id], fn, nameTr); + } + } +} + +module.exports = Collection; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/operation.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/operation.js new file mode 100755 index 0000000..616d5fe --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/operation.js @@ -0,0 +1,53 @@ +var Shape = require('./shape'); + +var util = require('../util'); +var property = util.property; +var memoizedProperty = util.memoizedProperty; + +function Operation(name, operation, options) { + options = options || {}; + + property(this, 'name', operation.name || name); + property(this, 'api', options.api, false); + + operation.http = operation.http || {}; + property(this, 'httpMethod', operation.http.method || 'POST'); + property(this, 'httpPath', operation.http.requestUri || '/'); + property(this, 'authtype', operation.authtype || ''); + + memoizedProperty(this, 'input', function() { + if (!operation.input) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.input, options); + }); + + memoizedProperty(this, 'output', function() { + if (!operation.output) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.output, options); + }); + + memoizedProperty(this, 'errors', function() { + var list = []; + if (!operation.errors) return null; + + for (var i = 0; i < operation.errors.length; i++) { + list.push(Shape.create(operation.errors[i], options)); + } + + return list; + }); + + memoizedProperty(this, 'paginator', function() { + return options.api.paginators[name]; + }); + + if (options.documentation) { + property(this, 'documentation', operation.documentation); + property(this, 'documentationUrl', operation.documentationUrl); + } +} + +module.exports = Operation; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/paginator.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/paginator.js new file mode 100755 index 0000000..1fad68e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/paginator.js @@ -0,0 +1,11 @@ +var property = require('../util').property; + +function Paginator(name, paginator) { + property(this, 'inputToken', paginator.input_token); + property(this, 'limitKey', paginator.limit_key); + property(this, 'moreResults', paginator.more_results); + property(this, 'outputToken', paginator.output_token); + property(this, 'resultKey', paginator.result_key); +} + +module.exports = Paginator; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/resource_waiter.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/resource_waiter.js new file mode 100755 index 0000000..110482b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/resource_waiter.js @@ -0,0 +1,30 @@ +var util = require('../util'); +var property = util.property; + +function ResourceWaiter(name, waiter, options) { + options = options || {}; + property(this, 'name', name); + property(this, 'api', options.api, false); + + if (waiter.operation) { + property(this, 'operation', util.string.lowerFirst(waiter.operation)); + } + + var self = this; + var keys = [ + 'type', + 'description', + 'delay', + 'maxAttempts', + 'acceptors' + ]; + + keys.forEach(function(key) { + var value = waiter[key]; + if (value) { + property(self, key, value); + } + }); +} + +module.exports = ResourceWaiter; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/shape.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/shape.js new file mode 100755 index 0000000..44ac3d7 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/model/shape.js @@ -0,0 +1,346 @@ +var Collection = require('./collection'); + +var util = require('../util'); + +function property(obj, name, value) { + if (value !== null && value !== undefined) { + util.property.apply(this, arguments); + } +} + +function memoizedProperty(obj, name) { + if (!obj.constructor.prototype[name]) { + util.memoizedProperty.apply(this, arguments); + } +} + +function Shape(shape, options, memberName) { + options = options || {}; + + property(this, 'shape', shape.shape); + property(this, 'api', options.api, false); + property(this, 'type', shape.type); + property(this, 'enum', shape.enum); + property(this, 'min', shape.min); + property(this, 'max', shape.max); + property(this, 'pattern', shape.pattern); + property(this, 'location', shape.location || this.location || 'body'); + property(this, 'name', this.name || shape.xmlName || shape.queryName || + shape.locationName || memberName); + property(this, 'isStreaming', shape.streaming || this.isStreaming || false); + property(this, 'isComposite', shape.isComposite || false); + property(this, 'isShape', true, false); + property(this, 'isQueryName', shape.queryName ? true : false, false); + property(this, 'isLocationName', shape.locationName ? true : false, false); + + if (options.documentation) { + property(this, 'documentation', shape.documentation); + property(this, 'documentationUrl', shape.documentationUrl); + } + + if (shape.xmlAttribute) { + property(this, 'isXmlAttribute', shape.xmlAttribute || false); + } + + // type conversion and parsing + property(this, 'defaultValue', null); + this.toWireFormat = function(value) { + if (value === null || value === undefined) return ''; + return value; + }; + this.toType = function(value) { return value; }; +} + +/** + * @api private + */ +Shape.normalizedTypes = { + character: 'string', + double: 'float', + long: 'integer', + short: 'integer', + biginteger: 'integer', + bigdecimal: 'float', + blob: 'binary' +}; + +/** + * @api private + */ +Shape.types = { + 'structure': StructureShape, + 'list': ListShape, + 'map': MapShape, + 'boolean': BooleanShape, + 'timestamp': TimestampShape, + 'float': FloatShape, + 'integer': IntegerShape, + 'string': StringShape, + 'base64': Base64Shape, + 'binary': BinaryShape +}; + +Shape.resolve = function resolve(shape, options) { + if (shape.shape) { + var refShape = options.api.shapes[shape.shape]; + if (!refShape) { + throw new Error('Cannot find shape reference: ' + shape.shape); + } + + return refShape; + } else { + return null; + } +}; + +Shape.create = function create(shape, options, memberName) { + if (shape.isShape) return shape; + + var refShape = Shape.resolve(shape, options); + if (refShape) { + var filteredKeys = Object.keys(shape); + if (!options.documentation) { + filteredKeys = filteredKeys.filter(function(name) { + return !name.match(/documentation/); + }); + } + if (filteredKeys === ['shape']) { // no inline customizations + return refShape; + } + + // create an inline shape with extra members + var InlineShape = function() { + refShape.constructor.call(this, shape, options, memberName); + }; + InlineShape.prototype = refShape; + return new InlineShape(); + } else { + // set type if not set + if (!shape.type) { + if (shape.members) shape.type = 'structure'; + else if (shape.member) shape.type = 'list'; + else if (shape.key) shape.type = 'map'; + else shape.type = 'string'; + } + + // normalize types + var origType = shape.type; + if (Shape.normalizedTypes[shape.type]) { + shape.type = Shape.normalizedTypes[shape.type]; + } + + if (Shape.types[shape.type]) { + return new Shape.types[shape.type](shape, options, memberName); + } else { + throw new Error('Unrecognized shape type: ' + origType); + } + } +}; + +function CompositeShape(shape) { + Shape.apply(this, arguments); + property(this, 'isComposite', true); + + if (shape.flattened) { + property(this, 'flattened', shape.flattened || false); + } +} + +function StructureShape(shape, options) { + var requiredMap = null, firstInit = !this.isShape; + + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'members', {}); + property(this, 'memberNames', []); + property(this, 'required', []); + property(this, 'isRequired', function() { return false; }); + } + + if (shape.members) { + property(this, 'members', new Collection(shape.members, options, function(name, member) { + return Shape.create(member, options, name); + })); + memoizedProperty(this, 'memberNames', function() { + return shape.xmlOrder || Object.keys(shape.members); + }); + } + + if (shape.required) { + property(this, 'required', shape.required); + property(this, 'isRequired', function(name) { + if (!requiredMap) { + requiredMap = {}; + for (var i = 0; i < shape.required.length; i++) { + requiredMap[shape.required[i]] = true; + } + } + + return requiredMap[name]; + }, false, true); + } + + property(this, 'resultWrapper', shape.resultWrapper || null); + + if (shape.payload) { + property(this, 'payload', shape.payload); + } + + if (typeof shape.xmlNamespace === 'string') { + property(this, 'xmlNamespaceUri', shape.xmlNamespace); + } else if (typeof shape.xmlNamespace === 'object') { + property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix); + property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri); + } +} + +function ListShape(shape, options) { + var self = this, firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return []; }); + } + + if (shape.member) { + memoizedProperty(this, 'member', function() { + return Shape.create(shape.member, options); + }); + } + + if (this.flattened) { + var oldName = this.name; + memoizedProperty(this, 'name', function() { + return self.member.name || oldName; + }); + } +} + +function MapShape(shape, options) { + var firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'key', Shape.create({type: 'string'}, options)); + property(this, 'value', Shape.create({type: 'string'}, options)); + } + + if (shape.key) { + memoizedProperty(this, 'key', function() { + return Shape.create(shape.key, options); + }); + } + if (shape.value) { + memoizedProperty(this, 'value', function() { + return Shape.create(shape.value, options); + }); + } +} + +function TimestampShape(shape) { + var self = this; + Shape.apply(this, arguments); + + if (this.location === 'header') { + property(this, 'timestampFormat', 'rfc822'); + } else if (shape.timestampFormat) { + property(this, 'timestampFormat', shape.timestampFormat); + } else if (this.api) { + if (this.api.timestampFormat) { + property(this, 'timestampFormat', this.api.timestampFormat); + } else { + switch (this.api.protocol) { + case 'json': + case 'rest-json': + property(this, 'timestampFormat', 'unixTimestamp'); + break; + case 'rest-xml': + case 'query': + case 'ec2': + property(this, 'timestampFormat', 'iso8601'); + break; + } + } + } + + this.toType = function(value) { + if (value === null || value === undefined) return null; + if (typeof value.toUTCString === 'function') return value; + return typeof value === 'string' || typeof value === 'number' ? + util.date.parseTimestamp(value) : null; + }; + + this.toWireFormat = function(value) { + return util.date.format(value, self.timestampFormat); + }; +} + +function StringShape() { + Shape.apply(this, arguments); + + if (this.api) { + switch (this.api.protocol) { + case 'rest-xml': + case 'query': + case 'ec2': + this.toType = function(value) { return value || ''; }; + } + } +} + +function FloatShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseFloat(value); + }; + this.toWireFormat = this.toType; +} + +function IntegerShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseInt(value, 10); + }; + this.toWireFormat = this.toType; +} + +function BinaryShape() { + Shape.apply(this, arguments); + this.toType = util.base64.decode; + this.toWireFormat = util.base64.encode; +} + +function Base64Shape() { + BinaryShape.apply(this, arguments); +} + +function BooleanShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (typeof value === 'boolean') return value; + if (value === null || value === undefined) return null; + return value === 'true'; + }; +} + +/** + * @api private + */ +Shape.shapes = { + StructureShape: StructureShape, + ListShape: ListShape, + MapShape: MapShape, + StringShape: StringShape, + BooleanShape: BooleanShape, + Base64Shape: Base64Shape +}; + +module.exports = Shape; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/param_validator.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/param_validator.js new file mode 100755 index 0000000..7bd5a40 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/param_validator.js @@ -0,0 +1,254 @@ +var AWS = require('./core'); + +/** + * @api private + */ +AWS.ParamValidator = AWS.util.inherit({ + /** + * Create a new validator object. + * + * @param validation [Boolean|map] whether input parameters should be + * validated against the operation description before sending the + * request. Pass a map to enable any of the following specific + * validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + */ + constructor: function ParamValidator(validation) { + if (validation === true || validation === undefined) { + validation = {'min': true}; + } + this.validation = validation; + }, + + validate: function validate(shape, params, context) { + this.errors = []; + this.validateMember(shape, params || {}, context || 'params'); + + if (this.errors.length > 1) { + var msg = this.errors.join('\n* '); + msg = 'There were ' + this.errors.length + + ' validation errors:\n* ' + msg; + throw AWS.util.error(new Error(msg), + {code: 'MultipleValidationErrors', errors: this.errors}); + } else if (this.errors.length === 1) { + throw this.errors[0]; + } else { + return true; + } + }, + + fail: function fail(code, message) { + this.errors.push(AWS.util.error(new Error(message), {code: code})); + }, + + validateStructure: function validateStructure(shape, params, context) { + this.validateType(params, context, ['object'], 'structure'); + + var paramName; + for (var i = 0; shape.required && i < shape.required.length; i++) { + paramName = shape.required[i]; + var value = params[paramName]; + if (value === undefined || value === null) { + 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], + memberShape = shape.members[paramName]; + + if (memberShape !== undefined) { + var memberContext = [context, paramName].join('.'); + this.validateMember(memberShape, paramValue, memberContext); + } else { + this.fail('UnexpectedParameter', + 'Unexpected key \'' + paramName + '\' found in ' + context); + } + } + + return true; + }, + + validateMember: function validateMember(shape, param, context) { + switch (shape.type) { + case 'structure': + return this.validateStructure(shape, param, context); + case 'list': + return this.validateList(shape, param, context); + case 'map': + return this.validateMap(shape, param, context); + default: + return this.validateScalar(shape, param, context); + } + }, + + validateList: function validateList(shape, params, context) { + if (this.validateType(params, context, [Array])) { + this.validateRange(shape, params.length, context, 'list member count'); + // validate array members + for (var i = 0; i < params.length; i++) { + this.validateMember(shape.member, params[i], context + '[' + i + ']'); + } + } + }, + + validateMap: function validateMap(shape, params, context) { + if (this.validateType(params, context, ['object'], 'map')) { + // Build up a count of map members to validate range traits. + var mapCount = 0; + for (var param in params) { + if (!params.hasOwnProperty(param)) continue; + // Validate any map key trait constraints + this.validateMember(shape.key, param, + context + '[key=\'' + param + '\']') + this.validateMember(shape.value, params[param], + context + '[\'' + param + '\']'); + mapCount++; + } + this.validateRange(shape, mapCount, context, 'map member count'); + } + }, + + validateScalar: function validateScalar(shape, value, context) { + switch (shape.type) { + case null: + case undefined: + case 'string': + return this.validateString(shape, value, context); + case 'base64': + case 'binary': + return this.validatePayload(value, context); + case 'integer': + case 'float': + return this.validateNumber(shape, value, context); + case 'boolean': + return this.validateType(value, context, ['boolean']); + case 'timestamp': + return this.validateType(value, context, [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 ' + + shape.type + ' for ' + context); + } + }, + + validateString: function validateString(shape, value, context) { + if (this.validateType(value, context, ['string'])) { + this.validateEnum(shape, value, context); + this.validateRange(shape, value.length, context, 'string length'); + this.validatePattern(shape, value, context); + } + }, + + validatePattern: function validatePattern(shape, value, context) { + if (this.validation['pattern'] && shape['pattern'] !== undefined) { + if (!(new RegExp(shape['pattern'])).test(value)) { + this.fail('PatternMatchError', 'Provided value "' + value + '" ' + + 'does not match regex pattern /' + shape['pattern'] + '/ for ' + + context); + } + } + }, + + validateRange: function validateRange(shape, value, context, descriptor) { + if (this.validation['min']) { + if (shape['min'] !== undefined && value < shape['min']) { + this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' + + shape['min'] + ', but found ' + value + ' for ' + context); + } + } + if (this.validation['max']) { + if (shape['max'] !== undefined && value > shape['max']) { + this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' + + shape['max'] + ', but found ' + value + ' for ' + context); + } + } + }, + + validateEnum: function validateRange(shape, value, context) { + if (this.validation['enum'] && shape['enum'] !== undefined) { + // Fail if the string value is not present in the enum list + if (shape['enum'].indexOf(value) === -1) { + this.fail('EnumError', 'Found string value of ' + value + ', but ' + + 'expected ' + shape['enum'].join('|') + ' for ' + context); + } + } + }, + + validateType: function validateType(value, context, acceptedTypes, type) { + // We will not log an error for null or undefined, but we will return + // false so that callers know that the expected type was not strictly met. + if (value === null || value === undefined) return false; + + var foundInvalidType = false; + for (var i = 0; i < acceptedTypes.length; i++) { + if (typeof acceptedTypes[i] === 'string') { + if (typeof value === acceptedTypes[i]) return true; + } else if (acceptedTypes[i] instanceof RegExp) { + if ((value || '').toString().match(acceptedTypes[i])) return true; + } else { + if (value instanceof acceptedTypes[i]) return true; + if (AWS.util.isType(value, acceptedTypes[i])) return true; + 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); + return false; + }, + + validateNumber: function validateNumber(shape, value, context) { + if (value === null || value === undefined) return; + if (typeof value === 'string') { + var castedValue = parseFloat(value); + if (castedValue.toString() === value) value = castedValue; + } + if (this.validateType(value, context, ['number'])) { + this.validateRange(shape, value, context, 'numeric value'); + } + }, + + validatePayload: function validatePayload(value, context) { + 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/json.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/json.js new file mode 100755 index 0000000..b9c9d8c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/json.js @@ -0,0 +1,62 @@ +var util = require('../util'); +var JsonBuilder = require('../json/builder'); +var JsonParser = require('../json/parser'); + +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 input = api.operations[req.operation].input; + var builder = new JsonBuilder(); + + if (version === 1) version = '1.0'; + httpRequest.body = builder.build(req.params || {}, input); + httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; + httpRequest.headers['X-Amz-Target'] = target; +} + +function extractError(resp) { + var error = {}; + var httpResponse = resp.httpResponse; + + error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; + if (typeof error.code === 'string') { + error.code = error.code.split(':')[0]; + } + + 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(); + } + if (error.code === 'RequestEntityTooLarge') { + error.message = 'Request body must be less than 1 MB'; + } else { + error.message = (e.message || e.Message || null); + } + } else { + error.statusCode = httpResponse.statusCode; + error.message = httpResponse.statusCode.toString(); + } + + resp.error = util.error(new Error(), error); +} + +function extractData(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + if (resp.request.service.config.convertResponseTypes === false) { + resp.data = JSON.parse(body); + } else { + var operation = resp.request.service.api.operations[resp.request.operation]; + var shape = operation.output || {}; + var parser = new JsonParser(); + resp.data = parser.parse(body, shape); + } +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/query.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/query.js new file mode 100755 index 0000000..2e1adcb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/query.js @@ -0,0 +1,97 @@ +var AWS = require('../core'); +var util = require('../util'); +var QueryParamSerializer = require('../query/query_param_serializer'); +var Shape = require('../model/shape'); + +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 builder = new QueryParamSerializer(); + builder.serialize(req.params, operation.input, function(name, value) { + httpRequest.params[name] = value; + }); + httpRequest.body = util.queryParamsToString(httpRequest.params); +} + +function extractError(resp) { + var data, body = resp.httpResponse.body.toString(); + if (body.match('= 0 ? '&' : '?'); + var parts = []; + util.arrayEach(Object.keys(queryString).sort(), function(key) { + if (!Array.isArray(queryString[key])) { + queryString[key] = [queryString[key]]; + } + for (var i = 0; i < queryString[key].length; i++) { + parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); + } + }); + uri += parts.join('&'); + } + + req.httpRequest.path = uri; +} + +function populateHeaders(req) { + var operation = req.service.api.operations[req.operation]; + util.each(operation.input.members, function (name, member) { + var value = req.params[name]; + if (value === null || value === undefined) return; + + if (member.location === 'headers' && member.type === 'map') { + util.each(value, function(key, memberValue) { + req.httpRequest.headers[member.name + key] = memberValue; + }); + } else if (member.location === 'header') { + value = member.toWireFormat(value).toString(); + req.httpRequest.headers[member.name] = value; + } + }); +} + +function buildRequest(req) { + populateMethod(req); + populateURI(req); + populateHeaders(req); +} + +function extractError() { +} + +function extractData(resp) { + var req = resp.request; + var data = {}; + var r = resp.httpResponse; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + // normalize headers names to lower-cased keys for matching + var headers = {}; + util.each(r.headers, function (k, v) { + headers[k.toLowerCase()] = v; + }); + + util.each(output.members, function(name, member) { + var header = (member.name || name).toLowerCase(); + if (member.location === 'headers' && member.type === 'map') { + data[name] = {}; + var location = member.isLocationName ? member.name : ''; + var pattern = new RegExp('^' + location + '(.+)', 'i'); + util.each(r.headers, function (k, v) { + var result = k.match(pattern); + if (result !== null) { + data[name][result[1]] = v; + } + }); + } else if (member.location === 'header') { + if (headers[header] !== undefined) { + data[name] = headers[header]; + } + } else if (member.location === 'statusCode') { + data[name] = parseInt(r.statusCode, 10); + } + }); + + resp.data = data; +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_json.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_json.js new file mode 100755 index 0000000..992bbb5 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_json.js @@ -0,0 +1,67 @@ +var util = require('../util'); +var Rest = require('./rest'); +var Json = require('./json'); +var JsonBuilder = require('../json/builder'); +var JsonParser = require('../json/parser'); + +function populateBody(req) { + var builder = new JsonBuilder(); + var input = req.service.api.operations[req.operation].input; + + if (input.payload) { + var params = {}; + var payloadShape = input.members[input.payload]; + params = req.params[input.payload]; + if (params === undefined) return; + + if (payloadShape.type === 'structure') { + req.httpRequest.body = builder.build(params, payloadShape); + } else { // non-JSON payload + req.httpRequest.body = params; + } + } else { + req.httpRequest.body = builder.build(req.params, input); + } +} + +function buildRequest(req) { + Rest.buildRequest(req); + + // never send body payload on GET/HEAD/DELETE + if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } +} + +function extractError(resp) { + Json.extractError(resp); +} + +function extractData(resp) { + Rest.extractData(resp); + + var req = resp.request; + var rules = req.service.api.operations[req.operation].output || {}; + if (rules.payload) { + var payloadMember = rules.members[rules.payload]; + var body = resp.httpResponse.body; + if (payloadMember.isStreaming) { + resp.data[rules.payload] = body; + } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') { + var parser = new JsonParser(); + resp.data[rules.payload] = parser.parse(body, payloadMember); + } else { + resp.data[rules.payload] = body.toString(); + } + } else { + var data = resp.data; + Json.extractData(resp); + resp.data = util.merge(data, resp.data); + } +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_xml.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_xml.js new file mode 100755 index 0000000..ebfd1b6 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/protocol/rest_xml.js @@ -0,0 +1,87 @@ +var AWS = require('../core'); +var util = require('../util'); +var Rest = require('./rest'); + +function populateBody(req) { + var input = req.service.api.operations[req.operation].input; + var builder = new AWS.XML.Builder(); + var params = req.params; + + var payload = input.payload; + if (payload) { + var payloadMember = input.members[payload]; + params = params[payload]; + if (params === undefined) return; + + if (payloadMember.type === 'structure') { + var rootElement = payloadMember.name; + req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); + } else { // non-xml payload + req.httpRequest.body = params; + } + } else { + req.httpRequest.body = builder.toXML(params, input, input.name || + input.shape || util.string.upperFirst(req.operation) + 'Request'); + } +} + +function buildRequest(req) { + Rest.buildRequest(req); + + // never send body payload on GET/HEAD + if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } +} + +function extractError(resp) { + 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 = util.error(new Error(), { + code: data.Code, + message: data.Message + }); + } else { + resp.error = util.error(new Error(), { + code: resp.httpResponse.statusCode, + message: null + }); + } +} + +function extractData(resp) { + Rest.extractData(resp); + + var parser; + var req = resp.request; + var body = resp.httpResponse.body; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + var payload = output.payload; + if (payload) { + var payloadMember = output.members[payload]; + if (payloadMember.isStreaming) { + resp.data[payload] = body; + } else if (payloadMember.type === 'structure') { + parser = new AWS.XML.Parser(); + resp.data[payload] = parser.parse(body.toString(), payloadMember); + } else { + resp.data[payload] = body.toString(); + } + } else if (body.length > 0) { + parser = new AWS.XML.Parser(); + var data = parser.parse(body.toString(), output); + util.update(resp.data, data); + } +} + +module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/query/query_param_serializer.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/query/query_param_serializer.js new file mode 100755 index 0000000..169acf2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/query/query_param_serializer.js @@ -0,0 +1,81 @@ +var util = require('../util'); + +function QueryParamSerializer() { +} + +QueryParamSerializer.prototype.serialize = function(params, shape, fn) { + serializeStructure('', params, shape, fn); +}; + +function ucfirst(shape) { + if (shape.isQueryName || shape.api.protocol !== 'ec2') { + return shape.name; + } else { + return shape.name[0].toUpperCase() + shape.name.substr(1); + } +} + +function serializeStructure(prefix, struct, rules, fn) { + util.each(rules.members, function(name, member) { + var value = struct[name]; + if (value === null || value === undefined) return; + + var memberName = ucfirst(member); + memberName = prefix ? prefix + '.' + memberName : memberName; + serializeMember(memberName, value, member, fn); + }); +} + +function serializeMap(name, map, rules, fn) { + var i = 1; + util.each(map, function (key, value) { + var prefix = rules.flattened ? '.' : '.entry.'; + var position = prefix + (i++) + '.'; + var keyName = position + (rules.key.name || 'key'); + var valueName = position + (rules.value.name || 'value'); + serializeMember(name + keyName, key, rules.key, fn); + serializeMember(name + valueName, value, rules.value, fn); + }); +} + +function serializeList(name, list, rules, fn) { + var memberRules = rules.member || {}; + + if (list.length === 0) { + fn.call(this, name, null); + return; + } + + util.arrayEach(list, function (v, n) { + var suffix = '.' + (n + 1); + if (rules.api.protocol === 'ec2') { + // Do nothing for EC2 + suffix = suffix + ''; // make linter happy + } else if (rules.flattened) { + if (memberRules.name) { + var parts = name.split('.'); + parts.pop(); + parts.push(ucfirst(memberRules)); + name = parts.join('.'); + } + } else { + suffix = '.member' + suffix; + } + serializeMember(name + suffix, v, memberRules, fn); + }); +} + +function serializeMember(name, value, rules, fn) { + if (value === null || value === undefined) return; + if (rules.type === 'structure') { + serializeStructure(name, value, rules, fn); + } else if (rules.type === 'list') { + serializeList(name, value, rules, fn); + } else if (rules.type === 'map') { + serializeMap(name, value, rules, fn); + } else { + fn(name, rules.toWireFormat(value).toString()); + } +} + +module.exports = QueryParamSerializer; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.js new file mode 100755 index 0000000..80aac05 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.js @@ -0,0 +1,63 @@ +var util = require('./util'); +var regionConfig = require('./region_config.json'); + +function generateRegionPrefix(region) { + if (!region) return null; + + var parts = region.split('-'); + if (parts.length < 3) return null; + return parts.slice(0, parts.length - 2).join('-') + '-*'; +} + +function derivedKeys(service) { + var region = service.config.region; + var regionPrefix = generateRegionPrefix(region); + var endpointPrefix = service.api.endpointPrefix; + + return [ + [region, endpointPrefix], + [regionPrefix, endpointPrefix], + [region, '*'], + [regionPrefix, '*'], + ['*', endpointPrefix], + ['*', '*'] + ].map(function(item) { + return item[0] && item[1] ? item.join('/') : null; + }); +} + +function applyConfig(service, config) { + util.each(config, function(key, value) { + if (key === 'globalEndpoint') return; + if (service.config[key] === undefined || service.config[key] === null) { + service.config[key] = value; + } + }); +} + +function configureEndpoint(service) { + var keys = derivedKeys(service); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!key) continue; + + if (regionConfig.rules.hasOwnProperty(key)) { + var config = regionConfig.rules[key]; + if (typeof config === 'string') { + config = regionConfig.patterns[config]; + } + + // set global endpoint + service.isGlobalEndpoint = !!config.globalEndpoint; + + // signature version + if (!config.signatureVersion) config.signatureVersion = 'v4'; + + // merge config + applyConfig(service, config); + return; + } + } +} + +module.exports = configureEndpoint; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.json b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.json new file mode 100755 index 0000000..38a614a --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/region_config.json @@ -0,0 +1,62 @@ +{ + "rules": { + "*/*": { + "endpoint": "{service}.{region}.amazonaws.com" + }, + "cn-*/*": { + "endpoint": "{service}.{region}.amazonaws.com.cn" + }, + "*/cloudfront": "globalSSL", + "*/iam": "globalSSL", + "*/sts": "globalSSL", + "*/importexport": { + "endpoint": "{service}.amazonaws.com", + "signatureVersion": "v2", + "globalEndpoint": true + }, + "*/route53": { + "endpoint": "https://{service}.amazonaws.com", + "signatureVersion": "v3https", + "globalEndpoint": true + }, + "*/waf": "globalSSL", + "us-gov-*/iam": "globalGovCloud", + "us-gov-*/sts": { + "endpoint": "{service}.{region}.amazonaws.com" + }, + "us-gov-west-1/s3": "s3dash", + "us-west-1/s3": "s3dash", + "us-west-2/s3": "s3dash", + "eu-west-1/s3": "s3dash", + "ap-southeast-1/s3": "s3dash", + "ap-southeast-2/s3": "s3dash", + "ap-northeast-1/s3": "s3dash", + "sa-east-1/s3": "s3dash", + "us-east-1/s3": { + "endpoint": "{service}.amazonaws.com", + "signatureVersion": "s3" + }, + "us-east-1/sdb": { + "endpoint": "{service}.amazonaws.com", + "signatureVersion": "v2" + }, + "*/sdb": { + "endpoint": "{service}.{region}.amazonaws.com", + "signatureVersion": "v2" + } + }, + + "patterns": { + "globalSSL": { + "endpoint": "https://{service}.amazonaws.com", + "globalEndpoint": true + }, + "globalGovCloud": { + "endpoint": "{service}.us-gov.amazonaws.com" + }, + "s3dash": { + "endpoint": "{service}-{region}.amazonaws.com", + "signatureVersion": "s3" + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/request.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/request.js new file mode 100755 index 0000000..260ba7d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/request.js @@ -0,0 +1,696 @@ +var AWS = require('./core'); +var AcceptorStateMachine = require('./state_machine'); +var inherit = AWS.util.inherit; +var domain = AWS.util.nodeRequire('domain'); +var jmespath = require('jmespath'); + +/** + * @api private + */ +var hardErrorStates = {success: 1, error: 1, complete: 1}; + +function isTerminalState(machine) { + return hardErrorStates.hasOwnProperty(machine._asm.currentState); +} + +var fsm = new AcceptorStateMachine(); +fsm.setupStates = function() { + var transition = function(_, done) { + var self = this; + self._haltHandlersOnError = false; + + self.emit(self._asm.currentState, function(err) { + if (err) { + if (isTerminalState(self)) { + if (domain && self.domain instanceof domain.Domain) { + err.domainEmitter = self; + err.domain = self.domain; + err.domainThrown = false; + self.domain.emit('error', err); + } else { + throw err; + } + } else { + self.response.error = err; + done(err); + } + } else { + done(self.response.error); + } + }); + + }; + + this.addState('validate', 'build', 'error', transition); + 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('restart', 'build', 'error', transition); + this.addState('success', 'complete', 'complete', transition); + this.addState('error', 'complete', 'complete', transition); + this.addState('complete', null, null, transition); +}; +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 + * @example Ensuring that a certain parameter is set before sending a request + * var req = s3.putObject(params); + * req.on('validate', function() { + * if (!req.params.Body.match(/^Hello\s/)) { + * throw new Error('Body must start with "Hello "'); + * } + * }); + * req.send(function(err, data) { ... }); + * + * @!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) + * @example Add a custom HTTP header to a request + * var req = s3.putObject(params); + * req.on('build', function() { + * req.httpRequest.headers['Custom-Header'] = 'value'; + * }); + * req.send(function(err, data) { ... }); + * + * @!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 or redirected. + * If the response is retryable, the listener should set the + * `response.error.retryable` property to `true`, and optionally set + * `response.error.retryCount` to the millisecond delay for the next attempt. + * In the case of a redirect, `response.error.redirect` should be set to + * `true` with `retryCount` set to an optional delay on the next request. + * + * If a listener decides that a request should not be retried, + * it should set both `retryable` and `redirect` to false. + * + * Note that a retryable error will be retried at most + * {AWS.Config.maxRetries} times (based on the service object's config). + * Similarly, a request that is redirected will only redirect at most + * {AWS.Config.maxRedirects} times. + * + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @example Adding a custom retry for a 404 response + * request.on('retry', function(response) { + * // this resource is not yet available, wait 10 seconds to get it again + * if (response.httpResponse.statusCode === 404 && response.error) { + * response.error.retryable = true; // retry this error + * response.error.retryCount = 10000; // wait 10 seconds + * } + * }); + * + * @!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; + var customUserAgent = service.config.customUserAgent; + + // global endpoints sign as us-east-1 + if (service.isGlobalEndpoint) region = 'us-east-1'; + + this.domain = domain && domain.active; + this.service = service; + this.operation = operation; + this.params = params || {}; + this.httpRequest = new AWS.HttpRequest(endpoint, region, customUserAgent); + this.startTime = AWS.util.date.getDate(); + + this.response = new AWS.Response(this); + this._asm = new AcceptorStateMachine(fsm.states, 'validate'); + this._haltHandlersOnError = false; + + 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. + * @context [AWS.Request] the request object being sent. + * @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) { + callback.call(resp, resp.error, resp.data); + }); + } + this.runTo(); + + return this.response; + }, + + /** + * @!method promise() + * Returns a 'thenable' promise. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(data) + * Called if the promise is fulfilled. + * @param data [Object] the de-serialized data returned from the request. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param error [Error] the error object returned from the request. + * @return [Promise] A promise that represents the state of the request. + * @example Sending a request using promises. + * var request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * var result = request.promise(); + * result.then(function(data) { ... }, function(error) { ... }); + */ + + /** + * @api private + */ + build: function build(callback) { + return this.runTo('send', callback); + }, + + /** + * @api private + */ + 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); + * }); + * @example Iterating over multiple pages with an asynchronous callback + * s3.listObjects(params).eachPage(function(err, data, done) { + * doSomethingAsyncAndOrExpensive(function() { + * // The next page of results isn't fetched until done is called + * done(); + * }); + * }); + * @callback callback function(err, data, [doneCallback]) + * Called with each page of resulting data from the request. If the + * optional `doneCallback` is provided in the function, it must be called + * when the callback is complete. + * + * @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`. + * @param doneCallback [Function] an optional done callback. If this + * argument is defined in the function declaration, it should be called + * when the next page is ready to be retrieved. This is useful for + * controlling serial pagination across asynchronous operations. + * @return [Boolean] if the callback returns `false`, pagination will + * stop. + * + * @see AWS.Request.eachItem + * @see AWS.Response.nextPage + * @since v1.4.0 + */ + eachPage: function eachPage(callback) { + // Make all callbacks async-ish + callback = AWS.util.fn.makeAsync(callback, 3); + + function wrappedCallback(response) { + callback.call(response, response.error, response.data, function (result) { + if (result === false) return; + + if (response.hasNextPage()) { + response.nextPage().on('complete', wrappedCallback).send(); + } else { + callback.call(response, null, null, AWS.util.fn.noop); + } + }); + } + + 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) { + var self = this; + function wrappedCallback(err, data) { + if (err) return callback(err, null); + if (data === null) return callback(null, null); + + var config = self.service.paginationConfig(self.operation); + var resultKey = config.resultKey; + if (Array.isArray(resultKey)) resultKey = resultKey[0]; + var items = jmespath.search(data, resultKey); + AWS.util.arrayEach(items, function(item) { callback(null, item); }); + } + + this.eachPage(wrappedCallback); + }, + + /** + * @return [Boolean] whether the operation can return multiple pages of + * response data. + * @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; + + if (AWS.HttpClient.streamsApiVersion === 2) { + stream = new streams.PassThrough(); + req.send(); + } else { + stream = new streams.Stream(); + stream.readable = true; + + stream.sent = false; + stream.on('newListener', function(event) { + if (!stream.sent && event === 'data') { + stream.sent = true; + process.nextTick(function() { req.send(); }); + } + }); + } + + this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { + if (statusCode < 300) { + req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); + req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); + req.on('httpError', function streamHttpError(error) { + resp.error = error; + resp.error.retryable = false; + }); + + var httpStream = resp.httpResponse.createUnbufferedStream(); + if (AWS.HttpClient.streamsApiVersion === 2) { + httpStream.pipe(stream); + } else { + httpStream.on('data', function(arg) { + stream.emit('data', arg); + }); + httpStream.on('end', function() { + stream.emit('end'); + }); + } + + httpStream.on('error', function(err) { + stream.emit('error', err); + }); + } + }); + + 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 = function() { }; + 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 'restart': + case 'validate': + case 'sign': + case 'build': + case 'afterValidate': + case 'afterBuild': + return [this]; + case 'error': + return [this.response.error, this.response]; + default: + return [this.response]; + } + }, + + /** + * @api private + */ + presign: function presign(expires, callback) { + if (!callback && typeof expires === 'function') { + callback = expires; + expires = null; + } + return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); + }, + + /** + * @api private + */ + toUnauthenticated: function toUnauthenticated() { + this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); + this.removeListener('sign', AWS.EventListeners.Core.SIGN); + return this; + }, + + /** + * @api private + */ + toGet: function toGet() { + if (this.service.api.protocol === 'query' || + this.service.api.protocol === 'ec2') { + this.removeListener('build', this.buildAsGet); + this.addListener('build', this.buildAsGet); + } + return this; + }, + + /** + * @api private + */ + buildAsGet: function buildAsGet(request) { + request.httpRequest.method = 'GET'; + request.httpRequest.path = request.service.endpoint.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']; + }, + + /** + * @api private + */ + haltHandlersOnError: function haltHandlersOnError() { + this._haltHandlersOnError = true; + } +}); + +AWS.util.addPromisesToRequests(AWS.Request); + +AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/resource_waiter.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/resource_waiter.js new file mode 100755 index 0000000..a2fe364 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/resource_waiter.js @@ -0,0 +1,178 @@ +/** + * 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; +var jmespath = require('jmespath'); + +/** + * @api private + */ +function CHECK_ACCEPTORS(resp) { + var waiter = resp.request._waiter; + var acceptors = waiter.config.acceptors; + var acceptorMatched = false; + var state = 'retry'; + + acceptors.forEach(function(acceptor) { + if (!acceptorMatched) { + var matcher = waiter.matchers[acceptor.matcher]; + if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { + acceptorMatched = true; + state = acceptor.state; + } + } + }); + + if (!acceptorMatched && resp.error) state = 'failure'; + + if (state === 'success') { + waiter.setSuccess(resp); + } else { + waiter.setError(resp, state === 'retry'); + } +} + +/** + * @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.loadWaiterConfig(this.state); + }, + + service: null, + + state: null, + + config: null, + + matchers: { + path: function(resp, expected, argument) { + var result = jmespath.search(resp.data, argument); + return jmespath.strictDeepEqual(result,expected); + }, + + pathAll: function(resp, expected, argument) { + var results = jmespath.search(resp.data, argument); + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + if (!numResults) return false; + for (var ind = 0 ; ind < numResults; ind++) { + if (!jmespath.strictDeepEqual(results[ind], expected)) { + return false; + } + } + return true; + }, + + pathAny: function(resp, expected, argument) { + var results = jmespath.search(resp.data, argument); + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + for (var ind = 0 ; ind < numResults; ind++) { + if (jmespath.strictDeepEqual(results[ind], expected)) { + return true; + } + } + return false; + }, + + status: function(resp, expected) { + var statusCode = resp.httpResponse.statusCode; + return (typeof statusCode === 'number') && (statusCode === expected); + }, + + error: function(resp, expected) { + if (typeof expected === 'string' && resp.error) { + return expected === resp.error.code; + } + // if expected is not string, can be boolean indicating presence of error + return expected === !!resp.error; + } + }, + + listeners: 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.delay || 0) * 1000; + } + }); + + add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); + + add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); + }), + + /** + * @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); + request._waiter = this; + request.response.maxRetries = this.config.maxAttempts; + request.addListeners(this.listeners); + + if (callback) request.send(callback); + return request; + }, + + setSuccess: function setSuccess(resp) { + resp.error = null; + resp.data = resp.data || {}; + resp.request.removeAllListeners('extractData'); + }, + + 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 + }); + }, + + /** + * Loads waiter configuration from API configuration + * + * @api private + */ + loadWaiterConfig: function loadWaiterConfig(state) { + if (!this.service.api.waiters[state]) { + throw new AWS.util.error(new Error(), { + code: 'StateNotFoundError', + message: 'State ' + state + ' not found.' + }); + } + + this.config = this.service.api.waiters[state]; + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/response.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/response.js new file mode 100755 index 0000000..f7f6baa --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/response.js @@ -0,0 +1,201 @@ +var AWS = require('./core'); +var inherit = AWS.util.inherit; +var jmespath = require('jmespath'); + +/** + * This class encapsulates 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 [Error] + * * 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. + * * statusCode [Numeric] in the case of a request that reached the service, + * this value contains the response status code. + * * time [Date] the date time object when the error occurred. + * * hostname [String] set when a networking error occurs to easily + * identify the endpoint of the request. + * * region [String] set when a networking error occurs to easily + * identify the region of the request. + * + * @!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. + * @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 + * @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 (!jmespath.search(this.data, config.moreResults)) { + return this.nextPageTokens; + } + } + + var exprs = config.outputToken; + if (typeof exprs === 'string') exprs = [exprs]; + AWS.util.arrayEach.call(this, exprs, function (expr) { + var output = jmespath.search(this.data, expr); + if (output) { + this.nextPageTokens = this.nextPageTokens || []; + this.nextPageTokens.push(output); + } + }); + + return this.nextPageTokens; + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/s3/managed_upload.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/s3/managed_upload.js new file mode 100755 index 0000000..24bcac4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/s3/managed_upload.js @@ -0,0 +1,600 @@ +var AWS = require('../core'); +var byteLength = AWS.util.string.byteLength; + +/** + * The managed uploader allows for easy and efficient uploading of buffers, + * blobs, or streams, using a configurable amount of concurrency to perform + * multipart uploads where possible. This abstraction also enables uploading + * streams of unknown size due to the use of multipart uploads. + * + * To construct a managed upload object, see the {constructor} function. + * + * ## Tracking upload progress + * + * The managed upload object can also track progress by attaching an + * 'httpUploadProgress' listener to the upload manager. This event is similar + * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress + * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more + * information. + * + * ## Handling Multipart Cleanup + * + * By default, this class will automatically clean up any multipart uploads + * when an individual part upload fails. This behavior can be disabled in order + * to manually handle failures by setting the `leavePartsOnError` configuration + * option to `true` when initializing the upload object. + * + * @!event httpUploadProgress(progress) + * Triggered when the uploader has uploaded more data. + * @note The `total` property may not be set if the stream being uploaded has + * not yet finished chunking. In this case the `total` will be undefined + * until the total stream size is known. + * @note This event will not be emitted in Node.js 0.8.x. + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload + * size is known. + * @context (see AWS.Request~send) + */ +AWS.S3.ManagedUpload = AWS.util.inherit({ + /** + * Creates a managed upload object with a set of configuration options. + * + * @note A "Body" parameter is required to be set prior to calling {send}. + * @option options params [map] a map of parameters to pass to the upload + * requests. The "Body" parameter is required to be specified either on + * the service or in the params option. + * @note ContentMD5 should not be provided when using the managed upload object. + * Instead, setting "computeChecksums" to true will enable automatic ContentMD5 generation + * by the managed upload object. + * @option options queueSize [Number] (4) the size of the concurrent queue + * manager to upload parts in parallel. Set to 1 for synchronous uploading + * of parts. Note that the uploader will buffer at most queueSize * partSize + * bytes into memory at any given time. + * @option options partSize [Number] (5mb) the size in bytes for each + * individual part to be uploaded. Adjust the part size to ensure the number + * of parts does not exceed {maxTotalParts}. See {minPartSize} for the + * minimum allowed part size. + * @option options leavePartsOnError [Boolean] (false) whether to abort the + * multipart upload if an error occurs. Set to true if you want to handle + * failures manually. + * @option options service [AWS.S3] an optional S3 service object to use for + * requests. This object might have bound parameters used by the uploader. + * @example Creating a default uploader for a stream object + * var upload = new AWS.S3.ManagedUpload({ + * params: {Bucket: 'bucket', Key: 'key', Body: stream} + * }); + * @example Creating an uploader with concurrency of 1 and partSize of 10mb + * var upload = new AWS.S3.ManagedUpload({ + * partSize: 10 * 1024 * 1024, queueSize: 1, + * params: {Bucket: 'bucket', Key: 'key', Body: stream} + * }); + * @see send + */ + constructor: function ManagedUpload(options) { + var self = this; + AWS.SequentialExecutor.call(self); + self.body = null; + self.sliceFn = null; + self.callback = null; + self.parts = {}; + self.completeInfo = []; + self.fillQueue = function() { + self.callback(new Error('Unsupported body payload ' + typeof self.body)); + }; + + self.configure(options); + }, + + /** + * @api private + */ + configure: function configure(options) { + options = options || {}; + this.partSize = this.minPartSize; + + if (options.queueSize) this.queueSize = options.queueSize; + if (options.partSize) this.partSize = options.partSize; + if (options.leavePartsOnError) this.leavePartsOnError = true; + + if (this.partSize < this.minPartSize) { + throw new Error('partSize must be greater than ' + + this.minPartSize); + } + + this.service = options.service; + this.bindServiceObject(options.params); + this.validateBody(); + this.adjustTotalBytes(); + }, + + /** + * @api private + */ + leavePartsOnError: false, + + /** + * @api private + */ + queueSize: 4, + + /** + * @api private + */ + partSize: null, + + /** + * @readonly + * @return [Number] the minimum number of bytes for an individual part + * upload. + */ + minPartSize: 1024 * 1024 * 5, + + /** + * @readonly + * @return [Number] the maximum allowed number of parts in a multipart upload. + */ + maxTotalParts: 10000, + + /** + * Initiates the managed upload for the payload. + * + * @callback callback function(err, data) + * @param err [Error] an error or null if no error occurred. + * @param data [map] The response data from the successful upload: + * * `Location` (String) the URL of the uploaded object + * * `ETag` (String) the ETag of the uploaded object + * * `Bucket` (String) the bucket to which the object was uploaded + * * `Key` (String) the key to which the object was uploaded + * @example Sending a managed upload object + * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; + * var upload = new AWS.S3.ManagedUpload({params: params}); + * upload.send(function(err, data) { + * console.log(err, data); + * }); + */ + send: function(callback) { + var self = this; + self.failed = false; + self.callback = callback || function(err) { if (err) throw err; }; + + var runFill = true; + if (self.sliceFn) { + self.fillQueue = self.fillBuffer; + } else if (AWS.util.isNode()) { + var Stream = AWS.util.nodeRequire('stream').Stream; + if (self.body instanceof Stream) { + runFill = false; + self.fillQueue = self.fillStream; + self.partBuffers = []; + self.body. + on('readable', function() { self.fillQueue(); }). + on('end', function() { + self.isDoneChunking = true; + self.numParts = self.totalPartNumbers; + self.fillQueue.call(self); + }); + } + } + + if (runFill) self.fillQueue.call(self); + }, + + /** + * Aborts a managed upload, including all concurrent upload requests. + * @note By default, calling this function will cleanup a multipart upload + * if one was created. To leave the multipart upload around after aborting + * a request, configure `leavePartsOnError` to `true` in the {constructor}. + * @note Calling {abort} in the browser environment will not abort any requests + * that are already in flight. If a multipart upload was created, any parts + * not yet uploaded will not be sent, and the multipart upload will be cleaned up. + * @example Aborting an upload + * var params = { + * Bucket: 'bucket', Key: 'key', + * Body: new Buffer(1024 * 1024 * 25) // 25MB payload + * }; + * var upload = s3.upload(params); + * upload.send(function (err, data) { + * if (err) console.log("Error:", err.code, err.message); + * else console.log(data); + * }); + * + * // abort request in 1 second + * setTimeout(upload.abort.bind(upload), 1000); + */ + abort: function() { + this.cleanup(AWS.util.error(new Error('Request aborted by user'), { + code: 'RequestAbortedError', retryable: false + })); + }, + + /** + * @api private + */ + validateBody: function validateBody() { + var self = this; + self.body = self.service.config.params.Body; + if (!self.body) throw new Error('params.Body is required'); + if (typeof self.body === 'string') { + self.body = new AWS.util.Buffer(self.body); + } + self.sliceFn = AWS.util.arraySliceFn(self.body); + }, + + /** + * @api private + */ + bindServiceObject: function bindServiceObject(params) { + params = params || {}; + var self = this; + + // bind parameters to new service object + if (!self.service) { + self.service = new AWS.S3({params: params}); + } else { + var config = AWS.util.copy(self.service.config); + self.service = new self.service.constructor.__super__(config); + self.service.config.params = + AWS.util.merge(self.service.config.params || {}, params); + } + }, + + /** + * @api private + */ + adjustTotalBytes: function adjustTotalBytes() { + var self = this; + try { // try to get totalBytes + self.totalBytes = byteLength(self.body); + } catch (e) { } + + // try to adjust partSize if we know payload length + if (self.totalBytes) { + var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts); + if (newPartSize > self.partSize) self.partSize = newPartSize; + } else { + self.totalBytes = undefined; + } + }, + + /** + * @api private + */ + isDoneChunking: false, + + /** + * @api private + */ + partPos: 0, + + /** + * @api private + */ + totalChunkedBytes: 0, + + /** + * @api private + */ + totalUploadedBytes: 0, + + /** + * @api private + */ + totalBytes: undefined, + + /** + * @api private + */ + numParts: 0, + + /** + * @api private + */ + totalPartNumbers: 0, + + /** + * @api private + */ + activeParts: 0, + + /** + * @api private + */ + doneParts: 0, + + /** + * @api private + */ + parts: null, + + /** + * @api private + */ + completeInfo: null, + + /** + * @api private + */ + failed: false, + + /** + * @api private + */ + multipartReq: null, + + /** + * @api private + */ + partBuffers: null, + + /** + * @api private + */ + partBufferLength: 0, + + /** + * @api private + */ + fillBuffer: function fillBuffer() { + var self = this; + var bodyLen = byteLength(self.body); + + if (bodyLen === 0) { + self.isDoneChunking = true; + self.numParts = 1; + self.nextChunk(self.body); + return; + } + + while (self.activeParts < self.queueSize && self.partPos < bodyLen) { + var endPos = Math.min(self.partPos + self.partSize, bodyLen); + var buf = self.sliceFn.call(self.body, self.partPos, endPos); + self.partPos += self.partSize; + + if (byteLength(buf) < self.partSize || self.partPos === bodyLen) { + self.isDoneChunking = true; + self.numParts = self.totalPartNumbers + 1; + } + self.nextChunk(buf); + } + }, + + /** + * @api private + */ + fillStream: function fillStream() { + var self = this; + if (self.activeParts >= self.queueSize) return; + + var buf = self.body.read(self.partSize - self.partBufferLength) || + self.body.read(); + if (buf) { + self.partBuffers.push(buf); + self.partBufferLength += buf.length; + self.totalChunkedBytes += buf.length; + } + + if (self.partBufferLength >= self.partSize) { + // if we have single buffer we avoid copyfull concat + var pbuf = self.partBuffers.length === 1 ? + self.partBuffers[0] : Buffer.concat(self.partBuffers); + self.partBuffers = []; + self.partBufferLength = 0; + + // if we have more than partSize, push the rest back on the queue + if (pbuf.length > self.partSize) { + var rest = pbuf.slice(self.partSize); + self.partBuffers.push(rest); + self.partBufferLength += rest.length; + pbuf = pbuf.slice(0, self.partSize); + } + + self.nextChunk(pbuf); + } + + if (self.isDoneChunking && !self.isDoneSending) { + // if we have single buffer we avoid copyfull concat + pbuf = self.partBuffers.length === 1 ? + self.partBuffers[0] : Buffer.concat(self.partBuffers); + self.partBuffers = []; + self.partBufferLength = 0; + self.totalBytes = self.totalChunkedBytes; + self.isDoneSending = true; + + if (self.numParts === 0 || pbuf.length > 0) { + self.numParts++; + self.nextChunk(pbuf); + } + } + + self.body.read(0); + }, + + /** + * @api private + */ + nextChunk: function nextChunk(chunk) { + var self = this; + if (self.failed) return null; + + var partNumber = ++self.totalPartNumbers; + if (self.isDoneChunking && partNumber === 1) { + var req = self.service.putObject({Body: chunk}); + req._managedUpload = self; + req.on('httpUploadProgress', self.progress).send(self.finishSinglePart); + return null; + } else if (self.service.config.params.ContentMD5) { + var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), { + code: 'InvalidDigest', retryable: false + }); + + self.cleanup(err); + return null; + } + + if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) { + return null; // Already uploaded this part. + } + + self.activeParts++; + if (!self.service.config.params.UploadId) { + + if (!self.multipartReq) { // create multipart + self.multipartReq = self.service.createMultipartUpload(); + self.multipartReq.on('success', function(resp) { + self.service.config.params.UploadId = resp.data.UploadId; + self.multipartReq = null; + }); + self.queueChunks(chunk, partNumber); + self.multipartReq.on('error', function(err) { + self.cleanup(err); + }); + self.multipartReq.send(); + } else { + self.queueChunks(chunk, partNumber); + } + } else { // multipart is created, just send + self.uploadPart(chunk, partNumber); + } + }, + + /** + * @api private + */ + uploadPart: function uploadPart(chunk, partNumber) { + var self = this; + + var partParams = { + Body: chunk, + ContentLength: AWS.util.string.byteLength(chunk), + PartNumber: partNumber + }; + + var partInfo = {ETag: null, PartNumber: partNumber}; + self.completeInfo[partNumber] = partInfo; + + var req = self.service.uploadPart(partParams); + self.parts[partNumber] = req; + req._lastUploadedBytes = 0; + req._managedUpload = self; + req.on('httpUploadProgress', self.progress); + req.send(function(err, data) { + delete self.parts[partParams.PartNumber]; + self.activeParts--; + + if (!err && (!data || !data.ETag)) { + var message = 'No access to ETag property on response.'; + if (AWS.util.isBrowser()) { + message += ' Check CORS configuration to expose ETag header.'; + } + + err = AWS.util.error(new Error(message), { + code: 'ETagMissing', retryable: false + }); + } + if (err) return self.cleanup(err); + + partInfo.ETag = data.ETag; + self.doneParts++; + if (self.isDoneChunking && self.doneParts === self.numParts) { + self.finishMultiPart(); + } else { + self.fillQueue.call(self); + } + }); + }, + + /** + * @api private + */ + queueChunks: function queueChunks(chunk, partNumber) { + var self = this; + self.multipartReq.on('success', function() { + self.uploadPart(chunk, partNumber); + }); + }, + + /** + * @api private + */ + cleanup: function cleanup(err) { + var self = this; + if (self.failed) return; + + // clean up stream + if (typeof self.body.removeAllListeners === 'function' && + typeof self.body.resume === 'function') { + self.body.removeAllListeners('readable'); + self.body.removeAllListeners('end'); + self.body.resume(); + } + + if (self.service.config.params.UploadId && !self.leavePartsOnError) { + self.service.abortMultipartUpload().send(); + } + + AWS.util.each(self.parts, function(partNumber, part) { + part.removeAllListeners('complete'); + part.abort(); + }); + + self.activeParts = 0; + self.partPos = 0; + self.numParts = 0; + self.totalPartNumbers = 0; + self.parts = {}; + self.failed = true; + self.callback(err); + }, + + /** + * @api private + */ + finishMultiPart: function finishMultiPart() { + var self = this; + var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } }; + self.service.completeMultipartUpload(completeParams, function(err, data) { + if (err) return self.cleanup(err); + else self.callback(err, data); + }); + }, + + /** + * @api private + */ + finishSinglePart: function finishSinglePart(err, data) { + var upload = this.request._managedUpload; + var httpReq = this.request.httpRequest; + var endpoint = httpReq.endpoint; + if (err) return upload.callback(err); + data.Location = + [endpoint.protocol, '//', endpoint.host, httpReq.path].join(''); + data.key = this.request.params.Key; // will stay undocumented + data.Key = this.request.params.Key; + data.Bucket = this.request.params.Bucket; + upload.callback(err, data); + }, + + /** + * @api private + */ + progress: function progress(info) { + var upload = this._managedUpload; + if (this.operation === 'putObject') { + info.part = 1; + info.key = this.params.Key; + } else { + upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes; + this._lastUploadedBytes = info.loaded; + info = { + loaded: upload.totalUploadedBytes, + total: upload.totalBytes, + part: this.params.PartNumber, + key: this.params.Key + }; + } + upload.emit('httpUploadProgress', [info]); + } +}); + +AWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor); +module.exports = AWS.S3.ManagedUpload; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/sequential_executor.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/sequential_executor.js new file mode 100755 index 0000000..88c002b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/sequential_executor.js @@ -0,0 +1,231 @@ +var AWS = require('./core'); + +/** + * @api private + * @!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._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 = function() { }; + 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, prevError) { + var self = this; + var error = prevError || null; + + function callNextListener(err) { + if (err) { + error = AWS.util.error(error || new Error(), err); + if (self._haltHandlersOnError) { + return doneCallback.call(self, error); + } + } + self.callListeners(listeners, args, doneCallback, error); + } + + while (listeners.length > 0) { + var listener = listeners.shift(); + if (listener._isAsync) { // asynchronous listener + listener.apply(self, args.concat([callNextListener])); + return; // stop here, callNextListener will continue + } else { // synchronous listener + try { + listener.apply(self, args); + } catch (err) { + error = AWS.util.error(error || new Error(), err); + } + if (error && self._haltHandlersOnError) { + doneCallback.call(self, error); + return; + } + } + } + doneCallback.call(self, error); + }, + + /** + * 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; + } +}); + +/** + * {on} is the prefered method. + * @api private + */ +AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; + +module.exports = AWS.SequentialExecutor; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/service.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/service.js new file mode 100755 index 0000000..35952a2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/service.js @@ -0,0 +1,533 @@ +var AWS = require('./core'); +var Api = require('./model/api'); +var regionConfig = require('./region_config'); +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) { + var svcConfig = AWS.config[this.serviceIdentifier]; + + this.config = new AWS.Config(AWS.config); + if (svcConfig) this.config.update(svcConfig, true); + if (config) this.config.update(config, true); + + this.validateService(); + if (!this.config.endpoint) regionConfig(this); + + this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); + this.setEndpoint(this.config.endpoint); + }, + + /** + * @api private + */ + validateService: function validateService() { + }, + + /** + * @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).toUnauthenticated(); + 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; + if (this.config.signatureVersion) { + version = this.config.signatureVersion; + } else { + version = this.api.signatureVersion; + } + return AWS.Signers.RequestSigner.getVersion(version); + }, + + /** + * @api private + */ + serviceInterface: function serviceInterface() { + switch (this.api.protocol) { + case 'ec2': return AWS.EventListeners.Query; + 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.protocol) { + throw new Error('Invalid service `protocol\' ' + + this.api.protocol + ' 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(retryCount) { + var retryDelayOptions = this.config.retryDelayOptions || {}; + var customBackoff = retryDelayOptions.customBackoff || null; + if (typeof customBackoff === 'function') { + return customBackoff(retryCount); + } + var base = retryDelayOptions.base || 30; + var delay = Math.random() * (Math.pow(2, retryCount) * base); + return delay; + }, + + /** + * @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 + */ + clockSkewError: function clockSkewError(error) { + switch (error.code) { + case 'RequestTimeTooSkewed': + case 'RequestExpired': + case 'InvalidSignatureException': + case 'SignatureDoesNotMatch': + case 'AuthFailure': + case 'RequestInTheFuture': + return true; + default: return false; + } + }, + + /** + * @api private + */ + throttledError: function throttledError(error) { + // this logic varies between services + switch (error.code) { + case 'ProvisionedThroughputExceededException': + case 'Throttling': + case 'ThrottlingException': + case 'RequestLimitExceeded': + case 'RequestThrottled': + return true; + default: + return false; + } + }, + + /** + * @api private + */ + endpointFromTemplate: function endpointFromTemplate(endpoint) { + if (typeof endpoint !== 'string') return endpoint; + + var e = endpoint; + e = e.replace(/\{service\}/g, this.api.endpointPrefix); + e = e.replace(/\{region\}/g, this.config.region); + e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); + return e; + }, + + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + this.endpoint = new AWS.Endpoint(endpoint, this.config); + }, + + /** + * @api private + */ + paginationConfig: function paginationConfig(operation, throwException) { + var paginator = this.api.operations[operation].paginator; + if (!paginator) { + if (throwException) { + var e = new Error(); + throw AWS.util.error(e, 'No pagination configuration for ' + operation); + } + return null; + } + + return paginator; + } +}); + +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; + var operation = svc.prototype.api.operations[method]; + if (operation.authtype === 'none') { + svc.prototype[method] = function (params, callback) { + return this.makeUnauthenticatedRequest(method, params, callback); + }; + } else { + 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) { + AWS.Service._serviceMap[serviceIdentifier] = true; + 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.isApi) { + svc.prototype.api = api; + } else { + svc.prototype.api = new Api(api); + } + } + + if (typeof version === 'string') { + if (apiConfig) { + setApi(apiConfig); + } else { + try { + setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); + } catch (err) { + throw AWS.util.error(err, { + message: 'Could not find API configuration ' + + superclass.serviceIdentifier + '-' + version + }); + } + } + 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; + }, + + /** + * @api private + */ + hasService: function(identifier) { + return AWS.Service._serviceMap.hasOwnProperty(identifier); + }, + + /** + * @api private + */ + _serviceMap: {} +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services.js new file mode 100755 index 0000000..03d1b7c --- /dev/null +++ b/cognitoLambdaTrigger/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('./api_loader'); + +// define services using map +apis.services.forEach(function(identifier) { + var name = apis.serviceName(identifier); + 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('./services/' + identifier); +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/apigateway.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/apigateway.js new file mode 100755 index 0000000..feceff0 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/apigateway.js @@ -0,0 +1,34 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.APIGateway.prototype, { +/** + * Sets the Accept header to application/json. + * + * @api private + */ + setAcceptHeader: function setAcceptHeader(req) { + var httpRequest = req.httpRequest; + httpRequest.headers['Accept'] = 'application/json'; + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('build', this.setAcceptHeader); + if (request.operation === 'getSdk') { + request.addListener('extractData', this.useRawPayload); + } + }, + + useRawPayload: function useRawPayload(resp) { + var req = resp.request; + var operation = req.operation; + var rules = req.service.api.operations[operation].output || {}; + if (rules.payload) { + var body = resp.httpResponse.body; + resp.data[rules.payload] = body; + } + } +}); + diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudfront.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudfront.js new file mode 100755 index 0000000..3a918c2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudfront.js @@ -0,0 +1,12 @@ +var AWS = require('../core'); + +// pull in CloudFront signer +require('../cloudfront/signer'); + +AWS.util.update(AWS.CloudFront.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('extractData', AWS.util.hoistPayloadMember); + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudsearchdomain.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudsearchdomain.js new file mode 100755 index 0000000..e9c9431 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cloudsearchdomain.js @@ -0,0 +1,120 @@ +var AWS = require('../core'); + +/** + * Constructs a service interface object. Each API operation is exposed as a + * function on service. + * + * ### Sending a Request Using CloudSearchDomain + * + * ```javascript + * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); + * csd.search(params, function (err, data) { + * if (err) console.log(err, err.stack); // an error occurred + * else console.log(data); // successful response + * }); + * ``` + * + * ### Locking the API Version + * + * In order to ensure that the CloudSearchDomain object uses this specific API, + * you can construct the object by passing the `apiVersion` option to the + * constructor: + * + * ```javascript + * var csd = new AWS.CloudSearchDomain({ + * endpoint: 'my.host.tld', + * apiVersion: '2013-01-01' + * }); + * ``` + * + * You can also set the API version globally in `AWS.config.apiVersions` using + * the **cloudsearchdomain** service identifier: + * + * ```javascript + * AWS.config.apiVersions = { + * cloudsearchdomain: '2013-01-01', + * // other service API versions + * }; + * + * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); + * ``` + * + * @note You *must* provide an `endpoint` configuration parameter when + * constructing this service. See {constructor} for more information. + * + * @!method constructor(options = {}) + * Constructs a service object. This object has one method for each + * API operation. + * + * @example Constructing a CloudSearchDomain object + * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); + * @note You *must* provide an `endpoint` when constructing this service. + * @option (see AWS.Config.constructor) + * + * @service cloudsearchdomain + * @version 2013-01-01 + */ +AWS.util.update(AWS.CloudSearchDomain.prototype, { + /** + * @api private + */ + validateService: function validateService() { + if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { + var msg = 'AWS.CloudSearchDomain requires an explicit ' + + '`endpoint\' configuration option.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_CREDENTIALS + ); + request.onAsync('validate', this.validateCredentials); + request.addListener('validate', this.updateRegion); + if (request.operation === 'search') { + request.addListener('build', this.convertGetToPost); + } + }, + + /** + * @api private + */ + validateCredentials: function(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + req.service.config.getCredentials(function(err) { + if (err) { + req.removeListener('sign', AWS.EventListeners.Core.SIGN); + } + done(); + }); + }, + + /** + * @api private + */ + convertGetToPost: function(request) { + var httpRequest = request.httpRequest + // convert queries to POST to avoid length restrictions + var path = httpRequest.path.split('?') + httpRequest.method = 'POST' + httpRequest.path = path[0] + httpRequest.body = path[1] + httpRequest.headers['Content-Length'] = httpRequest.body.length + httpRequest.headers['Content-Type'] = 'application/x-www-form-urlencoded' + }, + + /** + * @api private + */ + updateRegion: function updateRegion(request) { + var endpoint = request.httpRequest.endpoint.hostname; + var zones = endpoint.split('.'); + request.httpRequest.region = zones[1] || request.httpRequest.region; + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cognitoidentity.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cognitoidentity.js new file mode 100755 index 0000000..7fa7048 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/cognitoidentity.js @@ -0,0 +1,15 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.CognitoIdentity.prototype, { + getOpenIdToken: function getOpenIdToken(params, callback) { + return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); + }, + + getId: function getId(params, callback) { + return this.makeUnauthenticatedRequest('getId', params, callback); + }, + + getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { + return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/dynamodb.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/dynamodb.js new file mode 100755 index 0000000..a95bd97 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/dynamodb.js @@ -0,0 +1,53 @@ +var AWS = require('../core'); +require('../dynamodb/document_client'); + +AWS.util.update(AWS.DynamoDB.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (request.service.config.dynamoDbCrc32) { + request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); + request.addListener('extractData', this.checkCrc32); + request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); + } + }, + + /** + * @api private + */ + checkCrc32: function checkCrc32(resp) { + if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) { + resp.data = null; + resp.error = AWS.util.error(new Error(), { + code: 'CRC32CheckFailed', + message: 'CRC32 integrity check failed', + retryable: true + }); + resp.request.haltHandlersOnError(); + throw (resp.error); + } + }, + + /** + * @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(retryCount) { + var delay = retryCount > 0 ? (50 * Math.pow(2, retryCount - 1)) : 0; + return delay; + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/ec2.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/ec2.js new file mode 100755 index 0000000..94122bd --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/ec2.js @@ -0,0 +1,62 @@ +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); + + if (request.operation === 'copySnapshot') { + request.onAsync('validate', this.buildCopySnapshotPresignedUrl); + } + }, + + /** + * @api private + */ + buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) { + if (req.params.PresignedUrl || req._subRequest) { + return done(); + } + + req.params = AWS.util.copy(req.params); + req.params.DestinationRegion = req.service.config.region; + + var config = AWS.util.copy(req.service.config); + delete config.endpoint; + config.region = req.params.SourceRegion; + var svc = new req.service.constructor(config); + var newReq = svc[req.operation](req.params); + newReq._subRequest = true; + newReq.presign(function(err, url) { + if (err) done(err); + else { + req.params.PresignedUrl = url; + done(); + } + }); + }, + + /** + * @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 + }); + } + resp.error.requestId = data.RequestID || null; + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/glacier.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/glacier.js new file mode 100755 index 0000000..115cff4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/glacier.js @@ -0,0 +1,114 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.Glacier.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (Array.isArray(request._events.validate)) { + request._events.validate.unshift(this.validateAccountId); + } else { + request.on('validate', this.validateAccountId); + } + request.removeListener('afterBuild', + AWS.EventListeners.Core.COMPUTE_SHA256); + request.on('build', this.addGlacierApiVersion); + request.on('build', this.addTreeHashHeaders); + }, + + /** + * @api private + */ + validateAccountId: function validateAccountId(request) { + if (request.params.accountId !== undefined) return; + request.params = AWS.util.copy(request.params); + request.params.accountId = '-'; + }, + + /** + * @api private + */ + addGlacierApiVersion: function addGlacierApiVersion(request) { + var version = request.service.api.apiVersion; + request.httpRequest.headers['x-amz-glacier-version'] = version; + }, + + /** + * @api private + */ + 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/iotdata.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/iotdata.js new file mode 100755 index 0000000..1f09b40 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/iotdata.js @@ -0,0 +1,88 @@ +var AWS = require('../core'); + +/** + * Constructs a service interface object. Each API operation is exposed as a + * function on service. + * + * ### Sending a Request Using IotData + * + * ```javascript + * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); + * iotdata.getThingShadow(params, function (err, data) { + * if (err) console.log(err, err.stack); // an error occurred + * else console.log(data); // successful response + * }); + * ``` + * + * ### Locking the API Version + * + * In order to ensure that the IotData object uses this specific API, + * you can construct the object by passing the `apiVersion` option to the + * constructor: + * + * ```javascript + * var iotdata = new AWS.IotData({ + * endpoint: 'my.host.tld', + * apiVersion: '2015-05-28' + * }); + * ``` + * + * You can also set the API version globally in `AWS.config.apiVersions` using + * the **iotdata** service identifier: + * + * ```javascript + * AWS.config.apiVersions = { + * iotdata: '2015-05-28', + * // other service API versions + * }; + * + * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); + * ``` + * + * @note You *must* provide an `endpoint` configuration parameter when + * constructing this service. See {constructor} for more information. + * + * @!method constructor(options = {}) + * Constructs a service object. This object has one method for each + * API operation. + * + * @example Constructing a IotData object + * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); + * @note You *must* provide an `endpoint` when constructing this service. + * @option (see AWS.Config.constructor) + * + * @service iotdata + * @version 2015-05-28 + */ +AWS.util.update(AWS.IotData.prototype, { + /** + * @api private + */ + validateService: function validateService() { + if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { + var msg = 'AWS.IotData requires an explicit ' + + '`endpoint\' configuration option.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('validateResponse', this.validateResponseBody) + }, + + /** + * @api private + */ + validateResponseBody: function validateResponseBody(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + var bodyCheck = body.trim(); + if (!bodyCheck || bodyCheck.charAt(0) !== '{') { + resp.httpResponse.body = ''; + } + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/machinelearning.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/machinelearning.js new file mode 100755 index 0000000..e2808f4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/machinelearning.js @@ -0,0 +1,24 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.MachineLearning.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (request.operation === 'predict') { + request.addListener('build', this.buildEndpoint); + } + }, + + /** + * Updates request endpoint from PredictEndpoint + * @api private + */ + buildEndpoint: function buildEndpoint(request) { + var url = request.params.PredictEndpoint; + if (url) { + request.httpRequest.endpoint = new AWS.Endpoint(url); + } + } + +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/route53.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/route53.js new file mode 100755 index 0000000..1dc868f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/route53.js @@ -0,0 +1,18 @@ +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/, '/'); + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/s3.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/s3.js new file mode 100755 index 0000000..bf9d120 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/s3.js @@ -0,0 +1,748 @@ +var AWS = require('../core'); + +// Pull in managed upload extension +require('../s3/managed_upload'); + +/** + * @api private + */ +var operationsWith200StatusCodeError = { + 'completeMultipartUpload': true, + 'copyObject': true, + 'uploadPartCopy': true +}; + +/** + * @api private + */ + var regionRedirectErrorCodes = [ + 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints + 'BadRequest', // head operations on virtual-hosted global bucket endpoints + 'PermanentRedirect', // non-head operations on path-style or regional endpoints + 301 // head operations on path-style or regional endpoints + ]; + +AWS.util.update(AWS.S3.prototype, { + /** + * @api private + */ + validateService: function validateService() { + // default to us-east-1 when no region is provided + if (!this.config.region) this.config.region = 'us-east-1'; + + if (!this.config.endpoint && this.config.s3BucketEndpoint) { + var msg = 'An endpoint must be provided when configuring ' + + '`s3BucketEndpoint` to true.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('validate', this.validateScheme); + request.addListener('validate', this.validateBucketEndpoint); + request.addListener('validate', this.correctBucketRegionFromCache); + request.addListener('build', this.addContentType); + request.addListener('build', this.populateURI); + request.addListener('build', this.computeContentMd5); + request.addListener('build', this.computeSseCustomerKeyMd5); + request.addListener('afterBuild', this.addExpect100Continue); + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_REGION); + request.addListener('extractError', this.extractError); + request.onAsync('extractError', this.requestBucketRegion); + request.addListener('extractData', this.extractData); + request.addListener('extractData', AWS.util.hoistPayloadMember); + request.addListener('beforePresign', this.prepareSignedUrl); + if (AWS.util.isBrowser()) { + request.onAsync('retry', this.reqRegionForNetworkingError); + } + }, + + /** + * @api private + */ + validateScheme: function(req) { + var params = req.params, + scheme = req.httpRequest.endpoint.protocol, + sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey; + if (sensitive && scheme !== 'https:') { + var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' + + 'to \'true\' in your configuration'; + throw AWS.util.error(new Error(), + { code: 'ConfigError', message: msg }); + } + }, + + /** + * @api private + */ + validateBucketEndpoint: function(req) { + if (!req.params.Bucket && req.service.config.s3BucketEndpoint) { + var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.'; + throw AWS.util.error(new Error(), + { code: 'ConfigError', message: msg }); + } + }, + + isValidAccelerateOperation: function isValidAccelerateOperation(operation) { + var invalidOperations = [ + 'createBucket', + 'deleteBucket', + 'listBuckets' + ]; + return invalidOperations.indexOf(operation) === -1; + }, + + + /** + * 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; + var service = req.service; + var endpoint = httpRequest.endpoint; + + if (b) { + if (!service.pathStyleBucketName(b)) { + if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) { + endpoint.hostname = b + '.s3-accelerate.amazonaws.com'; + } else if (!service.config.s3BucketEndpoint) { + endpoint.hostname = + b + '.' + endpoint.hostname; + } + + var port = endpoint.port; + if (port !== 80 && port !== 443) { + endpoint.host = endpoint.hostname + ':' + + endpoint.port; + } else { + endpoint.host = endpoint.hostname; + } + + httpRequest.virtualHostedBucket = b; // needed for signing the request + service.removeVirtualHostedBucketFromPath(req); + } + } + }, + + /** + * Takes the bucket name out of the path if bucket is virtual-hosted + * + * @api private + */ + removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) { + var httpRequest = req.httpRequest; + var bucket = httpRequest.virtualHostedBucket; + if (bucket && httpRequest.path) { + httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), ''); + if (httpRequest.path[0] !== '/') { + httpRequest.path = '/' + httpRequest.path; + } + } + }, + + /** + * Adds Expect: 100-continue header if payload is greater-or-equal 1MB + * @api private + */ + addExpect100Continue: function addExpect100Continue(req) { + var len = req.httpRequest.headers['Content-Length']; + if (AWS.util.isNode() && len >= 1024 * 1024) { + req.httpRequest.headers['Expect'] = '100-continue'; + } + }, + + /** + * Adds a default content type if none is supplied. + * + * @api private + */ + addContentType: function addContentType(req) { + var httpRequest = req.httpRequest; + if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') { + // Content-Type is not set in GET/HEAD requests + delete httpRequest.headers['Content-Type']; + return; + } + + if (!httpRequest.headers['Content-Type']) { // always have a Content-Type + httpRequest.headers['Content-Type'] = 'application/octet-stream'; + } + + var contentType = httpRequest.headers['Content-Type']; + if (AWS.util.isBrowser()) { + if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) { + var charset = '; charset=UTF-8'; + httpRequest.headers['Content-Type'] += charset; + } else { + var replaceFn = function(_, prefix, charsetName) { + return prefix + charsetName.toUpperCase(); + }; + + httpRequest.headers['Content-Type'] = + contentType.replace(/(;\s*charset=)(.+)$/, replaceFn); + } + } + }, + + /** + * @api private + */ + computableChecksumOperations: { + putBucketCors: true, + putBucketLifecycle: true, + putBucketLifecycleConfiguration: true, + putBucketTagging: true, + deleteObjects: true, + putBucketReplication: 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 + */ + computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) { + var keys = { + SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5', + CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5' + }; + AWS.util.each(keys, function(key, header) { + if (req.params[key]) { + var value = AWS.util.crypto.md5(req.params[key], 'base64'); + req.httpRequest.headers[header] = value; + } + }); + }, + + /** + * 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.config.s3BucketEndpoint) return false; + + 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; + }, + + /** + * @return [Boolean] whether response contains an error + * @api private + */ + successfulResponse: function successfulResponse(resp) { + var req = resp.request; + var httpResponse = resp.httpResponse; + if (operationsWith200StatusCodeError[req.operation] && + 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 (operationsWith200StatusCodeError[request.operation] && + error.statusCode === 200) { + return true; + } else if (request._requestRegionForBucket && + request.service.bucketRegionCache[request._requestRegionForBucket]) { + return false; + } else if (error && error.code === 'RequestTimeout') { + return true; + } else if (error && + regionRedirectErrorCodes.indexOf(error.code) != -1 && + error.region && error.region != request.httpRequest.region) { + request.httpRequest.region = error.region; + if (error.statusCode === 301) { + request.service.updateReqBucketRegion(request); + } + return true; + } else { + var _super = AWS.Service.prototype.retryableError; + return _super.call(this, error, request); + } + }, + + /** + * Updates httpRequest with region. If region is not provided, then + * the httpRequest will be updated based on httpRequest.region + * + * @api private + */ + updateReqBucketRegion: function updateReqBucketRegion(request, region) { + var httpRequest = request.httpRequest; + if (typeof region === 'string' && region.length) { + httpRequest.region = region; + } + if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)) { + return; + } + var service = request.service; + var s3Config = service.config; + var s3BucketEndpoint = s3Config.s3BucketEndpoint; + if (s3BucketEndpoint) { + delete s3Config.s3BucketEndpoint; + } + var newConfig = AWS.util.copy(s3Config); + delete newConfig.endpoint; + newConfig.region = httpRequest.region; + + httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint; + service.populateURI(request); + s3Config.s3BucketEndpoint = s3BucketEndpoint; + httpRequest.headers.Host = httpRequest.endpoint.host; + + if (request._asm.currentState === 'validate') { + request.removeListener('build', service.populateURI); + request.addListener('build', service.removeVirtualHostedBucketFromPath); + } + }, + + /** + * 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/); + delete resp.data['_']; + if (match) { + resp.data.LocationConstraint = match[1]; + } else { + resp.data.LocationConstraint = ''; + } + } + var bucket = req.params.Bucket || null; + if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) { + req.service.clearBucketRegionCache(bucket); + } else { + var headers = resp.httpResponse.headers || {}; + var region = headers['x-amz-bucket-region'] || null; + if (!region && req.operation === 'createBucket' && !resp.error) { + var createBucketConfiguration = req.params.CreateBucketConfiguration; + if (!createBucketConfiguration) { + region = 'us-east-1'; + } else if (createBucketConfiguration.LocationConstraint === 'EU') { + region = 'eu-west-1'; + } else { + region = createBucketConfiguration.LocationConstraint; + } + } + if (region) { + if (bucket && region !== req.service.bucketRegionCache[bucket]) { + req.service.bucketRegionCache[bucket] = region; + } + } + } + req.service.extractRequestIds(resp); + }, + + /** + * 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 req = resp.request; + var code = resp.httpResponse.statusCode; + var body = resp.httpResponse.body || ''; + + var headers = resp.httpResponse.headers || {}; + var region = headers['x-amz-bucket-region'] || null; + var bucket = req.params.Bucket || null; + var bucketRegionCache = req.service.bucketRegionCache; + if (region && bucket && region !== bucketRegionCache[bucket]) { + bucketRegionCache[bucket] = region; + } + + var cachedRegion; + if (codes[code] && body.length === 0) { + if (bucket && !region) { + cachedRegion = bucketRegionCache[bucket] || null; + if (cachedRegion !== req.httpRequest.region) { + region = cachedRegion; + } + } + resp.error = AWS.util.error(new Error(), { + code: codes[code], + message: null, + region: region + }); + } else { + var data = new AWS.XML.Parser().parse(body.toString()); + + if (data.Region && !region) { + region = data.Region; + if (bucket && region !== bucketRegionCache[bucket]) { + bucketRegionCache[bucket] = region; + } + } else if (bucket && !region && !data.Region) { + cachedRegion = bucketRegionCache[bucket] || null; + if (cachedRegion !== req.httpRequest.region) { + region = cachedRegion; + } + } + + resp.error = AWS.util.error(new Error(), { + code: data.Code || code, + message: data.Message || null, + region: region + }); + } + req.service.extractRequestIds(resp); + }, + + /** + * If region was not obtained synchronously, then send async request + * to get bucket region for errors resulting from wrong region. + * + * @api private + */ + requestBucketRegion: function requestBucketRegion(resp, done) { + var error = resp.error; + var req = resp.request; + var bucket = req.params.Bucket || null; + + if (!error || !bucket || error.region || req.operation === 'listObjects' || + (AWS.util.isNode() && req.operation === 'headBucket') || + (error.statusCode === 400 && req.operation !== 'headObject') || + regionRedirectErrorCodes.indexOf(error.code) === -1) { + return done(); + } + + var regionReq = req.service.listObjects({Bucket: bucket, MaxKeys: 0}); + regionReq._requestRegionForBucket = bucket; + regionReq.send(function() { + var region = req.service.bucketRegionCache[bucket] || null; + error.region = region; + done(); + }); + }, + + /** + * For browser only. If NetworkingError received, will attempt to obtain + * the bucket region. + * + * @api private + */ + reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) { + if (!AWS.util.isBrowser()) { + return done(); + } + var error = resp.error; + var request = resp.request; + var bucket = request.params.Bucket; + if (!error || error.code !== 'NetworkingError' || !bucket || + request.httpRequest.region === 'us-east-1') { + return done(); + } + var service = request.service; + var bucketRegionCache = service.bucketRegionCache; + var cachedRegion = bucketRegionCache[bucket] || null; + + if (cachedRegion && cachedRegion !== request.httpRequest.region) { + service.updateReqBucketRegion(request, cachedRegion); + done(); + } else if (!service.dnsCompatibleBucketName(bucket)) { + service.updateReqBucketRegion(request, 'us-east-1'); + if (bucketRegionCache[bucket] !== 'us-east-1') { + bucketRegionCache[bucket] = 'us-east-1'; + } + done(); + } else if (request.httpRequest.virtualHostedBucket) { + var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0}); + service.updateReqBucketRegion(getRegionReq, 'us-east-1'); + getRegionReq._requestRegionForBucket = bucket; + + getRegionReq.send(function() { + var region = service.bucketRegionCache[bucket] || null; + if (region && region !== request.httpRequest.region) { + service.updateReqBucketRegion(request, region); + } + done(); + }); + } else { + // DNS-compatible path-style + // (s3ForcePathStyle or bucket name with dot over https) + // Cannot obtain region information for this case + done(); + } + }, + + /** + * Cache for bucket region. + * + * @api private + */ + bucketRegionCache: {}, + + /** + * Clears bucket region cache. + * + * @api private + */ + clearBucketRegionCache: function(buckets) { + var bucketRegionCache = this.bucketRegionCache; + if (!buckets) { + buckets = Object.keys(bucketRegionCache); + } else if (typeof buckets === 'string') { + buckets = [buckets]; + } + for (var i = 0; i < buckets.length; i++) { + delete bucketRegionCache[buckets[i]]; + } + return bucketRegionCache; + }, + + /** + * Corrects request region if bucket's cached region is different + * + * @api private + */ + correctBucketRegionFromCache: function correctBucketRegionFromCache(req) { + var bucket = req.params.Bucket || null; + if (bucket) { + var service = req.service; + var requestRegion = req.httpRequest.region; + var cachedRegion = service.bucketRegionCache[bucket]; + if (cachedRegion && cachedRegion !== requestRegion) { + service.updateReqBucketRegion(req, cachedRegion); + } + } + }, + + /** + * Extracts S3 specific request ids from the http response. + * + * @api private + */ + extractRequestIds: function extractRequestIds(resp) { + var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null; + var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null; + resp.extendedRequestId = extendedRequestId; + resp.cfId = cfId; + + if (resp.error) { + resp.error.requestId = resp.requestId || null; + resp.error.extendedRequestId = extendedRequestId; + resp.error.cfId = cfId; + } + }, + + /** + * 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); + return request.presign(expires, callback); + }, + + /** + * @api private + */ + prepareSignedUrl: function prepareSignedUrl(request) { + request.addListener('validate', request.service.noPresignedContentLength); + request.removeListener('build', request.service.addContentType); + if (!request.params.Body) { + // no Content-MD5/SHA-256 if body is not provided + request.removeListener('build', request.service.computeContentMd5); + } else { + request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); + } + }, + + noPresignedContentLength: function noPresignedContentLength(request) { + if (request.params.ContentLength !== undefined) { + throw AWS.util.error(new Error(), {code: 'UnexpectedParameter', + message: 'ContentLength is not supported in pre-signed URLs.'}); + } + }, + + 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 (typeof params === 'function' || !params) { + callback = callback || 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); + }, + + /** + * @overload upload(params = {}, [options], [callback]) + * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent + * concurrent handling of parts if the payload is large enough. You can + * configure the concurrent queue size by setting `options`. + * + * @param (see AWS.S3.putObject) + * @option (see AWS.S3.ManagedUpload.constructor) + * @return [AWS.S3.ManagedUpload] the managed upload object that can call + * `send()` or track progress. + * @example Uploading a stream object + * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; + * s3.upload(params, function(err, data) { + * console.log(err, data); + * }); + * @example Uploading a stream with concurrency of 1 and partSize of 10mb + * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; + * var options = {partSize: 10 * 1024 * 1024, queueSize: 1}; + * s3.upload(params, options, function(err, data) { + * console.log(err, data); + * }); + * @callback callback function(err, data) + * @param err [Error] an error or null if no error occurred. + * @param data [map] The response data from the successful upload: + * * `Location` (String) the URL of the uploaded object + * * `ETag` (String) the ETag of the uploaded object + * * `Bucket` (String) the bucket to which the object was uploaded + * * `Key` (String) the key to which the object was uploaded + * @see AWS.S3.ManagedUpload + */ + upload: function upload(params, options, callback) { + if (typeof options === 'function' && callback === undefined) { + callback = options; + options = null; + } + + options = options || {}; + options = AWS.util.merge(options || {}, {service: this, params: params}); + + var uploader = new AWS.S3.ManagedUpload(options); + if (typeof callback === 'function') uploader.send(callback); + return uploader; + } +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sqs.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sqs.js new file mode 100755 index 0000000..42aaf2e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sqs.js @@ -0,0 +1,131 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.SQS.prototype, { + /** + * @api private + */ + 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); + } + } + }, + + /** + * @api private + */ + 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); + } + }, + + /** + * @api private + */ + 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(', ')); + } + }, + + /** + * @api private + */ + 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(', ')); + } + }, + + /** + * @api private + */ + 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 + }); + }, + + /** + * @api private + */ + isChecksumValid: function isChecksumValid(checksum, data) { + return this.calculateChecksum(data) === checksum; + }, + + /** + * @api private + */ + calculateChecksum: function calculateChecksum(data) { + return AWS.util.crypto.md5(data, 'hex'); + }, + + /** + * @api private + */ + 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sts.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/sts.js new file mode 100755 index 0000000..6e9fd00 --- /dev/null +++ b/cognitoLambdaTrigger/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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/swf.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/services/swf.js new file mode 100755 index 0000000..d252087 --- /dev/null +++ b/cognitoLambdaTrigger/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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/presign.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/presign.js new file mode 100755 index 0000000..0a521e9 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/presign.js @@ -0,0 +1,112 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +var expiresHeader = 'presigned-expires'; + +/** + * @api private + */ +function signedUrlBuilder(request) { + var expires = request.httpRequest.headers[expiresHeader]; + + 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 = 'Presigning 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 if (request.service.getSignerClass() === AWS.Signers.S3) { + request.httpRequest.headers[expiresHeader] = parseInt( + AWS.util.date.unixTimestamp() + expires, 10).toString(); + } else { + throw AWS.util.error(new Error(), { + message: 'Presigning only supports S3 or SigV4 signing.', + code: 'UnsupportedSigner', retryable: false + }); + } +} + +/** + * @api private + */ +function signedUrlSigner(request) { + var endpoint = request.httpRequest.endpoint; + var parsedUrl = AWS.util.urlParse(request.httpRequest.path); + var queryParams = {}; + + if (parsedUrl.search) { + queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); + } + + AWS.util.each(request.httpRequest.headers, function (key, value) { + if (key === expiresHeader) key = 'Expires'; + if (key.indexOf('x-amz-meta-') === 0) { + key = key.toLowerCase(); + } + 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 + endpoint.pathname = parsedUrl.pathname; + endpoint.search = AWS.util.queryParamsToString(queryParams); +} + +/** + * @api private + */ +AWS.Signers.Presign = inherit({ + /** + * @api private + */ + sign: function sign(request, expireTime, callback) { + request.httpRequest.headers[expiresHeader] = expireTime || 3600; + request.on('build', signedUrlBuilder); + request.on('sign', signedUrlSigner); + request.removeListener('afterBuild', + AWS.EventListeners.Core.SET_CONTENT_LENGTH); + request.removeListener('afterBuild', + AWS.EventListeners.Core.COMPUTE_SHA256); + + request.emit('beforePresign', [request]); + + if (callback) { + request.build(function() { + if (this.response.error) callback(this.response.error); + else { + callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); + } + }); + } else { + request.build(); + if (request.response.error) throw request.response.error; + return AWS.util.urlFormat(request.httpRequest.endpoint); + } + } +}); + +module.exports = AWS.Signers.Presign; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/request_signer.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/request_signer.js new file mode 100755 index 0000000..7235267 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/request_signer.js @@ -0,0 +1,29 @@ +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'); +require('./presign'); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/s3.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/s3.js new file mode 100755 index 0000000..632e2f1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/s3.js @@ -0,0 +1,169 @@ +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, + 'accelerate': 1, + 'cors': 1, + 'lifecycle': 1, + 'delete': 1, + 'location': 1, + 'logging': 1, + 'notification': 1, + 'partNumber': 1, + 'policy': 1, + 'requestPayment': 1, + 'replication': 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 (res) { + if (res.value === undefined) { + querystring.push(res.name); + } else { + querystring.push(res.name + '=' + res.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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v2.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v2.js new file mode 100755 index 0000000..9c7d03f --- /dev/null +++ b/cognitoLambdaTrigger/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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v3.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v3.js new file mode 100755 index 0000000..40f342d --- /dev/null +++ b/cognitoLambdaTrigger/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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v3https.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v3https.js new file mode 100755 index 0000000..b70a930 --- /dev/null +++ b/cognitoLambdaTrigger/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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v4.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v4.js new file mode 100755 index 0000000..59e3b6f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/signers/v4.js @@ -0,0 +1,216 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +var cachedSecret = {}; + +/** + * @api private + */ +var expiresHeader = 'presigned-expires'; + +/** + * @api private + */ +AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { + constructor: function V4(request, serviceName, signatureCache) { + AWS.Signers.RequestSigner.call(this, request); + this.serviceName = serviceName; + this.signatureCache = signatureCache; + }, + + algorithm: 'AWS4-HMAC-SHA256', + + addAuthorization: function addAuthorization(credentials, date) { + var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); + + if (this.isPresigned()) { + this.updateForPresigned(credentials, datetime); + } else { + this.addHeaders(credentials, datetime); + } + + 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; + } + }, + + updateForPresigned: function updateForPresigned(credentials, datetime) { + var credString = this.credentialString(datetime); + var qs = { + 'X-Amz-Date': datetime, + 'X-Amz-Algorithm': this.algorithm, + 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, + 'X-Amz-Expires': this.request.headers[expiresHeader], + 'X-Amz-SignedHeaders': this.signedHeaders() + }; + + if (credentials.sessionToken) { + qs['X-Amz-Security-Token'] = credentials.sessionToken; + } + + if (this.request.headers['Content-Type']) { + qs['Content-Type'] = this.request.headers['Content-Type']; + } + if (this.request.headers['Content-MD5']) { + qs['Content-MD5'] = this.request.headers['Content-MD5']; + } + if (this.request.headers['Cache-Control']) { + qs['Cache-Control'] = this.request.headers['Cache-Control']; + } + + // need to pull in any other X-Amz-* headers + AWS.util.each.call(this, this.request.headers, function(key, value) { + if (key === expiresHeader) return; + if (this.isSignableHeader(key) && + key.toLowerCase().indexOf('x-amz-') === 0) { + qs[key] = value; + } + }); + + var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; + this.request.path += sep + AWS.util.queryParamsToString(qs); + }, + + authorization: function authorization(credentials, datetime) { + var parts = []; + var credString = this.credentialString(datetime); + parts.push(this.algorithm + ' 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 = null; + if (this.signatureCache) { + 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'); + + if (!this.signatureCache) { + return AWS.util.crypto.hmac(kCredentials, this.stringToSign(datetime), 'hex'); + } + + 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 = [], pathname = this.request.pathname(); + if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname); + + parts.push(this.request.method); + parts.push(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.isPresigned() && this.serviceName === 's3') { + return 'UNSIGNED-PAYLOAD'; + } else 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', 'content-length', + 'user-agent', expiresHeader, 'expect'], + + isSignableHeader: function isSignableHeader(key) { + if (key.toLowerCase().indexOf('x-amz-') === 0) return true; + return this.unsignableHeaders.indexOf(key) < 0; + }, + + isPresigned: function isPresigned() { + return this.request.headers[expiresHeader] ? true : false; + } + +}); + +module.exports = AWS.Signers.V4; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/state_machine.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/state_machine.js new file mode 100755 index 0000000..0be8922 --- /dev/null +++ b/cognitoLambdaTrigger/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 (state.fail) self.currentState = state.fail; + else return done ? done.call(bindObject, err) : null; + } else { + if (state.accept) self.currentState = state.accept; + else return done ? done.call(bindObject) : null; + } + if (self.currentState === finalState) { + return done ? done.call(bindObject, 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/cognitoLambdaTrigger/node_modules/aws-sdk/lib/util.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/util.js new file mode 100755 index 0000000..078d4a8 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/util.js @@ -0,0 +1,789 @@ +/* eslint guard-for-in:0 */ + +var cryptoLib = require('crypto'); +var Buffer = require('buffer').Buffer; +var AWS; + +/** + * 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 + */ +var util = { + engine: function engine() { + if (util.isBrowser() && typeof navigator !== 'undefined') { + return navigator.userAgent; + } else { + return process.platform + '/' + process.version; + } + }, + + userAgent: function userAgent() { + var name = util.isBrowser() ? 'js' : 'nodejs'; + var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION; + if (name === 'nodejs') agent += ' ' + util.engine(); + return agent; + }, + + isBrowser: function isBrowser() { return process && process.browser; }, + isNode: function isNode() { return !util.isBrowser(); }, + nodeRequire: function nodeRequire(module) { + if (util.isNode()) return require(module); + }, + multiRequire: function multiRequire(module1, module2) { + return require(util.isNode() ? module1 : module2); + }, + + 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 = []; + util.arrayEach(string.split('/'), function (part) { + parts.push(util.uriEscape(part)); + }); + return parts.join('/'); + }, + + urlParse: function urlParse(url) { + return require('url').parse(url); + }, + + urlFormat: function urlFormat(url) { + return require('url').format(url); + }, + + queryStringParse: function queryStringParse(qs) { + return require('querystring').parse(qs); + }, + + queryParamsToString: function queryParamsToString(params) { + var items = []; + var escape = util.uriEscape; + var sortedKeys = Object.keys(params).sort(); + + util.arrayEach(sortedKeys, function(name) { + var value = params[name]; + var ename = escape(name); + var result = ename + '='; + if (Array.isArray(value)) { + var vals = []; + 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 (util.isBrowser()) return null; + return util.nodeRequire('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'); + } + + }, + + Buffer: Buffer, + + buffer: { + toStream: function toStream(buffer) { + if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer); + + var readable = new (util.nodeRequire('stream').Readable)(); + 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; + }, + + /** + * 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 util.nodeRequire('fs').lstatSync(string.path).size; + } else { + throw 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); + } + }, + + ini: { + parse: function string(ini) { + var currentSection, map = {}; + util.arrayEach(ini.split(/\r?\n/), function(line) { + line = line.split(/(^|\s);/)[0]; // remove comments + var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); + if (section) { + currentSection = section[1]; + } else if (currentSection) { + var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); + if (item) { + map[currentSection] = map[currentSection] || {}; + map[currentSection][item[1]] = item[2]; + } + } + }); + + return map; + } + }, + + fn: { + noop: function() {}, + + /** + * Turn a synchronous function into as "async" function by making it call + * a callback. The underlying function is called with all but the last argument, + * which is treated as the callback. The callback is passed passed a first argument + * of null on success to mimick standard node callbacks. + */ + makeAsync: function makeAsync(fn, expectedArgs) { + if (expectedArgs && expectedArgs <= fn.length) { + return fn; + } + + return function() { + var args = Array.prototype.slice.call(arguments, 0); + var callback = args.pop(); + var result = fn.apply(null, args); + callback(result); + }; + } + }, + + /** + * 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() { + if (!AWS) AWS = require('./core'); + if (AWS.config.systemClockOffset) { // use offset when non-zero + return new Date(new Date().getTime() + AWS.config.systemClockOffset); + } else { + return new Date(); + } + }, + + /** + * @return [String] the date in ISO-8601 format + */ + iso8601: function iso8601(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); + }, + + /** + * @return [String] the date in RFC 822 format + */ + rfc822: function rfc822(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toUTCString(); + }, + + /** + * @return [Integer] the UNIX timestamp value for the current time + */ + unixTimestamp: function unixTimestamp(date) { + if (date === undefined) { date = 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 util.date[formatter](util.date.from(date)); + }, + + parseTimestamp: function parseTimestamp(value) { + if (typeof value === 'number') { // unix timestamp (number) + return new Date(value * 1000); + } else 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 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 = 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, callback) { + return util.crypto.hash('md5', data, digest, callback); + }, + + sha256: function sha256(data, digest, callback) { + return util.crypto.hash('sha256', data, digest, callback); + }, + + hash: function(algorithm, data, digest, callback) { + var hash = util.crypto.createHash(algorithm); + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof data === 'string') data = new Buffer(data); + var sliceFn = util.arraySliceFn(data); + var isBuffer = Buffer.isBuffer(data); + //Identifying objects with an ArrayBuffer as buffers + if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; + + if (callback && typeof data === 'object' && + typeof data.on === 'function' && !isBuffer) { + data.on('data', function(chunk) { hash.update(chunk); }); + data.on('error', function(err) { callback(err); }); + data.on('end', function() { callback(null, hash.digest(digest)); }); + } else if (callback && sliceFn && !isBuffer && + typeof FileReader !== 'undefined') { + // this might be a File/Blob + var index = 0, size = 1024 * 512; + var reader = new FileReader(); + reader.onerror = function() { + callback(new Error('Failed to read data.')); + }; + reader.onload = function() { + var buf = new Buffer(new Uint8Array(reader.result)); + hash.update(buf); + index += buf.length; + reader._continueReading(); + }; + reader._continueReading = function() { + if (index >= data.size) { + callback(null, hash.digest(digest)); + return; + } + + var back = index + size; + if (back > data.size) back = data.size; + reader.readAsArrayBuffer(sliceFn.call(data, index, back)); + }; + + reader._continueReading(); + } else { + if (util.isBrowser() && typeof data === 'object' && !isBuffer) { + data = new Buffer(new Uint8Array(data)); + } + var out = hash.update(data).digest(digest); + if (callback) callback(null, out); + return out; + } + }, + + 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.prototype.hasOwnProperty.call(object, key)) { + var ret = iterFunction.call(this, key, object[key]); + if (ret === 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 === util.abort) break; + } + } + }, + + update: function update(obj1, obj2) { + util.each(obj2, function iterator(key, item) { + obj1[key] = item; + }); + return obj1; + }, + + merge: function merge(obj1, obj2) { + return util.update(util.copy(obj1), obj2); + }, + + copy: function copy(object) { + if (object === null || object === undefined) return object; + var dupe = {}; + // jshint forin:false + 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; + }, + + arraySliceFn: function arraySliceFn(obj) { + var fn = obj.slice || obj.webkitSlice || obj.mozSlice; + return typeof fn === 'function' ? fn : null; + }, + + isType: function isType(obj, type) { + // handle cross-"frame" objects + if (typeof type === 'function') type = 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 = util.copy(err); + originalError.message = err.message; + } + } + err.message = err.message || null; + + if (typeof options === 'string') { + err.message = options; + } else if (typeof options === 'object' && options !== null) { + util.update(err, options); + if (options.message) + err.message = options.message; + if (options.code || options.name) + err.code = options.code || options.name; + if (options.stack) + err.stack = options.stack; + } + + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(err, 'name', {writable: true, enumerable: false}); + Object.defineProperty(err, 'message', {enumerable: true}); + } + + err.name = options && options.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; + 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++) { + // jshint forin:false + 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; + + util.arrayEach(props, function (key) { + Object.defineProperty(obj, key, { + enumerable: false, writable: true, configurable: true }); + }); + }, + + /** + * @api private + */ + property: function property(obj, name, value, enumerable, isValue) { + var opts = { + configurable: true, + enumerable: enumerable !== undefined ? enumerable : true + }; + if (typeof value === 'function' && !isValue) { + opts.get = value; + } + else { + opts.value = value; opts.writable = true; + } + + Object.defineProperty(obj, name, opts); + }, + + /** + * @api private + */ + memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { + var cachedValue = null; + + // build enumerable attribute for each value with lazy accessor. + util.property(obj, name, function() { + if (cachedValue === null) { + cachedValue = get(); + } + return cachedValue; + }, enumerable); + }, + + /** + * TODO Remove in major version revision + * This backfill populates response data without the + * top-level payload name. + * + * @api private + */ + hoistPayloadMember: function hoistPayloadMember(resp) { + var req = resp.request; + var operation = req.operation; + var output = req.service.api.operations[operation].output; + if (output.payload) { + var payloadMember = output.members[output.payload]; + var responsePayload = resp.data[output.payload]; + if (payloadMember.type === 'structure') { + util.each(responsePayload, function(key, value) { + util.property(resp.data, key, value, false); + }); + } + } + }, + + /** + * Compute SHA-256 checksums of streams + * + * @api private + */ + computeSha256: function computeSha256(body, done) { + if (util.isNode()) { + var Stream = util.nodeRequire('stream').Stream; + var fs = util.nodeRequire('fs'); + if (body instanceof Stream) { + if (typeof body.path === 'string') { // assume file object + var settings = {}; + if (typeof body.start === 'number') { + settings.start = body.start; + } + if (typeof body.end === 'number') { + settings.end = body.end; + } + body = fs.createReadStream(body.path, settings); + } else { // TODO support other stream types + return done(new Error('Non-file stream objects are ' + + 'not supported with SigV4')); + } + } + } + + util.crypto.sha256(body, 'hex', function(err, sha) { + if (err) done(err); + else done(null, sha); + }); + }, + + /** + * @api private + */ + isClockSkewed: function isClockSkewed(serverTime) { + if (serverTime) { + util.property(AWS.config, 'isClockSkewed', + Math.abs(new Date().getTime() - serverTime) >= 300000, false); + return AWS.config.isClockSkewed; + } + }, + + applyClockOffset: function applyClockOffset(serverTime) { + if (serverTime) + AWS.config.systemClockOffset = serverTime - new Date().getTime(); + }, + + /** + * @api private + */ + extractRequestId: function extractRequestId(resp) { + var requestId = resp.httpResponse.headers['x-amz-request-id'] || + resp.httpResponse.headers['x-amzn-requestid']; + + if (!requestId && resp.data && resp.data.ResponseMetadata) { + requestId = resp.data.ResponseMetadata.RequestId; + } + + if (requestId) { + resp.requestId = requestId; + } + + if (resp.error) { + resp.error.requestId = requestId; + } + }, + + /** + * @api private + */ + addPromisesToRequests: function addPromisesToRequests(constructor, PromiseDependency) { + PromiseDependency = PromiseDependency || null; + if (!PromiseDependency && typeof Promise !== 'undefined') { + PromiseDependency = Promise; + } + if (typeof PromiseDependency !== 'function') { + delete constructor.prototype.promise; + return; + } + constructor.prototype.promise = function promise() { + var self = this; + return new PromiseDependency(function(resolve, reject) { + self.on('complete', function(resp) { + if (resp.error) { + reject(resp.error); + } else { + resolve(resp.data); + } + }); + self.runTo(); + }); + } + } + +}; + +module.exports = util; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/browser_parser.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/browser_parser.js new file mode 100755 index 0000000..3158072 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/browser_parser.js @@ -0,0 +1,186 @@ +var util = require('../util'); +var Shape = require('../model/shape'); + +function DomXmlParser() { } + +DomXmlParser.prototype.parse = function(xml, shape) { + if (xml.replace(/^\s+/, '') === '') return {}; + + var result, error; + try { + if (window.DOMParser) { + try { + var parser = new DOMParser(); + result = parser.parseFromString(xml, 'text/xml'); + } catch (syntaxError) { + throw util.error(new Error('Parse error in document'), + { + originalError: syntaxError, + code: 'XMLParserError', + retryable: true + }); + } + + if (result.documentElement === null) { + throw util.error(new Error('Cannot parse empty document.'), + { + code: 'XMLParserError', + retryable: true + }); + } + + var isError = result.getElementsByTagName('parsererror')[0]; + if (isError && (isError.parentNode === result || + isError.parentNode.nodeName === 'body' || + isError.parentNode.parentNode === result || + isError.parentNode.parentNode.nodeName === 'body')) { + var errorElement = isError.getElementsByTagName('div')[0] || isError; + throw util.error(new Error(errorElement.textContent || 'Parser error in document'), + { + code: 'XMLParserError', + retryable: true + }); + } + } else if (window.ActiveXObject) { + result = new window.ActiveXObject('Microsoft.XMLDOM'); + result.async = false; + + if (!result.loadXML(xml)) { + throw util.error(new Error('Parse error in document'), + { + code: 'XMLParserError', + retryable: true + }); + } + } else { + throw new Error('Cannot load XML parser'); + } + } catch (e) { + error = e; + } + + if (result && result.documentElement && !error) { + var data = parseXml(result.documentElement, shape); + var metadata = result.getElementsByTagName('ResponseMetadata')[0]; + if (metadata) { + data.ResponseMetadata = parseXml(metadata, {}); + } + return data; + } else if (error) { + throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true}); + } else { // empty xml document + return {}; + } +}; + +function parseXml(xml, shape) { + if (!shape) shape = {}; + switch (shape.type) { + case 'structure': return parseStructure(xml, shape); + case 'map': return parseMap(xml, shape); + case 'list': return parseList(xml, shape); + case undefined: case null: return parseUnknown(xml); + default: return parseScalar(xml, shape); + } +} + +function parseStructure(xml, shape) { + var data = {}; + if (xml === null) return data; + + util.each(shape.members, function(memberName, memberShape) { + if (memberShape.isXmlAttribute) { + if (xml.attributes.hasOwnProperty(memberShape.name)) { + var value = xml.attributes[memberShape.name].value; + data[memberName] = parseXml({textContent: value}, memberShape); + } + } else { + var xmlChild = memberShape.flattened ? xml : + xml.getElementsByTagName(memberShape.name)[0]; + if (xmlChild) { + data[memberName] = parseXml(xmlChild, memberShape); + } else if (!memberShape.flattened && memberShape.type === 'list') { + data[memberName] = memberShape.defaultValue; + } + } + }); + + return data; +} + +function parseMap(xml, shape) { + var data = {}; + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + var tagName = shape.flattened ? shape.name : 'entry'; + + var child = xml.firstElementChild; + while (child) { + if (child.nodeName === tagName) { + var key = child.getElementsByTagName(xmlKey)[0].textContent; + var value = child.getElementsByTagName(xmlValue)[0]; + data[key] = parseXml(value, shape.value); + } + child = child.nextElementSibling; + } + return data; +} + +function parseList(xml, shape) { + var data = []; + var tagName = shape.flattened ? shape.name : (shape.member.name || 'member'); + + var child = xml.firstElementChild; + while (child) { + if (child.nodeName === tagName) { + data.push(parseXml(child, shape.member)); + } + child = child.nextElementSibling; + } + return data; +} + +function parseScalar(xml, shape) { + if (xml.getAttribute) { + var encoding = xml.getAttribute('encoding'); + if (encoding === 'base64') { + shape = new Shape.create({type: encoding}); + } + } + + var text = xml.textContent; + if (text === '') text = null; + if (typeof shape.toType === 'function') { + return shape.toType(text); + } else { + return text; + } +} + +function parseUnknown(xml) { + if (xml === undefined || xml === null) return ''; + + // empty object + if (!xml.firstElementChild) { + if (xml.parentNode.parentNode === null) return {}; + if (xml.childNodes.length === 0) return ''; + else return xml.textContent; + } + + // object, parse as structure + var shape = {type: 'structure', members: {}}; + var child = xml.firstElementChild; + while (child) { + var tag = child.nodeName; + if (shape.members.hasOwnProperty(tag)) { + // multiple tags of the same name makes it a list + shape.members[tag].type = 'list'; + } else { + shape.members[tag] = {name: tag}; + } + child = child.nextElementSibling; + } + return parseStructure(xml, shape); +} + +module.exports = DomXmlParser; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/builder.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/builder.js new file mode 100755 index 0000000..400deeb --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/builder.js @@ -0,0 +1,86 @@ +var util = require('../util'); +var builder = require('xmlbuilder'); + +function XmlBuilder() { } + +XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { + var xml = builder.create(rootElement); + applyNamespaces(xml, shape); + serialize(xml, params, shape); + return xml.children.length > 0 || noEmpty ? xml.root().toString() : ''; +}; + +function serialize(xml, value, shape) { + switch (shape.type) { + case 'structure': return serializeStructure(xml, value, shape); + case 'map': return serializeMap(xml, value, shape); + case 'list': return serializeList(xml, value, shape); + default: return serializeScalar(xml, value, shape); + } +} + +function serializeStructure(xml, params, shape) { + util.arrayEach(shape.memberNames, function(memberName) { + var memberShape = shape.members[memberName]; + if (memberShape.location !== 'body') return; + + var value = params[memberName]; + var name = memberShape.name; + if (value !== undefined && value !== null) { + if (memberShape.isXmlAttribute) { + xml.att(name, value); + } else if (memberShape.flattened) { + serialize(xml, value, memberShape); + } else { + var element = xml.ele(name); + applyNamespaces(element, memberShape); + serialize(element, value, memberShape); + } + } + }); +} + +function serializeMap(xml, map, shape) { + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + + util.each(map, function(key, value) { + var entry = xml.ele(shape.flattened ? shape.name : 'entry'); + serialize(entry.ele(xmlKey), key, shape.key); + serialize(entry.ele(xmlValue), value, shape.value); + }); +} + +function serializeList(xml, list, shape) { + if (shape.flattened) { + util.arrayEach(list, function(value) { + var name = shape.member.name || shape.name; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } else { + util.arrayEach(list, function(value) { + var name = shape.member.name || 'member'; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } +} + +function serializeScalar(xml, value, shape) { + xml.txt(shape.toWireFormat(value)); +} + +function applyNamespaces(xml, shape) { + var uri, prefix = 'xmlns'; + if (shape.xmlNamespaceUri) { + uri = shape.xmlNamespaceUri; + if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; + } else if (xml.isRoot && shape.api.xmlNamespaceUri) { + uri = shape.api.xmlNamespaceUri; + } + + if (uri) xml.att(prefix, uri); +} + +module.exports = XmlBuilder; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/node_parser.js b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/node_parser.js new file mode 100755 index 0000000..28ac508 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/lib/xml/node_parser.js @@ -0,0 +1,159 @@ +var util = require('../util'); +var Shape = require('../model/shape'); + +var xml2js = require('xml2js'); + +/** + * @api private + */ +var options = { // options passed to xml2js parser + 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 +}; + +function NodeXmlParser() { } + +NodeXmlParser.prototype.parse = function(xml, shape) { + shape = shape || {}; + + var result = null; + var error = null; + + var parser = new xml2js.Parser(options); + parser.parseString(xml, function (e, r) { + error = e; + result = r; + }); + + if (result) { + var data = parseXml(result, shape); + if (result.ResponseMetadata) { + data.ResponseMetadata = parseXml(result.ResponseMetadata[0], {}); + } + return data; + } else if (error) { + throw util.error(error, {code: 'XMLParserError', retryable: true}); + } else { // empty xml document + return parseXml({}, shape); + } +}; + +function parseXml(xml, shape) { + switch (shape.type) { + case 'structure': return parseStructure(xml, shape); + case 'map': return parseMap(xml, shape); + case 'list': return parseList(xml, shape); + case undefined: case null: return parseUnknown(xml); + default: return parseScalar(xml, shape); + } +} + +function parseStructure(xml, shape) { + var data = {}; + if (xml === null) return data; + + util.each(shape.members, function(memberName, memberShape) { + var xmlName = memberShape.name; + if (xml.hasOwnProperty(xmlName) && Array.isArray(xml[xmlName])) { + var xmlChild = xml[xmlName]; + if (!memberShape.flattened) xmlChild = xmlChild[0]; + + data[memberName] = parseXml(xmlChild, memberShape); + } else if (memberShape.isXmlAttribute && + xml.$ && xml.$.hasOwnProperty(xmlName)) { + data[memberName] = parseScalar(xml.$[xmlName], memberShape); + } else if (memberShape.type === 'list') { + data[memberName] = memberShape.defaultValue; + } + }); + + return data; +} + +function parseMap(xml, shape) { + var data = {}; + if (xml === null) return data; + + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + var iterable = shape.flattened ? xml : xml.entry; + + if (Array.isArray(iterable)) { + util.arrayEach(iterable, function(child) { + data[child[xmlKey][0]] = parseXml(child[xmlValue][0], shape.value); + }); + } + + return data; +} + +function parseList(xml, shape) { + var data = []; + var name = shape.member.name || 'member'; + if (shape.flattened) { + util.arrayEach(xml, function(xmlChild) { + data.push(parseXml(xmlChild, shape.member)); + }); + } else if (xml && Array.isArray(xml[name])) { + util.arrayEach(xml[name], function(child) { + data.push(parseXml(child, shape.member)); + }); + } + + return data; +} + +function parseScalar(text, shape) { + if (text && text.$ && text.$.encoding === 'base64') { + shape = new Shape.create({type: text.$.encoding}); + } + if (text && text._) text = text._; + + if (typeof shape.toType === 'function') { + return shape.toType(text); + } else { + return text; + } +} + +function parseUnknown(xml) { + if (xml === undefined || xml === null) return ''; + if (typeof xml === 'string') return xml; + + // parse a list + if (Array.isArray(xml)) { + var arr = []; + for (i = 0; i < xml.length; i++) { + arr.push(parseXml(xml[i], {})); + } + return arr; + } + + // empty object + var keys = Object.keys(xml), i; + if (keys.length === 0 || keys === ['$']) { + return {}; + } + + // object, parse as structure + var data = {}; + for (i = 0; i < keys.length; i++) { + var key = keys[i], value = xml[key]; + if (key === '$') continue; + if (value.length > 1) { // this member is a list + data[key] = parseList(value, {member: {}}); + } else { // this member is a single item + data[key] = parseXml(value[0], {}); + } + } + return data; +} + +module.exports = NodeXmlParser; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.eslintrc b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.eslintrc new file mode 100755 index 0000000..93c7190 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.eslintrc @@ -0,0 +1,10 @@ +{ + "env": { + "browser": true, + "node": true + }, + "globals": { + "toString": true, + "hasOwnProperty": true + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.npmignore b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.npmignore new file mode 100755 index 0000000..3c3629e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.travis.yml b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.travis.yml new file mode 100755 index 0000000..97bccea --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - "0.12" + - "0.11" + - "0.10" + - "iojs" diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/BASELINE b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/BASELINE new file mode 100755 index 0000000..ff79973 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/BASELINE @@ -0,0 +1,15 @@ +master: + +Mean time: 0.002530msec Parser#single_expr x 395,306 ops/sec ±1.89% (79 runs sampled) +Mean time: 0.005492msec Parser#single_subexpr x 182,084 ops/sec ±1.99% (84 runs sampled) +Mean time: 0.126803msec Parser#deeply_nested_50 x 7,886 ops/sec ±2.44% (80 runs sampled) +Mean time: 0.166790msec Parser#deeply_nested_50_index x 5,996 ops/sec ±5.08% (75 runs sampled) +Mean time: 0.008347msec Parser#basic_list_projection x 119,798 ops/sec ±2.33% (79 runs sampled) + + + +Mean time: 0.002779msec Parser#single_expr x 359,839 ops/sec ±4.15% (80 runs sampled) +Mean time: 0.005235msec Parser#single_subexpr x 191,026 ops/sec ±2.62% (78 runs sampled) +Mean time: 0.104357msec Parser#deeply_nested_50 x 9,582 ops/sec ±4.34% (72 runs sampled) +Mean time: 0.178837msec Parser#deeply_nested_50_index x 5,592 ops/sec ±3.35% (77 runs sampled) +Mean time: 0.009614msec Parser#basic_list_projection x 104,012 ops/sec ±2.97% (79 runs sampled) diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/Gruntfile.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/Gruntfile.js new file mode 100755 index 0000000..614a61b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/Gruntfile.js @@ -0,0 +1,36 @@ +module.exports = function(grunt) { + + // Project configuration. + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + uglify: { + options: { + banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n', + mangleProperties: {regex: /^_/} + }, + build: { + src: '<%= pkg.name %>.js', + dest: 'artifacts/<%= pkg.name %>.min.js' + } + }, + jshint: { + ignore_warning: { + options: { + '-W083': true + }, + src: ['jmespath.js', 'test/*.js', 'Gruntfile.js'] + } + }, + eslint: { + target: ['jmespath.js'] + } + }); + + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-eslint'); + + // Default task(s). + grunt.registerTask('default', ['uglify', 'jshint', 'eslint']); + +}; diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/LICENSE b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/LICENSE new file mode 100755 index 0000000..c1d496b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/LICENSE @@ -0,0 +1,13 @@ +Copyright 2014 James Saryerwinnie + +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/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/README.md b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/README.md new file mode 100755 index 0000000..b1110c2 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/README.md @@ -0,0 +1,57 @@ +# jmespath.js + +[![Build Status](https://travis-ci.org/jmespath/jmespath.js.png?branch=master)](https://travis-ci.org/jmespath/jmespath.js) + +jmespath.js is a javascript implementation of JMESPath, +which is a query language for JSON. It will take a JSON +document and transform it into another JSON document +through a JMESPath expression. + +Using jmespath.js is really easy. There's a single function +you use, `jmespath.search`: + + +``` +> var jmespath = require('jmespath'); +> jmespath.search({foo: {bar: {baz: [0, 1, 2, 3, 4]}}}, "foo.bar.baz[2]") +2 +``` + +In the example we gave the ``search`` function input data of +`{foo: {bar: {baz: [0, 1, 2, 3, 4]}}}` as well as the JMESPath +expression `foo.bar.baz[2]`, and the `search` function evaluated +the expression against the input data to produce the result ``2``. + +The JMESPath language can do a lot more than select an element +from a list. Here are a few more examples: + +``` +> jmespath.search({foo: {bar: {baz: [0, 1, 2, 3, 4]}}}, "foo.bar") +{ baz: [ 0, 1, 2, 3, 4 ] } + +> jmespath.search({"foo": [{"first": "a", "last": "b"}, + {"first": "c", "last": "d"}]}, + "foo[*].first") +[ 'a', 'c' ] + +> jmespath.search({"foo": [{"age": 20}, {"age": 25}, + {"age": 30}, {"age": 35}, + {"age": 40}]}, + "foo[?age > `30`]") +[ { age: 35 }, { age: 40 } ] +``` + +## More Resources + +The example above only show a small amount of what +a JMESPath expression can do. If you want to take a +tour of the language, the *best* place to go is the +[JMESPath Tutorial](http://jmespath.org/tutorial.html). + +One of the best things about JMESPath is that it is +implemented in many different programming languages including +python, ruby, php, lua, etc. To see a complete list of libraries, +check out the [JMESPath libraries page](http://jmespath.org/libraries.html). + +And finally, the full JMESPath specification can be found +on the [JMESPath site](http://jmespath.org/specification.html). diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/artifacts/jmespath.min.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/artifacts/jmespath.min.js new file mode 100755 index 0000000..ae76a6d --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/artifacts/jmespath.min.js @@ -0,0 +1,2 @@ +/*! jmespath 2016-03-22 */ +!function(a){"use strict";function b(a){return null!==a?"[object Array]"===Object.prototype.toString.call(a):!1}function c(a){return null!==a?"[object Object]"===Object.prototype.toString.call(a):!1}function d(a,e){if(a===e)return!0;var f=Object.prototype.toString.call(a);if(f!==Object.prototype.toString.call(e))return!1;if(b(a)===!0){if(a.length!==e.length)return!1;for(var g=0;g="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a}function h(a){return a>="0"&&"9">=a||"-"===a}function i(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||a>="0"&&"9">=a||"_"===a}function j(){}function k(){}function l(a){this.runtime=a}function m(a){this.a=a,this.functionTable={abs:{b:this.c,d:[{types:[r]}]},avg:{b:this.e,d:[{types:[z]}]},ceil:{b:this.f,d:[{types:[r]}]},contains:{b:this.g,d:[{types:[t,u]},{types:[s]}]},ends_with:{b:this.h,d:[{types:[t]},{types:[t]}]},floor:{b:this.i,d:[{types:[r]}]},length:{b:this.j,d:[{types:[t,u,v]}]},map:{b:this.k,d:[{types:[x]},{types:[u]}]},max:{b:this.l,d:[{types:[z,A]}]},merge:{b:this.m,d:[{types:[v],variadic:!0}]},max_by:{b:this.n,d:[{types:[u]},{types:[x]}]},sum:{b:this.o,d:[{types:[z]}]},starts_with:{b:this.p,d:[{types:[t]},{types:[t]}]},min:{b:this.q,d:[{types:[z,A]}]},min_by:{b:this.r,d:[{types:[u]},{types:[x]}]},type:{b:this.s,d:[{types:[s]}]},keys:{b:this.t,d:[{types:[v]}]},values:{b:this.u,d:[{types:[v]}]},sort:{b:this.v,d:[{types:[A,z]}]},sort_by:{b:this.w,d:[{types:[u]},{types:[x]}]},join:{b:this.x,d:[{types:[t]},{types:[A]}]},reverse:{b:this.y,d:[{types:[t,u]}]},to_array:{b:this.z,d:[{types:[s]}]},to_string:{b:this.A,d:[{types:[s]}]},to_number:{b:this.B,d:[{types:[s]}]},not_null:{b:this.C,d:[{types:[s],variadic:!0}]}}}function n(a){var b=new k,c=b.parse(a);return c}function o(a){var b=new j;return b.tokenize(a)}function p(a,b){var c=new k,d=new m,e=new l(d);d.a=e;var f=c.parse(b);return e.search(f,a)}var q;q="function"==typeof String.prototype.trimLeft?function(a){return a.trimLeft()}:function(a){return a.match(/^\s*(.*)/)[1]};var r=0,s=1,t=2,u=3,v=4,w=5,x=6,y=7,z=8,A=9,B="EOF",C="UnquotedIdentifier",D="QuotedIdentifier",E="Rbracket",F="Rparen",G="Comma",H="Colon",I="Rbrace",J="Number",K="Current",L="Expref",M="Pipe",N="Or",O="And",P="EQ",Q="GT",R="LT",S="GTE",T="LTE",U="NE",V="Flatten",W="Star",X="Filter",Y="Dot",Z="Not",$="Lbrace",_="Lbracket",aa="Lparen",ba="Literal",ca={".":Y,"*":W,",":G,":":H,"{":$,"}":I,"]":E,"(":aa,")":F,"@":K},da={"<":!0,">":!0,"=":!0,"!":!0},ea={" ":!0," ":!0,"\n":!0};j.prototype={tokenize:function(a){var b=[];this.D=0;for(var c,d,e;this.D"===c?"="===a[this.D]?(this.D++,{type:S,value:">=",start:b}):{type:Q,value:">",start:b}:"="===c&&"="===a[this.D]?(this.D++,{type:P,value:"==",start:b}):void 0},J:function(a){this.D++;for(var b,c=this.D,d=a.length;"`"!==a[this.D]&&this.D=0)return!0;if(c.indexOf(a)>=0)return!0;if(!(d.indexOf(a[0])>=0))return!1;try{return JSON.parse(a),!0}catch(e){return!1}}};var fa={};fa[B]=0,fa[C]=0,fa[D]=0,fa[E]=0,fa[F]=0,fa[G]=0,fa[I]=0,fa[J]=0,fa[K]=0,fa[L]=0,fa[M]=1,fa[N]=2,fa[O]=3,fa[P]=5,fa[Q]=5,fa[R]=5,fa[S]=5,fa[T]=5,fa[U]=5,fa[V]=9,fa[W]=20,fa[X]=21,fa[Y]=40,fa[Z]=45,fa[$]=50,fa[_]=55,fa[aa]=60,k.prototype={parse:function(a){this.M(a),this.index=0;var b=this.expression(0);if(this.N(0)!==B){var c=this.O(0),d=new Error("Unexpected token type: "+c.type+", value: "+c.value);throw d.name="ParserError",d}return b},M:function(a){var b=new j,c=b.tokenize(a);c.push({type:B,value:"",start:a.length}),this.tokens=c},expression:function(a){var b=this.O(0);this.P();for(var c=this.nud(b),d=this.N(0);ab;){if(c===H)b++,this.P();else{if(c!==J){var d=this.N(0),e=new Error("Syntax error, unexpected token: "+d.value+"("+d.type+")");throw e.name="Parsererror",e}a[b]=this.O(0).value,this.P()}c=this.N(0)}return this.V(E),{type:"Slice",children:a}},Y:function(a,b){var c=this.expression(fa[b]);return{type:"Comparator",name:b,children:[a,c]}},X:function(a){var b=this.N(0),c=[C,D,W];return c.indexOf(b)>=0?this.expression(a):b===_?(this.V(_),this.U()):b===$?(this.V($),this.R()):void 0},Q:function(a){var b;if(fa[this.N(0)]<10)b={type:"Identity"};else if(this.N(0)===_)b=this.expression(a);else if(this.N(0)===X)b=this.expression(a);else{if(this.N(0)!==Y){var c=this.O(0),d=new Error("Sytanx error, unexpected token: "+c.value+"("+c.type+")");throw d.name="ParserError",d}this.V(Y),b=this.X(a)}return b},U:function(){for(var a=[];this.N(0)!==E;){var b=this.expression(0);if(a.push(b),this.N(0)===G&&(this.V(G),this.N(0)===E))throw new Error("Unexpected token Rbracket")}return this.V(E),{type:"MultiSelectList",children:a}},R:function(){for(var a,b,c,d,e=[],f=[C,D];;){if(a=this.O(0),f.indexOf(a.type)<0)throw new Error("Expecting an identifier token, got: "+a.type);if(b=a.value,this.P(),this.V(H),c=this.expression(0),d={type:"KeyValuePair",name:b,value:c},e.push(d),this.N(0)===G)this.V(G);else if(this.N(0)===I){this.V(I);break}}return{type:"MultiSelectHash",children:e}}},l.prototype={search:function(a,b){return this.visit(a,b)},visit:function(a,g){var h,i,j,k,l,m,n,o,p,q;switch(a.type){case"Field":return null===g?null:c(g)?(m=g[a.name],void 0===m?null:m):null;case"Subexpression":for(j=this.visit(a.children[0],g),q=1;qr&&(r=g.length+r),j=g[r],void 0===j&&(j=null),j;case"Slice":if(!b(g))return null;var s=a.children.slice(0),t=this.computeSliceParams(g.length,s),u=t[0],v=t[1],w=t[2];if(j=[],w>0)for(q=u;v>q;q+=w)j.push(g[q]);else for(q=u;q>v;q+=w)j.push(g[q]);return j;case"Projection":var x=this.visit(a.children[0],g);if(!b(x))return null;for(p=[],q=0;ql;break;case S:j=k>=l;break;case R:j=l>k;break;case T:j=l>=k;break;default:throw new Error("Unknown comparator: "+a.name)}return j;case V:var C=this.visit(a.children[0],g);if(!b(C))return null;var D=[];for(q=0;qe?!0:!1;return c=null===c?h?a-1:0:this.capSliceRange(a,c,e),d=null===d?h?-1:a:this.capSliceRange(a,d,e),f[0]=c,f[1]=d,f[2]=e,f},capSliceRange:function(a,b,c){return 0>b?(b+=a,0>b&&(b=0>c?-1:0)):b>=a&&(b=0>c?a-1:a),b}},m.prototype={callFunction:function(a,b){var c=this.functionTable[a];if(void 0===c)throw new Error("Unknown function: "+a+"()");return this.$(a,b,c.d),c.b.call(this,b)},$:function(a,b,c){var d;if(c[c.length-1].variadic){if(b.length=0;e--)d+=c[e];return d}var f=a[0].slice(0);return f.reverse(),f},c:function(a){return Math.abs(a[0])},f:function(a){return Math.ceil(a[0])},e:function(a){for(var b=0,c=a[0],d=0;d=0},i:function(a){return Math.floor(a[0])},j:function(a){return c(a[0])?Object.keys(a[0]).length:a[0].length},k:function(a){for(var b=[],c=this.a,d=a[0],e=a[1],f=0;f0){var b=this._(a[0][0]);if(b===r)return Math.max.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;e0){var b=this._(a[0][0]);if(b===r)return Math.min.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;eh?1:h>g?-1:a[0]-b[0]});for(var i=0;ig&&(g=c,b=e[h]);return b},r:function(a){for(var b,c,d=a[1],e=a[0],f=this.createKeyFunction(d,[r,t]),g=1/0,h=0;hc&&(g=c,b=e[h]);return b},createKeyFunction:function(a,b){var c=this,d=this.a,e=function(e){var f=d.visit(a,e);if(b.indexOf(c._(f))<0){var g="TypeError: expected one of "+b+", received "+c._(f);throw new Error(g)}return f};return e}},a.tokenize=o,a.compile=n,a.search=p,a.strictDeepEqual=d}("undefined"==typeof exports?this.jmespath={}:exports); \ No newline at end of file diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/bower.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/bower.json new file mode 100755 index 0000000..f0f626c --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/bower.json @@ -0,0 +1,24 @@ +{ + "name": "jmespath.js", + "main": "jmespath.js", + "version": "0.11.0", + "homepage": "https://github.com/jmespath/jmespath.js", + "authors": [ + "James Saryerwinnie " + ], + "description": "JMESPath implementation in javascript", + "moduleType": [ + "node" + ], + "keywords": [ + "jmespath" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/g.sh b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/g.sh new file mode 100755 index 0000000..5358000 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/g.sh @@ -0,0 +1,5 @@ +#!/bin/bash +grunt +uglifyjs artifacts/jmespath.min.js -b -o /tmp/jmespath.min.js +uglifyjs artifacts/jmespath.min.js -b -o ~/Source/jmespath.site/docs/_build/html/_static/js/jmespath.min.js +#cp artifacts/jmespath.min.js ~/Source/jmespath.site/docs/_build/html/_static/js/ diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/index.html b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/index.html new file mode 100755 index 0000000..5806e1e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/index.html @@ -0,0 +1,93 @@ + + + + + + + + + JMESPath Demo + + + + + +
+
+

JSONPath Online Evaluator

+
+

Author: Kazuki Hamasaki [ashphy@ashphy.com]

+

This evaluator uses JSONPath - XPath for JSON

+
+
+
+
+

Inputs

+
+ + + Example '$.phoneNumbers[*].type' See also JSONPath expressions + + +
+
+
+

Evaluation Results

+
false
+
+
+
+ + + + + + + + + + + + diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/james.html b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/james.html new file mode 100755 index 0000000..be8d3ab --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/james.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jmespath.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jmespath.js new file mode 100755 index 0000000..f59e8e4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jmespath.js @@ -0,0 +1,1667 @@ +(function(exports) { + "use strict"; + + function isArray(obj) { + if (obj !== null) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } else { + return false; + } + } + + function isObject(obj) { + if (obj !== null) { + return Object.prototype.toString.call(obj) === "[object Object]"; + } else { + return false; + } + } + + function strictDeepEqual(first, second) { + // Check the scalar case first. + if (first === second) { + return true; + } + + // Check if they are the same type. + var firstType = Object.prototype.toString.call(first); + if (firstType !== Object.prototype.toString.call(second)) { + return false; + } + // We know that first and second have the same type so we can just check the + // first type from now on. + if (isArray(first) === true) { + // Short circuit if they're not the same length; + if (first.length !== second.length) { + return false; + } + for (var i = 0; i < first.length; i++) { + if (strictDeepEqual(first[i], second[i]) === false) { + return false; + } + } + return true; + } + if (isObject(first) === true) { + // An object is equal if it has the same key/value pairs. + var keysSeen = {}; + for (var key in first) { + if (hasOwnProperty.call(first, key)) { + if (strictDeepEqual(first[key], second[key]) === false) { + return false; + } + keysSeen[key] = true; + } + } + // Now check that there aren't any keys in second that weren't + // in first. + for (var key2 in second) { + if (hasOwnProperty.call(second, key2)) { + if (keysSeen[key2] !== true) { + return false; + } + } + } + return true; + } + return false; + } + + function isFalse(obj) { + // From the spec: + // A false value corresponds to the following values: + // Empty list + // Empty object + // Empty string + // False boolean + // null value + + // First check the scalar values. + if (obj === "" || obj === false || obj === null) { + return true; + } else if (isArray(obj) && obj.length === 0) { + // Check for an empty array. + return true; + } else if (isObject(obj)) { + // Check for an empty object. + for (var key in obj) { + // If there are any keys, then + // the object is not empty so the object + // is not false. + if (obj.hasOwnProperty(key)) { + return false; + } + } + return true; + } else { + return false; + } + } + + function objValues(obj) { + var keys = Object.keys(obj); + var values = []; + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + } + + function merge(a, b) { + var merged = {}; + for (var key in a) { + merged[key] = a[key]; + } + for (var key2 in b) { + merged[key2] = b[key2]; + } + return merged; + } + + var trimLeft; + if (typeof String.prototype.trimLeft === "function") { + trimLeft = function(str) { + return str.trimLeft(); + }; + } else { + trimLeft = function(str) { + return str.match(/^\s*(.*)/)[1]; + }; + } + + // Type constants used to define functions. + var TYPE_NUMBER = 0; + var TYPE_ANY = 1; + var TYPE_STRING = 2; + var TYPE_ARRAY = 3; + var TYPE_OBJECT = 4; + var TYPE_BOOLEAN = 5; + var TYPE_EXPREF = 6; + var TYPE_NULL = 7; + var TYPE_ARRAY_NUMBER = 8; + var TYPE_ARRAY_STRING = 9; + + var TOK_EOF = "EOF"; + var TOK_UNQUOTEDIDENTIFIER = "UnquotedIdentifier"; + var TOK_QUOTEDIDENTIFIER = "QuotedIdentifier"; + var TOK_RBRACKET = "Rbracket"; + var TOK_RPAREN = "Rparen"; + var TOK_COMMA = "Comma"; + var TOK_COLON = "Colon"; + var TOK_RBRACE = "Rbrace"; + var TOK_NUMBER = "Number"; + var TOK_CURRENT = "Current"; + var TOK_EXPREF = "Expref"; + var TOK_PIPE = "Pipe"; + var TOK_OR = "Or"; + var TOK_AND = "And"; + var TOK_EQ = "EQ"; + var TOK_GT = "GT"; + var TOK_LT = "LT"; + var TOK_GTE = "GTE"; + var TOK_LTE = "LTE"; + var TOK_NE = "NE"; + var TOK_FLATTEN = "Flatten"; + var TOK_STAR = "Star"; + var TOK_FILTER = "Filter"; + var TOK_DOT = "Dot"; + var TOK_NOT = "Not"; + var TOK_LBRACE = "Lbrace"; + var TOK_LBRACKET = "Lbracket"; + var TOK_LPAREN= "Lparen"; + var TOK_LITERAL= "Literal"; + + // The "&", "[", "<", ">" tokens + // are not in basicToken because + // there are two token variants + // ("&&", "[?", "<=", ">="). This is specially handled + // below. + + var basicTokens = { + ".": TOK_DOT, + "*": TOK_STAR, + ",": TOK_COMMA, + ":": TOK_COLON, + "{": TOK_LBRACE, + "}": TOK_RBRACE, + "]": TOK_RBRACKET, + "(": TOK_LPAREN, + ")": TOK_RPAREN, + "@": TOK_CURRENT + }; + + var operatorStartToken = { + "<": true, + ">": true, + "=": true, + "!": true + }; + + var skipChars = { + " ": true, + "\t": true, + "\n": true + }; + + + function isAlpha(ch) { + return (ch >= "a" && ch <= "z") || + (ch >= "A" && ch <= "Z") || + ch === "_"; + } + + function isNum(ch) { + return (ch >= "0" && ch <= "9") || + ch === "-"; + } + function isAlphaNum(ch) { + return (ch >= "a" && ch <= "z") || + (ch >= "A" && ch <= "Z") || + (ch >= "0" && ch <= "9") || + ch === "_"; + } + + function Lexer() { + } + Lexer.prototype = { + tokenize: function(stream) { + var tokens = []; + this._current = 0; + var start; + var identifier; + var token; + while (this._current < stream.length) { + if (isAlpha(stream[this._current])) { + start = this._current; + identifier = this._consumeUnquotedIdentifier(stream); + tokens.push({type: TOK_UNQUOTEDIDENTIFIER, + value: identifier, + start: start}); + } else if (basicTokens[stream[this._current]] !== undefined) { + tokens.push({type: basicTokens[stream[this._current]], + value: stream[this._current], + start: this._current}); + this._current++; + } else if (isNum(stream[this._current])) { + token = this._consumeNumber(stream); + tokens.push(token); + } else if (stream[this._current] === "[") { + // No need to increment this._current. This happens + // in _consumeLBracket + token = this._consumeLBracket(stream); + tokens.push(token); + } else if (stream[this._current] === "\"") { + start = this._current; + identifier = this._consumeQuotedIdentifier(stream); + tokens.push({type: TOK_QUOTEDIDENTIFIER, + value: identifier, + start: start}); + } else if (stream[this._current] === "'") { + start = this._current; + identifier = this._consumeRawStringLiteral(stream); + tokens.push({type: TOK_LITERAL, + value: identifier, + start: start}); + } else if (stream[this._current] === "`") { + start = this._current; + var literal = this._consumeLiteral(stream); + tokens.push({type: TOK_LITERAL, + value: literal, + start: start}); + } else if (operatorStartToken[stream[this._current]] !== undefined) { + tokens.push(this._consumeOperator(stream)); + } else if (skipChars[stream[this._current]] !== undefined) { + // Ignore whitespace. + this._current++; + } else if (stream[this._current] === "&") { + start = this._current; + this._current++; + if (stream[this._current] === "&") { + this._current++; + tokens.push({type: TOK_AND, value: "&&", start: start}); + } else { + tokens.push({type: TOK_EXPREF, value: "&", start: start}); + } + } else if (stream[this._current] === "|") { + start = this._current; + this._current++; + if (stream[this._current] === "|") { + this._current++; + tokens.push({type: TOK_OR, value: "||", start: start}); + } else { + tokens.push({type: TOK_PIPE, value: "|", start: start}); + } + } else { + var error = new Error("Unknown character:" + stream[this._current]); + error.name = "LexerError"; + throw error; + } + } + return tokens; + }, + + _consumeUnquotedIdentifier: function(stream) { + var start = this._current; + this._current++; + while (this._current < stream.length && isAlphaNum(stream[this._current])) { + this._current++; + } + return stream.slice(start, this._current); + }, + + _consumeQuotedIdentifier: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (stream[this._current] !== "\"" && this._current < maxLength) { + // You can escape a double quote and you can escape an escape. + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "\"")) { + current += 2; + } else { + current++; + } + this._current = current; + } + this._current++; + return JSON.parse(stream.slice(start, this._current)); + }, + + _consumeRawStringLiteral: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (stream[this._current] !== "'" && this._current < maxLength) { + // You can escape a single quote and you can escape an escape. + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "'")) { + current += 2; + } else { + current++; + } + this._current = current; + } + this._current++; + var literal = stream.slice(start + 1, this._current - 1); + return literal.replace("\\'", "'"); + }, + + _consumeNumber: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (isNum(stream[this._current]) && this._current < maxLength) { + this._current++; + } + var value = parseInt(stream.slice(start, this._current)); + return {type: TOK_NUMBER, value: value, start: start}; + }, + + _consumeLBracket: function(stream) { + var start = this._current; + this._current++; + if (stream[this._current] === "?") { + this._current++; + return {type: TOK_FILTER, value: "[?", start: start}; + } else if (stream[this._current] === "]") { + this._current++; + return {type: TOK_FLATTEN, value: "[]", start: start}; + } else { + return {type: TOK_LBRACKET, value: "[", start: start}; + } + }, + + _consumeOperator: function(stream) { + var start = this._current; + var startingChar = stream[start]; + this._current++; + if (startingChar === "!") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_NE, value: "!=", start: start}; + } else { + return {type: TOK_NOT, value: "!", start: start}; + } + } else if (startingChar === "<") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_LTE, value: "<=", start: start}; + } else { + return {type: TOK_LT, value: "<", start: start}; + } + } else if (startingChar === ">") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_GTE, value: ">=", start: start}; + } else { + return {type: TOK_GT, value: ">", start: start}; + } + } else if (startingChar === "=") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_EQ, value: "==", start: start}; + } + } + }, + + _consumeLiteral: function(stream) { + this._current++; + var start = this._current; + var maxLength = stream.length; + var literal; + while(stream[this._current] !== "`" && this._current < maxLength) { + // You can escape a literal char or you can escape the escape. + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "`")) { + current += 2; + } else { + current++; + } + this._current = current; + } + var literalString = trimLeft(stream.slice(start, this._current)); + literalString = literalString.replace("\\`", "`"); + if (this._looksLikeJSON(literalString)) { + literal = JSON.parse(literalString); + } else { + // Try to JSON parse it as "" + literal = JSON.parse("\"" + literalString + "\""); + } + // +1 gets us to the ending "`", +1 to move on to the next char. + this._current++; + return literal; + }, + + _looksLikeJSON: function(literalString) { + var startingChars = "[{\""; + var jsonLiterals = ["true", "false", "null"]; + var numberLooking = "-0123456789"; + + if (literalString === "") { + return false; + } else if (startingChars.indexOf(literalString[0]) >= 0) { + return true; + } else if (jsonLiterals.indexOf(literalString) >= 0) { + return true; + } else if (numberLooking.indexOf(literalString[0]) >= 0) { + try { + JSON.parse(literalString); + return true; + } catch (ex) { + return false; + } + } else { + return false; + } + } + }; + + var bindingPower = {}; + bindingPower[TOK_EOF] = 0; + bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0; + bindingPower[TOK_QUOTEDIDENTIFIER] = 0; + bindingPower[TOK_RBRACKET] = 0; + bindingPower[TOK_RPAREN] = 0; + bindingPower[TOK_COMMA] = 0; + bindingPower[TOK_RBRACE] = 0; + bindingPower[TOK_NUMBER] = 0; + bindingPower[TOK_CURRENT] = 0; + bindingPower[TOK_EXPREF] = 0; + bindingPower[TOK_PIPE] = 1; + bindingPower[TOK_OR] = 2; + bindingPower[TOK_AND] = 3; + bindingPower[TOK_EQ] = 5; + bindingPower[TOK_GT] = 5; + bindingPower[TOK_LT] = 5; + bindingPower[TOK_GTE] = 5; + bindingPower[TOK_LTE] = 5; + bindingPower[TOK_NE] = 5; + bindingPower[TOK_FLATTEN] = 9; + bindingPower[TOK_STAR] = 20; + bindingPower[TOK_FILTER] = 21; + bindingPower[TOK_DOT] = 40; + bindingPower[TOK_NOT] = 45; + bindingPower[TOK_LBRACE] = 50; + bindingPower[TOK_LBRACKET] = 55; + bindingPower[TOK_LPAREN] = 60; + + function Parser() { + } + + Parser.prototype = { + parse: function(expression) { + this._loadTokens(expression); + this.index = 0; + var ast = this.expression(0); + if (this._lookahead(0) !== TOK_EOF) { + var t = this._lookaheadToken(0); + var error = new Error( + "Unexpected token type: " + t.type + ", value: " + t.value); + error.name = "ParserError"; + throw error; + } + return ast; + }, + + _loadTokens: function(expression) { + var lexer = new Lexer(); + var tokens = lexer.tokenize(expression); + tokens.push({type: TOK_EOF, value: "", start: expression.length}); + this.tokens = tokens; + }, + + expression: function(rbp) { + var leftToken = this._lookaheadToken(0); + this._advance(); + var left = this.nud(leftToken); + var currentToken = this._lookahead(0); + while (rbp < bindingPower[currentToken]) { + this._advance(); + left = this.led(currentToken, left); + currentToken = this._lookahead(0); + } + return left; + }, + + _lookahead: function(number) { + return this.tokens[this.index + number].type; + }, + + _lookaheadToken: function(number) { + return this.tokens[this.index + number]; + }, + + _advance: function() { + this.index++; + }, + + nud: function(token) { + var left; + var right; + var expression; + switch (token.type) { + case TOK_LITERAL: + return {type: "Literal", value: token.value}; + case TOK_UNQUOTEDIDENTIFIER: + return {type: "Field", name: token.value}; + case TOK_QUOTEDIDENTIFIER: + var node = {type: "Field", name: token.value}; + if (this._lookahead(0) === TOK_LPAREN) { + throw new Error("Quoted identifier not allowed for function names."); + } else { + return node; + } + break; + case TOK_NOT: + right = this.expression(bindingPower.Not); + return {type: "NotExpression", children: [right]}; + case TOK_STAR: + left = {type: "Identity"}; + right = null; + if (this._lookahead(0) === TOK_RBRACKET) { + // This can happen in a multiselect, + // [a, b, *] + right = {type: "Identity"}; + } else { + right = this._parseProjectionRHS(bindingPower.Star); + } + return {type: "ValueProjection", children: [left, right]}; + case TOK_FILTER: + return this.led(token.type, {type: "Identity"}); + case TOK_LBRACE: + return this._parseMultiselectHash(); + case TOK_FLATTEN: + left = {type: TOK_FLATTEN, children: [{type: "Identity"}]}; + right = this._parseProjectionRHS(bindingPower.Flatten); + return {type: "Projection", children: [left, right]}; + case TOK_LBRACKET: + if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) { + right = this._parseIndexExpression(); + return this._projectIfSlice({type: "Identity"}, right); + } else if (this._lookahead(0) === TOK_STAR && + this._lookahead(1) === TOK_RBRACKET) { + this._advance(); + this._advance(); + right = this._parseProjectionRHS(bindingPower.Star); + return {type: "Projection", + children: [{type: "Identity"}, right]}; + } else { + return this._parseMultiselectList(); + } + break; + case TOK_CURRENT: + return {type: TOK_CURRENT}; + case TOK_EXPREF: + expression = this.expression(bindingPower.Expref); + return {type: "ExpressionReference", children: [expression]}; + case TOK_LPAREN: + var args = []; + while (this._lookahead(0) !== TOK_RPAREN) { + if (this._lookahead(0) === TOK_CURRENT) { + expression = {type: TOK_CURRENT}; + this._advance(); + } else { + expression = this.expression(0); + } + args.push(expression); + } + this._match(TOK_RPAREN); + return args[0]; + default: + this._errorToken(token); + } + }, + + led: function(tokenName, left) { + var right; + switch(tokenName) { + case TOK_DOT: + var rbp = bindingPower.Dot; + if (this._lookahead(0) !== TOK_STAR) { + right = this._parseDotRHS(rbp); + return {type: "Subexpression", children: [left, right]}; + } else { + // Creating a projection. + this._advance(); + right = this._parseProjectionRHS(rbp); + return {type: "ValueProjection", children: [left, right]}; + } + break; + case TOK_PIPE: + right = this.expression(bindingPower.Pipe); + return {type: TOK_PIPE, children: [left, right]}; + case TOK_OR: + right = this.expression(bindingPower.Or); + return {type: "OrExpression", children: [left, right]}; + case TOK_AND: + right = this.expression(bindingPower.And); + return {type: "AndExpression", children: [left, right]}; + case TOK_LPAREN: + var name = left.name; + var args = []; + var expression, node; + while (this._lookahead(0) !== TOK_RPAREN) { + if (this._lookahead(0) === TOK_CURRENT) { + expression = {type: TOK_CURRENT}; + this._advance(); + } else { + expression = this.expression(0); + } + if (this._lookahead(0) === TOK_COMMA) { + this._match(TOK_COMMA); + } + args.push(expression); + } + this._match(TOK_RPAREN); + node = {type: "Function", name: name, children: args}; + return node; + case TOK_FILTER: + var condition = this.expression(0); + this._match(TOK_RBRACKET); + if (this._lookahead(0) === TOK_FLATTEN) { + right = {type: "Identity"}; + } else { + right = this._parseProjectionRHS(bindingPower.Filter); + } + return {type: "FilterProjection", children: [left, right, condition]}; + case TOK_FLATTEN: + var leftNode = {type: TOK_FLATTEN, children: [left]}; + var rightNode = this._parseProjectionRHS(bindingPower.Flatten); + return {type: "Projection", children: [leftNode, rightNode]}; + case TOK_EQ: + case TOK_NE: + case TOK_GT: + case TOK_GTE: + case TOK_LT: + case TOK_LTE: + return this._parseComparator(left, tokenName); + case TOK_LBRACKET: + var token = this._lookaheadToken(0); + if (token.type === TOK_NUMBER || token.type === TOK_COLON) { + right = this._parseIndexExpression(); + return this._projectIfSlice(left, right); + } else { + this._match(TOK_STAR); + this._match(TOK_RBRACKET); + right = this._parseProjectionRHS(bindingPower.Star); + return {type: "Projection", children: [left, right]}; + } + break; + default: + this._errorToken(this._lookaheadToken(0)); + } + }, + + _match: function(tokenType) { + if (this._lookahead(0) === tokenType) { + this._advance(); + } else { + var t = this._lookaheadToken(0); + var error = new Error("Expected " + tokenType + ", got: " + t.type); + error.name = "ParserError"; + throw error; + } + }, + + _errorToken: function(token) { + var error = new Error("Invalid token (" + + token.type + "): \"" + + token.value + "\""); + error.name = "ParserError"; + throw error; + }, + + + _parseIndexExpression: function() { + if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) { + return this._parseSliceExpression(); + } else { + var node = { + type: "Index", + value: this._lookaheadToken(0).value}; + this._advance(); + this._match(TOK_RBRACKET); + return node; + } + }, + + _projectIfSlice: function(left, right) { + var indexExpr = {type: "IndexExpression", children: [left, right]}; + if (right.type === "Slice") { + return { + type: "Projection", + children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)] + }; + } else { + return indexExpr; + } + }, + + _parseSliceExpression: function() { + // [start:end:step] where each part is optional, as well as the last + // colon. + var parts = [null, null, null]; + var index = 0; + var currentToken = this._lookahead(0); + while (currentToken !== TOK_RBRACKET && index < 3) { + if (currentToken === TOK_COLON) { + index++; + this._advance(); + } else if (currentToken === TOK_NUMBER) { + parts[index] = this._lookaheadToken(0).value; + this._advance(); + } else { + var t = this._lookahead(0); + var error = new Error("Syntax error, unexpected token: " + + t.value + "(" + t.type + ")"); + error.name = "Parsererror"; + throw error; + } + currentToken = this._lookahead(0); + } + this._match(TOK_RBRACKET); + return { + type: "Slice", + children: parts + }; + }, + + _parseComparator: function(left, comparator) { + var right = this.expression(bindingPower[comparator]); + return {type: "Comparator", name: comparator, children: [left, right]}; + }, + + _parseDotRHS: function(rbp) { + var lookahead = this._lookahead(0); + var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR]; + if (exprTokens.indexOf(lookahead) >= 0) { + return this.expression(rbp); + } else if (lookahead === TOK_LBRACKET) { + this._match(TOK_LBRACKET); + return this._parseMultiselectList(); + } else if (lookahead === TOK_LBRACE) { + this._match(TOK_LBRACE); + return this._parseMultiselectHash(); + } + }, + + _parseProjectionRHS: function(rbp) { + var right; + if (bindingPower[this._lookahead(0)] < 10) { + right = {type: "Identity"}; + } else if (this._lookahead(0) === TOK_LBRACKET) { + right = this.expression(rbp); + } else if (this._lookahead(0) === TOK_FILTER) { + right = this.expression(rbp); + } else if (this._lookahead(0) === TOK_DOT) { + this._match(TOK_DOT); + right = this._parseDotRHS(rbp); + } else { + var t = this._lookaheadToken(0); + var error = new Error("Sytanx error, unexpected token: " + + t.value + "(" + t.type + ")"); + error.name = "ParserError"; + throw error; + } + return right; + }, + + _parseMultiselectList: function() { + var expressions = []; + while (this._lookahead(0) !== TOK_RBRACKET) { + var expression = this.expression(0); + expressions.push(expression); + if (this._lookahead(0) === TOK_COMMA) { + this._match(TOK_COMMA); + if (this._lookahead(0) === TOK_RBRACKET) { + throw new Error("Unexpected token Rbracket"); + } + } + } + this._match(TOK_RBRACKET); + return {type: "MultiSelectList", children: expressions}; + }, + + _parseMultiselectHash: function() { + var pairs = []; + var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER]; + var keyToken, keyName, value, node; + for (;;) { + keyToken = this._lookaheadToken(0); + if (identifierTypes.indexOf(keyToken.type) < 0) { + throw new Error("Expecting an identifier token, got: " + + keyToken.type); + } + keyName = keyToken.value; + this._advance(); + this._match(TOK_COLON); + value = this.expression(0); + node = {type: "KeyValuePair", name: keyName, value: value}; + pairs.push(node); + if (this._lookahead(0) === TOK_COMMA) { + this._match(TOK_COMMA); + } else if (this._lookahead(0) === TOK_RBRACE) { + this._match(TOK_RBRACE); + break; + } + } + return {type: "MultiSelectHash", children: pairs}; + } + }; + + + function TreeInterpreter(runtime) { + this.runtime = runtime; + } + + TreeInterpreter.prototype = { + search: function(node, value) { + return this.visit(node, value); + }, + + visit: function(node, value) { + var matched, current, result, first, second, field, left, right, collected, i; + switch (node.type) { + case "Field": + if (value === null ) { + return null; + } else if (isObject(value)) { + field = value[node.name]; + if (field === undefined) { + return null; + } else { + return field; + } + } else { + return null; + } + break; + case "Subexpression": + result = this.visit(node.children[0], value); + for (i = 1; i < node.children.length; i++) { + result = this.visit(node.children[1], result); + if (result === null) { + return null; + } + } + return result; + case "IndexExpression": + left = this.visit(node.children[0], value); + right = this.visit(node.children[1], left); + return right; + case "Index": + if (!isArray(value)) { + return null; + } + var index = node.value; + if (index < 0) { + index = value.length + index; + } + result = value[index]; + if (result === undefined) { + result = null; + } + return result; + case "Slice": + if (!isArray(value)) { + return null; + } + var sliceParams = node.children.slice(0); + var computed = this.computeSliceParams(value.length, sliceParams); + var start = computed[0]; + var stop = computed[1]; + var step = computed[2]; + result = []; + if (step > 0) { + for (i = start; i < stop; i += step) { + result.push(value[i]); + } + } else { + for (i = start; i > stop; i += step) { + result.push(value[i]); + } + } + return result; + case "Projection": + // Evaluate left child. + var base = this.visit(node.children[0], value); + if (!isArray(base)) { + return null; + } + collected = []; + for (i = 0; i < base.length; i++) { + current = this.visit(node.children[1], base[i]); + if (current !== null) { + collected.push(current); + } + } + return collected; + case "ValueProjection": + // Evaluate left child. + base = this.visit(node.children[0], value); + if (!isObject(base)) { + return null; + } + collected = []; + var values = objValues(base); + for (i = 0; i < values.length; i++) { + current = this.visit(node.children[1], values[i]); + if (current !== null) { + collected.push(current); + } + } + return collected; + case "FilterProjection": + base = this.visit(node.children[0], value); + if (!isArray(base)) { + return null; + } + var filtered = []; + var finalResults = []; + for (i = 0; i < base.length; i++) { + matched = this.visit(node.children[2], base[i]); + if (!isFalse(matched)) { + filtered.push(base[i]); + } + } + for (var j = 0; j < filtered.length; j++) { + current = this.visit(node.children[1], filtered[j]); + if (current !== null) { + finalResults.push(current); + } + } + return finalResults; + case "Comparator": + first = this.visit(node.children[0], value); + second = this.visit(node.children[1], value); + switch(node.name) { + case TOK_EQ: + result = strictDeepEqual(first, second); + break; + case TOK_NE: + result = !strictDeepEqual(first, second); + break; + case TOK_GT: + result = first > second; + break; + case TOK_GTE: + result = first >= second; + break; + case TOK_LT: + result = first < second; + break; + case TOK_LTE: + result = first <= second; + break; + default: + throw new Error("Unknown comparator: " + node.name); + } + return result; + case TOK_FLATTEN: + var original = this.visit(node.children[0], value); + if (!isArray(original)) { + return null; + } + var merged = []; + for (i = 0; i < original.length; i++) { + current = original[i]; + if (isArray(current)) { + merged.push.apply(merged, current); + } else { + merged.push(current); + } + } + return merged; + case "Identity": + return value; + case "MultiSelectList": + if (value === null) { + return null; + } + collected = []; + for (i = 0; i < node.children.length; i++) { + collected.push(this.visit(node.children[i], value)); + } + return collected; + case "MultiSelectHash": + if (value === null) { + return null; + } + collected = {}; + var child; + for (i = 0; i < node.children.length; i++) { + child = node.children[i]; + collected[child.name] = this.visit(child.value, value); + } + return collected; + case "OrExpression": + matched = this.visit(node.children[0], value); + if (isFalse(matched)) { + matched = this.visit(node.children[1], value); + } + return matched; + case "AndExpression": + first = this.visit(node.children[0], value); + + if (isFalse(first) === true) { + return first; + } + return this.visit(node.children[1], value); + case "NotExpression": + first = this.visit(node.children[0], value); + return isFalse(first); + case "Literal": + return node.value; + case TOK_PIPE: + left = this.visit(node.children[0], value); + return this.visit(node.children[1], left); + case TOK_CURRENT: + return value; + case "Function": + var resolvedArgs = []; + for (i = 0; i < node.children.length; i++) { + resolvedArgs.push(this.visit(node.children[i], value)); + } + return this.runtime.callFunction(node.name, resolvedArgs); + case "ExpressionReference": + var refNode = node.children[0]; + // Tag the node with a specific attribute so the type + // checker verify the type. + refNode.jmespathType = TOK_EXPREF; + return refNode; + default: + throw new Error("Unknown node type: " + node.type); + } + }, + + computeSliceParams: function(arrayLength, sliceParams) { + var start = sliceParams[0]; + var stop = sliceParams[1]; + var step = sliceParams[2]; + var computed = [null, null, null]; + if (step === null) { + step = 1; + } else if (step === 0) { + var error = new Error("Invalid slice, step cannot be 0"); + error.name = "RuntimeError"; + throw error; + } + var stepValueNegative = step < 0 ? true : false; + + if (start === null) { + start = stepValueNegative ? arrayLength - 1 : 0; + } else { + start = this.capSliceRange(arrayLength, start, step); + } + + if (stop === null) { + stop = stepValueNegative ? -1 : arrayLength; + } else { + stop = this.capSliceRange(arrayLength, stop, step); + } + computed[0] = start; + computed[1] = stop; + computed[2] = step; + return computed; + }, + + capSliceRange: function(arrayLength, actualValue, step) { + if (actualValue < 0) { + actualValue += arrayLength; + if (actualValue < 0) { + actualValue = step < 0 ? -1 : 0; + } + } else if (actualValue >= arrayLength) { + actualValue = step < 0 ? arrayLength - 1 : arrayLength; + } + return actualValue; + } + + }; + + function Runtime(interpreter) { + this._interpreter = interpreter; + this.functionTable = { + // name: [function, ] + // The can be: + // + // { + // args: [[type1, type2], [type1, type2]], + // variadic: true|false + // } + // + // Each arg in the arg list is a list of valid types + // (if the function is overloaded and supports multiple + // types. If the type is "any" then no type checking + // occurs on the argument. Variadic is optional + // and if not provided is assumed to be false. + abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]}, + avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]}, + ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]}, + contains: { + _func: this._functionContains, + _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}, + {types: [TYPE_ANY]}]}, + "ends_with": { + _func: this._functionEndsWith, + _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]}, + floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]}, + length: { + _func: this._functionLength, + _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]}, + map: { + _func: this._functionMap, + _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]}, + max: { + _func: this._functionMax, + _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]}, + "merge": { + _func: this._functionMerge, + _signature: [{types: [TYPE_OBJECT], variadic: true}] + }, + "max_by": { + _func: this._functionMaxBy, + _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] + }, + sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]}, + "starts_with": { + _func: this._functionStartsWith, + _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]}, + min: { + _func: this._functionMin, + _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]}, + "min_by": { + _func: this._functionMinBy, + _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] + }, + type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]}, + keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]}, + values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]}, + sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]}, + "sort_by": { + _func: this._functionSortBy, + _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] + }, + join: { + _func: this._functionJoin, + _signature: [ + {types: [TYPE_STRING]}, + {types: [TYPE_ARRAY_STRING]} + ] + }, + reverse: { + _func: this._functionReverse, + _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]}, + "to_array": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]}, + "to_string": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]}, + "to_number": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]}, + "not_null": { + _func: this._functionNotNull, + _signature: [{types: [TYPE_ANY], variadic: true}] + } + }; + } + + Runtime.prototype = { + callFunction: function(name, resolvedArgs) { + var functionEntry = this.functionTable[name]; + if (functionEntry === undefined) { + throw new Error("Unknown function: " + name + "()"); + } + this._validateArgs(name, resolvedArgs, functionEntry._signature); + return functionEntry._func.call(this, resolvedArgs); + }, + + _validateArgs: function(name, args, signature) { + // Validating the args requires validating + // the correct arity and the correct type of each arg. + // If the last argument is declared as variadic, then we need + // a minimum number of args to be required. Otherwise it has to + // be an exact amount. + var pluralized; + if (signature[signature.length - 1].variadic) { + if (args.length < signature.length) { + pluralized = signature.length === 1 ? " argument" : " arguments"; + throw new Error("ArgumentError: " + name + "() " + + "takes at least" + signature.length + pluralized + + " but received " + args.length); + } + } else if (args.length !== signature.length) { + pluralized = signature.length === 1 ? " argument" : " arguments"; + throw new Error("ArgumentError: " + name + "() " + + "takes " + signature.length + pluralized + + " but received " + args.length); + } + var currentSpec; + var actualType; + var typeMatched; + for (var i = 0; i < signature.length; i++) { + typeMatched = false; + currentSpec = signature[i].types; + actualType = this._getTypeName(args[i]); + for (var j = 0; j < currentSpec.length; j++) { + if (this._typeMatches(actualType, currentSpec[j], args[i])) { + typeMatched = true; + break; + } + } + if (!typeMatched) { + throw new Error("TypeError: " + name + "() " + + "expected argument " + (i + 1) + + " to be type " + currentSpec + + " but received type " + actualType + + " instead."); + } + } + }, + + _typeMatches: function(actual, expected, argValue) { + if (expected === TYPE_ANY) { + return true; + } + if (expected === TYPE_ARRAY_STRING || + expected === TYPE_ARRAY_NUMBER || + expected === TYPE_ARRAY) { + // The expected type can either just be array, + // or it can require a specific subtype (array of numbers). + // + // The simplest case is if "array" with no subtype is specified. + if (expected === TYPE_ARRAY) { + return actual === TYPE_ARRAY; + } else if (actual === TYPE_ARRAY) { + // Otherwise we need to check subtypes. + // I think this has potential to be improved. + var subtype; + if (expected === TYPE_ARRAY_NUMBER) { + subtype = TYPE_NUMBER; + } else if (expected === TYPE_ARRAY_STRING) { + subtype = TYPE_STRING; + } + for (var i = 0; i < argValue.length; i++) { + if (!this._typeMatches( + this._getTypeName(argValue[i]), subtype, + argValue[i])) { + return false; + } + } + return true; + } + } else { + return actual === expected; + } + }, + _getTypeName: function(obj) { + switch (Object.prototype.toString.call(obj)) { + case "[object String]": + return TYPE_STRING; + case "[object Number]": + return TYPE_NUMBER; + case "[object Array]": + return TYPE_ARRAY; + case "[object Boolean]": + return TYPE_BOOLEAN; + case "[object Null]": + return TYPE_NULL; + case "[object Object]": + // Check if it's an expref. If it has, it's been + // tagged with a jmespathType attr of 'Expref'; + if (obj.jmespathType === TOK_EXPREF) { + return TYPE_EXPREF; + } else { + return TYPE_OBJECT; + } + } + }, + + _functionStartsWith: function(resolvedArgs) { + return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0; + }, + + _functionEndsWith: function(resolvedArgs) { + var searchStr = resolvedArgs[0]; + var suffix = resolvedArgs[1]; + return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1; + }, + + _functionReverse: function(resolvedArgs) { + var typeName = this._getTypeName(resolvedArgs[0]); + if (typeName === TYPE_STRING) { + var originalStr = resolvedArgs[0]; + var reversedStr = ""; + for (var i = originalStr.length - 1; i >= 0; i--) { + reversedStr += originalStr[i]; + } + return reversedStr; + } else { + var reversedArray = resolvedArgs[0].slice(0); + reversedArray.reverse(); + return reversedArray; + } + }, + + _functionAbs: function(resolvedArgs) { + return Math.abs(resolvedArgs[0]); + }, + + _functionCeil: function(resolvedArgs) { + return Math.ceil(resolvedArgs[0]); + }, + + _functionAvg: function(resolvedArgs) { + var sum = 0; + var inputArray = resolvedArgs[0]; + for (var i = 0; i < inputArray.length; i++) { + sum += inputArray[i]; + } + return sum / inputArray.length; + }, + + _functionContains: function(resolvedArgs) { + return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0; + }, + + _functionFloor: function(resolvedArgs) { + return Math.floor(resolvedArgs[0]); + }, + + _functionLength: function(resolvedArgs) { + if (!isObject(resolvedArgs[0])) { + return resolvedArgs[0].length; + } else { + // As far as I can tell, there's no way to get the length + // of an object without O(n) iteration through the object. + return Object.keys(resolvedArgs[0]).length; + } + }, + + _functionMap: function(resolvedArgs) { + var mapped = []; + var interpreter = this._interpreter; + var exprefNode = resolvedArgs[0]; + var elements = resolvedArgs[1]; + for (var i = 0; i < elements.length; i++) { + mapped.push(interpreter.visit(exprefNode, elements[i])); + } + return mapped; + }, + + _functionMerge: function(resolvedArgs) { + var merged = {}; + for (var i = 0; i < resolvedArgs.length; i++) { + var current = resolvedArgs[i]; + for (var key in current) { + merged[key] = current[key]; + } + } + return merged; + }, + + _functionMax: function(resolvedArgs) { + if (resolvedArgs[0].length > 0) { + var typeName = this._getTypeName(resolvedArgs[0][0]); + if (typeName === TYPE_NUMBER) { + return Math.max.apply(Math, resolvedArgs[0]); + } else { + var elements = resolvedArgs[0]; + var maxElement = elements[0]; + for (var i = 1; i < elements.length; i++) { + if (maxElement.localeCompare(elements[i]) < 0) { + maxElement = elements[i]; + } + } + return maxElement; + } + } else { + return null; + } + }, + + _functionMin: function(resolvedArgs) { + if (resolvedArgs[0].length > 0) { + var typeName = this._getTypeName(resolvedArgs[0][0]); + if (typeName === TYPE_NUMBER) { + return Math.min.apply(Math, resolvedArgs[0]); + } else { + var elements = resolvedArgs[0]; + var minElement = elements[0]; + for (var i = 1; i < elements.length; i++) { + if (elements[i].localeCompare(minElement) < 0) { + minElement = elements[i]; + } + } + return minElement; + } + } else { + return null; + } + }, + + _functionSum: function(resolvedArgs) { + var sum = 0; + var listToSum = resolvedArgs[0]; + for (var i = 0; i < listToSum.length; i++) { + sum += listToSum[i]; + } + return sum; + }, + + _functionType: function(resolvedArgs) { + switch (this._getTypeName(resolvedArgs[0])) { + case TYPE_NUMBER: + return "number"; + case TYPE_STRING: + return "string"; + case TYPE_ARRAY: + return "array"; + case TYPE_OBJECT: + return "object"; + case TYPE_BOOLEAN: + return "boolean"; + case TYPE_EXPREF: + return "expref"; + case TYPE_NULL: + return "null"; + } + }, + + _functionKeys: function(resolvedArgs) { + return Object.keys(resolvedArgs[0]); + }, + + _functionValues: function(resolvedArgs) { + var obj = resolvedArgs[0]; + var keys = Object.keys(obj); + var values = []; + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + }, + + _functionJoin: function(resolvedArgs) { + var joinChar = resolvedArgs[0]; + var listJoin = resolvedArgs[1]; + return listJoin.join(joinChar); + }, + + _functionToArray: function(resolvedArgs) { + if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) { + return resolvedArgs[0]; + } else { + return [resolvedArgs[0]]; + } + }, + + _functionToString: function(resolvedArgs) { + if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) { + return resolvedArgs[0]; + } else { + return JSON.stringify(resolvedArgs[0]); + } + }, + + _functionToNumber: function(resolvedArgs) { + var typeName = this._getTypeName(resolvedArgs[0]); + var convertedValue; + if (typeName === TYPE_NUMBER) { + return resolvedArgs[0]; + } else if (typeName === TYPE_STRING) { + convertedValue = +resolvedArgs[0]; + if (!isNaN(convertedValue)) { + return convertedValue; + } + } + return null; + }, + + _functionNotNull: function(resolvedArgs) { + for (var i = 0; i < resolvedArgs.length; i++) { + if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) { + return resolvedArgs[i]; + } + } + return null; + }, + + _functionSort: function(resolvedArgs) { + var sortedArray = resolvedArgs[0].slice(0); + sortedArray.sort(); + return sortedArray; + }, + + _functionSortBy: function(resolvedArgs) { + var sortedArray = resolvedArgs[0].slice(0); + if (sortedArray.length === 0) { + return sortedArray; + } + var interpreter = this._interpreter; + var exprefNode = resolvedArgs[1]; + var requiredType = this._getTypeName( + interpreter.visit(exprefNode, sortedArray[0])); + if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) { + throw new Error("TypeError"); + } + var that = this; + // In order to get a stable sort out of an unstable + // sort algorithm, we decorate/sort/undecorate (DSU) + // by creating a new list of [index, element] pairs. + // In the cmp function, if the evaluated elements are + // equal, then the index will be used as the tiebreaker. + // After the decorated list has been sorted, it will be + // undecorated to extract the original elements. + var decorated = []; + for (var i = 0; i < sortedArray.length; i++) { + decorated.push([i, sortedArray[i]]); + } + decorated.sort(function(a, b) { + var exprA = interpreter.visit(exprefNode, a[1]); + var exprB = interpreter.visit(exprefNode, b[1]); + if (that._getTypeName(exprA) !== requiredType) { + throw new Error( + "TypeError: expected " + requiredType + ", received " + + that._getTypeName(exprA)); + } else if (that._getTypeName(exprB) !== requiredType) { + throw new Error( + "TypeError: expected " + requiredType + ", received " + + that._getTypeName(exprB)); + } + if (exprA > exprB) { + return 1; + } else if (exprA < exprB) { + return -1; + } else { + // If they're equal compare the items by their + // order to maintain relative order of equal keys + // (i.e. to get a stable sort). + return a[0] - b[0]; + } + }); + // Undecorate: extract out the original list elements. + for (var j = 0; j < decorated.length; j++) { + sortedArray[j] = decorated[j][1]; + } + return sortedArray; + }, + + _functionMaxBy: function(resolvedArgs) { + var exprefNode = resolvedArgs[1]; + var resolvedArray = resolvedArgs[0]; + var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); + var maxNumber = -Infinity; + var maxRecord; + var current; + for (var i = 0; i < resolvedArray.length; i++) { + current = keyFunction(resolvedArray[i]); + if (current > maxNumber) { + maxNumber = current; + maxRecord = resolvedArray[i]; + } + } + return maxRecord; + }, + + _functionMinBy: function(resolvedArgs) { + var exprefNode = resolvedArgs[1]; + var resolvedArray = resolvedArgs[0]; + var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); + var minNumber = Infinity; + var minRecord; + var current; + for (var i = 0; i < resolvedArray.length; i++) { + current = keyFunction(resolvedArray[i]); + if (current < minNumber) { + minNumber = current; + minRecord = resolvedArray[i]; + } + } + return minRecord; + }, + + createKeyFunction: function(exprefNode, allowedTypes) { + var that = this; + var interpreter = this._interpreter; + var keyFunc = function(x) { + var current = interpreter.visit(exprefNode, x); + if (allowedTypes.indexOf(that._getTypeName(current)) < 0) { + var msg = "TypeError: expected one of " + allowedTypes + + ", received " + that._getTypeName(current); + throw new Error(msg); + } + return current; + }; + return keyFunc; + } + + }; + + function compile(stream) { + var parser = new Parser(); + var ast = parser.parse(stream); + return ast; + } + + function tokenize(stream) { + var lexer = new Lexer(); + return lexer.tokenize(stream); + } + + function search(data, expression) { + var parser = new Parser(); + // This needs to be improved. Both the interpreter and runtime depend on + // each other. The runtime needs the interpreter to support exprefs. + // There's likely a clean way to avoid the cyclic dependency. + var runtime = new Runtime(); + var interpreter = new TreeInterpreter(runtime); + runtime._interpreter = interpreter; + var node = parser.parse(expression); + return interpreter.search(node, data); + } + + exports.tokenize = tokenize; + exports.compile = compile; + exports.search = search; + exports.strictDeepEqual = strictDeepEqual; +})(typeof exports === "undefined" ? this.jmespath = {} : exports); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jp.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jp.js new file mode 100755 index 0000000..c152108 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/jp.js @@ -0,0 +1,23 @@ +#!/usr/bin/env node +jmespath = require('./jmespath'); + +process.stdin.setEncoding('utf-8'); + + +if (process.argv.length < 2) { + console.log("Must provide a jmespath expression."); + process.exit(1); +} +var inputJSON = ""; + +process.stdin.on('readable', function() { + var chunk = process.stdin.read(); + if (chunk !== null) { + inputJSON += chunk; + } +}); + +process.stdin.on('end', function() { + var parsedInput = JSON.parse(inputJSON); + console.log(JSON.stringify(jmespath.search(parsedInput, process.argv[2]))); +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/l.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/l.js new file mode 100755 index 0000000..27bf6dd --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/l.js @@ -0,0 +1,189 @@ +'use strict'; + +var Lexer = exports.Lexer = function() { + this.pos = 0; + this.buf = null; + this.buflen = 0; + + // Operator table, mapping operator -> token name + this.optable = { + '+': 'PLUS', + '-': 'MINUS', + '*': 'MULTIPLY', + '.': 'PERIOD', + '\\': 'BACKSLASH', + ':': 'COLON', + '%': 'PERCENT', + '|': 'PIPE', + '!': 'EXCLAMATION', + '?': 'QUESTION', + '#': 'POUND', + '&': 'AMPERSAND', + ';': 'SEMI', + ',': 'COMMA', + '(': 'L_PAREN', + ')': 'R_PAREN', + '<': 'L_ANG', + '>': 'R_ANG', + '{': 'L_BRACE', + '}': 'R_BRACE', + '[': 'L_BRACKET', + ']': 'R_BRACKET', + '=': 'EQUALS' + }; +} + +// Initialize the Lexer's buffer. This resets the lexer's internal +// state and subsequent tokens will be returned starting with the +// beginning of the new buffer. +Lexer.prototype.input = function(buf) { + this.pos = 0; + this.buf = buf; + this.buflen = buf.length; +} + +// Get the next token from the current buffer. A token is an object with +// the following properties: +// - name: name of the pattern that this token matched (taken from rules). +// - value: actual string value of the token. +// - pos: offset in the current buffer where the token starts. +// +// If there are no more tokens in the buffer, returns null. In case of +// an error throws Error. +Lexer.prototype.token = function() { + this._skipnontokens(); + if (this.pos >= this.buflen) { + return null; + } + + // The char at this.pos is part of a real token. Figure out which. + var c = this.buf.charAt(this.pos); + + // '/' is treated specially, because it starts a comment if followed by + // another '/'. If not followed by another '/', it's the DIVIDE + // operator. + if (c === '/') { + var next_c = this.buf.charAt(this.pos + 1); + if (next_c === '/') { + return this._process_comment(); + } else { + return {name: 'DIVIDE', value: '/', pos: this.pos++}; + } + } else { + // Look it up in the table of operators + var op = this.optable[c]; + if (op !== undefined) { + return {name: op, value: c, pos: this.pos++}; + } else { + // Not an operator - so it's the beginning of another token. + if (Lexer._isalpha(c)) { + return this._process_identifier(); + } else if (Lexer._isdigit(c)) { + return this._process_number(); + } else if (c === '"') { + return this._process_quote(); + } else { + throw Error('Token error at ' + this.pos); + } + } + } +} + +Lexer._isnewline = function(c) { + return c === '\r' || c === '\n'; +} + +Lexer._isdigit = function(c) { + return c >= '0' && c <= '9'; +} + +Lexer._isalpha = function(c) { + return (c >= 'a' && c <= 'z') || + (c >= 'A' && c <= 'Z') || + c === '_' || c === '$'; +} + +Lexer._isalphanum = function(c) { + return (c >= 'a' && c <= 'z') || + (c >= 'A' && c <= 'Z') || + (c >= '0' && c <= '9') || + c === '_' || c === '$'; +} + +Lexer.prototype._process_number = function() { + var endpos = this.pos + 1; + while (endpos < this.buflen && + Lexer._isdigit(this.buf.charAt(endpos))) { + endpos++; + } + + var tok = { + name: 'NUMBER', + value: this.buf.substring(this.pos, endpos), + pos: this.pos + }; + this.pos = endpos; + return tok; +} + +Lexer.prototype._process_comment = function() { + var endpos = this.pos + 2; + // Skip until the end of the line + var c = this.buf.charAt(this.pos + 2); + while (endpos < this.buflen && + !Lexer._isnewline(this.buf.charAt(endpos))) { + endpos++; + } + + var tok = { + name: 'COMMENT', + value: this.buf.substring(this.pos, endpos), + pos: this.pos + }; + this.pos = endpos + 1; + return tok; +} + +Lexer.prototype._process_identifier = function() { + var endpos = this.pos + 1; + while (endpos < this.buflen && + Lexer._isalphanum(this.buf.charAt(endpos))) { + endpos++; + } + + var tok = { + name: 'IDENTIFIER', + value: this.buf.substring(this.pos, endpos), + pos: this.pos + }; + this.pos = endpos; + return tok; +} + +Lexer.prototype._process_quote = function() { + // this.pos points at the opening quote. Find the ending quote. + var end_index = this.buf.indexOf('"', this.pos + 1); + + if (end_index === -1) { + throw Error('Unterminated quote at ' + this.pos); + } else { + var tok = { + name: 'QUOTE', + value: this.buf.substring(this.pos, end_index + 1), + pos: this.pos + }; + this.pos = end_index + 1; + return tok; + } +} + +Lexer.prototype._skipnontokens = function() { + while (this.pos < this.buflen) { + var c = this.buf.charAt(this.pos); + if (c == ' ' || c == '\t' || c == '\r' || c == '\n') { + this.pos++; + } else { + break; + } + } +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/package.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/package.json new file mode 100755 index 0000000..72e13f9 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/package.json @@ -0,0 +1,74 @@ +{ + "name": "jmespath", + "description": "JMESPath implementation in javascript", + "version": "0.15.0", + "author": { + "name": "James Saryerwinnie", + "email": "js@jamesls.com", + "url": "http://jamesls.com/" + }, + "homepage": "https://github.com/jmespath/jmespath.js", + "contributors": [], + "devDependencies": { + "grunt": "^0.4.5", + "grunt-contrib-jshint": "^0.11.0", + "grunt-contrib-uglify": "^0.11.1", + "grunt-eslint": "^17.3.1", + "mocha": "^2.1.0" + }, + "dependencies": {}, + "main": "jmespath.js", + "directories": { + "test": "test" + }, + "engines": { + "node": ">= 0.6.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/jmespath/jmespath.js.git" + }, + "bugs": { + "url": "http://github.com/jmespath/jmespath.js/issues" + }, + "licenses": [ + { + "type": "Apache 2.0", + "url": "http://github.com/jmespath/jmespath.js/raw/master/LICENSE" + } + ], + "keywords": [ + "jmespath", + "jsonpath", + "json", + "xpath" + ], + "scripts": { + "test": "mocha test/" + }, + "gitHead": "72a28807b164317f2c61f0e2372656c424bc4b6c", + "_id": "jmespath@0.15.0", + "_shasum": "a3f222a9aae9f966f5d27c796510e28091764217", + "_from": "jmespath@0.15.0", + "_npmVersion": "3.8.3", + "_nodeVersion": "5.8.0", + "_npmUser": { + "name": "jamesls", + "email": "js@jamesls.com" + }, + "dist": { + "shasum": "a3f222a9aae9f966f5d27c796510e28091764217", + "tarball": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" + }, + "maintainers": [ + { + "name": "jamesls", + "email": "js@jamesls.com" + } + ], + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/jmespath-0.15.0.tgz_1458924686313_0.6043944323901087" + }, + "_resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/perf.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/perf.js new file mode 100755 index 0000000..58794ec --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/perf.js @@ -0,0 +1,33 @@ +var jmespath = require('./jmespath') +var Benchmark = require('benchmark'); +var suite = new Benchmark.Suite; + +// add tests +suite.add('Parser#single_expr', function() { + jmespath.compile("foo"); +}) +.add('Parser#single_subexpr', function() { + jmespath.compile("foo.bar"); +}) +.add('Parser#deeply_nested_50', function() { + jmespath.compile("j49.j48.j47.j46.j45.j44.j43.j42.j41.j40.j39.j38.j37.j36.j35.j34.j33.j32.j31.j30.j29.j28.j27.j26.j25.j24.j23.j22.j21.j20.j19.j18.j17.j16.j15.j14.j13.j12.j11.j10.j9.j8.j7.j6.j5.j4.j3.j2.j1.j0"); + +}) +.add('Parser#deeply_nested_50_index', function() { + jmespath.compile("[49][48][47][46][45][44][43][42][41][40][39][38][37][36][35][34][33][32][31][30][29][28][27][26][25][24][23][22][21][20][19][18][17][16][15][14][13][12][11][10][9][8][7][6][5][4][3][2][1][0]"); +}) +.add('Parser#basic_list_projection', function() { + jmespath.compile("foo[*].bar"); +}) +.on('cycle', function(event) { + var bench = event.target; + var mean = bench.stats.mean * 1000; + var variance = bench.stats.variance * 1000000; + var result = 'Mean time: ' + mean.toFixed(6) + 'msec '; + result += event.target.toString(); + console.log(result); +}) +.on('complete', function() { +}) +// run async +.run({ 'async': false }); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/reservedWords.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/reservedWords.json new file mode 100755 index 0000000..433cd35 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/reservedWords.json @@ -0,0 +1,4 @@ +{ + "vars": [ "define", "require", "exports"], + "props": ["compile", "search", "tokenize", "jmespath", "parse", "stringify", "prototype", "length"] +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance.js new file mode 100755 index 0000000..6298e9e --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance.js @@ -0,0 +1,56 @@ +var fs = require('fs'); +var path = require('path'); +var assert = require('assert'); +var jmespath = require('../jmespath'); +var search = jmespath.search; + +// Compliance tests that aren't supported yet. +var notImplementedYet = []; + +function endsWith(str, suffix) { + return str.indexOf(suffix, str.length - suffix.length) !== -1; +} + +var listing = fs.readdirSync('test/compliance'); +for (var i = 0; i < listing.length; i++) { + var filename = 'test/compliance/' + listing[i]; + if (fs.statSync(filename).isFile() && endsWith(filename, '.json') && + notImplementedYet.indexOf(path.basename(filename)) === -1) { + addTestSuitesFromFile(filename); + } +} +function addTestSuitesFromFile(filename) { + describe(filename, function() { + var spec = JSON.parse(fs.readFileSync(filename, 'utf-8')); + var errorMsg; + for (var i = 0; i < spec.length; i++) { + var msg = "suite " + i + " for filename " + filename; + describe(msg, function() { + var given = spec[i].given; + var cases = spec[i].cases; + for (var j = 0; j < cases.length; j++) { + var testcase = cases[j]; + if (testcase.error !== undefined) { + // For now just verify that an error is thrown + // for error tests. + (function(testcase, given) { + it('should throw error for test ' + j, function() { + assert.throws( + function() { + search(given, testcase.expression); + }, Error, testcase.expression); + }); + })(testcase, given); + } else { + (function(testcase, given) { + it('should pass test ' + j + " expression: " + testcase.expression, function() { + assert.deepEqual(search(given, testcase.expression), + testcase.result); + }); + })(testcase, given); + } + } + }); + } + }); +} diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/basic.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/basic.json new file mode 100755 index 0000000..d550e96 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/basic.json @@ -0,0 +1,96 @@ +[{ + "given": + {"foo": {"bar": {"baz": "correct"}}}, + "cases": [ + { + "expression": "foo", + "result": {"bar": {"baz": "correct"}} + }, + { + "expression": "foo.bar", + "result": {"baz": "correct"} + }, + { + "expression": "foo.bar.baz", + "result": "correct" + }, + { + "expression": "foo\n.\nbar\n.baz", + "result": "correct" + }, + { + "expression": "foo.bar.baz.bad", + "result": null + }, + { + "expression": "foo.bar.bad", + "result": null + }, + { + "expression": "foo.bad", + "result": null + }, + { + "expression": "bad", + "result": null + }, + { + "expression": "bad.morebad.morebad", + "result": null + } + ] +}, +{ + "given": + {"foo": {"bar": ["one", "two", "three"]}}, + "cases": [ + { + "expression": "foo", + "result": {"bar": ["one", "two", "three"]} + }, + { + "expression": "foo.bar", + "result": ["one", "two", "three"] + } + ] +}, +{ + "given": ["one", "two", "three"], + "cases": [ + { + "expression": "one", + "result": null + }, + { + "expression": "two", + "result": null + }, + { + "expression": "three", + "result": null + }, + { + "expression": "one.two", + "result": null + } + ] +}, +{ + "given": + {"foo": {"1": ["one", "two", "three"], "-1": "bar"}}, + "cases": [ + { + "expression": "foo.\"1\"", + "result": ["one", "two", "three"] + }, + { + "expression": "foo.\"1\"[0]", + "result": "one" + }, + { + "expression": "foo.\"-1\"", + "result": "bar" + } + ] +} +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/boolean.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/boolean.json new file mode 100755 index 0000000..e3fa196 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/boolean.json @@ -0,0 +1,257 @@ +[ + { + "given": { + "outer": { + "foo": "foo", + "bar": "bar", + "baz": "baz" + } + }, + "cases": [ + { + "expression": "outer.foo || outer.bar", + "result": "foo" + }, + { + "expression": "outer.foo||outer.bar", + "result": "foo" + }, + { + "expression": "outer.bar || outer.baz", + "result": "bar" + }, + { + "expression": "outer.bar||outer.baz", + "result": "bar" + }, + { + "expression": "outer.bad || outer.foo", + "result": "foo" + }, + { + "expression": "outer.bad||outer.foo", + "result": "foo" + }, + { + "expression": "outer.foo || outer.bad", + "result": "foo" + }, + { + "expression": "outer.foo||outer.bad", + "result": "foo" + }, + { + "expression": "outer.bad || outer.alsobad", + "result": null + }, + { + "expression": "outer.bad||outer.alsobad", + "result": null + } + ] + }, + { + "given": { + "outer": { + "foo": "foo", + "bool": false, + "empty_list": [], + "empty_string": "" + } + }, + "cases": [ + { + "expression": "outer.empty_string || outer.foo", + "result": "foo" + }, + { + "expression": "outer.nokey || outer.bool || outer.empty_list || outer.empty_string || outer.foo", + "result": "foo" + } + ] + }, + { + "given": { + "True": true, + "False": false, + "Number": 5, + "EmptyList": [], + "Zero": 0 + }, + "cases": [ + { + "expression": "True && False", + "result": false + }, + { + "expression": "False && True", + "result": false + }, + { + "expression": "True && True", + "result": true + }, + { + "expression": "False && False", + "result": false + }, + { + "expression": "True && Number", + "result": 5 + }, + { + "expression": "Number && True", + "result": true + }, + { + "expression": "Number && False", + "result": false + }, + { + "expression": "Number && EmptyList", + "result": [] + }, + { + "expression": "Number && True", + "result": true + }, + { + "expression": "EmptyList && True", + "result": [] + }, + { + "expression": "EmptyList && False", + "result": [] + }, + { + "expression": "True || False", + "result": true + }, + { + "expression": "True || True", + "result": true + }, + { + "expression": "False || True", + "result": true + }, + { + "expression": "False || False", + "result": false + }, + { + "expression": "Number || EmptyList", + "result": 5 + }, + { + "expression": "Number || True", + "result": 5 + }, + { + "expression": "Number || True && False", + "result": 5 + }, + { + "expression": "(Number || True) && False", + "result": false + }, + { + "expression": "Number || (True && False)", + "result": 5 + }, + { + "expression": "!True", + "result": false + }, + { + "expression": "!False", + "result": true + }, + { + "expression": "!Number", + "result": false + }, + { + "expression": "!EmptyList", + "result": true + }, + { + "expression": "True && !False", + "result": true + }, + { + "expression": "True && !EmptyList", + "result": true + }, + { + "expression": "!False && !EmptyList", + "result": true + }, + { + "expression": "!(True && False)", + "result": true + }, + { + "expression": "!Zero", + "result": false + }, + { + "expression": "!!Zero", + "result": true + } + ] + }, + { + "given": { + "one": 1, + "two": 2, + "three": 3 + }, + "cases": [ + { + "expression": "one < two", + "result": true + }, + { + "expression": "one <= two", + "result": true + }, + { + "expression": "one == one", + "result": true + }, + { + "expression": "one == two", + "result": false + }, + { + "expression": "one > two", + "result": false + }, + { + "expression": "one >= two", + "result": false + }, + { + "expression": "one != two", + "result": true + }, + { + "expression": "one < two && three > one", + "result": true + }, + { + "expression": "one < two || three > one", + "result": true + }, + { + "expression": "one < two || three < one", + "result": true + }, + { + "expression": "two < one || three < one", + "result": false + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/current.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/current.json new file mode 100755 index 0000000..0c26248 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/current.json @@ -0,0 +1,25 @@ +[ + { + "given": { + "foo": [{"name": "a"}, {"name": "b"}], + "bar": {"baz": "qux"} + }, + "cases": [ + { + "expression": "@", + "result": { + "foo": [{"name": "a"}, {"name": "b"}], + "bar": {"baz": "qux"} + } + }, + { + "expression": "@.bar", + "result": {"baz": "qux"} + }, + { + "expression": "@.foo[0]", + "result": {"name": "a"} + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/escape.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/escape.json new file mode 100755 index 0000000..4a62d95 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/escape.json @@ -0,0 +1,46 @@ +[{ + "given": { + "foo.bar": "dot", + "foo bar": "space", + "foo\nbar": "newline", + "foo\"bar": "doublequote", + "c:\\\\windows\\path": "windows", + "/unix/path": "unix", + "\"\"\"": "threequotes", + "bar": {"baz": "qux"} + }, + "cases": [ + { + "expression": "\"foo.bar\"", + "result": "dot" + }, + { + "expression": "\"foo bar\"", + "result": "space" + }, + { + "expression": "\"foo\\nbar\"", + "result": "newline" + }, + { + "expression": "\"foo\\\"bar\"", + "result": "doublequote" + }, + { + "expression": "\"c:\\\\\\\\windows\\\\path\"", + "result": "windows" + }, + { + "expression": "\"/unix/path\"", + "result": "unix" + }, + { + "expression": "\"\\\"\\\"\\\"\"", + "result": "threequotes" + }, + { + "expression": "\"bar\".\"baz\"", + "result": "qux" + } + ] +}] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/filters.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/filters.json new file mode 100755 index 0000000..5b9f52b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/filters.json @@ -0,0 +1,468 @@ +[ + { + "given": {"foo": [{"name": "a"}, {"name": "b"}]}, + "cases": [ + { + "comment": "Matching a literal", + "expression": "foo[?name == 'a']", + "result": [{"name": "a"}] + } + ] + }, + { + "given": {"foo": [0, 1], "bar": [2, 3]}, + "cases": [ + { + "comment": "Matching a literal", + "expression": "*[?[0] == `0`]", + "result": [[], []] + } + ] + }, + { + "given": {"foo": [{"first": "foo", "last": "bar"}, + {"first": "foo", "last": "foo"}, + {"first": "foo", "last": "baz"}]}, + "cases": [ + { + "comment": "Matching an expression", + "expression": "foo[?first == last]", + "result": [{"first": "foo", "last": "foo"}] + }, + { + "comment": "Verify projection created from filter", + "expression": "foo[?first == last].first", + "result": ["foo"] + } + ] + }, + { + "given": {"foo": [{"age": 20}, + {"age": 25}, + {"age": 30}]}, + "cases": [ + { + "comment": "Greater than with a number", + "expression": "foo[?age > `25`]", + "result": [{"age": 30}] + }, + { + "expression": "foo[?age >= `25`]", + "result": [{"age": 25}, {"age": 30}] + }, + { + "comment": "Greater than with a number", + "expression": "foo[?age > `30`]", + "result": [] + }, + { + "comment": "Greater than with a number", + "expression": "foo[?age < `25`]", + "result": [{"age": 20}] + }, + { + "comment": "Greater than with a number", + "expression": "foo[?age <= `25`]", + "result": [{"age": 20}, {"age": 25}] + }, + { + "comment": "Greater than with a number", + "expression": "foo[?age < `20`]", + "result": [] + }, + { + "expression": "foo[?age == `20`]", + "result": [{"age": 20}] + }, + { + "expression": "foo[?age != `20`]", + "result": [{"age": 25}, {"age": 30}] + } + ] + }, + { + "given": {"foo": [{"top": {"name": "a"}}, + {"top": {"name": "b"}}]}, + "cases": [ + { + "comment": "Filter with subexpression", + "expression": "foo[?top.name == 'a']", + "result": [{"top": {"name": "a"}}] + } + ] + }, + { + "given": {"foo": [{"top": {"first": "foo", "last": "bar"}}, + {"top": {"first": "foo", "last": "foo"}}, + {"top": {"first": "foo", "last": "baz"}}]}, + "cases": [ + { + "comment": "Matching an expression", + "expression": "foo[?top.first == top.last]", + "result": [{"top": {"first": "foo", "last": "foo"}}] + }, + { + "comment": "Matching a JSON array", + "expression": "foo[?top == `{\"first\": \"foo\", \"last\": \"bar\"}`]", + "result": [{"top": {"first": "foo", "last": "bar"}}] + } + ] + }, + { + "given": {"foo": [ + {"key": true}, + {"key": false}, + {"key": 0}, + {"key": 1}, + {"key": [0]}, + {"key": {"bar": [0]}}, + {"key": null}, + {"key": [1]}, + {"key": {"a":2}} + ]}, + "cases": [ + { + "expression": "foo[?key == `true`]", + "result": [{"key": true}] + }, + { + "expression": "foo[?key == `false`]", + "result": [{"key": false}] + }, + { + "expression": "foo[?key == `0`]", + "result": [{"key": 0}] + }, + { + "expression": "foo[?key == `1`]", + "result": [{"key": 1}] + }, + { + "expression": "foo[?key == `[0]`]", + "result": [{"key": [0]}] + }, + { + "expression": "foo[?key == `{\"bar\": [0]}`]", + "result": [{"key": {"bar": [0]}}] + }, + { + "expression": "foo[?key == `null`]", + "result": [{"key": null}] + }, + { + "expression": "foo[?key == `[1]`]", + "result": [{"key": [1]}] + }, + { + "expression": "foo[?key == `{\"a\":2}`]", + "result": [{"key": {"a":2}}] + }, + { + "expression": "foo[?`true` == key]", + "result": [{"key": true}] + }, + { + "expression": "foo[?`false` == key]", + "result": [{"key": false}] + }, + { + "expression": "foo[?`0` == key]", + "result": [{"key": 0}] + }, + { + "expression": "foo[?`1` == key]", + "result": [{"key": 1}] + }, + { + "expression": "foo[?`[0]` == key]", + "result": [{"key": [0]}] + }, + { + "expression": "foo[?`{\"bar\": [0]}` == key]", + "result": [{"key": {"bar": [0]}}] + }, + { + "expression": "foo[?`null` == key]", + "result": [{"key": null}] + }, + { + "expression": "foo[?`[1]` == key]", + "result": [{"key": [1]}] + }, + { + "expression": "foo[?`{\"a\":2}` == key]", + "result": [{"key": {"a":2}}] + }, + { + "expression": "foo[?key != `true`]", + "result": [{"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?key != `false`]", + "result": [{"key": true}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?key != `0`]", + "result": [{"key": true}, {"key": false}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?key != `1`]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?key != `null`]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?key != `[1]`]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": {"a":2}}] + }, + { + "expression": "foo[?key != `{\"a\":2}`]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}] + }, + { + "expression": "foo[?`true` != key]", + "result": [{"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?`false` != key]", + "result": [{"key": true}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?`0` != key]", + "result": [{"key": true}, {"key": false}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?`1` != key]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?`null` != key]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": [1]}, {"key": {"a":2}}] + }, + { + "expression": "foo[?`[1]` != key]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": {"a":2}}] + }, + { + "expression": "foo[?`{\"a\":2}` != key]", + "result": [{"key": true}, {"key": false}, {"key": 0}, {"key": 1}, {"key": [0]}, + {"key": {"bar": [0]}}, {"key": null}, {"key": [1]}] + } + ] + }, + { + "given": {"reservations": [ + {"instances": [ + {"foo": 1, "bar": 2}, {"foo": 1, "bar": 3}, + {"foo": 1, "bar": 2}, {"foo": 2, "bar": 1}]}]}, + "cases": [ + { + "expression": "reservations[].instances[?bar==`1`]", + "result": [[{"foo": 2, "bar": 1}]] + }, + { + "expression": "reservations[*].instances[?bar==`1`]", + "result": [[{"foo": 2, "bar": 1}]] + }, + { + "expression": "reservations[].instances[?bar==`1`][]", + "result": [{"foo": 2, "bar": 1}] + } + ] + }, + { + "given": { + "baz": "other", + "foo": [ + {"bar": 1}, {"bar": 2}, {"bar": 3}, {"bar": 4}, {"bar": 1, "baz": 2} + ] + }, + "cases": [ + { + "expression": "foo[?bar==`1`].bar[0]", + "result": [] + } + ] + }, + { + "given": { + "foo": [ + {"a": 1, "b": {"c": "x"}}, + {"a": 1, "b": {"c": "y"}}, + {"a": 1, "b": {"c": "z"}}, + {"a": 2, "b": {"c": "z"}}, + {"a": 1, "baz": 2} + ] + }, + "cases": [ + { + "expression": "foo[?a==`1`].b.c", + "result": ["x", "y", "z"] + } + ] + }, + { + "given": {"foo": [{"name": "a"}, {"name": "b"}, {"name": "c"}]}, + "cases": [ + { + "comment": "Filter with or expression", + "expression": "foo[?name == 'a' || name == 'b']", + "result": [{"name": "a"}, {"name": "b"}] + }, + { + "expression": "foo[?name == 'a' || name == 'e']", + "result": [{"name": "a"}] + }, + { + "expression": "foo[?name == 'a' || name == 'b' || name == 'c']", + "result": [{"name": "a"}, {"name": "b"}, {"name": "c"}] + } + ] + }, + { + "given": {"foo": [{"a": 1, "b": 2}, {"a": 1, "b": 3}]}, + "cases": [ + { + "comment": "Filter with and expression", + "expression": "foo[?a == `1` && b == `2`]", + "result": [{"a": 1, "b": 2}] + }, + { + "expression": "foo[?a == `1` && b == `4`]", + "result": [] + } + ] + }, + { + "given": {"foo": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]}, + "cases": [ + { + "comment": "Filter with Or and And expressions", + "expression": "foo[?c == `3` || a == `1` && b == `4`]", + "result": [{"a": 1, "b": 2, "c": 3}] + }, + { + "expression": "foo[?b == `2` || a == `3` && b == `4`]", + "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}] + }, + { + "expression": "foo[?a == `3` && b == `4` || b == `2`]", + "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}] + }, + { + "expression": "foo[?(a == `3` && b == `4`) || b == `2`]", + "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}] + }, + { + "expression": "foo[?((a == `3` && b == `4`)) || b == `2`]", + "result": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}] + }, + { + "expression": "foo[?a == `3` && (b == `4` || b == `2`)]", + "result": [{"a": 3, "b": 4}] + }, + { + "expression": "foo[?a == `3` && ((b == `4` || b == `2`))]", + "result": [{"a": 3, "b": 4}] + } + ] + }, + { + "given": {"foo": [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4}]}, + "cases": [ + { + "comment": "Verify precedence of or/and expressions", + "expression": "foo[?a == `1` || b ==`2` && c == `5`]", + "result": [{"a": 1, "b": 2, "c": 3}] + }, + { + "comment": "Parentheses can alter precedence", + "expression": "foo[?(a == `1` || b ==`2`) && c == `5`]", + "result": [] + }, + { + "comment": "Not expressions combined with and/or", + "expression": "foo[?!(a == `1` || b ==`2`)]", + "result": [{"a": 3, "b": 4}] + } + ] + }, + { + "given": { + "foo": [ + {"key": true}, + {"key": false}, + {"key": []}, + {"key": {}}, + {"key": [0]}, + {"key": {"a": "b"}}, + {"key": 0}, + {"key": 1}, + {"key": null}, + {"notkey": true} + ] + }, + "cases": [ + { + "comment": "Unary filter expression", + "expression": "foo[?key]", + "result": [ + {"key": true}, {"key": [0]}, {"key": {"a": "b"}}, + {"key": 0}, {"key": 1} + ] + }, + { + "comment": "Unary not filter expression", + "expression": "foo[?!key]", + "result": [ + {"key": false}, {"key": []}, {"key": {}}, + {"key": null}, {"notkey": true} + ] + }, + { + "comment": "Equality with null RHS", + "expression": "foo[?key == `null`]", + "result": [ + {"key": null}, {"notkey": true} + ] + } + ] + }, + { + "given": { + "foo": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + "cases": [ + { + "comment": "Using @ in a filter expression", + "expression": "foo[?@ < `5`]", + "result": [0, 1, 2, 3, 4] + }, + { + "comment": "Using @ in a filter expression", + "expression": "foo[?`5` > @]", + "result": [0, 1, 2, 3, 4] + }, + { + "comment": "Using @ in a filter expression", + "expression": "foo[?@ == @]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/functions.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/functions.json new file mode 100755 index 0000000..8b8db36 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/functions.json @@ -0,0 +1,825 @@ +[{ + "given": + { + "foo": -1, + "zero": 0, + "numbers": [-1, 3, 4, 5], + "array": [-1, 3, 4, 5, "a", "100"], + "strings": ["a", "b", "c"], + "decimals": [1.01, 1.2, -1.5], + "str": "Str", + "false": false, + "empty_list": [], + "empty_hash": {}, + "objects": {"foo": "bar", "bar": "baz"}, + "null_key": null + }, + "cases": [ + { + "expression": "abs(foo)", + "result": 1 + }, + { + "expression": "abs(foo)", + "result": 1 + }, + { + "expression": "abs(str)", + "error": "invalid-type" + }, + { + "expression": "abs(array[1])", + "result": 3 + }, + { + "expression": "abs(array[1])", + "result": 3 + }, + { + "expression": "abs(`false`)", + "error": "invalid-type" + }, + { + "expression": "abs(`-24`)", + "result": 24 + }, + { + "expression": "abs(`-24`)", + "result": 24 + }, + { + "expression": "abs(`1`, `2`)", + "error": "invalid-arity" + }, + { + "expression": "abs()", + "error": "invalid-arity" + }, + { + "expression": "unknown_function(`1`, `2`)", + "error": "unknown-function" + }, + { + "expression": "avg(numbers)", + "result": 2.75 + }, + { + "expression": "avg(array)", + "error": "invalid-type" + }, + { + "expression": "avg('abc')", + "error": "invalid-type" + }, + { + "expression": "avg(foo)", + "error": "invalid-type" + }, + { + "expression": "avg(@)", + "error": "invalid-type" + }, + { + "expression": "avg(strings)", + "error": "invalid-type" + }, + { + "expression": "ceil(`1.2`)", + "result": 2 + }, + { + "expression": "ceil(decimals[0])", + "result": 2 + }, + { + "expression": "ceil(decimals[1])", + "result": 2 + }, + { + "expression": "ceil(decimals[2])", + "result": -1 + }, + { + "expression": "ceil('string')", + "error": "invalid-type" + }, + { + "expression": "contains('abc', 'a')", + "result": true + }, + { + "expression": "contains('abc', 'd')", + "result": false + }, + { + "expression": "contains(`false`, 'd')", + "error": "invalid-type" + }, + { + "expression": "contains(strings, 'a')", + "result": true + }, + { + "expression": "contains(decimals, `1.2`)", + "result": true + }, + { + "expression": "contains(decimals, `false`)", + "result": false + }, + { + "expression": "ends_with(str, 'r')", + "result": true + }, + { + "expression": "ends_with(str, 'tr')", + "result": true + }, + { + "expression": "ends_with(str, 'Str')", + "result": true + }, + { + "expression": "ends_with(str, 'SStr')", + "result": false + }, + { + "expression": "ends_with(str, 'foo')", + "result": false + }, + { + "expression": "ends_with(str, `0`)", + "error": "invalid-type" + }, + { + "expression": "floor(`1.2`)", + "result": 1 + }, + { + "expression": "floor('string')", + "error": "invalid-type" + }, + { + "expression": "floor(decimals[0])", + "result": 1 + }, + { + "expression": "floor(foo)", + "result": -1 + }, + { + "expression": "floor(str)", + "error": "invalid-type" + }, + { + "expression": "length('abc')", + "result": 3 + }, + { + "expression": "length('✓foo')", + "result": 4 + }, + { + "expression": "length('')", + "result": 0 + }, + { + "expression": "length(@)", + "result": 12 + }, + { + "expression": "length(strings[0])", + "result": 1 + }, + { + "expression": "length(str)", + "result": 3 + }, + { + "expression": "length(array)", + "result": 6 + }, + { + "expression": "length(objects)", + "result": 2 + }, + { + "expression": "length(`false`)", + "error": "invalid-type" + }, + { + "expression": "length(foo)", + "error": "invalid-type" + }, + { + "expression": "length(strings[0])", + "result": 1 + }, + { + "expression": "max(numbers)", + "result": 5 + }, + { + "expression": "max(decimals)", + "result": 1.2 + }, + { + "expression": "max(strings)", + "result": "c" + }, + { + "expression": "max(abc)", + "error": "invalid-type" + }, + { + "expression": "max(array)", + "error": "invalid-type" + }, + { + "expression": "max(decimals)", + "result": 1.2 + }, + { + "expression": "max(empty_list)", + "result": null + }, + { + "expression": "merge(`{}`)", + "result": {} + }, + { + "expression": "merge(`{}`, `{}`)", + "result": {} + }, + { + "expression": "merge(`{\"a\": 1}`, `{\"b\": 2}`)", + "result": {"a": 1, "b": 2} + }, + { + "expression": "merge(`{\"a\": 1}`, `{\"a\": 2}`)", + "result": {"a": 2} + }, + { + "expression": "merge(`{\"a\": 1, \"b\": 2}`, `{\"a\": 2, \"c\": 3}`, `{\"d\": 4}`)", + "result": {"a": 2, "b": 2, "c": 3, "d": 4} + }, + { + "expression": "min(numbers)", + "result": -1 + }, + { + "expression": "min(decimals)", + "result": -1.5 + }, + { + "expression": "min(abc)", + "error": "invalid-type" + }, + { + "expression": "min(array)", + "error": "invalid-type" + }, + { + "expression": "min(empty_list)", + "result": null + }, + { + "expression": "min(decimals)", + "result": -1.5 + }, + { + "expression": "min(strings)", + "result": "a" + }, + { + "expression": "type('abc')", + "result": "string" + }, + { + "expression": "type(`1.0`)", + "result": "number" + }, + { + "expression": "type(`2`)", + "result": "number" + }, + { + "expression": "type(`true`)", + "result": "boolean" + }, + { + "expression": "type(`false`)", + "result": "boolean" + }, + { + "expression": "type(`null`)", + "result": "null" + }, + { + "expression": "type(`[0]`)", + "result": "array" + }, + { + "expression": "type(`{\"a\": \"b\"}`)", + "result": "object" + }, + { + "expression": "type(@)", + "result": "object" + }, + { + "expression": "sort(keys(objects))", + "result": ["bar", "foo"] + }, + { + "expression": "keys(foo)", + "error": "invalid-type" + }, + { + "expression": "keys(strings)", + "error": "invalid-type" + }, + { + "expression": "keys(`false`)", + "error": "invalid-type" + }, + { + "expression": "sort(values(objects))", + "result": ["bar", "baz"] + }, + { + "expression": "keys(empty_hash)", + "result": [] + }, + { + "expression": "values(foo)", + "error": "invalid-type" + }, + { + "expression": "join(', ', strings)", + "result": "a, b, c" + }, + { + "expression": "join(', ', strings)", + "result": "a, b, c" + }, + { + "expression": "join(',', `[\"a\", \"b\"]`)", + "result": "a,b" + }, + { + "expression": "join(',', `[\"a\", 0]`)", + "error": "invalid-type" + }, + { + "expression": "join(', ', str)", + "error": "invalid-type" + }, + { + "expression": "join('|', strings)", + "result": "a|b|c" + }, + { + "expression": "join(`2`, strings)", + "error": "invalid-type" + }, + { + "expression": "join('|', decimals)", + "error": "invalid-type" + }, + { + "expression": "join('|', decimals[].to_string(@))", + "result": "1.01|1.2|-1.5" + }, + { + "expression": "join('|', empty_list)", + "result": "" + }, + { + "expression": "reverse(numbers)", + "result": [5, 4, 3, -1] + }, + { + "expression": "reverse(array)", + "result": ["100", "a", 5, 4, 3, -1] + }, + { + "expression": "reverse(`[]`)", + "result": [] + }, + { + "expression": "reverse('')", + "result": "" + }, + { + "expression": "reverse('hello world')", + "result": "dlrow olleh" + }, + { + "expression": "starts_with(str, 'S')", + "result": true + }, + { + "expression": "starts_with(str, 'St')", + "result": true + }, + { + "expression": "starts_with(str, 'Str')", + "result": true + }, + { + "expression": "starts_with(str, 'String')", + "result": false + }, + { + "expression": "starts_with(str, `0`)", + "error": "invalid-type" + }, + { + "expression": "sum(numbers)", + "result": 11 + }, + { + "expression": "sum(decimals)", + "result": 0.71 + }, + { + "expression": "sum(array)", + "error": "invalid-type" + }, + { + "expression": "sum(array[].to_number(@))", + "result": 111 + }, + { + "expression": "sum(`[]`)", + "result": 0 + }, + { + "expression": "to_array('foo')", + "result": ["foo"] + }, + { + "expression": "to_array(`0`)", + "result": [0] + }, + { + "expression": "to_array(objects)", + "result": [{"foo": "bar", "bar": "baz"}] + }, + { + "expression": "to_array(`[1, 2, 3]`)", + "result": [1, 2, 3] + }, + { + "expression": "to_array(false)", + "result": [false] + }, + { + "expression": "to_string('foo')", + "result": "foo" + }, + { + "expression": "to_string(`1.2`)", + "result": "1.2" + }, + { + "expression": "to_string(`[0, 1]`)", + "result": "[0,1]" + }, + { + "expression": "to_number('1.0')", + "result": 1.0 + }, + { + "expression": "to_number('1.1')", + "result": 1.1 + }, + { + "expression": "to_number('4')", + "result": 4 + }, + { + "expression": "to_number('notanumber')", + "result": null + }, + { + "expression": "to_number(`false`)", + "result": null + }, + { + "expression": "to_number(`null`)", + "result": null + }, + { + "expression": "to_number(`[0]`)", + "result": null + }, + { + "expression": "to_number(`{\"foo\": 0}`)", + "result": null + }, + { + "expression": "\"to_string\"(`1.0`)", + "error": "syntax" + }, + { + "expression": "sort(numbers)", + "result": [-1, 3, 4, 5] + }, + { + "expression": "sort(strings)", + "result": ["a", "b", "c"] + }, + { + "expression": "sort(decimals)", + "result": [-1.5, 1.01, 1.2] + }, + { + "expression": "sort(array)", + "error": "invalid-type" + }, + { + "expression": "sort(abc)", + "error": "invalid-type" + }, + { + "expression": "sort(empty_list)", + "result": [] + }, + { + "expression": "sort(@)", + "error": "invalid-type" + }, + { + "expression": "not_null(unknown_key, str)", + "result": "Str" + }, + { + "expression": "not_null(unknown_key, foo.bar, empty_list, str)", + "result": [] + }, + { + "expression": "not_null(unknown_key, null_key, empty_list, str)", + "result": [] + }, + { + "expression": "not_null(all, expressions, are_null)", + "result": null + }, + { + "expression": "not_null()", + "error": "invalid-arity" + }, + { + "description": "function projection on single arg function", + "expression": "numbers[].to_string(@)", + "result": ["-1", "3", "4", "5"] + }, + { + "description": "function projection on single arg function", + "expression": "array[].to_number(@)", + "result": [-1, 3, 4, 5, 100] + } + ] +}, { + "given": + { + "foo": [ + {"b": "b", "a": "a"}, + {"c": "c", "b": "b"}, + {"d": "d", "c": "c"}, + {"e": "e", "d": "d"}, + {"f": "f", "e": "e"} + ] + }, + "cases": [ + { + "description": "function projection on variadic function", + "expression": "foo[].not_null(f, e, d, c, b, a)", + "result": ["b", "c", "d", "e", "f"] + } + ] +}, { + "given": + { + "people": [ + {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"}, + {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"}, + {"age": 30, "age_str": "30", "bool": true, "name": "c"}, + {"age": 50, "age_str": "50", "bool": false, "name": "d"}, + {"age": 10, "age_str": "10", "bool": true, "name": 3} + ] + }, + "cases": [ + { + "description": "sort by field expression", + "expression": "sort_by(people, &age)", + "result": [ + {"age": 10, "age_str": "10", "bool": true, "name": 3}, + {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"}, + {"age": 30, "age_str": "30", "bool": true, "name": "c"}, + {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"}, + {"age": 50, "age_str": "50", "bool": false, "name": "d"} + ] + }, + { + "expression": "sort_by(people, &age_str)", + "result": [ + {"age": 10, "age_str": "10", "bool": true, "name": 3}, + {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"}, + {"age": 30, "age_str": "30", "bool": true, "name": "c"}, + {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"}, + {"age": 50, "age_str": "50", "bool": false, "name": "d"} + ] + }, + { + "description": "sort by function expression", + "expression": "sort_by(people, &to_number(age_str))", + "result": [ + {"age": 10, "age_str": "10", "bool": true, "name": 3}, + {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"}, + {"age": 30, "age_str": "30", "bool": true, "name": "c"}, + {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"}, + {"age": 50, "age_str": "50", "bool": false, "name": "d"} + ] + }, + { + "description": "function projection on sort_by function", + "expression": "sort_by(people, &age)[].name", + "result": [3, "a", "c", "b", "d"] + }, + { + "expression": "sort_by(people, &extra)", + "error": "invalid-type" + }, + { + "expression": "sort_by(people, &bool)", + "error": "invalid-type" + }, + { + "expression": "sort_by(people, &name)", + "error": "invalid-type" + }, + { + "expression": "sort_by(people, name)", + "error": "invalid-type" + }, + { + "expression": "sort_by(people, &age)[].extra", + "result": ["foo", "bar"] + }, + { + "expression": "sort_by(`[]`, &age)", + "result": [] + }, + { + "expression": "max_by(people, &age)", + "result": {"age": 50, "age_str": "50", "bool": false, "name": "d"} + }, + { + "expression": "max_by(people, &age_str)", + "result": {"age": 50, "age_str": "50", "bool": false, "name": "d"} + }, + { + "expression": "max_by(people, &bool)", + "error": "invalid-type" + }, + { + "expression": "max_by(people, &extra)", + "error": "invalid-type" + }, + { + "expression": "max_by(people, &to_number(age_str))", + "result": {"age": 50, "age_str": "50", "bool": false, "name": "d"} + }, + { + "expression": "min_by(people, &age)", + "result": {"age": 10, "age_str": "10", "bool": true, "name": 3} + }, + { + "expression": "min_by(people, &age_str)", + "result": {"age": 10, "age_str": "10", "bool": true, "name": 3} + }, + { + "expression": "min_by(people, &bool)", + "error": "invalid-type" + }, + { + "expression": "min_by(people, &extra)", + "error": "invalid-type" + }, + { + "expression": "min_by(people, &to_number(age_str))", + "result": {"age": 10, "age_str": "10", "bool": true, "name": 3} + } + ] +}, { + "given": + { + "people": [ + {"age": 10, "order": "1"}, + {"age": 10, "order": "2"}, + {"age": 10, "order": "3"}, + {"age": 10, "order": "4"}, + {"age": 10, "order": "5"}, + {"age": 10, "order": "6"}, + {"age": 10, "order": "7"}, + {"age": 10, "order": "8"}, + {"age": 10, "order": "9"}, + {"age": 10, "order": "10"}, + {"age": 10, "order": "11"} + ] + }, + "cases": [ + { + "description": "stable sort order", + "expression": "sort_by(people, &age)", + "result": [ + {"age": 10, "order": "1"}, + {"age": 10, "order": "2"}, + {"age": 10, "order": "3"}, + {"age": 10, "order": "4"}, + {"age": 10, "order": "5"}, + {"age": 10, "order": "6"}, + {"age": 10, "order": "7"}, + {"age": 10, "order": "8"}, + {"age": 10, "order": "9"}, + {"age": 10, "order": "10"}, + {"age": 10, "order": "11"} + ] + } + ] +}, { + "given": + { + "people": [ + {"a": 10, "b": 1, "c": "z"}, + {"a": 10, "b": 2, "c": null}, + {"a": 10, "b": 3}, + {"a": 10, "b": 4, "c": "z"}, + {"a": 10, "b": 5, "c": null}, + {"a": 10, "b": 6}, + {"a": 10, "b": 7, "c": "z"}, + {"a": 10, "b": 8, "c": null}, + {"a": 10, "b": 9} + ], + "empty": [] + }, + "cases": [ + { + "expression": "map(&a, people)", + "result": [10, 10, 10, 10, 10, 10, 10, 10, 10] + }, + { + "expression": "map(&c, people)", + "result": ["z", null, null, "z", null, null, "z", null, null] + }, + { + "expression": "map(&a, badkey)", + "error": "invalid-type" + }, + { + "expression": "map(&foo, empty)", + "result": [] + } + ] +}, { + "given": { + "array": [ + { + "foo": {"bar": "yes1"} + }, + { + "foo": {"bar": "yes2"} + }, + { + "foo1": {"bar": "no"} + } + ]}, + "cases": [ + { + "expression": "map(&foo.bar, array)", + "result": ["yes1", "yes2", null] + }, + { + "expression": "map(&foo1.bar, array)", + "result": [null, null, "no"] + }, + { + "expression": "map(&foo.bar.baz, array)", + "result": [null, null, null] + } + ] +}, { + "given": { + "array": [[1, 2, 3, [4]], [5, 6, 7, [8, 9]]] + }, + "cases": [ + { + "expression": "map(&[], array)", + "result": [[1, 2, 3, 4], [5, 6, 7, 8, 9]] + } + ] +} +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/identifiers.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/identifiers.json new file mode 100755 index 0000000..7998a41 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/identifiers.json @@ -0,0 +1,1377 @@ +[ + { + "given": { + "__L": true + }, + "cases": [ + { + "expression": "__L", + "result": true + } + ] + }, + { + "given": { + "!\r": true + }, + "cases": [ + { + "expression": "\"!\\r\"", + "result": true + } + ] + }, + { + "given": { + "Y_1623": true + }, + "cases": [ + { + "expression": "Y_1623", + "result": true + } + ] + }, + { + "given": { + "x": true + }, + "cases": [ + { + "expression": "x", + "result": true + } + ] + }, + { + "given": { + "\tF\uCebb": true + }, + "cases": [ + { + "expression": "\"\\tF\\uCebb\"", + "result": true + } + ] + }, + { + "given": { + " \t": true + }, + "cases": [ + { + "expression": "\" \\t\"", + "result": true + } + ] + }, + { + "given": { + " ": true + }, + "cases": [ + { + "expression": "\" \"", + "result": true + } + ] + }, + { + "given": { + "v2": true + }, + "cases": [ + { + "expression": "v2", + "result": true + } + ] + }, + { + "given": { + "\t": true + }, + "cases": [ + { + "expression": "\"\\t\"", + "result": true + } + ] + }, + { + "given": { + "_X": true + }, + "cases": [ + { + "expression": "_X", + "result": true + } + ] + }, + { + "given": { + "\t4\ud9da\udd15": true + }, + "cases": [ + { + "expression": "\"\\t4\\ud9da\\udd15\"", + "result": true + } + ] + }, + { + "given": { + "v24_W": true + }, + "cases": [ + { + "expression": "v24_W", + "result": true + } + ] + }, + { + "given": { + "H": true + }, + "cases": [ + { + "expression": "\"H\"", + "result": true + } + ] + }, + { + "given": { + "\f": true + }, + "cases": [ + { + "expression": "\"\\f\"", + "result": true + } + ] + }, + { + "given": { + "E4": true + }, + "cases": [ + { + "expression": "\"E4\"", + "result": true + } + ] + }, + { + "given": { + "!": true + }, + "cases": [ + { + "expression": "\"!\"", + "result": true + } + ] + }, + { + "given": { + "tM": true + }, + "cases": [ + { + "expression": "tM", + "result": true + } + ] + }, + { + "given": { + " [": true + }, + "cases": [ + { + "expression": "\" [\"", + "result": true + } + ] + }, + { + "given": { + "R!": true + }, + "cases": [ + { + "expression": "\"R!\"", + "result": true + } + ] + }, + { + "given": { + "_6W": true + }, + "cases": [ + { + "expression": "_6W", + "result": true + } + ] + }, + { + "given": { + "\uaBA1\r": true + }, + "cases": [ + { + "expression": "\"\\uaBA1\\r\"", + "result": true + } + ] + }, + { + "given": { + "tL7": true + }, + "cases": [ + { + "expression": "tL7", + "result": true + } + ] + }, + { + "given": { + "<": true + }, + "cases": [ + { + "expression": "\">\"", + "result": true + } + ] + }, + { + "given": { + "hvu": true + }, + "cases": [ + { + "expression": "hvu", + "result": true + } + ] + }, + { + "given": { + "; !": true + }, + "cases": [ + { + "expression": "\"; !\"", + "result": true + } + ] + }, + { + "given": { + "hU": true + }, + "cases": [ + { + "expression": "hU", + "result": true + } + ] + }, + { + "given": { + "!I\n\/": true + }, + "cases": [ + { + "expression": "\"!I\\n\\/\"", + "result": true + } + ] + }, + { + "given": { + "\uEEbF": true + }, + "cases": [ + { + "expression": "\"\\uEEbF\"", + "result": true + } + ] + }, + { + "given": { + "U)\t": true + }, + "cases": [ + { + "expression": "\"U)\\t\"", + "result": true + } + ] + }, + { + "given": { + "fa0_9": true + }, + "cases": [ + { + "expression": "fa0_9", + "result": true + } + ] + }, + { + "given": { + "/": true + }, + "cases": [ + { + "expression": "\"/\"", + "result": true + } + ] + }, + { + "given": { + "Gy": true + }, + "cases": [ + { + "expression": "Gy", + "result": true + } + ] + }, + { + "given": { + "\b": true + }, + "cases": [ + { + "expression": "\"\\b\"", + "result": true + } + ] + }, + { + "given": { + "<": true + }, + "cases": [ + { + "expression": "\"<\"", + "result": true + } + ] + }, + { + "given": { + "\t": true + }, + "cases": [ + { + "expression": "\"\\t\"", + "result": true + } + ] + }, + { + "given": { + "\t&\\\r": true + }, + "cases": [ + { + "expression": "\"\\t&\\\\\\r\"", + "result": true + } + ] + }, + { + "given": { + "#": true + }, + "cases": [ + { + "expression": "\"#\"", + "result": true + } + ] + }, + { + "given": { + "B__": true + }, + "cases": [ + { + "expression": "B__", + "result": true + } + ] + }, + { + "given": { + "\nS \n": true + }, + "cases": [ + { + "expression": "\"\\nS \\n\"", + "result": true + } + ] + }, + { + "given": { + "Bp": true + }, + "cases": [ + { + "expression": "Bp", + "result": true + } + ] + }, + { + "given": { + ",\t;": true + }, + "cases": [ + { + "expression": "\",\\t;\"", + "result": true + } + ] + }, + { + "given": { + "B_q": true + }, + "cases": [ + { + "expression": "B_q", + "result": true + } + ] + }, + { + "given": { + "\/+\t\n\b!Z": true + }, + "cases": [ + { + "expression": "\"\\/+\\t\\n\\b!Z\"", + "result": true + } + ] + }, + { + "given": { + "\udadd\udfc7\\ueFAc": true + }, + "cases": [ + { + "expression": "\"\udadd\udfc7\\\\ueFAc\"", + "result": true + } + ] + }, + { + "given": { + ":\f": true + }, + "cases": [ + { + "expression": "\":\\f\"", + "result": true + } + ] + }, + { + "given": { + "\/": true + }, + "cases": [ + { + "expression": "\"\\/\"", + "result": true + } + ] + }, + { + "given": { + "_BW_6Hg_Gl": true + }, + "cases": [ + { + "expression": "_BW_6Hg_Gl", + "result": true + } + ] + }, + { + "given": { + "\udbcf\udc02": true + }, + "cases": [ + { + "expression": "\"\udbcf\udc02\"", + "result": true + } + ] + }, + { + "given": { + "zs1DC": true + }, + "cases": [ + { + "expression": "zs1DC", + "result": true + } + ] + }, + { + "given": { + "__434": true + }, + "cases": [ + { + "expression": "__434", + "result": true + } + ] + }, + { + "given": { + "\udb94\udd41": true + }, + "cases": [ + { + "expression": "\"\udb94\udd41\"", + "result": true + } + ] + }, + { + "given": { + "Z_5": true + }, + "cases": [ + { + "expression": "Z_5", + "result": true + } + ] + }, + { + "given": { + "z_M_": true + }, + "cases": [ + { + "expression": "z_M_", + "result": true + } + ] + }, + { + "given": { + "YU_2": true + }, + "cases": [ + { + "expression": "YU_2", + "result": true + } + ] + }, + { + "given": { + "_0": true + }, + "cases": [ + { + "expression": "_0", + "result": true + } + ] + }, + { + "given": { + "\b+": true + }, + "cases": [ + { + "expression": "\"\\b+\"", + "result": true + } + ] + }, + { + "given": { + "\"": true + }, + "cases": [ + { + "expression": "\"\\\"\"", + "result": true + } + ] + }, + { + "given": { + "D7": true + }, + "cases": [ + { + "expression": "D7", + "result": true + } + ] + }, + { + "given": { + "_62L": true + }, + "cases": [ + { + "expression": "_62L", + "result": true + } + ] + }, + { + "given": { + "\tK\t": true + }, + "cases": [ + { + "expression": "\"\\tK\\t\"", + "result": true + } + ] + }, + { + "given": { + "\n\\\f": true + }, + "cases": [ + { + "expression": "\"\\n\\\\\\f\"", + "result": true + } + ] + }, + { + "given": { + "I_": true + }, + "cases": [ + { + "expression": "I_", + "result": true + } + ] + }, + { + "given": { + "W_a0_": true + }, + "cases": [ + { + "expression": "W_a0_", + "result": true + } + ] + }, + { + "given": { + "BQ": true + }, + "cases": [ + { + "expression": "BQ", + "result": true + } + ] + }, + { + "given": { + "\tX$\uABBb": true + }, + "cases": [ + { + "expression": "\"\\tX$\\uABBb\"", + "result": true + } + ] + }, + { + "given": { + "Z9": true + }, + "cases": [ + { + "expression": "Z9", + "result": true + } + ] + }, + { + "given": { + "\b%\"\uda38\udd0f": true + }, + "cases": [ + { + "expression": "\"\\b%\\\"\uda38\udd0f\"", + "result": true + } + ] + }, + { + "given": { + "_F": true + }, + "cases": [ + { + "expression": "_F", + "result": true + } + ] + }, + { + "given": { + "!,": true + }, + "cases": [ + { + "expression": "\"!,\"", + "result": true + } + ] + }, + { + "given": { + "\"!": true + }, + "cases": [ + { + "expression": "\"\\\"!\"", + "result": true + } + ] + }, + { + "given": { + "Hh": true + }, + "cases": [ + { + "expression": "Hh", + "result": true + } + ] + }, + { + "given": { + "&": true + }, + "cases": [ + { + "expression": "\"&\"", + "result": true + } + ] + }, + { + "given": { + "9\r\\R": true + }, + "cases": [ + { + "expression": "\"9\\r\\\\R\"", + "result": true + } + ] + }, + { + "given": { + "M_k": true + }, + "cases": [ + { + "expression": "M_k", + "result": true + } + ] + }, + { + "given": { + "!\b\n\udb06\ude52\"\"": true + }, + "cases": [ + { + "expression": "\"!\\b\\n\udb06\ude52\\\"\\\"\"", + "result": true + } + ] + }, + { + "given": { + "6": true + }, + "cases": [ + { + "expression": "\"6\"", + "result": true + } + ] + }, + { + "given": { + "_7": true + }, + "cases": [ + { + "expression": "_7", + "result": true + } + ] + }, + { + "given": { + "0": true + }, + "cases": [ + { + "expression": "\"0\"", + "result": true + } + ] + }, + { + "given": { + "\\8\\": true + }, + "cases": [ + { + "expression": "\"\\\\8\\\\\"", + "result": true + } + ] + }, + { + "given": { + "b7eo": true + }, + "cases": [ + { + "expression": "b7eo", + "result": true + } + ] + }, + { + "given": { + "xIUo9": true + }, + "cases": [ + { + "expression": "xIUo9", + "result": true + } + ] + }, + { + "given": { + "5": true + }, + "cases": [ + { + "expression": "\"5\"", + "result": true + } + ] + }, + { + "given": { + "?": true + }, + "cases": [ + { + "expression": "\"?\"", + "result": true + } + ] + }, + { + "given": { + "sU": true + }, + "cases": [ + { + "expression": "sU", + "result": true + } + ] + }, + { + "given": { + "VH2&H\\\/": true + }, + "cases": [ + { + "expression": "\"VH2&H\\\\\\/\"", + "result": true + } + ] + }, + { + "given": { + "_C": true + }, + "cases": [ + { + "expression": "_C", + "result": true + } + ] + }, + { + "given": { + "_": true + }, + "cases": [ + { + "expression": "_", + "result": true + } + ] + }, + { + "given": { + "<\t": true + }, + "cases": [ + { + "expression": "\"<\\t\"", + "result": true + } + ] + }, + { + "given": { + "\uD834\uDD1E": true + }, + "cases": [ + { + "expression": "\"\\uD834\\uDD1E\"", + "result": true + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/indices.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/indices.json new file mode 100755 index 0000000..aa03b35 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/indices.json @@ -0,0 +1,346 @@ +[{ + "given": + {"foo": {"bar": ["zero", "one", "two"]}}, + "cases": [ + { + "expression": "foo.bar[0]", + "result": "zero" + }, + { + "expression": "foo.bar[1]", + "result": "one" + }, + { + "expression": "foo.bar[2]", + "result": "two" + }, + { + "expression": "foo.bar[3]", + "result": null + }, + { + "expression": "foo.bar[-1]", + "result": "two" + }, + { + "expression": "foo.bar[-2]", + "result": "one" + }, + { + "expression": "foo.bar[-3]", + "result": "zero" + }, + { + "expression": "foo.bar[-4]", + "result": null + } + ] +}, +{ + "given": + {"foo": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}]}, + "cases": [ + { + "expression": "foo.bar", + "result": null + }, + { + "expression": "foo[0].bar", + "result": "one" + }, + { + "expression": "foo[1].bar", + "result": "two" + }, + { + "expression": "foo[2].bar", + "result": "three" + }, + { + "expression": "foo[3].notbar", + "result": "four" + }, + { + "expression": "foo[3].bar", + "result": null + }, + { + "expression": "foo[0]", + "result": {"bar": "one"} + }, + { + "expression": "foo[1]", + "result": {"bar": "two"} + }, + { + "expression": "foo[2]", + "result": {"bar": "three"} + }, + { + "expression": "foo[3]", + "result": {"notbar": "four"} + }, + { + "expression": "foo[4]", + "result": null + } + ] +}, +{ + "given": [ + "one", "two", "three" + ], + "cases": [ + { + "expression": "[0]", + "result": "one" + }, + { + "expression": "[1]", + "result": "two" + }, + { + "expression": "[2]", + "result": "three" + }, + { + "expression": "[-1]", + "result": "three" + }, + { + "expression": "[-2]", + "result": "two" + }, + { + "expression": "[-3]", + "result": "one" + } + ] +}, +{ + "given": {"reservations": [ + {"instances": [{"foo": 1}, {"foo": 2}]} + ]}, + "cases": [ + { + "expression": "reservations[].instances[].foo", + "result": [1, 2] + }, + { + "expression": "reservations[].instances[].bar", + "result": [] + }, + { + "expression": "reservations[].notinstances[].foo", + "result": [] + }, + { + "expression": "reservations[].notinstances[].foo", + "result": [] + } + ] +}, +{ + "given": {"reservations": [{ + "instances": [ + {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]}, + {"foo": [{"bar": 5}, {"bar": 6}, {"notbar": [7]}, {"bar": 8}]}, + {"foo": "bar"}, + {"notfoo": [{"bar": 20}, {"bar": 21}, {"notbar": [7]}, {"bar": 22}]}, + {"bar": [{"baz": [1]}, {"baz": [2]}, {"baz": [3]}, {"baz": [4]}]}, + {"baz": [{"baz": [1, 2]}, {"baz": []}, {"baz": []}, {"baz": [3, 4]}]}, + {"qux": [{"baz": []}, {"baz": [1, 2, 3]}, {"baz": [4]}, {"baz": []}]} + ], + "otherkey": {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]} + }, { + "instances": [ + {"a": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]}, + {"b": [{"bar": 5}, {"bar": 6}, {"notbar": [7]}, {"bar": 8}]}, + {"c": "bar"}, + {"notfoo": [{"bar": 23}, {"bar": 24}, {"notbar": [7]}, {"bar": 25}]}, + {"qux": [{"baz": []}, {"baz": [1, 2, 3]}, {"baz": [4]}, {"baz": []}]} + ], + "otherkey": {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]} + } + ]}, + "cases": [ + { + "expression": "reservations[].instances[].foo[].bar", + "result": [1, 2, 4, 5, 6, 8] + }, + { + "expression": "reservations[].instances[].foo[].baz", + "result": [] + }, + { + "expression": "reservations[].instances[].notfoo[].bar", + "result": [20, 21, 22, 23, 24, 25] + }, + { + "expression": "reservations[].instances[].notfoo[].notbar", + "result": [[7], [7]] + }, + { + "expression": "reservations[].notinstances[].foo", + "result": [] + }, + { + "expression": "reservations[].instances[].foo[].notbar", + "result": [3, [7]] + }, + { + "expression": "reservations[].instances[].bar[].baz", + "result": [[1], [2], [3], [4]] + }, + { + "expression": "reservations[].instances[].baz[].baz", + "result": [[1, 2], [], [], [3, 4]] + }, + { + "expression": "reservations[].instances[].qux[].baz", + "result": [[], [1, 2, 3], [4], [], [], [1, 2, 3], [4], []] + }, + { + "expression": "reservations[].instances[].qux[].baz[]", + "result": [1, 2, 3, 4, 1, 2, 3, 4] + } + ] +}, +{ + "given": { + "foo": [ + [["one", "two"], ["three", "four"]], + [["five", "six"], ["seven", "eight"]], + [["nine"], ["ten"]] + ] + }, + "cases": [ + { + "expression": "foo[]", + "result": [["one", "two"], ["three", "four"], ["five", "six"], + ["seven", "eight"], ["nine"], ["ten"]] + }, + { + "expression": "foo[][0]", + "result": ["one", "three", "five", "seven", "nine", "ten"] + }, + { + "expression": "foo[][1]", + "result": ["two", "four", "six", "eight"] + }, + { + "expression": "foo[][0][0]", + "result": [] + }, + { + "expression": "foo[][2][2]", + "result": [] + }, + { + "expression": "foo[][0][0][100]", + "result": [] + } + ] +}, +{ + "given": { + "foo": [{ + "bar": [ + { + "qux": 2, + "baz": 1 + }, + { + "qux": 4, + "baz": 3 + } + ] + }, + { + "bar": [ + { + "qux": 6, + "baz": 5 + }, + { + "qux": 8, + "baz": 7 + } + ] + } + ] + }, + "cases": [ + { + "expression": "foo", + "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]}, + {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}] + }, + { + "expression": "foo[]", + "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]}, + {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}] + }, + { + "expression": "foo[].bar", + "result": [[{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}], + [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]] + }, + { + "expression": "foo[].bar[]", + "result": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}, + {"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}] + }, + { + "expression": "foo[].bar[].baz", + "result": [1, 3, 5, 7] + } + ] +}, +{ + "given": { + "string": "string", + "hash": {"foo": "bar", "bar": "baz"}, + "number": 23, + "nullvalue": null + }, + "cases": [ + { + "expression": "string[]", + "result": null + }, + { + "expression": "hash[]", + "result": null + }, + { + "expression": "number[]", + "result": null + }, + { + "expression": "nullvalue[]", + "result": null + }, + { + "expression": "string[].foo", + "result": null + }, + { + "expression": "hash[].foo", + "result": null + }, + { + "expression": "number[].foo", + "result": null + }, + { + "expression": "nullvalue[].foo", + "result": null + }, + { + "expression": "nullvalue[].foo[].bar", + "result": null + } + ] +} +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/literal.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/literal.json new file mode 100755 index 0000000..b796d36 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/literal.json @@ -0,0 +1,190 @@ +[ + { + "given": { + "foo": [{"name": "a"}, {"name": "b"}], + "bar": {"baz": "qux"} + }, + "cases": [ + { + "expression": "`\"foo\"`", + "result": "foo" + }, + { + "comment": "Interpret escaped unicode.", + "expression": "`\"\\u03a6\"`", + "result": "Φ" + }, + { + "expression": "`\"✓\"`", + "result": "✓" + }, + { + "expression": "`[1, 2, 3]`", + "result": [1, 2, 3] + }, + { + "expression": "`{\"a\": \"b\"}`", + "result": {"a": "b"} + }, + { + "expression": "`true`", + "result": true + }, + { + "expression": "`false`", + "result": false + }, + { + "expression": "`null`", + "result": null + }, + { + "expression": "`0`", + "result": 0 + }, + { + "expression": "`1`", + "result": 1 + }, + { + "expression": "`2`", + "result": 2 + }, + { + "expression": "`3`", + "result": 3 + }, + { + "expression": "`4`", + "result": 4 + }, + { + "expression": "`5`", + "result": 5 + }, + { + "expression": "`6`", + "result": 6 + }, + { + "expression": "`7`", + "result": 7 + }, + { + "expression": "`8`", + "result": 8 + }, + { + "expression": "`9`", + "result": 9 + }, + { + "comment": "Escaping a backtick in quotes", + "expression": "`\"foo\\`bar\"`", + "result": "foo`bar" + }, + { + "comment": "Double quote in literal", + "expression": "`\"foo\\\"bar\"`", + "result": "foo\"bar" + }, + { + "expression": "`\"1\\`\"`", + "result": "1`" + }, + { + "comment": "Multiple literal expressions with escapes", + "expression": "`\"\\\\\"`.{a:`\"b\"`}", + "result": {"a": "b"} + }, + { + "comment": "literal . identifier", + "expression": "`{\"a\": \"b\"}`.a", + "result": "b" + }, + { + "comment": "literal . identifier . identifier", + "expression": "`{\"a\": {\"b\": \"c\"}}`.a.b", + "result": "c" + }, + { + "comment": "literal . identifier bracket-expr", + "expression": "`[0, 1, 2]`[1]", + "result": 1 + } + ] + }, + { + "comment": "Literals", + "given": {"type": "object"}, + "cases": [ + { + "comment": "Literal with leading whitespace", + "expression": "` {\"foo\": true}`", + "result": {"foo": true} + }, + { + "comment": "Literal with trailing whitespace", + "expression": "`{\"foo\": true} `", + "result": {"foo": true} + }, + { + "comment": "Literal on RHS of subexpr not allowed", + "expression": "foo.`\"bar\"`", + "error": "syntax" + } + ] + }, + { + "comment": "Raw String Literals", + "given": {}, + "cases": [ + { + "expression": "'foo'", + "result": "foo" + }, + { + "expression": "' foo '", + "result": " foo " + }, + { + "expression": "'0'", + "result": "0" + }, + { + "expression": "'newline\n'", + "result": "newline\n" + }, + { + "expression": "'\n'", + "result": "\n" + }, + { + "expression": "'✓'", + "result": "✓" + }, + { + "expression": "'𝄞'", + "result": "𝄞" + }, + { + "expression": "' [foo] '", + "result": " [foo] " + }, + { + "expression": "'[foo]'", + "result": "[foo]" + }, + { + "comment": "Do not interpret escaped unicode.", + "expression": "'\\u03a6'", + "result": "\\u03a6" + }, + { + "comment": "Can escape the single quote", + "expression": "'foo\\'bar'", + "result": "foo'bar" + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/multiselect.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/multiselect.json new file mode 100755 index 0000000..8f2a481 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/multiselect.json @@ -0,0 +1,393 @@ +[{ + "given": { + "foo": { + "bar": "bar", + "baz": "baz", + "qux": "qux", + "nested": { + "one": { + "a": "first", + "b": "second", + "c": "third" + }, + "two": { + "a": "first", + "b": "second", + "c": "third" + }, + "three": { + "a": "first", + "b": "second", + "c": {"inner": "third"} + } + } + }, + "bar": 1, + "baz": 2, + "qux\"": 3 + }, + "cases": [ + { + "expression": "foo.{bar: bar}", + "result": {"bar": "bar"} + }, + { + "expression": "foo.{\"bar\": bar}", + "result": {"bar": "bar"} + }, + { + "expression": "foo.{\"foo.bar\": bar}", + "result": {"foo.bar": "bar"} + }, + { + "expression": "foo.{bar: bar, baz: baz}", + "result": {"bar": "bar", "baz": "baz"} + }, + { + "expression": "foo.{\"bar\": bar, \"baz\": baz}", + "result": {"bar": "bar", "baz": "baz"} + }, + { + "expression": "{\"baz\": baz, \"qux\\\"\": \"qux\\\"\"}", + "result": {"baz": 2, "qux\"": 3} + }, + { + "expression": "foo.{bar:bar,baz:baz}", + "result": {"bar": "bar", "baz": "baz"} + }, + { + "expression": "foo.{bar: bar,qux: qux}", + "result": {"bar": "bar", "qux": "qux"} + }, + { + "expression": "foo.{bar: bar, noexist: noexist}", + "result": {"bar": "bar", "noexist": null} + }, + { + "expression": "foo.{noexist: noexist, alsonoexist: alsonoexist}", + "result": {"noexist": null, "alsonoexist": null} + }, + { + "expression": "foo.badkey.{nokey: nokey, alsonokey: alsonokey}", + "result": null + }, + { + "expression": "foo.nested.*.{a: a,b: b}", + "result": [{"a": "first", "b": "second"}, + {"a": "first", "b": "second"}, + {"a": "first", "b": "second"}] + }, + { + "expression": "foo.nested.three.{a: a, cinner: c.inner}", + "result": {"a": "first", "cinner": "third"} + }, + { + "expression": "foo.nested.three.{a: a, c: c.inner.bad.key}", + "result": {"a": "first", "c": null} + }, + { + "expression": "foo.{a: nested.one.a, b: nested.two.b}", + "result": {"a": "first", "b": "second"} + }, + { + "expression": "{bar: bar, baz: baz}", + "result": {"bar": 1, "baz": 2} + }, + { + "expression": "{bar: bar}", + "result": {"bar": 1} + }, + { + "expression": "{otherkey: bar}", + "result": {"otherkey": 1} + }, + { + "expression": "{no: no, exist: exist}", + "result": {"no": null, "exist": null} + }, + { + "expression": "foo.[bar]", + "result": ["bar"] + }, + { + "expression": "foo.[bar,baz]", + "result": ["bar", "baz"] + }, + { + "expression": "foo.[bar,qux]", + "result": ["bar", "qux"] + }, + { + "expression": "foo.[bar,noexist]", + "result": ["bar", null] + }, + { + "expression": "foo.[noexist,alsonoexist]", + "result": [null, null] + } + ] +}, { + "given": { + "foo": {"bar": 1, "baz": [2, 3, 4]} + }, + "cases": [ + { + "expression": "foo.{bar:bar,baz:baz}", + "result": {"bar": 1, "baz": [2, 3, 4]} + }, + { + "expression": "foo.[bar,baz[0]]", + "result": [1, 2] + }, + { + "expression": "foo.[bar,baz[1]]", + "result": [1, 3] + }, + { + "expression": "foo.[bar,baz[2]]", + "result": [1, 4] + }, + { + "expression": "foo.[bar,baz[3]]", + "result": [1, null] + }, + { + "expression": "foo.[bar[0],baz[3]]", + "result": [null, null] + } + ] +}, { + "given": { + "foo": {"bar": 1, "baz": 2} + }, + "cases": [ + { + "expression": "foo.{bar: bar, baz: baz}", + "result": {"bar": 1, "baz": 2} + }, + { + "expression": "foo.[bar,baz]", + "result": [1, 2] + } + ] +}, { + "given": { + "foo": { + "bar": {"baz": [{"common": "first", "one": 1}, + {"common": "second", "two": 2}]}, + "ignoreme": 1, + "includeme": true + } + }, + "cases": [ + { + "expression": "foo.{bar: bar.baz[1],includeme: includeme}", + "result": {"bar": {"common": "second", "two": 2}, "includeme": true} + }, + { + "expression": "foo.{\"bar.baz.two\": bar.baz[1].two, includeme: includeme}", + "result": {"bar.baz.two": 2, "includeme": true} + }, + { + "expression": "foo.[includeme, bar.baz[*].common]", + "result": [true, ["first", "second"]] + }, + { + "expression": "foo.[includeme, bar.baz[*].none]", + "result": [true, []] + }, + { + "expression": "foo.[includeme, bar.baz[].common]", + "result": [true, ["first", "second"]] + } + ] +}, { + "given": { + "reservations": [{ + "instances": [ + {"id": "id1", + "name": "first"}, + {"id": "id2", + "name": "second"} + ]}, { + "instances": [ + {"id": "id3", + "name": "third"}, + {"id": "id4", + "name": "fourth"} + ]} + ]}, + "cases": [ + { + "expression": "reservations[*].instances[*].{id: id, name: name}", + "result": [[{"id": "id1", "name": "first"}, {"id": "id2", "name": "second"}], + [{"id": "id3", "name": "third"}, {"id": "id4", "name": "fourth"}]] + }, + { + "expression": "reservations[].instances[].{id: id, name: name}", + "result": [{"id": "id1", "name": "first"}, + {"id": "id2", "name": "second"}, + {"id": "id3", "name": "third"}, + {"id": "id4", "name": "fourth"}] + }, + { + "expression": "reservations[].instances[].[id, name]", + "result": [["id1", "first"], + ["id2", "second"], + ["id3", "third"], + ["id4", "fourth"]] + } + ] +}, +{ + "given": { + "foo": [{ + "bar": [ + { + "qux": 2, + "baz": 1 + }, + { + "qux": 4, + "baz": 3 + } + ] + }, + { + "bar": [ + { + "qux": 6, + "baz": 5 + }, + { + "qux": 8, + "baz": 7 + } + ] + } + ] + }, + "cases": [ + { + "expression": "foo", + "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]}, + {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}] + }, + { + "expression": "foo[]", + "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]}, + {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}] + }, + { + "expression": "foo[].bar", + "result": [[{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}], + [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]] + }, + { + "expression": "foo[].bar[]", + "result": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}, + {"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}] + }, + { + "expression": "foo[].bar[].[baz, qux]", + "result": [[1, 2], [3, 4], [5, 6], [7, 8]] + }, + { + "expression": "foo[].bar[].[baz]", + "result": [[1], [3], [5], [7]] + }, + { + "expression": "foo[].bar[].[baz, qux][]", + "result": [1, 2, 3, 4, 5, 6, 7, 8] + } + ] +}, +{ + "given": { + "foo": { + "baz": [ + { + "bar": "abc" + }, { + "bar": "def" + } + ], + "qux": ["zero"] + } + }, + "cases": [ + { + "expression": "foo.[baz[*].bar, qux[0]]", + "result": [["abc", "def"], "zero"] + } + ] +}, +{ + "given": { + "foo": { + "baz": [ + { + "bar": "a", + "bam": "b", + "boo": "c" + }, { + "bar": "d", + "bam": "e", + "boo": "f" + } + ], + "qux": ["zero"] + } + }, + "cases": [ + { + "expression": "foo.[baz[*].[bar, boo], qux[0]]", + "result": [[["a", "c" ], ["d", "f" ]], "zero"] + } + ] +}, +{ + "given": { + "foo": { + "baz": [ + { + "bar": "a", + "bam": "b", + "boo": "c" + }, { + "bar": "d", + "bam": "e", + "boo": "f" + } + ], + "qux": ["zero"] + } + }, + "cases": [ + { + "expression": "foo.[baz[*].not_there || baz[*].bar, qux[0]]", + "result": [["a", "d"], "zero"] + } + ] +}, +{ + "given": {"type": "object"}, + "cases": [ + { + "comment": "Nested multiselect", + "expression": "[[*],*]", + "result": [null, ["object"]] + } + ] +}, +{ + "given": [], + "cases": [ + { + "comment": "Nested multiselect", + "expression": "[[*]]", + "result": [[]] + } + ] +} +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/pipe.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/pipe.json new file mode 100755 index 0000000..b10c0a4 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/pipe.json @@ -0,0 +1,131 @@ +[{ + "given": { + "foo": { + "bar": { + "baz": "subkey" + }, + "other": { + "baz": "subkey" + }, + "other2": { + "baz": "subkey" + }, + "other3": { + "notbaz": ["a", "b", "c"] + }, + "other4": { + "notbaz": ["a", "b", "c"] + } + } + }, + "cases": [ + { + "expression": "foo.*.baz | [0]", + "result": "subkey" + }, + { + "expression": "foo.*.baz | [1]", + "result": "subkey" + }, + { + "expression": "foo.*.baz | [2]", + "result": "subkey" + }, + { + "expression": "foo.bar.* | [0]", + "result": "subkey" + }, + { + "expression": "foo.*.notbaz | [*]", + "result": [["a", "b", "c"], ["a", "b", "c"]] + }, + { + "expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz", + "result": ["subkey", "subkey"] + } + ] +}, { + "given": { + "foo": { + "bar": { + "baz": "one" + }, + "other": { + "baz": "two" + }, + "other2": { + "baz": "three" + }, + "other3": { + "notbaz": ["a", "b", "c"] + }, + "other4": { + "notbaz": ["d", "e", "f"] + } + } + }, + "cases": [ + { + "expression": "foo | bar", + "result": {"baz": "one"} + }, + { + "expression": "foo | bar | baz", + "result": "one" + }, + { + "expression": "foo|bar| baz", + "result": "one" + }, + { + "expression": "not_there | [0]", + "result": null + }, + { + "expression": "not_there | [0]", + "result": null + }, + { + "expression": "[foo.bar, foo.other] | [0]", + "result": {"baz": "one"} + }, + { + "expression": "{\"a\": foo.bar, \"b\": foo.other} | a", + "result": {"baz": "one"} + }, + { + "expression": "{\"a\": foo.bar, \"b\": foo.other} | b", + "result": {"baz": "two"} + }, + { + "expression": "foo.bam || foo.bar | baz", + "result": "one" + }, + { + "expression": "foo | not_there || bar", + "result": {"baz": "one"} + } + ] +}, { + "given": { + "foo": [{ + "bar": [{ + "baz": "one" + }, { + "baz": "two" + }] + }, { + "bar": [{ + "baz": "three" + }, { + "baz": "four" + }] + }] + }, + "cases": [ + { + "expression": "foo[*].bar[*] | [0][0]", + "result": {"baz": "one"} + } + ] +}] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/slice.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/slice.json new file mode 100755 index 0000000..3594772 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/slice.json @@ -0,0 +1,187 @@ +[{ + "given": { + "foo": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + "bar": { + "baz": 1 + } + }, + "cases": [ + { + "expression": "bar[0:10]", + "result": null + }, + { + "expression": "foo[0:10:1]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[0:10]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[0:10:]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[0::1]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[0::]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[0:]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[:10:1]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[::1]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[:10:]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[::]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[:]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[1:9]", + "result": [1, 2, 3, 4, 5, 6, 7, 8] + }, + { + "expression": "foo[0:10:2]", + "result": [0, 2, 4, 6, 8] + }, + { + "expression": "foo[5:]", + "result": [5, 6, 7, 8, 9] + }, + { + "expression": "foo[5::2]", + "result": [5, 7, 9] + }, + { + "expression": "foo[::2]", + "result": [0, 2, 4, 6, 8] + }, + { + "expression": "foo[::-1]", + "result": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] + }, + { + "expression": "foo[1::2]", + "result": [1, 3, 5, 7, 9] + }, + { + "expression": "foo[10:0:-1]", + "result": [9, 8, 7, 6, 5, 4, 3, 2, 1] + }, + { + "expression": "foo[10:5:-1]", + "result": [9, 8, 7, 6] + }, + { + "expression": "foo[8:2:-2]", + "result": [8, 6, 4] + }, + { + "expression": "foo[0:20]", + "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + }, + { + "expression": "foo[10:-20:-1]", + "result": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] + }, + { + "expression": "foo[10:-20]", + "result": [] + }, + { + "expression": "foo[-4:-1]", + "result": [6, 7, 8] + }, + { + "expression": "foo[:-5:-1]", + "result": [9, 8, 7, 6] + }, + { + "expression": "foo[8:2:0]", + "error": "invalid-value" + }, + { + "expression": "foo[8:2:0:1]", + "error": "syntax" + }, + { + "expression": "foo[8:2&]", + "error": "syntax" + }, + { + "expression": "foo[2:a:3]", + "error": "syntax" + } + ] +}, { + "given": { + "foo": [{"a": 1}, {"a": 2}, {"a": 3}], + "bar": [{"a": {"b": 1}}, {"a": {"b": 2}}, + {"a": {"b": 3}}], + "baz": 50 + }, + "cases": [ + { + "expression": "foo[:2].a", + "result": [1, 2] + }, + { + "expression": "foo[:2].b", + "result": [] + }, + { + "expression": "foo[:2].a.b", + "result": [] + }, + { + "expression": "bar[::-1].a.b", + "result": [3, 2, 1] + }, + { + "expression": "bar[:2].a.b", + "result": [1, 2] + }, + { + "expression": "baz[:2].a", + "result": null + } + ] +}, { + "given": [{"a": 1}, {"a": 2}, {"a": 3}], + "cases": [ + { + "expression": "[:]", + "result": [{"a": 1}, {"a": 2}, {"a": 3}] + }, + { + "expression": "[:2].a", + "result": [1, 2] + }, + { + "expression": "[::-1].a", + "result": [3, 2, 1] + }, + { + "expression": "[:2].b", + "result": [] + } + ] +}] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/syntax.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/syntax.json new file mode 100755 index 0000000..003c294 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/syntax.json @@ -0,0 +1,616 @@ +[{ + "comment": "Dot syntax", + "given": {"type": "object"}, + "cases": [ + { + "expression": "foo.bar", + "result": null + }, + { + "expression": "foo.1", + "error": "syntax" + }, + { + "expression": "foo.-11", + "error": "syntax" + }, + { + "expression": "foo", + "result": null + }, + { + "expression": "foo.", + "error": "syntax" + }, + { + "expression": "foo.", + "error": "syntax" + }, + { + "expression": ".foo", + "error": "syntax" + }, + { + "expression": "foo..bar", + "error": "syntax" + }, + { + "expression": "foo.bar.", + "error": "syntax" + }, + { + "expression": "foo[.]", + "error": "syntax" + } + ] +}, + { + "comment": "Simple token errors", + "given": {"type": "object"}, + "cases": [ + { + "expression": ".", + "error": "syntax" + }, + { + "expression": ":", + "error": "syntax" + }, + { + "expression": ",", + "error": "syntax" + }, + { + "expression": "]", + "error": "syntax" + }, + { + "expression": "[", + "error": "syntax" + }, + { + "expression": "}", + "error": "syntax" + }, + { + "expression": "{", + "error": "syntax" + }, + { + "expression": ")", + "error": "syntax" + }, + { + "expression": "(", + "error": "syntax" + }, + { + "expression": "((&", + "error": "syntax" + }, + { + "expression": "a[", + "error": "syntax" + }, + { + "expression": "a]", + "error": "syntax" + }, + { + "expression": "a][", + "error": "syntax" + }, + { + "expression": "!", + "error": "syntax" + } + ] + }, + { + "comment": "Boolean syntax errors", + "given": {"type": "object"}, + "cases": [ + { + "expression": "![!(!", + "error": "syntax" + } + ] + }, + { + "comment": "Wildcard syntax", + "given": {"type": "object"}, + "cases": [ + { + "expression": "*", + "result": ["object"] + }, + { + "expression": "*.*", + "result": [] + }, + { + "expression": "*.foo", + "result": [] + }, + { + "expression": "*[0]", + "result": [] + }, + { + "expression": ".*", + "error": "syntax" + }, + { + "expression": "*foo", + "error": "syntax" + }, + { + "expression": "*0", + "error": "syntax" + }, + { + "expression": "foo[*]bar", + "error": "syntax" + }, + { + "expression": "foo[*]*", + "error": "syntax" + } + ] + }, + { + "comment": "Flatten syntax", + "given": {"type": "object"}, + "cases": [ + { + "expression": "[]", + "result": null + } + ] + }, + { + "comment": "Simple bracket syntax", + "given": {"type": "object"}, + "cases": [ + { + "expression": "[0]", + "result": null + }, + { + "expression": "[*]", + "result": null + }, + { + "expression": "*.[0]", + "error": "syntax" + }, + { + "expression": "*.[\"0\"]", + "result": [[null]] + }, + { + "expression": "[*].bar", + "result": null + }, + { + "expression": "[*][0]", + "result": null + }, + { + "expression": "foo[#]", + "error": "syntax" + } + ] + }, + { + "comment": "Multi-select list syntax", + "given": {"type": "object"}, + "cases": [ + { + "expression": "foo[0]", + "result": null + }, + { + "comment": "Valid multi-select of a list", + "expression": "foo[0, 1]", + "error": "syntax" + }, + { + "expression": "foo.[0]", + "error": "syntax" + }, + { + "expression": "foo.[*]", + "result": null + }, + { + "comment": "Multi-select of a list with trailing comma", + "expression": "foo[0, ]", + "error": "syntax" + }, + { + "comment": "Multi-select of a list with trailing comma and no close", + "expression": "foo[0,", + "error": "syntax" + }, + { + "comment": "Multi-select of a list with trailing comma and no close", + "expression": "foo.[a", + "error": "syntax" + }, + { + "comment": "Multi-select of a list with extra comma", + "expression": "foo[0,, 1]", + "error": "syntax" + }, + { + "comment": "Multi-select of a list using an identifier index", + "expression": "foo[abc]", + "error": "syntax" + }, + { + "comment": "Multi-select of a list using identifier indices", + "expression": "foo[abc, def]", + "error": "syntax" + }, + { + "comment": "Multi-select of a list using an identifier index", + "expression": "foo[abc, 1]", + "error": "syntax" + }, + { + "comment": "Multi-select of a list using an identifier index with trailing comma", + "expression": "foo[abc, ]", + "error": "syntax" + }, + { + "comment": "Valid multi-select of a hash using an identifier index", + "expression": "foo.[abc]", + "result": null + }, + { + "comment": "Valid multi-select of a hash", + "expression": "foo.[abc, def]", + "result": null + }, + { + "comment": "Multi-select of a hash using a numeric index", + "expression": "foo.[abc, 1]", + "error": "syntax" + }, + { + "comment": "Multi-select of a hash with a trailing comma", + "expression": "foo.[abc, ]", + "error": "syntax" + }, + { + "comment": "Multi-select of a hash with extra commas", + "expression": "foo.[abc,, def]", + "error": "syntax" + }, + { + "comment": "Multi-select of a hash using number indices", + "expression": "foo.[0, 1]", + "error": "syntax" + } + ] + }, + { + "comment": "Multi-select hash syntax", + "given": {"type": "object"}, + "cases": [ + { + "comment": "No key or value", + "expression": "a{}", + "error": "syntax" + }, + { + "comment": "No closing token", + "expression": "a{", + "error": "syntax" + }, + { + "comment": "Not a key value pair", + "expression": "a{foo}", + "error": "syntax" + }, + { + "comment": "Missing value and closing character", + "expression": "a{foo:", + "error": "syntax" + }, + { + "comment": "Missing closing character", + "expression": "a{foo: 0", + "error": "syntax" + }, + { + "comment": "Missing value", + "expression": "a{foo:}", + "error": "syntax" + }, + { + "comment": "Trailing comma and no closing character", + "expression": "a{foo: 0, ", + "error": "syntax" + }, + { + "comment": "Missing value with trailing comma", + "expression": "a{foo: ,}", + "error": "syntax" + }, + { + "comment": "Accessing Array using an identifier", + "expression": "a{foo: bar}", + "error": "syntax" + }, + { + "expression": "a{foo: 0}", + "error": "syntax" + }, + { + "comment": "Missing key-value pair", + "expression": "a.{}", + "error": "syntax" + }, + { + "comment": "Not a key-value pair", + "expression": "a.{foo}", + "error": "syntax" + }, + { + "comment": "Missing value", + "expression": "a.{foo:}", + "error": "syntax" + }, + { + "comment": "Missing value with trailing comma", + "expression": "a.{foo: ,}", + "error": "syntax" + }, + { + "comment": "Valid multi-select hash extraction", + "expression": "a.{foo: bar}", + "result": null + }, + { + "comment": "Valid multi-select hash extraction", + "expression": "a.{foo: bar, baz: bam}", + "result": null + }, + { + "comment": "Trailing comma", + "expression": "a.{foo: bar, }", + "error": "syntax" + }, + { + "comment": "Missing key in second key-value pair", + "expression": "a.{foo: bar, baz}", + "error": "syntax" + }, + { + "comment": "Missing value in second key-value pair", + "expression": "a.{foo: bar, baz:}", + "error": "syntax" + }, + { + "comment": "Trailing comma", + "expression": "a.{foo: bar, baz: bam, }", + "error": "syntax" + }, + { + "comment": "Nested multi select", + "expression": "{\"\\\\\":{\" \":*}}", + "result": {"\\": {" ": ["object"]}} + } + ] + }, + { + "comment": "Or expressions", + "given": {"type": "object"}, + "cases": [ + { + "expression": "foo || bar", + "result": null + }, + { + "expression": "foo ||", + "error": "syntax" + }, + { + "expression": "foo.|| bar", + "error": "syntax" + }, + { + "expression": " || foo", + "error": "syntax" + }, + { + "expression": "foo || || foo", + "error": "syntax" + }, + { + "expression": "foo.[a || b]", + "result": null + }, + { + "expression": "foo.[a ||]", + "error": "syntax" + }, + { + "expression": "\"foo", + "error": "syntax" + } + ] + }, + { + "comment": "Filter expressions", + "given": {"type": "object"}, + "cases": [ + { + "expression": "foo[?bar==`\"baz\"`]", + "result": null + }, + { + "expression": "foo[? bar == `\"baz\"` ]", + "result": null + }, + { + "expression": "foo[ ?bar==`\"baz\"`]", + "error": "syntax" + }, + { + "expression": "foo[?bar==]", + "error": "syntax" + }, + { + "expression": "foo[?==]", + "error": "syntax" + }, + { + "expression": "foo[?==bar]", + "error": "syntax" + }, + { + "expression": "foo[?bar==baz?]", + "error": "syntax" + }, + { + "expression": "foo[?a.b.c==d.e.f]", + "result": null + }, + { + "expression": "foo[?bar==`[0, 1, 2]`]", + "result": null + }, + { + "expression": "foo[?bar==`[\"a\", \"b\", \"c\"]`]", + "result": null + }, + { + "comment": "Literal char not escaped", + "expression": "foo[?bar==`[\"foo`bar\"]`]", + "error": "syntax" + }, + { + "comment": "Literal char escaped", + "expression": "foo[?bar==`[\"foo\\`bar\"]`]", + "result": null + }, + { + "comment": "Unknown comparator", + "expression": "foo[?bar<>baz]", + "error": "syntax" + }, + { + "comment": "Unknown comparator", + "expression": "foo[?bar^baz]", + "error": "syntax" + }, + { + "expression": "foo[bar==baz]", + "error": "syntax" + }, + { + "comment": "Quoted identifier in filter expression no spaces", + "expression": "[?\"\\\\\">`\"foo\"`]", + "result": null + }, + { + "comment": "Quoted identifier in filter expression with spaces", + "expression": "[?\"\\\\\" > `\"foo\"`]", + "result": null + } + ] + }, + { + "comment": "Filter expression errors", + "given": {"type": "object"}, + "cases": [ + { + "expression": "bar.`\"anything\"`", + "error": "syntax" + }, + { + "expression": "bar.baz.noexists.`\"literal\"`", + "error": "syntax" + }, + { + "comment": "Literal wildcard projection", + "expression": "foo[*].`\"literal\"`", + "error": "syntax" + }, + { + "expression": "foo[*].name.`\"literal\"`", + "error": "syntax" + }, + { + "expression": "foo[].name.`\"literal\"`", + "error": "syntax" + }, + { + "expression": "foo[].name.`\"literal\"`.`\"subliteral\"`", + "error": "syntax" + }, + { + "comment": "Projecting a literal onto an empty list", + "expression": "foo[*].name.noexist.`\"literal\"`", + "error": "syntax" + }, + { + "expression": "foo[].name.noexist.`\"literal\"`", + "error": "syntax" + }, + { + "expression": "twolen[*].`\"foo\"`", + "error": "syntax" + }, + { + "comment": "Two level projection of a literal", + "expression": "twolen[*].threelen[*].`\"bar\"`", + "error": "syntax" + }, + { + "comment": "Two level flattened projection of a literal", + "expression": "twolen[].threelen[].`\"bar\"`", + "error": "syntax" + } + ] + }, + { + "comment": "Identifiers", + "given": {"type": "object"}, + "cases": [ + { + "expression": "foo", + "result": null + }, + { + "expression": "\"foo\"", + "result": null + }, + { + "expression": "\"\\\\\"", + "result": null + } + ] + }, + { + "comment": "Combined syntax", + "given": [], + "cases": [ + { + "expression": "*||*|*|*", + "result": null + }, + { + "expression": "*[]||[*]", + "result": [] + }, + { + "expression": "[*.*]", + "result": [null] + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/unicode.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/unicode.json new file mode 100755 index 0000000..6b07b0b --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/unicode.json @@ -0,0 +1,38 @@ +[ + { + "given": {"foo": [{"✓": "✓"}, {"✓": "✗"}]}, + "cases": [ + { + "expression": "foo[].\"✓\"", + "result": ["✓", "✗"] + } + ] + }, + { + "given": {"☯": true}, + "cases": [ + { + "expression": "\"☯\"", + "result": true + } + ] + }, + { + "given": {"♪♫•*¨*•.¸¸❤¸¸.•*¨*•♫♪": true}, + "cases": [ + { + "expression": "\"♪♫•*¨*•.¸¸❤¸¸.•*¨*•♫♪\"", + "result": true + } + ] + }, + { + "given": {"☃": true}, + "cases": [ + { + "expression": "\"☃\"", + "result": true + } + ] + } +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/wildcard.json b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/wildcard.json new file mode 100755 index 0000000..3bcec30 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/compliance/wildcard.json @@ -0,0 +1,460 @@ +[{ + "given": { + "foo": { + "bar": { + "baz": "val" + }, + "other": { + "baz": "val" + }, + "other2": { + "baz": "val" + }, + "other3": { + "notbaz": ["a", "b", "c"] + }, + "other4": { + "notbaz": ["a", "b", "c"] + }, + "other5": { + "other": { + "a": 1, + "b": 1, + "c": 1 + } + } + } + }, + "cases": [ + { + "expression": "foo.*.baz", + "result": ["val", "val", "val"] + }, + { + "expression": "foo.bar.*", + "result": ["val"] + }, + { + "expression": "foo.*.notbaz", + "result": [["a", "b", "c"], ["a", "b", "c"]] + }, + { + "expression": "foo.*.notbaz[0]", + "result": ["a", "a"] + }, + { + "expression": "foo.*.notbaz[-1]", + "result": ["c", "c"] + } + ] +}, { + "given": { + "foo": { + "first-1": { + "second-1": "val" + }, + "first-2": { + "second-1": "val" + }, + "first-3": { + "second-1": "val" + } + } + }, + "cases": [ + { + "expression": "foo.*", + "result": [{"second-1": "val"}, {"second-1": "val"}, + {"second-1": "val"}] + }, + { + "expression": "foo.*.*", + "result": [["val"], ["val"], ["val"]] + }, + { + "expression": "foo.*.*.*", + "result": [[], [], []] + }, + { + "expression": "foo.*.*.*.*", + "result": [[], [], []] + } + ] +}, { + "given": { + "foo": { + "bar": "one" + }, + "other": { + "bar": "one" + }, + "nomatch": { + "notbar": "three" + } + }, + "cases": [ + { + "expression": "*.bar", + "result": ["one", "one"] + } + ] +}, { + "given": { + "top1": { + "sub1": {"foo": "one"} + }, + "top2": { + "sub1": {"foo": "one"} + } + }, + "cases": [ + { + "expression": "*", + "result": [{"sub1": {"foo": "one"}}, + {"sub1": {"foo": "one"}}] + }, + { + "expression": "*.sub1", + "result": [{"foo": "one"}, + {"foo": "one"}] + }, + { + "expression": "*.*", + "result": [[{"foo": "one"}], + [{"foo": "one"}]] + }, + { + "expression": "*.*.foo[]", + "result": ["one", "one"] + }, + { + "expression": "*.sub1.foo", + "result": ["one", "one"] + } + ] +}, +{ + "given": + {"foo": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}]}, + "cases": [ + { + "expression": "foo[*].bar", + "result": ["one", "two", "three"] + }, + { + "expression": "foo[*].notbar", + "result": ["four"] + } + ] +}, +{ + "given": + [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}], + "cases": [ + { + "expression": "[*]", + "result": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}] + }, + { + "expression": "[*].bar", + "result": ["one", "two", "three"] + }, + { + "expression": "[*].notbar", + "result": ["four"] + } + ] +}, +{ + "given": { + "foo": { + "bar": [ + {"baz": ["one", "two", "three"]}, + {"baz": ["four", "five", "six"]}, + {"baz": ["seven", "eight", "nine"]} + ] + } + }, + "cases": [ + { + "expression": "foo.bar[*].baz", + "result": [["one", "two", "three"], ["four", "five", "six"], ["seven", "eight", "nine"]] + }, + { + "expression": "foo.bar[*].baz[0]", + "result": ["one", "four", "seven"] + }, + { + "expression": "foo.bar[*].baz[1]", + "result": ["two", "five", "eight"] + }, + { + "expression": "foo.bar[*].baz[2]", + "result": ["three", "six", "nine"] + }, + { + "expression": "foo.bar[*].baz[3]", + "result": [] + } + ] +}, +{ + "given": { + "foo": { + "bar": [["one", "two"], ["three", "four"]] + } + }, + "cases": [ + { + "expression": "foo.bar[*]", + "result": [["one", "two"], ["three", "four"]] + }, + { + "expression": "foo.bar[0]", + "result": ["one", "two"] + }, + { + "expression": "foo.bar[0][0]", + "result": "one" + }, + { + "expression": "foo.bar[0][0][0]", + "result": null + }, + { + "expression": "foo.bar[0][0][0][0]", + "result": null + }, + { + "expression": "foo[0][0]", + "result": null + } + ] +}, +{ + "given": { + "foo": [ + {"bar": [{"kind": "basic"}, {"kind": "intermediate"}]}, + {"bar": [{"kind": "advanced"}, {"kind": "expert"}]}, + {"bar": "string"} + ] + + }, + "cases": [ + { + "expression": "foo[*].bar[*].kind", + "result": [["basic", "intermediate"], ["advanced", "expert"]] + }, + { + "expression": "foo[*].bar[0].kind", + "result": ["basic", "advanced"] + } + ] +}, +{ + "given": { + "foo": [ + {"bar": {"kind": "basic"}}, + {"bar": {"kind": "intermediate"}}, + {"bar": {"kind": "advanced"}}, + {"bar": {"kind": "expert"}}, + {"bar": "string"} + ] + }, + "cases": [ + { + "expression": "foo[*].bar.kind", + "result": ["basic", "intermediate", "advanced", "expert"] + } + ] +}, +{ + "given": { + "foo": [{"bar": ["one", "two"]}, {"bar": ["three", "four"]}, {"bar": ["five"]}] + }, + "cases": [ + { + "expression": "foo[*].bar[0]", + "result": ["one", "three", "five"] + }, + { + "expression": "foo[*].bar[1]", + "result": ["two", "four"] + }, + { + "expression": "foo[*].bar[2]", + "result": [] + } + ] +}, +{ + "given": { + "foo": [{"bar": []}, {"bar": []}, {"bar": []}] + }, + "cases": [ + { + "expression": "foo[*].bar[0]", + "result": [] + } + ] +}, +{ + "given": { + "foo": [["one", "two"], ["three", "four"], ["five"]] + }, + "cases": [ + { + "expression": "foo[*][0]", + "result": ["one", "three", "five"] + }, + { + "expression": "foo[*][1]", + "result": ["two", "four"] + } + ] +}, +{ + "given": { + "foo": [ + [ + ["one", "two"], ["three", "four"] + ], [ + ["five", "six"], ["seven", "eight"] + ], [ + ["nine"], ["ten"] + ] + ] + }, + "cases": [ + { + "expression": "foo[*][0]", + "result": [["one", "two"], ["five", "six"], ["nine"]] + }, + { + "expression": "foo[*][1]", + "result": [["three", "four"], ["seven", "eight"], ["ten"]] + }, + { + "expression": "foo[*][0][0]", + "result": ["one", "five", "nine"] + }, + { + "expression": "foo[*][1][0]", + "result": ["three", "seven", "ten"] + }, + { + "expression": "foo[*][0][1]", + "result": ["two", "six"] + }, + { + "expression": "foo[*][1][1]", + "result": ["four", "eight"] + }, + { + "expression": "foo[*][2]", + "result": [] + }, + { + "expression": "foo[*][2][2]", + "result": [] + }, + { + "expression": "bar[*]", + "result": null + }, + { + "expression": "bar[*].baz[*]", + "result": null + } + ] +}, +{ + "given": { + "string": "string", + "hash": {"foo": "bar", "bar": "baz"}, + "number": 23, + "nullvalue": null + }, + "cases": [ + { + "expression": "string[*]", + "result": null + }, + { + "expression": "hash[*]", + "result": null + }, + { + "expression": "number[*]", + "result": null + }, + { + "expression": "nullvalue[*]", + "result": null + }, + { + "expression": "string[*].foo", + "result": null + }, + { + "expression": "hash[*].foo", + "result": null + }, + { + "expression": "number[*].foo", + "result": null + }, + { + "expression": "nullvalue[*].foo", + "result": null + }, + { + "expression": "nullvalue[*].foo[*].bar", + "result": null + } + ] +}, +{ + "given": { + "string": "string", + "hash": {"foo": "val", "bar": "val"}, + "number": 23, + "array": [1, 2, 3], + "nullvalue": null + }, + "cases": [ + { + "expression": "string.*", + "result": null + }, + { + "expression": "hash.*", + "result": ["val", "val"] + }, + { + "expression": "number.*", + "result": null + }, + { + "expression": "array.*", + "result": null + }, + { + "expression": "nullvalue.*", + "result": null + } + ] +}, +{ + "given": { + "a": [0, 1, 2], + "b": [0, 1, 2] + }, + "cases": [ + { + "expression": "*[0]", + "result": [0, 0] + } + ] +} +] diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/jmespath.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/jmespath.js new file mode 100755 index 0000000..15f61c1 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/jmespath/test/jmespath.js @@ -0,0 +1,217 @@ +var assert = require('assert'); +var jmespath = require('../jmespath'); +var tokenize = jmespath.tokenize; +var compile = jmespath.compile; +var strictDeepEqual = jmespath.strictDeepEqual; + + +describe('tokenize', function() { + it('should tokenize unquoted identifier', function() { + assert.deepEqual(tokenize('foo'), + [{type: "UnquotedIdentifier", + value: "foo", + start: 0}]); + }); + it('should tokenize unquoted identifier with underscore', function() { + assert.deepEqual(tokenize('_underscore'), + [{type: "UnquotedIdentifier", + value: "_underscore", + start: 0}]); + }); + it('should tokenize unquoted identifier with numbers', function() { + assert.deepEqual(tokenize('foo123'), + [{type: "UnquotedIdentifier", + value: "foo123", + start: 0}]); + }); + it('should tokenize dotted lookups', function() { + assert.deepEqual( + tokenize('foo.bar'), + [{type: "UnquotedIdentifier", value: "foo", start: 0}, + {type: "Dot", value: ".", start: 3}, + {type: "UnquotedIdentifier", value: "bar", start: 4}, + ]); + }); + it('should tokenize numbers', function() { + assert.deepEqual( + tokenize('foo[0]'), + [{type: "UnquotedIdentifier", value: "foo", start: 0}, + {type: "Lbracket", value: "[", start: 3}, + {type: "Number", value: 0, start: 4}, + {type: "Rbracket", value: "]", start: 5}, + ]); + }); + it('should tokenize numbers with multiple digits', function() { + assert.deepEqual( + tokenize("12345"), + [{type: "Number", value: 12345, start: 0}]); + }); + it('should tokenize negative numbers', function() { + assert.deepEqual( + tokenize("-12345"), + [{type: "Number", value: -12345, start: 0}]); + }); + it('should tokenize quoted identifier', function() { + assert.deepEqual(tokenize('"foo"'), + [{type: "QuotedIdentifier", + value: "foo", + start: 0}]); + }); + it('should tokenize quoted identifier with unicode escape', function() { + assert.deepEqual(tokenize('"\\u2713"'), + [{type: "QuotedIdentifier", + value: "✓", + start: 0}]); + }); + it('should tokenize literal lists', function() { + assert.deepEqual(tokenize("`[0, 1]`"), + [{type: "Literal", + value: [0, 1], + start: 0}]); + }); + it('should tokenize literal dict', function() { + assert.deepEqual(tokenize("`{\"foo\": \"bar\"}`"), + [{type: "Literal", + value: {"foo": "bar"}, + start: 0}]); + }); + it('should tokenize literal strings', function() { + assert.deepEqual(tokenize("`\"foo\"`"), + [{type: "Literal", + value: "foo", + start: 0}]); + }); + it('should tokenize json literals', function() { + assert.deepEqual(tokenize("`true`"), + [{type: "Literal", + value: true, + start: 0}]); + }); + it('should not requiring surrounding quotes for strings', function() { + assert.deepEqual(tokenize("`foo`"), + [{type: "Literal", + value: "foo", + start: 0}]); + }); + it('should not requiring surrounding quotes for numbers', function() { + assert.deepEqual(tokenize("`20`"), + [{type: "Literal", + value: 20, + start: 0}]); + }); + it('should tokenize literal lists with chars afterwards', function() { + assert.deepEqual( + tokenize("`[0, 1]`[0]"), [ + {type: "Literal", value: [0, 1], start: 0}, + {type: "Lbracket", value: "[", start: 8}, + {type: "Number", value: 0, start: 9}, + {type: "Rbracket", value: "]", start: 10} + ]); + }); + it('should tokenize two char tokens with shared prefix', function() { + assert.deepEqual( + tokenize("[?foo]"), + [{type: "Filter", value: "[?", start: 0}, + {type: "UnquotedIdentifier", value: "foo", start: 2}, + {type: "Rbracket", value: "]", start: 5}] + ); + }); + it('should tokenize flatten operator', function() { + assert.deepEqual( + tokenize("[]"), + [{type: "Flatten", value: "[]", start: 0}]); + }); + it('should tokenize comparators', function() { + assert.deepEqual(tokenize("<"), + [{type: "LT", + value: "<", + start: 0}]); + }); + it('should tokenize two char tokens without shared prefix', function() { + assert.deepEqual( + tokenize("=="), + [{type: "EQ", value: "==", start: 0}] + ); + }); + it('should tokenize not equals', function() { + assert.deepEqual( + tokenize("!="), + [{type: "NE", value: "!=", start: 0}] + ); + }); + it('should tokenize the OR token', function() { + assert.deepEqual( + tokenize("a||b"), + [ + {type: "UnquotedIdentifier", value: "a", start: 0}, + {type: "Or", value: "||", start: 1}, + {type: "UnquotedIdentifier", value: "b", start: 3} + ] + ); + }); + it('should tokenize function calls', function() { + assert.deepEqual( + tokenize("abs(@)"), + [ + {type: "UnquotedIdentifier", value: "abs", start: 0}, + {type: "Lparen", value: "(", start: 3}, + {type: "Current", value: "@", start: 4}, + {type: "Rparen", value: ")", start: 5} + ] + ); + }); +}); + + +describe('parsing', function() { + it('should parse field node', function() { + assert.deepEqual(compile('foo'), + {type: 'Field', name: 'foo'}); + }); +}); + +describe('strictDeepEqual', function() { + it('should compare scalars', function() { + assert.strictEqual(strictDeepEqual('a', 'a'), true); + }); + it('should be false for different types', function() { + assert.strictEqual(strictDeepEqual('a', 2), false); + }); + it('should be false for arrays of different lengths', function() { + assert.strictEqual(strictDeepEqual([0, 1], [1, 2, 3]), false); + }); + it('should be true for identical arrays', function() { + assert.strictEqual(strictDeepEqual([0, 1], [0, 1]), true); + }); + it('should be true for nested arrays', function() { + assert.strictEqual( + strictDeepEqual([[0, 1], [2, 3]], [[0, 1], [2, 3]]), true); + }); + it('should be true for nested arrays of strings', function() { + assert.strictEqual( + strictDeepEqual([["a", "b"], ["c", "d"]], + [["a", "b"], ["c", "d"]]), true); + }); + it('should be false for different arrays of the same length', function() { + assert.strictEqual(strictDeepEqual([0, 1], [1, 2]), false); + }); + it('should handle object literals', function() { + assert.strictEqual(strictDeepEqual({a: 1, b: 2}, {a: 1, b: 2}), true); + }); + it('should handle keys in first not in second', function() { + assert.strictEqual(strictDeepEqual({a: 1, b: 2}, {a: 1}), false); + }); + it('should handle keys in second not in first', function() { + assert.strictEqual(strictDeepEqual({a: 1}, {a: 1, b: 2}), false); + }); + it('should handle nested objects', function() { + assert.strictEqual( + strictDeepEqual({a: {b: [1, 2]}}, + {a: {b: [1, 2]}}), true); + }); + it('should handle nested objects that are not equal', function() { + assert.strictEqual( + strictDeepEqual({a: {b: [1, 2]}}, + {a: {b: [1, 4]}}), false); + }); +}); diff --git a/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE new file mode 100755 index 0000000..ccffa08 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE @@ -0,0 +1,41 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +==== + +`String.fromCodePoint` by Mathias Bynens used according to terms of MIT +License, as follows: + + Copyright Mathias Bynens + + 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/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE-W3C.html b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/LICENSE-W3C.html new file mode 100755 index 0000000..a611e3f --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/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/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/README.md b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/README.md new file mode 100755 index 0000000..91a0314 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/README.md @@ -0,0 +1,220 @@ +# 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. +* `strictEntities` - Boolean. If true, only parse [predefined XML + entities](http://www.w3.org/TR/REC-xml/#sec-predefined-ent) + (`&`, `'`, `>`, `<`, and `"`) + +## 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/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/lib/sax.js b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/lib/sax.js new file mode 100755 index 0000000..ffb2d40 --- /dev/null +++ b/cognitoLambdaTrigger/node_modules/aws-sdk/node_modules/sax/lib/sax.js @@ -0,0 +1,1571 @@ +;(function (sax) { // wrapper for non-node envs + 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 = [ + '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.strictEntities = parser.opt.strictEntities + parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_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 () {} + F.prototype = o + var newf = new F() + return newf + } + } + + 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) + var 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. + var m = sax.MAX_BUFFER_LENGTH - maxActual + parser.bufferCheckPosition = m + 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) } + } + + var Stream + try { + Stream = require('stream').Stream + } catch (ex) { + 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) + me._parser['on' + ev] = h + return 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. + var number = '0124356789' + var letter = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + + // (Letter | "_" | ":") + var quote = '\'"' + var attribEnd = whitespace + '>' + var CDATA = '[CDATA[' + var DOCTYPE = 'DOCTYPE' + var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace' + var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/' + var 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-]/ + + var entityStart = /[#:_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 entityBody = /[#:_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) + 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++, // leading byte order mark or whitespace + BEGIN_WHITESPACE: S++, // leading whitespace + TEXT: S++, // general stuff + TEXT_ENTITY: S++, // & and such. + OPEN_WAKA: S++, // < + SGML_DECL: S++, // + SCRIPT: S++, //

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%0Du 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 z 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�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