PluginProbe
UpdraftCentral Dashboard / trunk
UpdraftCentral Dashboard vtrunk
0.8.33 0.7.2 0.7.3 0.7.4 0.8.0 0.8.1 0.8.10 0.8.11 0.8.12 0.8.13 0.8.14 0.8.15 0.8.16 0.8.17 0.8.18 0.8.19 0.8.2 0.8.20 0.8.21 0.8.22 0.8.23 0.8.24 0.8.25 0.8.26 0.8.27 All 51 releases
updraftcentral / js / aws-sdk / aws-sdk.js

aws-sdk.js in UpdraftCentral Dashboard trunk, at js/aws-sdk/aws-sdk.js

14,036 lines 852.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // AWS SDK for JavaScript v2.2.47
2 // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 // License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt
4 (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);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
5 var AWS = require('./core');
6
7 AWS.apiLoader = function(svc, version) {
8 return AWS.apiLoader.services[svc][version];
9 };
10
11
12 AWS.apiLoader.services = {};
13
14 AWS.XML.Parser = require('./xml/browser_parser');
15
16 require('./http/xhr');
17
18 if (typeof window !== 'undefined') window.AWS = AWS;
19 if (typeof module !== 'undefined') module.exports = AWS;
20 if (typeof self !== 'undefined') self.AWS = AWS;
21 AWS.apiLoader.services['acm'] = {};
22 AWS.ACM = AWS.Service.defineService('acm', [ '2015-12-08' ]);
23
24 AWS.apiLoader.services['acm']['2015-12-08'] = {"version":"2.0","metadata":{"apiVersion":"2015-12-08","endpointPrefix":"acm","jsonVersion":"1.1","serviceAbbreviation":"ACM","serviceFullName":"AWS Certificate Manager","signatureVersion":"v4","targetPrefix":"CertificateManager","protocol":"json"},"operations":{"DeleteCertificate":{"input":{"type":"structure","required":["CertificateArn"],"members":{"CertificateArn":{}}},"http":{}},"DescribeCertificate":{"input":{"type":"structure","required":["CertificateArn"],"members":{"CertificateArn":{}}},"output":{"type":"structure","members":{"Certificate":{"type":"structure","members":{"CertificateArn":{},"DomainName":{},"SubjectAlternativeNames":{"shape":"S7"},"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":{}}}}}},"http":{}},"GetCertificate":{"input":{"type":"structure","required":["CertificateArn"],"members":{"CertificateArn":{}}},"output":{"type":"structure","members":{"Certificate":{},"CertificateChain":{}}},"http":{}},"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":{}}}}}},"http":{}},"RequestCertificate":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"SubjectAlternativeNames":{"shape":"S7"},"IdempotencyToken":{},"DomainValidationOptions":{"type":"list","member":{"type":"structure","required":["DomainName","ValidationDomain"],"members":{"DomainName":{},"ValidationDomain":{}}}}}},"output":{"type":"structure","members":{"CertificateArn":{}}},"http":{}},"ResendValidationEmail":{"input":{"type":"structure","required":["CertificateArn","Domain","ValidationDomain"],"members":{"CertificateArn":{},"Domain":{},"ValidationDomain":{}}},"http":{}}},"shapes":{"S7":{"type":"list","member":{}}},"examples":{},"paginators":{"ListCertificates":{"limit_key":"MaxItems","input_token":"NextToken","output_token":"NextToken","result_key":"CertificateSummaryList"}}};
25 AWS.apiLoader.services['cloudfront'] = {};
26 AWS.CloudFront = AWS.Service.defineService('cloudfront', [ '2016-01-28' ]);
27 require('./services/cloudfront');
28
29 AWS.apiLoader.services['cloudfront']['2016-01-28'] = {"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":{}}}}}}},"paginators":{"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"}},"waiters":{"__default__":{"success_type":"output","success_path":"Status"},"StreamingDistributionDeployed":{"operation":"GetStreamingDistribution","description":"Wait until a streaming distribution is deployed.","interval":60,"max_attempts":25,"success_value":"Deployed"},"DistributionDeployed":{"operation":"GetDistribution","description":"Wait until a distribution is deployed.","interval":60,"max_attempts":25,"success_value":"Deployed"},"InvalidationCompleted":{"operation":"GetInvalidation","description":"Wait until an invalidation has completed.","interval":20,"max_attempts":30,"success_value":"Completed"}}};
30 AWS.apiLoader.services['cloudtrail'] = {};
31 AWS.CloudTrail = AWS.Service.defineService('cloudtrail', [ '2013-11-01' ]);
32
33 AWS.apiLoader.services['cloudtrail']['2013-11-01'] = {"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":{}},"http":{}},"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":{},"IncludeGlobalServiceEvents":{"type":"boolean"},"IsMultiRegionTrail":{"type":"boolean"},"TrailARN":{},"LogFileValidationEnabled":{"type":"boolean"},"CloudWatchLogsLogGroupArn":{},"CloudWatchLogsRoleArn":{},"KmsKeyId":{}}},"http":{}},"DeleteTrail":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{}},"http":{}},"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":{},"IncludeGlobalServiceEvents":{"type":"boolean"},"IsMultiRegionTrail":{"type":"boolean"},"HomeRegion":{},"TrailARN":{},"LogFileValidationEnabled":{"type":"boolean"},"CloudWatchLogsLogGroupArn":{},"CloudWatchLogsRoleArn":{},"KmsKeyId":{}}}}}},"http":{}},"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":{}}},"http":{}},"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":{}}},"http":{}},"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":{}}},"http":{}},"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":{}}},"http":{}},"RemoveTags":{"input":{"type":"structure","required":["ResourceId"],"members":{"ResourceId":{},"TagsList":{"shape":"S3"}}},"output":{"type":"structure","members":{}},"http":{}},"StartLogging":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{}},"http":{}},"StopLogging":{"input":{"type":"structure","required":["Name"],"members":{"Name":{}}},"output":{"type":"structure","members":{}},"http":{}},"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":{},"IncludeGlobalServiceEvents":{"type":"boolean"},"IsMultiRegionTrail":{"type":"boolean"},"TrailARN":{},"LogFileValidationEnabled":{"type":"boolean"},"CloudWatchLogsLogGroupArn":{},"CloudWatchLogsRoleArn":{},"KmsKeyId":{}}},"http":{}}},"shapes":{"S3":{"type":"list","member":{"type":"structure","required":["Key"],"members":{"Key":{},"Value":{}}}}},"paginators":{"DescribeTrails":{"result_key":"trailList"}}};
34 AWS.apiLoader.services['cloudwatch'] = {};
35 AWS.CloudWatch = AWS.Service.defineService('cloudwatch', [ '2010-08-01' ]);
36
37 AWS.apiLoader.services['cloudwatch']['2010-08-01'] = {"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"}}},"http":{}},"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":{}}},"http":{}},"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":{}}},"http":{}},"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"}}},"http":{}},"DisableAlarmActions":{"input":{"type":"structure","required":["AlarmNames"],"members":{"AlarmNames":{"shape":"S2"}}},"http":{}},"EnableAlarmActions":{"input":{"type":"structure","required":["AlarmNames"],"members":{"AlarmNames":{"shape":"S2"}}},"http":{}},"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"]}}}},"http":{}},"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"]},"http":{}},"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":{}}},"http":{}},"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":{}}}}}},"http":{}},"SetAlarmState":{"input":{"type":"structure","required":["AlarmName","StateValue","StateReason"],"members":{"AlarmName":{},"StateValue":{},"StateReason":{},"StateReasonData":{}}},"http":{}}},"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"]}}},"paginators":{"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"}}};
38 AWS.apiLoader.services['cloudwatchlogs'] = {};
39 AWS.CloudWatchLogs = AWS.Service.defineService('cloudwatchlogs', [ '2014-03-28' ]);
40
41 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"}}};
42 AWS.apiLoader.services['codecommit'] = {};
43 AWS.CodeCommit = AWS.Service.defineService('codecommit', [ '2015-04-13' ]);
44
45 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"}}};
46 AWS.apiLoader.services['codepipeline'] = {};
47 AWS.CodePipeline = AWS.Service.defineService('codepipeline', [ '2015-07-09' ]);
48
49 AWS.apiLoader.services['codepipeline']['2015-07-09'] = {"version":"2.0","metadata":{"apiVersion":"2015-07-09","endpointPrefix":"codepipeline","jsonVersion":"1.1","serviceAbbreviation":"CodePipeline","serviceFullName":"AWS CodePipeline","signatureVersion":"v4","targetPrefix":"CodePipeline_20150709","protocol":"json"},"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":"S3w"}}},"http":{}},"PutJobSuccessResult":{"input":{"type":"structure","required":["jobId"],"members":{"jobId":{},"currentRevision":{"shape":"S3z"},"continuationToken":{},"executionDetails":{"shape":"S41"}}},"http":{}},"PutThirdPartyJobFailureResult":{"input":{"type":"structure","required":["jobId","clientToken","failureDetails"],"members":{"jobId":{},"clientToken":{},"failureDetails":{"shape":"S3w"}}},"http":{}},"PutThirdPartyJobSuccessResult":{"input":{"type":"structure","required":["jobId","clientToken"],"members":{"jobId":{},"clientToken":{},"currentRevision":{"shape":"S3z"},"continuationToken":{},"executionDetails":{"shape":"S41"}}},"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","created"],"members":{"revisionId":{},"revisionChangeId":{},"created":{"type":"timestamp"}}},"S3w":{"type":"structure","required":["type","message"],"members":{"type":{},"message":{},"externalExecutionId":{}}},"S3z":{"type":"structure","required":["revision","changeIdentifier"],"members":{"revision":{},"changeIdentifier":{}}},"S41":{"type":"structure","members":{"summary":{},"externalExecutionId":{},"percentComplete":{"type":"integer"}}}},"examples":{}};
50 AWS.apiLoader.services['cognitoidentity'] = {};
51 AWS.CognitoIdentity = AWS.Service.defineService('cognitoidentity', [ '2014-06-30' ]);
52 require('./services/cognitoidentity');
53
54 AWS.apiLoader.services['cognitoidentity']['2014-06-30'] = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpointPrefix":"cognito-identity","jsonVersion":"1.1","serviceFullName":"Amazon Cognito Identity","signatureVersion":"v4","targetPrefix":"AWSCognitoIdentityService","protocol":"json"},"operations":{"CreateIdentityPool":{"input":{"type":"structure","required":["IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S4"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S8"}}},"output":{"shape":"Sa"},"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":"Sl"},"http":{}},"DescribeIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"shape":"Sa"},"http":{}},"GetCredentialsForIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"Sq"}}},"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":"Sq"}}},"output":{"type":"structure","members":{"IdentityId":{}}},"http":{}},"GetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Roles":{"shape":"S12"}}},"http":{}},"GetOpenIdToken":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"Sq"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}},"http":{}},"GetOpenIdTokenForDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId","Logins"],"members":{"IdentityPoolId":{},"IdentityId":{},"Logins":{"shape":"Sq"},"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":"Sl"}},"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":"S12"}}},"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":"Sq"},"LoginsToRemove":{"shape":"Sm"}}},"http":{}},"UpdateIdentityPool":{"input":{"shape":"Sa"},"output":{"shape":"Sa"},"http":{}}},"shapes":{"S4":{"type":"map","key":{},"value":{}},"S8":{"type":"list","member":{}},"Sa":{"type":"structure","required":["IdentityPoolId","IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolId":{},"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S4"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S8"}}},"Sl":{"type":"structure","members":{"IdentityId":{},"Logins":{"shape":"Sm"},"CreationDate":{"type":"timestamp"},"LastModifiedDate":{"type":"timestamp"}}},"Sm":{"type":"list","member":{}},"Sq":{"type":"map","key":{},"value":{}},"S12":{"type":"map","key":{},"value":{}}},"examples":{}};
55 AWS.apiLoader.services['cognitosync'] = {};
56 AWS.CognitoSync = AWS.Service.defineService('cognitosync', [ '2014-06-30' ]);
57
58 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":{}};
59 AWS.apiLoader.services['configservice'] = {};
60 AWS.ConfigService = AWS.Service.defineService('configservice', [ '2014-11-12' ]);
61
62 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"}}};
63 AWS.apiLoader.services['devicefarm'] = {};
64 AWS.DeviceFarm = AWS.Service.defineService('devicefarm', [ '2015-06-23' ]);
65
66 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":{"type":"map","key":{},"value":{"type":"integer"}}}}}},"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":{}}},"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":{"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"},"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"}}};
67 AWS.apiLoader.services['dynamodb'] = {};
68 AWS.DynamoDB = AWS.Service.defineService('dynamodb', [ '2011-12-05', '2012-08-10' ]);
69 require('./services/dynamodb');
70
71 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":{"__default__":{"interval":20,"max_attempts":25},"__TableState":{"operation":"DescribeTable"},"TableExists":{"extends":"__TableState","ignore_errors":["ResourceNotFoundException"],"success_type":"output","success_path":"Table.TableStatus","success_value":"ACTIVE"},"TableNotExists":{"extends":"__TableState","success_type":"error","success_value":"ResourceNotFoundException"}}};
72 AWS.apiLoader.services['dynamodbstreams'] = {};
73 AWS.DynamoDBStreams = AWS.Service.defineService('dynamodbstreams', [ '2012-08-10' ]);
74
75 AWS.apiLoader.services['dynamodbstreams']['2012-08-10'] = {"version":"2.0","metadata":{"apiVersion":"2012-08-10","endpointPrefix":"streams.dynamodb","jsonVersion":"1.0","serviceFullName":"Amazon DynamoDB Streams","signatureVersion":"v4","signingName":"dynamodb","targetPrefix":"DynamoDBStreams_20120810","protocol":"json"},"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":{"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"}}}},"examples":{}};
76 AWS.apiLoader.services['ec2'] = {};
77 AWS.EC2 = AWS.Service.defineService('ec2', [ '2015-10-01' ]);
78 require('./services/ec2');
79
80 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":"Sj","locationName":"hostIdSet"}}},"http":{}},"AssignPrivateIpAddresses":{"input":{"type":"structure","required":["NetworkInterfaceId"],"members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"PrivateIpAddresses":{"shape":"Sl","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":"Ss","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":"Sy"},"http":{}},"AttachVpnGateway":{"input":{"type":"structure","required":["VpnGatewayId","VpcId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnGatewayId":{},"VpcId":{}}},"output":{"type":"structure","members":{"VpcAttachment":{"shape":"S12","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":"S15","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":"S15"}}},"http":{}},"BundleInstance":{"input":{"type":"structure","required":["InstanceId","Storage"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceId":{},"Storage":{"shape":"S1f"}}},"output":{"type":"structure","members":{"BundleTask":{"shape":"S1j","locationName":"bundleInstanceTask"}}},"http":{}},"CancelBundleTask":{"input":{"type":"structure","required":["BundleId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"BundleId":{}}},"output":{"type":"structure","members":{"BundleTask":{"shape":"S1j","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":"S1u","locationName":"reservedInstancesListingsSet"}}},"http":{}},"CancelSpotFleetRequests":{"input":{"type":"structure","required":["SpotFleetRequestIds","TerminateInstances"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotFleetRequestIds":{"shape":"S26","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":"S2g","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":"S2u","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":"S26","locationName":"Value"}}}}}},"output":{"type":"structure","members":{"DhcpOptions":{"shape":"S2z","locationName":"dhcpOptions"}}},"http":{}},"CreateFlowLogs":{"input":{"type":"structure","required":["ResourceIds","ResourceType","TrafficType","LogGroupName","DeliverLogsPermissionArn"],"members":{"ResourceIds":{"shape":"S26","locationName":"ResourceId"},"ResourceType":{},"TrafficType":{},"LogGroupName":{},"DeliverLogsPermissionArn":{},"ClientToken":{}}},"output":{"type":"structure","members":{"FlowLogIds":{"shape":"S26","locationName":"flowLogIdSet"},"ClientToken":{"locationName":"clientToken"},"Unsuccessful":{"shape":"S38","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":"S3c","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":"S3n","locationName":"exportTask"}}},"http":{}},"CreateInternetGateway":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"InternetGateway":{"shape":"S3t","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":"S40","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":"S46","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":"S4a","locationName":"Icmp"},"PortRange":{"shape":"S4b","locationName":"portRange"}}},"http":{}},"CreateNetworkInterface":{"input":{"type":"structure","required":["SubnetId"],"members":{"SubnetId":{"locationName":"subnetId"},"Description":{"locationName":"description"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"Groups":{"shape":"S4g","locationName":"SecurityGroupId"},"PrivateIpAddresses":{"shape":"S4h","locationName":"privateIpAddresses"},"SecondaryPrivateIpAddressCount":{"locationName":"secondaryPrivateIpAddressCount","type":"integer"},"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"NetworkInterface":{"shape":"S4k","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":"S1u","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":"S53","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":"S5f"},"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":"S5j","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":"S5o","locationName":"subnet"}}},"http":{}},"CreateTags":{"input":{"type":"structure","required":["Resources","Tags"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Resources":{"shape":"S5r","locationName":"ResourceId"},"Tags":{"shape":"Sa","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":"S5t"},"http":{}},"CreateVpc":{"input":{"type":"structure","required":["CidrBlock"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"CidrBlock":{},"InstanceTenancy":{"locationName":"instanceTenancy"}}},"output":{"type":"structure","members":{"Vpc":{"shape":"S5z","locationName":"vpc"}}},"http":{}},"CreateVpcEndpoint":{"input":{"type":"structure","required":["VpcId","ServiceName"],"members":{"DryRun":{"type":"boolean"},"VpcId":{},"ServiceName":{},"PolicyDocument":{},"RouteTableIds":{"shape":"S26","locationName":"RouteTableId"},"ClientToken":{}}},"output":{"type":"structure","members":{"VpcEndpoint":{"shape":"S63","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":"S6a","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":"S6m","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":"S26","locationName":"FlowLogId"}}},"output":{"type":"structure","members":{"Unsuccessful":{"shape":"S38","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":"S5r","locationName":"resourceId"},"Tags":{"shape":"Sa","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":"S26","locationName":"VpcEndpointId"}}},"output":{"type":"structure","members":{"Unsuccessful":{"shape":"S38","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":"S7r","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":"S7r","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":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"BundleTasks":{"locationName":"bundleInstanceTasksSet","type":"list","member":{"shape":"S1j","locationName":"item"}}}},"http":{}},"DescribeClassicLinkInstances":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"},"Filters":{"shape":"S7r","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":"S4m","locationName":"groupSet"},"Tags":{"shape":"Sa","locationName":"tagSet"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeConversionTasks":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Filters":{"shape":"S7r","locationName":"filter"},"ConversionTaskIds":{"locationName":"conversionTaskId","type":"list","member":{"locationName":"item"}}}},"output":{"type":"structure","members":{"ConversionTasks":{"locationName":"conversionTasks","type":"list","member":{"shape":"S8i","locationName":"item"}}}},"http":{}},"DescribeCustomerGateways":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"CustomerGatewayIds":{"locationName":"CustomerGatewayId","type":"list","member":{"locationName":"CustomerGatewayId"}},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"CustomerGateways":{"locationName":"customerGatewaySet","type":"list","member":{"shape":"S2u","locationName":"item"}}}},"http":{}},"DescribeDhcpOptions":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"DhcpOptionsIds":{"locationName":"DhcpOptionsId","type":"list","member":{"locationName":"DhcpOptionsId"}},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"DhcpOptions":{"locationName":"dhcpOptionsSet","type":"list","member":{"shape":"S2z","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":"S3n","locationName":"item"}}}},"http":{}},"DescribeFlowLogs":{"input":{"type":"structure","members":{"FlowLogIds":{"shape":"S26","locationName":"FlowLogId"},"Filter":{"shape":"S7r"},"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":"S98","locationName":"hostId"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"},"Filter":{"shape":"S7r","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":"S9q","locationName":"launchPermission"},"ProductCodes":{"shape":"S9t","locationName":"productCodes"},"KernelId":{"shape":"S33","locationName":"kernel"},"RamdiskId":{"shape":"S33","locationName":"ramdisk"},"Description":{"shape":"S33","locationName":"description"},"SriovNetSupport":{"shape":"S33","locationName":"sriovNetSupport"},"BlockDeviceMappings":{"shape":"S9w","locationName":"blockDeviceMapping"}}},"http":{}},"DescribeImages":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"ImageIds":{"locationName":"ImageId","type":"list","member":{"locationName":"ImageId"}},"Owners":{"shape":"S9z","locationName":"Owner"},"ExecutableUsers":{"locationName":"ExecutableBy","type":"list","member":{"locationName":"ExecutableBy"}},"Filters":{"shape":"S7r","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":"S9t","locationName":"productCodes"},"Architecture":{"locationName":"architecture"},"ImageType":{"locationName":"imageType"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"Platform":{"locationName":"platform"},"SriovNetSupport":{"locationName":"sriovNetSupport"},"StateReason":{"shape":"Sa7","locationName":"stateReason"},"ImageOwnerAlias":{"locationName":"imageOwnerAlias"},"Name":{"locationName":"name"},"Description":{"locationName":"description"},"RootDeviceType":{"locationName":"rootDeviceType"},"RootDeviceName":{"locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"S9w","locationName":"blockDeviceMapping"},"VirtualizationType":{"locationName":"virtualizationType"},"Tags":{"shape":"Sa","locationName":"tagSet"},"Hypervisor":{"locationName":"hypervisor"}}}}}},"http":{}},"DescribeImportImageTasks":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"ImportTaskIds":{"shape":"Sac","locationName":"ImportTaskId"},"NextToken":{},"MaxResults":{"type":"integer"},"Filters":{"shape":"S7r"}}},"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":"Sag","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":"Sac","locationName":"ImportTaskId"},"NextToken":{},"MaxResults":{"type":"integer"},"Filters":{"shape":"S7r"}}},"output":{"type":"structure","members":{"ImportSnapshotTasks":{"locationName":"importSnapshotTaskSet","type":"list","member":{"locationName":"item","type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"SnapshotTaskDetail":{"shape":"San","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":"S33","locationName":"instanceType"},"KernelId":{"shape":"S33","locationName":"kernel"},"RamdiskId":{"shape":"S33","locationName":"ramdisk"},"UserData":{"shape":"S33","locationName":"userData"},"DisableApiTermination":{"shape":"Sar","locationName":"disableApiTermination"},"InstanceInitiatedShutdownBehavior":{"shape":"S33","locationName":"instanceInitiatedShutdownBehavior"},"RootDeviceName":{"shape":"S33","locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"Sas","locationName":"blockDeviceMapping"},"ProductCodes":{"shape":"S9t","locationName":"productCodes"},"EbsOptimized":{"shape":"Sar","locationName":"ebsOptimized"},"SriovNetSupport":{"shape":"S33","locationName":"sriovNetSupport"},"SourceDestCheck":{"shape":"Sar","locationName":"sourceDestCheck"},"Groups":{"shape":"S4m","locationName":"groupSet"}}},"http":{}},"DescribeInstanceStatus":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"},"Filters":{"shape":"S7r","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":"Sb2","locationName":"instanceState"},"SystemStatus":{"shape":"Sb4","locationName":"systemStatus"},"InstanceStatus":{"shape":"Sb4","locationName":"instanceStatus"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeInstances":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"},"Filters":{"shape":"S7r","locationName":"Filter"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"Reservations":{"locationName":"reservationSet","type":"list","member":{"shape":"Sbd","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeInternetGateways":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InternetGatewayIds":{"shape":"S26","locationName":"internetGatewayId"},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"InternetGateways":{"locationName":"internetGatewaySet","type":"list","member":{"shape":"S3t","locationName":"item"}}}},"http":{}},"DescribeKeyPairs":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"KeyNames":{"locationName":"KeyName","type":"list","member":{"locationName":"KeyName"}},"Filters":{"shape":"S7r","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":"S26","locationName":"publicIp"},"NextToken":{"locationName":"nextToken"},"Filters":{"shape":"S7r","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":"S26","locationName":"NatGatewayId"},"Filter":{"shape":"S7r"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"NatGateways":{"locationName":"natGatewaySet","type":"list","member":{"shape":"S40","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeNetworkAcls":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkAclIds":{"shape":"S26","locationName":"NetworkAclId"},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"NetworkAcls":{"locationName":"networkAclSet","type":"list","member":{"shape":"S46","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":"S33","locationName":"description"},"SourceDestCheck":{"shape":"Sar","locationName":"sourceDestCheck"},"Groups":{"shape":"S4m","locationName":"groupSet"},"Attachment":{"shape":"S4o","locationName":"attachment"}}},"http":{}},"DescribeNetworkInterfaces":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"NetworkInterfaceIds":{"locationName":"NetworkInterfaceId","type":"list","member":{"locationName":"item"}},"Filters":{"shape":"S7r","locationName":"filter"}}},"output":{"type":"structure","members":{"NetworkInterfaces":{"locationName":"networkInterfaceSet","type":"list","member":{"shape":"S4k","locationName":"item"}}}},"http":{}},"DescribePlacementGroups":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupNames":{"locationName":"groupName","type":"list","member":{}},"Filters":{"shape":"S7r","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":"S26","locationName":"PrefixListId"},"Filters":{"shape":"S7r","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":"S26","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":"S7r","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":"Scy","locationName":"ReservedInstancesId"},"Filters":{"shape":"S7r","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":"Sa","locationName":"tagSet"},"InstanceTenancy":{"locationName":"instanceTenancy"},"CurrencyCode":{"locationName":"currencyCode"},"OfferingType":{"locationName":"offeringType"},"RecurringCharges":{"shape":"Sd6","locationName":"recurringCharges"}}}}}},"http":{}},"DescribeReservedInstancesListings":{"input":{"type":"structure","members":{"ReservedInstancesId":{"locationName":"reservedInstancesId"},"ReservedInstancesListingId":{"locationName":"reservedInstancesListingId"},"Filters":{"shape":"S7r","locationName":"filters"}}},"output":{"type":"structure","members":{"ReservedInstancesListings":{"shape":"S1u","locationName":"reservedInstancesListingsSet"}}},"http":{}},"DescribeReservedInstancesModifications":{"input":{"type":"structure","members":{"ReservedInstancesModificationIds":{"locationName":"ReservedInstancesModificationId","type":"list","member":{"locationName":"ReservedInstancesModificationId"}},"NextToken":{"locationName":"nextToken"},"Filters":{"shape":"S7r","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":"Sdk","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":"S7r","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":"Sd6","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":"S26","locationName":"RouteTableId"},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"RouteTables":{"locationName":"routeTableSet","type":"list","member":{"shape":"S53","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":"S7r","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":"Se2","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":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"NextToken":{"locationName":"nextToken"},"ScheduledInstanceSet":{"locationName":"scheduledInstanceSet","type":"list","member":{"shape":"Se9","locationName":"item"}}}},"http":{}},"DescribeSecurityGroups":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"GroupNames":{"shape":"Seb","locationName":"GroupName"},"GroupIds":{"shape":"Ss","locationName":"GroupId"},"Filters":{"shape":"S7r","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":"S15","locationName":"ipPermissions"},"IpPermissionsEgress":{"shape":"S15","locationName":"ipPermissionsEgress"},"VpcId":{"locationName":"vpcId"},"Tags":{"shape":"Sa","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":"Sei","locationName":"createVolumePermission"},"ProductCodes":{"shape":"S9t","locationName":"productCodes"}}},"http":{}},"DescribeSnapshots":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SnapshotIds":{"locationName":"SnapshotId","type":"list","member":{"locationName":"SnapshotId"}},"OwnerIds":{"shape":"S9z","locationName":"Owner"},"RestorableByUserIds":{"locationName":"RestorableBy","type":"list","member":{}},"Filters":{"shape":"S7r","locationName":"Filter"},"NextToken":{},"MaxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"Snapshots":{"locationName":"snapshotSet","type":"list","member":{"shape":"S5f","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSpotDatafeedSubscription":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"SpotDatafeedSubscription":{"shape":"S5j","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":"S26","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":"Sf5","locationName":"spotFleetRequestConfig"},"CreateTime":{"locationName":"createTime","type":"timestamp"}}}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeSpotInstanceRequests":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SpotInstanceRequestIds":{"shape":"S2g","locationName":"SpotInstanceRequestId"},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"SpotInstanceRequests":{"shape":"Sfh","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":"S7r","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":{}},"DescribeSubnets":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"SubnetIds":{"locationName":"SubnetId","type":"list","member":{"locationName":"SubnetId"}},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"Subnets":{"locationName":"subnetSet","type":"list","member":{"shape":"S5o","locationName":"item"}}}},"http":{}},"DescribeTags":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"Filters":{"shape":"S7r","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":"Sar","locationName":"autoEnableIO"},"ProductCodes":{"shape":"S9t","locationName":"productCodes"}}},"http":{}},"DescribeVolumeStatus":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeIds":{"shape":"Sg7","locationName":"VolumeId"},"Filters":{"shape":"S7r","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":"Sg7","locationName":"VolumeId"},"Filters":{"shape":"S7r","locationName":"Filter"},"NextToken":{"locationName":"nextToken"},"MaxResults":{"locationName":"maxResults","type":"integer"}}},"output":{"type":"structure","members":{"Volumes":{"locationName":"volumeSet","type":"list","member":{"shape":"S5t","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":"Sar","locationName":"enableDnsSupport"},"EnableDnsHostnames":{"shape":"Sar","locationName":"enableDnsHostnames"}}},"http":{}},"DescribeVpcClassicLink":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcIds":{"shape":"Sgr","locationName":"VpcId"},"Filters":{"shape":"S7r","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":"Sa","locationName":"tagSet"}}}}}},"http":{}},"DescribeVpcClassicLinkDnsSupport":{"input":{"type":"structure","members":{"VpcIds":{"shape":"Sgr"},"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":"S26","locationName":"serviceNameSet"},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVpcEndpoints":{"input":{"type":"structure","members":{"DryRun":{"type":"boolean"},"VpcEndpointIds":{"shape":"S26","locationName":"VpcEndpointId"},"Filters":{"shape":"S7r","locationName":"Filter"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"VpcEndpoints":{"locationName":"vpcEndpointSet","type":"list","member":{"shape":"S63","locationName":"item"}},"NextToken":{"locationName":"nextToken"}}},"http":{}},"DescribeVpcPeeringConnections":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpcPeeringConnectionIds":{"shape":"S26","locationName":"VpcPeeringConnectionId"},"Filters":{"shape":"S7r","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":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"Vpcs":{"locationName":"vpcSet","type":"list","member":{"shape":"S5z","locationName":"item"}}}},"http":{}},"DescribeVpnConnections":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnConnectionIds":{"locationName":"VpnConnectionId","type":"list","member":{"locationName":"VpnConnectionId"}},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"VpnConnections":{"locationName":"vpnConnectionSet","type":"list","member":{"shape":"S6a","locationName":"item"}}}},"http":{}},"DescribeVpnGateways":{"input":{"type":"structure","members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VpnGatewayIds":{"locationName":"VpnGatewayId","type":"list","member":{"locationName":"VpnGatewayId"}},"Filters":{"shape":"S7r","locationName":"Filter"}}},"output":{"type":"structure","members":{"VpnGateways":{"locationName":"vpnGatewaySet","type":"list","member":{"shape":"S6m","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":"Sy"},"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":{}},"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":"Sib"},"DeviceName":{},"SnapshotId":{}}}},"LicenseType":{},"Hypervisor":{},"Architecture":{},"Platform":{},"ClientData":{"shape":"Sic"},"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":"Sag","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":"Sig","locationName":"GroupName"},"GroupIds":{"shape":"S4g","locationName":"GroupId"},"AdditionalInfo":{"locationName":"additionalInfo"},"UserData":{"locationName":"userData","type":"structure","members":{"Data":{"locationName":"data"}}},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sbh","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":"Sil"},"Description":{},"Volume":{"shape":"Sim"}}}},"Platform":{"locationName":"platform"}}},"output":{"type":"structure","members":{"ConversionTask":{"shape":"S8i","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":"Sib"}}},"ClientData":{"shape":"Sic"},"ClientToken":{},"RoleName":{}}},"output":{"type":"structure","members":{"ImportTaskId":{"locationName":"importTaskId"},"SnapshotTaskDetail":{"shape":"San","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":"Sil","locationName":"image"},"Description":{"locationName":"description"},"Volume":{"shape":"Sim","locationName":"volume"}}},"output":{"type":"structure","members":{"ConversionTask":{"shape":"S8i","locationName":"conversionTask"}}},"http":{}},"ModifyHosts":{"input":{"type":"structure","required":["HostIds","AutoPlacement"],"members":{"HostIds":{"shape":"S98","locationName":"hostId"},"AutoPlacement":{"locationName":"autoPlacement"}}},"output":{"type":"structure","members":{"Successful":{"shape":"Sj","locationName":"successful"},"Unsuccessful":{"shape":"Six","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":"Sj1","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":"S9q"},"Remove":{"shape":"S9q"}}},"Description":{"shape":"S33"}}},"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":"Sar"},"DisableApiTermination":{"shape":"Sar","locationName":"disableApiTermination"},"InstanceType":{"shape":"S33","locationName":"instanceType"},"Kernel":{"shape":"S33","locationName":"kernel"},"Ramdisk":{"shape":"S33","locationName":"ramdisk"},"UserData":{"locationName":"userData","type":"structure","members":{"Value":{"locationName":"value","type":"blob"}}},"InstanceInitiatedShutdownBehavior":{"shape":"S33","locationName":"instanceInitiatedShutdownBehavior"},"Groups":{"shape":"Ss","locationName":"GroupId"},"EbsOptimized":{"shape":"Sar","locationName":"ebsOptimized"},"SriovNetSupport":{"shape":"S33","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":"S33","locationName":"description"},"SourceDestCheck":{"shape":"Sar","locationName":"sourceDestCheck"},"Groups":{"shape":"S4g","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":"Scy","locationName":"ReservedInstancesId"},"TargetConfigurations":{"locationName":"ReservedInstancesConfigurationSetItemType","type":"list","member":{"shape":"Sdk","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":"Sj1","locationName":"UserId"},"GroupNames":{"shape":"Seb","locationName":"UserGroup"},"CreateVolumePermission":{"type":"structure","members":{"Add":{"shape":"Sei"},"Remove":{"shape":"Sei"}}}}},"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":"Sar"}}},"http":{}},"ModifyVolumeAttribute":{"input":{"type":"structure","required":["VolumeId"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"VolumeId":{},"AutoEnableIO":{"shape":"Sar"}}},"http":{}},"ModifyVpcAttribute":{"input":{"type":"structure","required":["VpcId"],"members":{"VpcId":{"locationName":"vpcId"},"EnableDnsSupport":{"shape":"Sar"},"EnableDnsHostnames":{"shape":"Sar"}}},"http":{}},"ModifyVpcEndpoint":{"input":{"type":"structure","required":["VpcEndpointId"],"members":{"DryRun":{"type":"boolean"},"VpcEndpointId":{},"ResetPolicy":{"type":"boolean"},"PolicyDocument":{},"AddRouteTableIds":{"shape":"S26","locationName":"AddRouteTableId"},"RemoveRouteTableIds":{"shape":"S26","locationName":"RemoveRouteTableId"}}},"output":{"type":"structure","members":{"Return":{"locationName":"return","type":"boolean"}}},"http":{}},"MonitorInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"}}},"output":{"type":"structure","members":{"InstanceMonitorings":{"shape":"Sju","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":"Se9","locationName":"item"}}}},"http":{}},"RebootInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","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":"S3c","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":"S98","locationName":"hostId"}}},"output":{"type":"structure","members":{"Successful":{"shape":"Sj","locationName":"successful"},"Unsuccessful":{"shape":"Six","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":"S4a","locationName":"Icmp"},"PortRange":{"shape":"S4b","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":"S8a","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":"Sf5","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":"S26","locationName":"SecurityGroup"},"UserData":{"locationName":"userData"},"AddressingType":{"locationName":"addressingType"},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sf8","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"BlockDeviceMappings":{"shape":"S9w","locationName":"blockDeviceMapping"},"SubnetId":{"locationName":"subnetId"},"NetworkInterfaces":{"shape":"Sfa","locationName":"NetworkInterface"},"IamInstanceProfile":{"shape":"Sfc","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"Monitoring":{"shape":"Sfn","locationName":"monitoring"},"SecurityGroupIds":{"shape":"S26","locationName":"SecurityGroupId"}}}}},"output":{"type":"structure","members":{"SpotInstanceRequests":{"shape":"Sfh","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":"S15","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":"S15"}}},"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":"Sig","locationName":"SecurityGroup"},"SecurityGroupIds":{"shape":"S4g","locationName":"SecurityGroupId"},"UserData":{},"InstanceType":{},"Placement":{"shape":"Sbh"},"KernelId":{},"RamdiskId":{},"BlockDeviceMappings":{"shape":"S3c","locationName":"BlockDeviceMapping"},"Monitoring":{"shape":"Sfn"},"SubnetId":{},"DisableApiTermination":{"locationName":"disableApiTermination","type":"boolean"},"InstanceInitiatedShutdownBehavior":{"locationName":"instanceInitiatedShutdownBehavior"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"ClientToken":{"locationName":"clientToken"},"AdditionalInfo":{"locationName":"additionalInfo"},"NetworkInterfaces":{"shape":"Sfa","locationName":"networkInterface"},"IamInstanceProfile":{"shape":"Sfc","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"}}},"output":{"shape":"Sbd"},"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":"Sl6","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":"Sl6","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":"S8a","locationName":"InstanceId"},"AdditionalInfo":{"locationName":"additionalInfo"},"DryRun":{"locationName":"dryRun","type":"boolean"}}},"output":{"type":"structure","members":{"StartingInstances":{"shape":"Sll","locationName":"instancesSet"}}},"http":{}},"StopInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"},"Force":{"locationName":"force","type":"boolean"}}},"output":{"type":"structure","members":{"StoppingInstances":{"shape":"Sll","locationName":"instancesSet"}}},"http":{}},"TerminateInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"}}},"output":{"type":"structure","members":{"TerminatingInstances":{"shape":"Sll","locationName":"instancesSet"}}},"http":{}},"UnassignPrivateIpAddresses":{"input":{"type":"structure","required":["NetworkInterfaceId","PrivateIpAddresses"],"members":{"NetworkInterfaceId":{"locationName":"networkInterfaceId"},"PrivateIpAddresses":{"shape":"Sl","locationName":"privateIpAddress"}}},"http":{}},"UnmonitorInstances":{"input":{"type":"structure","required":["InstanceIds"],"members":{"DryRun":{"locationName":"dryRun","type":"boolean"},"InstanceIds":{"shape":"S8a","locationName":"InstanceId"}}},"output":{"type":"structure","members":{"InstanceMonitorings":{"shape":"Sju","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":"Sa","locationName":"tagSet"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"}}},"S6":{"type":"structure","members":{"CidrBlock":{"locationName":"cidrBlock"},"OwnerId":{"locationName":"ownerId"},"VpcId":{"locationName":"vpcId"}}},"Sa":{"type":"list","member":{"locationName":"item","type":"structure","members":{"Key":{"locationName":"key"},"Value":{"locationName":"value"}}}},"Sj":{"type":"list","member":{"locationName":"item"}},"Sl":{"type":"list","member":{"locationName":"PrivateIpAddress"}},"Ss":{"type":"list","member":{"locationName":"groupId"}},"Sy":{"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"}}},"S12":{"type":"structure","members":{"VpcId":{"locationName":"vpcId"},"State":{"locationName":"state"}}},"S15":{"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":{"locationName":"item","type":"structure","members":{"UserId":{"locationName":"userId"},"GroupName":{"locationName":"groupName"},"GroupId":{"locationName":"groupId"},"VpcId":{"locationName":"vpcId"},"VpcPeeringConnectionId":{"locationName":"vpcPeeringConnectionId"},"PeeringStatus":{"locationName":"peeringStatus"}}}},"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"}}}}}}},"S1f":{"type":"structure","members":{"S3":{"type":"structure","members":{"Bucket":{"locationName":"bucket"},"Prefix":{"locationName":"prefix"},"AWSAccessKeyId":{},"UploadPolicy":{"locationName":"uploadPolicy","type":"blob"},"UploadPolicySignature":{"locationName":"uploadPolicySignature"}}}}},"S1j":{"type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"BundleId":{"locationName":"bundleId"},"State":{"locationName":"state"},"StartTime":{"locationName":"startTime","type":"timestamp"},"UpdateTime":{"locationName":"updateTime","type":"timestamp"},"Storage":{"shape":"S1f","locationName":"storage"},"Progress":{"locationName":"progress"},"BundleTaskError":{"locationName":"error","type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}}}},"S1u":{"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":"Sa","locationName":"tagSet"},"ClientToken":{"locationName":"clientToken"}}}},"S26":{"type":"list","member":{"locationName":"item"}},"S2g":{"type":"list","member":{"locationName":"SpotInstanceRequestId"}},"S2u":{"type":"structure","members":{"CustomerGatewayId":{"locationName":"customerGatewayId"},"State":{"locationName":"state"},"Type":{"locationName":"type"},"IpAddress":{"locationName":"ipAddress"},"BgpAsn":{"locationName":"bgpAsn"},"Tags":{"shape":"Sa","locationName":"tagSet"}}},"S2z":{"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":"S33","locationName":"item"}}}}},"Tags":{"shape":"Sa","locationName":"tagSet"}}},"S33":{"type":"structure","members":{"Value":{"locationName":"value"}}},"S38":{"type":"list","member":{"shape":"S39","locationName":"item"}},"S39":{"type":"structure","required":["Error"],"members":{"ResourceId":{"locationName":"resourceId"},"Error":{"locationName":"error","type":"structure","required":["Code","Message"],"members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}}}},"S3c":{"type":"list","member":{"shape":"S3d","locationName":"BlockDeviceMapping"}},"S3d":{"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"}}},"S3n":{"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"}}}}},"S3t":{"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":"Sa","locationName":"tagSet"}}},"S40":{"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"}}},"S46":{"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":"S4a","locationName":"icmpTypeCode"},"PortRange":{"shape":"S4b","locationName":"portRange"}}}},"Associations":{"locationName":"associationSet","type":"list","member":{"locationName":"item","type":"structure","members":{"NetworkAclAssociationId":{"locationName":"networkAclAssociationId"},"NetworkAclId":{"locationName":"networkAclId"},"SubnetId":{"locationName":"subnetId"}}}},"Tags":{"shape":"Sa","locationName":"tagSet"}}},"S4a":{"type":"structure","members":{"Type":{"locationName":"type","type":"integer"},"Code":{"locationName":"code","type":"integer"}}},"S4b":{"type":"structure","members":{"From":{"locationName":"from","type":"integer"},"To":{"locationName":"to","type":"integer"}}},"S4g":{"type":"list","member":{"locationName":"SecurityGroupId"}},"S4h":{"type":"list","member":{"locationName":"item","type":"structure","required":["PrivateIpAddress"],"members":{"PrivateIpAddress":{"locationName":"privateIpAddress"},"Primary":{"locationName":"primary","type":"boolean"}}}},"S4k":{"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":"S4m","locationName":"groupSet"},"Attachment":{"shape":"S4o","locationName":"attachment"},"Association":{"shape":"S4p","locationName":"association"},"TagSet":{"shape":"Sa","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":"S4p","locationName":"association"}}}},"InterfaceType":{"locationName":"interfaceType"}}},"S4m":{"type":"list","member":{"locationName":"item","type":"structure","members":{"GroupName":{"locationName":"groupName"},"GroupId":{"locationName":"groupId"}}}},"S4o":{"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"}}},"S4p":{"type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"PublicDnsName":{"locationName":"publicDnsName"},"IpOwnerId":{"locationName":"ipOwnerId"},"AllocationId":{"locationName":"allocationId"},"AssociationId":{"locationName":"associationId"}}},"S53":{"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":"Sa","locationName":"tagSet"},"PropagatingVgws":{"locationName":"propagatingVgwSet","type":"list","member":{"locationName":"item","type":"structure","members":{"GatewayId":{"locationName":"gatewayId"}}}}}},"S5f":{"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":"Sa","locationName":"tagSet"},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{"locationName":"kmsKeyId"},"DataEncryptionKeyId":{"locationName":"dataEncryptionKeyId"}}},"S5j":{"type":"structure","members":{"OwnerId":{"locationName":"ownerId"},"Bucket":{"locationName":"bucket"},"Prefix":{"locationName":"prefix"},"State":{"locationName":"state"},"Fault":{"shape":"S5l","locationName":"fault"}}},"S5l":{"type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}},"S5o":{"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":"Sa","locationName":"tagSet"}}},"S5r":{"type":"list","member":{}},"S5t":{"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":"Sy","locationName":"item"}},"Tags":{"shape":"Sa","locationName":"tagSet"},"VolumeType":{"locationName":"volumeType"},"Iops":{"locationName":"iops","type":"integer"},"Encrypted":{"locationName":"encrypted","type":"boolean"},"KmsKeyId":{"locationName":"kmsKeyId"}}},"S5z":{"type":"structure","members":{"VpcId":{"locationName":"vpcId"},"State":{"locationName":"state"},"CidrBlock":{"locationName":"cidrBlock"},"DhcpOptionsId":{"locationName":"dhcpOptionsId"},"Tags":{"shape":"Sa","locationName":"tagSet"},"InstanceTenancy":{"locationName":"instanceTenancy"},"IsDefault":{"locationName":"isDefault","type":"boolean"}}},"S63":{"type":"structure","members":{"VpcEndpointId":{"locationName":"vpcEndpointId"},"VpcId":{"locationName":"vpcId"},"ServiceName":{"locationName":"serviceName"},"State":{"locationName":"state"},"PolicyDocument":{"locationName":"policyDocument"},"RouteTableIds":{"shape":"S26","locationName":"routeTableIdSet"},"CreationTimestamp":{"locationName":"creationTimestamp","type":"timestamp"}}},"S6a":{"type":"structure","members":{"VpnConnectionId":{"locationName":"vpnConnectionId"},"State":{"locationName":"state"},"CustomerGatewayConfiguration":{"locationName":"customerGatewayConfiguration"},"Type":{"locationName":"type"},"CustomerGatewayId":{"locationName":"customerGatewayId"},"VpnGatewayId":{"locationName":"vpnGatewayId"},"Tags":{"shape":"Sa","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"}}}}}},"S6m":{"type":"structure","members":{"VpnGatewayId":{"locationName":"vpnGatewayId"},"State":{"locationName":"state"},"Type":{"locationName":"type"},"AvailabilityZone":{"locationName":"availabilityZone"},"VpcAttachments":{"locationName":"attachments","type":"list","member":{"shape":"S12","locationName":"item"}},"Tags":{"shape":"Sa","locationName":"tagSet"}}},"S7r":{"type":"list","member":{"locationName":"Filter","type":"structure","members":{"Name":{},"Values":{"shape":"S26","locationName":"Value"}}}},"S8a":{"type":"list","member":{"locationName":"InstanceId"}},"S8i":{"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":"S8m","locationName":"image"},"Volume":{"shape":"S8n","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":"S8m","locationName":"image"},"Volume":{"shape":"S8n","locationName":"volume"}}},"State":{"locationName":"state"},"StatusMessage":{"locationName":"statusMessage"},"Tags":{"shape":"Sa","locationName":"tagSet"}}},"S8m":{"type":"structure","required":["Format","Size","ImportManifestUrl"],"members":{"Format":{"locationName":"format"},"Size":{"locationName":"size","type":"long"},"ImportManifestUrl":{"locationName":"importManifestUrl"},"Checksum":{"locationName":"checksum"}}},"S8n":{"type":"structure","required":["Id"],"members":{"Size":{"locationName":"size","type":"long"},"Id":{"locationName":"id"}}},"S98":{"type":"list","member":{"locationName":"item"}},"S9q":{"type":"list","member":{"locationName":"item","type":"structure","members":{"UserId":{"locationName":"userId"},"Group":{"locationName":"group"}}}},"S9t":{"type":"list","member":{"locationName":"item","type":"structure","members":{"ProductCodeId":{"locationName":"productCode"},"ProductCodeType":{"locationName":"type"}}}},"S9w":{"type":"list","member":{"shape":"S3d","locationName":"item"}},"S9z":{"type":"list","member":{"locationName":"Owner"}},"Sa7":{"type":"structure","members":{"Code":{"locationName":"code"},"Message":{"locationName":"message"}}},"Sac":{"type":"list","member":{"locationName":"ImportTaskId"}},"Sag":{"type":"list","member":{"locationName":"item","type":"structure","members":{"DiskImageSize":{"locationName":"diskImageSize","type":"double"},"Description":{"locationName":"description"},"Format":{"locationName":"format"},"Url":{"locationName":"url"},"UserBucket":{"shape":"Sai","locationName":"userBucket"},"DeviceName":{"locationName":"deviceName"},"SnapshotId":{"locationName":"snapshotId"},"Progress":{"locationName":"progress"},"StatusMessage":{"locationName":"statusMessage"},"Status":{"locationName":"status"}}}},"Sai":{"type":"structure","members":{"S3Bucket":{"locationName":"s3Bucket"},"S3Key":{"locationName":"s3Key"}}},"San":{"type":"structure","members":{"DiskImageSize":{"locationName":"diskImageSize","type":"double"},"Description":{"locationName":"description"},"Format":{"locationName":"format"},"Url":{"locationName":"url"},"UserBucket":{"shape":"Sai","locationName":"userBucket"},"SnapshotId":{"locationName":"snapshotId"},"Progress":{"locationName":"progress"},"StatusMessage":{"locationName":"statusMessage"},"Status":{"locationName":"status"}}},"Sar":{"type":"structure","members":{"Value":{"locationName":"value","type":"boolean"}}},"Sas":{"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"}}}}}},"Sb2":{"type":"structure","members":{"Code":{"locationName":"code","type":"integer"},"Name":{"locationName":"name"}}},"Sb4":{"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"}}}}}},"Sbd":{"type":"structure","members":{"ReservationId":{"locationName":"reservationId"},"OwnerId":{"locationName":"ownerId"},"RequesterId":{"locationName":"requesterId"},"Groups":{"shape":"S4m","locationName":"groupSet"},"Instances":{"locationName":"instancesSet","type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"ImageId":{"locationName":"imageId"},"State":{"shape":"Sb2","locationName":"instanceState"},"PrivateDnsName":{"locationName":"privateDnsName"},"PublicDnsName":{"locationName":"dnsName"},"StateTransitionReason":{"locationName":"reason"},"KeyName":{"locationName":"keyName"},"AmiLaunchIndex":{"locationName":"amiLaunchIndex","type":"integer"},"ProductCodes":{"shape":"S9t","locationName":"productCodes"},"InstanceType":{"locationName":"instanceType"},"LaunchTime":{"locationName":"launchTime","type":"timestamp"},"Placement":{"shape":"Sbh","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"Platform":{"locationName":"platform"},"Monitoring":{"shape":"Sbi","locationName":"monitoring"},"SubnetId":{"locationName":"subnetId"},"VpcId":{"locationName":"vpcId"},"PrivateIpAddress":{"locationName":"privateIpAddress"},"PublicIpAddress":{"locationName":"ipAddress"},"StateReason":{"shape":"Sa7","locationName":"stateReason"},"Architecture":{"locationName":"architecture"},"RootDeviceType":{"locationName":"rootDeviceType"},"RootDeviceName":{"locationName":"rootDeviceName"},"BlockDeviceMappings":{"shape":"Sas","locationName":"blockDeviceMapping"},"VirtualizationType":{"locationName":"virtualizationType"},"InstanceLifecycle":{"locationName":"instanceLifecycle"},"SpotInstanceRequestId":{"locationName":"spotInstanceRequestId"},"ClientToken":{"locationName":"clientToken"},"Tags":{"shape":"Sa","locationName":"tagSet"},"SecurityGroups":{"shape":"S4m","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":"S4m","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":"Sbo","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":"Sbo","locationName":"association"}}}}}}},"IamInstanceProfile":{"locationName":"iamInstanceProfile","type":"structure","members":{"Arn":{"locationName":"arn"},"Id":{"locationName":"id"}}},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"SriovNetSupport":{"locationName":"sriovNetSupport"}}}}}},"Sbh":{"type":"structure","members":{"AvailabilityZone":{"locationName":"availabilityZone"},"GroupName":{"locationName":"groupName"},"Tenancy":{"locationName":"tenancy"},"HostId":{"locationName":"hostId"},"Affinity":{"locationName":"affinity"}}},"Sbi":{"type":"structure","members":{"State":{"locationName":"state"}}},"Sbo":{"type":"structure","members":{"PublicIp":{"locationName":"publicIp"},"PublicDnsName":{"locationName":"publicDnsName"},"IpOwnerId":{"locationName":"ipOwnerId"}}},"Scy":{"type":"list","member":{"locationName":"ReservedInstancesId"}},"Sd6":{"type":"list","member":{"locationName":"item","type":"structure","members":{"Frequency":{"locationName":"frequency"},"Amount":{"locationName":"amount","type":"double"}}}},"Sdk":{"type":"structure","members":{"AvailabilityZone":{"locationName":"availabilityZone"},"Platform":{"locationName":"platform"},"InstanceCount":{"locationName":"instanceCount","type":"integer"},"InstanceType":{"locationName":"instanceType"}}},"Se2":{"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"}}},"Se9":{"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":"Se2","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"}}},"Seb":{"type":"list","member":{"locationName":"GroupName"}},"Sei":{"type":"list","member":{"locationName":"item","type":"structure","members":{"UserId":{"locationName":"userId"},"Group":{"locationName":"group"}}}},"Sf5":{"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":"S4m","locationName":"groupSet"},"UserData":{"locationName":"userData"},"AddressingType":{"locationName":"addressingType"},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sf8","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"BlockDeviceMappings":{"shape":"S9w","locationName":"blockDeviceMapping"},"Monitoring":{"locationName":"monitoring","type":"structure","members":{"Enabled":{"locationName":"enabled","type":"boolean"}}},"SubnetId":{"locationName":"subnetId"},"NetworkInterfaces":{"shape":"Sfa","locationName":"networkInterfaceSet"},"IamInstanceProfile":{"shape":"Sfc","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"WeightedCapacity":{"locationName":"weightedCapacity","type":"double"},"SpotPrice":{"locationName":"spotPrice"}}}},"ExcessCapacityTerminationPolicy":{"locationName":"excessCapacityTerminationPolicy"},"AllocationStrategy":{"locationName":"allocationStrategy"}}},"Sf8":{"type":"structure","members":{"AvailabilityZone":{"locationName":"availabilityZone"},"GroupName":{"locationName":"groupName"}}},"Sfa":{"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":"S4g","locationName":"SecurityGroupId"},"DeleteOnTermination":{"locationName":"deleteOnTermination","type":"boolean"},"PrivateIpAddresses":{"shape":"S4h","locationName":"privateIpAddressesSet","queryName":"PrivateIpAddresses"},"SecondaryPrivateIpAddressCount":{"locationName":"secondaryPrivateIpAddressCount","type":"integer"},"AssociatePublicIpAddress":{"locationName":"associatePublicIpAddress","type":"boolean"}}}},"Sfc":{"type":"structure","members":{"Arn":{"locationName":"arn"},"Name":{"locationName":"name"}}},"Sfh":{"type":"list","member":{"locationName":"item","type":"structure","members":{"SpotInstanceRequestId":{"locationName":"spotInstanceRequestId"},"SpotPrice":{"locationName":"spotPrice"},"Type":{"locationName":"type"},"State":{"locationName":"state"},"Fault":{"shape":"S5l","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":"S4m","locationName":"groupSet"},"UserData":{"locationName":"userData"},"AddressingType":{"locationName":"addressingType"},"InstanceType":{"locationName":"instanceType"},"Placement":{"shape":"Sf8","locationName":"placement"},"KernelId":{"locationName":"kernelId"},"RamdiskId":{"locationName":"ramdiskId"},"BlockDeviceMappings":{"shape":"S9w","locationName":"blockDeviceMapping"},"SubnetId":{"locationName":"subnetId"},"NetworkInterfaces":{"shape":"Sfa","locationName":"networkInterfaceSet"},"IamInstanceProfile":{"shape":"Sfc","locationName":"iamInstanceProfile"},"EbsOptimized":{"locationName":"ebsOptimized","type":"boolean"},"Monitoring":{"shape":"Sfn","locationName":"monitoring"}}},"InstanceId":{"locationName":"instanceId"},"CreateTime":{"locationName":"createTime","type":"timestamp"},"ProductDescription":{"locationName":"productDescription"},"BlockDurationMinutes":{"locationName":"blockDurationMinutes","type":"integer"},"ActualBlockHourlyPrice":{"locationName":"actualBlockHourlyPrice"},"Tags":{"shape":"Sa","locationName":"tagSet"},"LaunchedAvailabilityZone":{"locationName":"launchedAvailabilityZone"}}}},"Sfn":{"type":"structure","required":["Enabled"],"members":{"Enabled":{"locationName":"enabled","type":"boolean"}}},"Sg7":{"type":"list","member":{"locationName":"VolumeId"}},"Sgr":{"type":"list","member":{"locationName":"VpcId"}},"Sib":{"type":"structure","members":{"S3Bucket":{},"S3Key":{}}},"Sic":{"type":"structure","members":{"UploadStart":{"type":"timestamp"},"UploadEnd":{"type":"timestamp"},"UploadSize":{"type":"double"},"Comment":{}}},"Sig":{"type":"list","member":{"locationName":"SecurityGroup"}},"Sil":{"type":"structure","required":["Format","Bytes","ImportManifestUrl"],"members":{"Format":{"locationName":"format"},"Bytes":{"locationName":"bytes","type":"long"},"ImportManifestUrl":{"locationName":"importManifestUrl"}}},"Sim":{"type":"structure","required":["Size"],"members":{"Size":{"locationName":"size","type":"long"}}},"Six":{"type":"list","member":{"shape":"S39","locationName":"item"}},"Sj1":{"type":"list","member":{"locationName":"UserId"}},"Sju":{"type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"Monitoring":{"shape":"Sbi","locationName":"monitoring"}}}},"Sl6":{"type":"list","member":{"locationName":"SecurityGroupId"}},"Sll":{"type":"list","member":{"locationName":"item","type":"structure","members":{"InstanceId":{"locationName":"instanceId"},"CurrentState":{"shape":"Sb2","locationName":"currentState"},"PreviousState":{"shape":"Sb2","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"},"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":{"__default__":{"interval":15,"max_attempts":40,"acceptor_type":"output"},"__InstanceState":{"operation":"DescribeInstances","acceptor_path":"Reservations[].Instances[].State.Name"},"__InstanceStatus":{"operation":"DescribeInstanceStatus","success_value":"ok"},"SystemStatusOk":{"extends":"__InstanceStatus","acceptor_path":"InstanceStatuses[].SystemStatus.Status"},"InstanceStatusOk":{"extends":"__InstanceStatus","acceptor_path":"InstanceStatuses[].InstanceStatus.Status"},"ImageAvailable":{"operation":"DescribeImages","acceptor_path":"Images[].State","success_value":"available","failure_value":["failed"]},"InstanceRunning":{"extends":"__InstanceState","success_value":"running","failure_value":["shutting-down","terminated","stopping"]},"InstanceStopped":{"extends":"__InstanceState","success_value":"stopped","failure_value":["pending","terminated"]},"InstanceTerminated":{"extends":"__InstanceState","success_value":"terminated","failure_value":["pending","stopping"]},"__ExportTaskState":{"operation":"DescribeExportTasks","acceptor_path":"ExportTasks[].State"},"ExportTaskCompleted":{"extends":"__ExportTaskState","success_value":"completed"},"ExportTaskCancelled":{"extends":"__ExportTaskState","success_value":"cancelled"},"SnapshotCompleted":{"operation":"DescribeSnapshots","success_path":"Snapshots[].State","success_value":"completed"},"SubnetAvailable":{"operation":"DescribeSubnets","success_path":"Subnets[].State","success_value":"available"},"__VolumeStatus":{"operation":"DescribeVolumes","acceptor_path":"Volumes[].State"},"VolumeAvailable":{"extends":"__VolumeStatus","success_value":"available","failure_value":["deleted"]},"VolumeInUse":{"extends":"__VolumeStatus","success_value":"in-use","failure_value":["deleted"]},"VolumeDeleted":{"extends":"__VolumeStatus","success_type":"error","success_value":"InvalidVolume.NotFound"},"VpcAvailable":{"operation":"DescribeVpcs","success_path":"Vpcs[].State","success_value":"available"},"__VpnConnectionState":{"operation":"DescribeVpnConnections","acceptor_path":"VpnConnections[].State"},"VpnConnectionAvailable":{"extends":"__VpnConnectionState","success_value":"available","failure_value":["deleting","deleted"]},"VpnConnectionDeleted":{"extends":"__VpnConnectionState","success_value":"deleted","failure_value":["pending"]},"BundleTaskComplete":{"operation":"DescribeBundleTasks","acceptor_path":"BundleTasks[].State","success_value":"complete","failure_value":["failed"]},"__ConversionTaskState":{"operation":"DescribeConversionTasks","acceptor_path":"ConversionTasks[].State"},"ConversionTaskCompleted":{"extends":"__ConversionTaskState","success_value":"completed","failure_value":["cancelled","cancelling"]},"ConversionTaskCancelled":{"extends":"__ConversionTaskState","success_value":"cancelled"},"__CustomerGatewayState":{"operation":"DescribeCustomerGateways","acceptor_path":"CustomerGateways[].State"},"CustomerGatewayAvailable":{"extends":"__CustomerGatewayState","success_value":"available","failure_value":["deleted","deleting"]},"ConversionTaskDeleted":{"extends":"__CustomerGatewayState","success_value":"deleted"},"__SpotInstanceRequestState":{"operation":"DescribeSpotInstanceRequests","acceptor_path":"SpotInstanceRequests[].Status.Code"},"SpotInstanceRequestFulfilled":{"extends":"__SpotInstanceRequestState","success_value":"fulfilled","failure_value":["schedule-expired","canceled-before-fulfillment","bad-parameters","system-error"]}}};
81 AWS.apiLoader.services['elastictranscoder'] = {};
82 AWS.ElasticTranscoder = AWS.Service.defineService('elastictranscoder', [ '2012-09-25' ]);
83
84 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":{"operation":"ReadJob","success_type":"output","success_path":"Job.Status","interval":30,"max_attempts":120,"success_value":"Complete","failure_value":["Canceled","Error"]}}};
85 AWS.apiLoader.services['firehose'] = {};
86 AWS.Firehose = AWS.Service.defineService('firehose', [ '2015-08-04' ]);
87
88 AWS.apiLoader.services['firehose']['2015-08-04'] = {"version":"2.0","metadata":{"apiVersion":"2015-08-04","endpointPrefix":"firehose","jsonVersion":"1.1","serviceAbbreviation":"Firehose","serviceFullName":"0","signatureVersion":"v4","targetPrefix":"Firehose_20150804","protocol":"json"},"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":"Sh"},"Username":{"shape":"Sl"},"Password":{"shape":"Sm"},"S3Configuration":{"shape":"S3"}}}}},"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":"S11"},"RedshiftDestinationDescription":{"type":"structure","required":["RoleARN","ClusterJDBCURL","CopyCommand","Username","S3DestinationDescription"],"members":{"RoleARN":{},"ClusterJDBCURL":{},"CopyCommand":{"shape":"Sh"},"Username":{"shape":"Sl"},"S3DestinationDescription":{"shape":"S11"}}}}}},"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":"S19"}}},"output":{"type":"structure","required":["RecordId"],"members":{"RecordId":{}}},"http":{}},"PutRecordBatch":{"input":{"type":"structure","required":["DeliveryStreamName","Records"],"members":{"DeliveryStreamName":{},"Records":{"type":"list","member":{"shape":"S19"}}}},"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":"S1m"},"RedshiftDestinationUpdate":{"type":"structure","members":{"RoleARN":{},"ClusterJDBCURL":{},"CopyCommand":{"shape":"Sh"},"Username":{"shape":"Sl"},"Password":{"shape":"Sm"},"S3Update":{"shape":"S1m"}}}}},"output":{"type":"structure","members":{}},"http":{}}},"shapes":{"S3":{"type":"structure","required":["RoleARN","BucketARN"],"members":{"RoleARN":{},"BucketARN":{},"Prefix":{},"BufferingHints":{"shape":"S7"},"CompressionFormat":{},"EncryptionConfiguration":{"shape":"Sb"}}},"S7":{"type":"structure","members":{"SizeInMBs":{"type":"integer"},"IntervalInSeconds":{"type":"integer"}}},"Sb":{"type":"structure","members":{"NoEncryptionConfig":{},"KMSEncryptionConfig":{"type":"structure","required":["AWSKMSKeyARN"],"members":{"AWSKMSKeyARN":{}}}}},"Sh":{"type":"structure","required":["DataTableName"],"members":{"DataTableName":{},"DataTableColumns":{},"CopyOptions":{}}},"Sl":{"type":"string","sensitive":true},"Sm":{"type":"string","sensitive":true},"S11":{"type":"structure","required":["RoleARN","BucketARN","BufferingHints","CompressionFormat","EncryptionConfiguration"],"members":{"RoleARN":{},"BucketARN":{},"Prefix":{},"BufferingHints":{"shape":"S7"},"CompressionFormat":{},"EncryptionConfiguration":{"shape":"Sb"}}},"S19":{"type":"structure","required":["Data"],"members":{"Data":{"type":"blob"}}},"S1m":{"type":"structure","members":{"RoleARN":{},"BucketARN":{},"Prefix":{},"BufferingHints":{"shape":"S7"},"CompressionFormat":{},"EncryptionConfiguration":{"shape":"Sb"}}}},"examples":{}};
89 AWS.apiLoader.services['inspector'] = {};
90 AWS.Inspector = AWS.Service.defineService('inspector', [ '2015-08-18' ]);
91
92 AWS.apiLoader.services['inspector']['2015-08-18'] = {"version":"2.0","metadata":{"apiVersion":"2015-08-18","endpointPrefix":"inspector","jsonVersion":"1.1","serviceFullName":"Amazon Inspector","signatureVersion":"v4","targetPrefix":"InspectorService","protocol":"json"},"operations":{"AddAttributesToFindings":{"input":{"type":"structure","members":{"findingArns":{"shape":"S2"},"attributes":{"shape":"S4"}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"AttachAssessmentAndRulesPackage":{"input":{"type":"structure","members":{"assessmentArn":{},"rulesPackageArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"CreateApplication":{"input":{"type":"structure","members":{"applicationName":{},"resourceGroupArn":{}}},"output":{"type":"structure","members":{"applicationArn":{}}},"http":{}},"CreateAssessment":{"input":{"type":"structure","members":{"applicationArn":{},"assessmentName":{},"durationInSeconds":{"type":"integer"},"userAttributesForFindings":{"shape":"S4"}}},"output":{"type":"structure","members":{"assessmentArn":{}}},"http":{}},"CreateResourceGroup":{"input":{"type":"structure","members":{"resourceGroupTags":{}}},"output":{"type":"structure","members":{"resourceGroupArn":{}}},"http":{}},"DeleteApplication":{"input":{"type":"structure","members":{"applicationArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"DeleteAssessment":{"input":{"type":"structure","members":{"assessmentArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"DeleteRun":{"input":{"type":"structure","members":{"runArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"DescribeApplication":{"input":{"type":"structure","members":{"applicationArn":{}}},"output":{"type":"structure","members":{"application":{"type":"structure","members":{"applicationArn":{},"applicationName":{},"resourceGroupArn":{}}}}},"http":{}},"DescribeAssessment":{"input":{"type":"structure","members":{"assessmentArn":{}}},"output":{"type":"structure","members":{"assessment":{"type":"structure","members":{"assessmentArn":{},"assessmentName":{},"applicationArn":{},"assessmentState":{},"failureMessage":{},"dataCollected":{"type":"boolean"},"startTime":{"type":"timestamp"},"endTime":{"type":"timestamp"},"durationInSeconds":{"type":"integer"},"userAttributesForFindings":{"shape":"S4"}}}}},"http":{}},"DescribeCrossAccountAccessRole":{"output":{"type":"structure","members":{"roleArn":{},"valid":{"type":"boolean"}}},"http":{}},"DescribeFinding":{"input":{"type":"structure","members":{"findingArn":{}}},"output":{"type":"structure","members":{"finding":{"type":"structure","members":{"findingArn":{},"runArn":{},"rulesPackageArn":{},"ruleName":{},"agentId":{},"autoScalingGroup":{},"severity":{},"finding":{"shape":"S18"},"description":{"shape":"S18"},"recommendation":{"shape":"S18"},"attributes":{"shape":"S4"},"userAttributes":{"shape":"S4"}}}}},"http":{}},"DescribeResourceGroup":{"input":{"type":"structure","members":{"resourceGroupArn":{}}},"output":{"type":"structure","members":{"resourceGroup":{"type":"structure","members":{"resourceGroupArn":{},"resourceGroupTags":{}}}}},"http":{}},"DescribeRulesPackage":{"input":{"type":"structure","members":{"rulesPackageArn":{}}},"output":{"type":"structure","members":{"rulesPackage":{"type":"structure","members":{"rulesPackageArn":{},"rulesPackageName":{},"version":{},"provider":{},"description":{"shape":"S18"}}}}},"http":{}},"DescribeRun":{"input":{"type":"structure","members":{"runArn":{}}},"output":{"type":"structure","members":{"run":{"type":"structure","members":{"runArn":{},"runName":{},"assessmentArn":{},"runState":{},"rulesPackages":{"shape":"S2"},"creationTime":{"type":"timestamp"},"completionTime":{"type":"timestamp"}}}}},"http":{}},"DetachAssessmentAndRulesPackage":{"input":{"type":"structure","members":{"assessmentArn":{},"rulesPackageArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"GetAssessmentTelemetry":{"input":{"type":"structure","members":{"assessmentArn":{}}},"output":{"type":"structure","members":{"telemetry":{"shape":"S1v"}}},"http":{}},"ListApplications":{"input":{"type":"structure","members":{"filter":{"type":"structure","members":{"applicationNamePatterns":{"shape":"S24"}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"applicationArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListAssessmentAgents":{"input":{"type":"structure","members":{"assessmentArn":{},"filter":{"type":"structure","members":{"agentHealthList":{"type":"list","member":{}}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"agentList":{"type":"list","member":{"type":"structure","members":{"agentId":{},"assessmentArn":{},"agentHealth":{},"agentHealthCode":{},"agentHealthDetails":{},"autoScalingGroup":{},"accountId":{},"telemetry":{"shape":"S1v"}}}},"nextToken":{}}},"http":{}},"ListAssessments":{"input":{"type":"structure","members":{"applicationArns":{"shape":"S2"},"filter":{"shape":"S2k"},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"assessmentArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListAttachedAssessments":{"input":{"type":"structure","members":{"rulesPackageArn":{},"filter":{"shape":"S2k"},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"assessmentArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListAttachedRulesPackages":{"input":{"type":"structure","members":{"assessmentArn":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"rulesPackageArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListFindings":{"input":{"type":"structure","members":{"runArns":{"shape":"S2"},"filter":{"type":"structure","members":{"rulesPackageArns":{"shape":"S2"},"ruleNames":{"type":"list","member":{}},"severities":{"type":"list","member":{}},"attributes":{"shape":"S4"},"userAttributes":{"shape":"S4"}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"findingArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListRulesPackages":{"input":{"type":"structure","members":{"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"rulesPackageArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListRuns":{"input":{"type":"structure","members":{"assessmentArns":{"shape":"S2"},"filter":{"type":"structure","members":{"runNamePatterns":{"shape":"S24"},"runStates":{"type":"list","member":{}},"rulesPackages":{"shape":"S2"},"creationTime":{"shape":"S2m"},"completionTime":{"shape":"S2m"}}},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"runArnList":{"shape":"S2"},"nextToken":{}}},"http":{}},"ListTagsForResource":{"input":{"type":"structure","members":{"resourceArn":{}}},"output":{"type":"structure","members":{"tagList":{"shape":"S36"}}},"http":{}},"LocalizeText":{"input":{"type":"structure","members":{"localizedTexts":{"type":"list","member":{"shape":"S18"}},"locale":{}}},"output":{"type":"structure","members":{"message":{},"results":{"type":"list","member":{}}}},"http":{}},"PreviewAgentsForResourceGroup":{"input":{"type":"structure","members":{"resourceGroupArn":{},"nextToken":{},"maxResults":{"type":"integer"}}},"output":{"type":"structure","members":{"agentPreviewList":{"type":"list","member":{"type":"structure","members":{"agentId":{},"autoScalingGroup":{}}}},"nextToken":{}}},"http":{}},"RegisterCrossAccountAccessRole":{"input":{"type":"structure","members":{"roleArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"RemoveAttributesFromFindings":{"input":{"type":"structure","members":{"findingArns":{"shape":"S2"},"attributeKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"RunAssessment":{"input":{"type":"structure","members":{"assessmentArn":{},"runName":{}}},"output":{"type":"structure","members":{"runArn":{}}},"http":{}},"SetTagsForResource":{"input":{"type":"structure","members":{"resourceArn":{},"tags":{"shape":"S36"}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"StartDataCollection":{"input":{"type":"structure","members":{"assessmentArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"StopDataCollection":{"input":{"type":"structure","members":{"assessmentArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"UpdateApplication":{"input":{"type":"structure","members":{"applicationArn":{},"applicationName":{},"resourceGroupArn":{}}},"output":{"type":"structure","members":{"message":{}}},"http":{}},"UpdateAssessment":{"input":{"type":"structure","members":{"assessmentArn":{},"assessmentName":{},"durationInSeconds":{"type":"integer"}}},"output":{"type":"structure","members":{"message":{}}},"http":{}}},"shapes":{"S2":{"type":"list","member":{}},"S4":{"type":"list","member":{"type":"structure","members":{"key":{},"value":{}}}},"S18":{"type":"structure","members":{"key":{"type":"structure","members":{"facility":{},"id":{}}},"parameters":{"type":"list","member":{"type":"structure","members":{"name":{},"value":{}}}}}},"S1v":{"type":"list","member":{"type":"structure","members":{"status":{},"messageTypeTelemetries":{"type":"list","member":{"type":"structure","members":{"messageType":{},"count":{"type":"long"},"dataSize":{"type":"long"}}}}}}},"S24":{"type":"list","member":{}},"S2k":{"type":"structure","members":{"assessmentNamePatterns":{"shape":"S24"},"assessmentStates":{"type":"list","member":{}},"dataCollected":{"type":"boolean"},"startTimeRange":{"shape":"S2m"},"endTimeRange":{"shape":"S2m"},"durationRange":{"type":"structure","members":{"minimum":{"type":"integer"},"maximum":{"type":"integer"}}}}},"S2m":{"type":"structure","members":{"minimum":{"type":"timestamp"},"maximum":{"type":"timestamp"}}},"S36":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}}},"examples":{}};
93 AWS.apiLoader.services['kinesis'] = {};
94 AWS.Kinesis = AWS.Service.defineService('kinesis', [ '2013-12-02' ]);
95
96 AWS.apiLoader.services['kinesis']['2013-12-02'] = {"version":"2.0","metadata":{"apiVersion":"2013-12-02","endpointPrefix":"kinesis","jsonVersion":"1.1","serviceAbbreviation":"Kinesis","serviceFullName":"Amazon Kinesis","signatureVersion":"v4","targetPrefix":"Kinesis_20131202","protocol":"json"},"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"],"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"}}}}},"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":{}}},"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":{},"examples":{},"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"}}};
97 AWS.apiLoader.services['kms'] = {};
98 AWS.KMS = AWS.Service.defineService('kms', [ '2014-11-01' ]);
99
100 AWS.apiLoader.services['kms']['2014-11-01'] = {"version":"2.0","metadata":{"apiVersion":"2014-11-01","endpointPrefix":"kms","jsonVersion":"1.1","serviceAbbreviation":"KMS","serviceFullName":"AWS Key Management Service","signatureVersion":"v4","targetPrefix":"TrentService","protocol":"json"},"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":{}}},"output":{"type":"structure","members":{"KeyMetadata":{"shape":"So"}}},"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":"So"}}},"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":{}}},"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":{}},"So":{"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"}}}},"examples":{},"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"}}};
101 AWS.apiLoader.services['lambda'] = {};
102 AWS.Lambda = AWS.Service.defineService('lambda', [ '2014-11-11', '2015-03-31' ]);
103
104 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":{},"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":"Sf"}},"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":"Sl"}},"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":"Sz"}}},"output":{"shape":"S14"}},"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":"Sl"}},"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":"Sf"}},"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":"Sl"}},"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":"S14"},"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":"S14"}},"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":"Sf"}}}}},"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":"Sl"}}}}},"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":"S22"}}}},"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":"S22"}}}},"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":"S14"}},"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":"Sf"}},"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":"Sl"}},"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":"S14"}},"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":"Sz"}}},"output":{"shape":"S14"}}},"shapes":{"Sf":{"type":"structure","members":{"AliasArn":{},"Name":{},"FunctionVersion":{},"Description":{}}},"Sl":{"type":"structure","members":{"UUID":{},"BatchSize":{"type":"integer"},"EventSourceArn":{},"FunctionArn":{},"LastModified":{"type":"timestamp"},"LastProcessingResult":{},"State":{},"StateTransitionReason":{}}},"Sz":{"type":"structure","members":{"SubnetIds":{"shape":"S10"},"SecurityGroupIds":{"shape":"S12"}}},"S10":{"type":"list","member":{}},"S12":{"type":"list","member":{}},"S14":{"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":"S10"},"SecurityGroupIds":{"shape":"S12"},"VpcId":{}}}}},"S22":{"type":"list","member":{"shape":"S14"}}},"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"}}};
105 AWS.apiLoader.services['machinelearning'] = {};
106 AWS.MachineLearning = AWS.Service.defineService('machinelearning', [ '2014-12-12' ]);
107 require('./services/machinelearning');
108
109 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":{"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"}}};
110 AWS.apiLoader.services['marketplacecommerceanalytics'] = {};
111 AWS.MarketplaceCommerceAnalytics = AWS.Service.defineService('marketplacecommerceanalytics', [ '2015-07-01' ]);
112
113 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":{}};
114 AWS.apiLoader.services['mobileanalytics'] = {};
115 AWS.MobileAnalytics = AWS.Service.defineService('mobileanalytics', [ '2014-06-05' ]);
116
117 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":{}};
118 AWS.apiLoader.services['opsworks'] = {};
119 AWS.OpsWorks = AWS.Service.defineService('opsworks', [ '2013-02-18' ]);
120
121 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"},"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":{}}},"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":{},"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"}}};
122 AWS.apiLoader.services['route53'] = {};
123 AWS.Route53 = AWS.Service.defineService('route53', [ '2013-04-01' ]);
124 require('./services/route53');
125
126 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":"S1r"},"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":"S1w"},"DelegationSetId":{}}},"output":{"type":"structure","required":["HostedZone","ChangeInfo","DelegationSet","Location"],"members":{"HostedZone":{"shape":"S1z"},"ChangeInfo":{"shape":"S8"},"DelegationSet":{"shape":"S21"},"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":"S21"},"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":"S2a"},"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":"S2f"},"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":"S2a"},"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":"S31"}},"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":"S39"}}}},"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":"S1r"}}}},"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":"S3k"}}}},"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":"S3k"}}}},"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":"S1z"},"DelegationSet":{"shape":"S21"},"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":"S21"}}}},"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":"S2a"}}}},"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":"S2f"}}}},"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":"S46","location":"querystring","locationName":"startDate"},"EndDate":{"shape":"S46","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":"S4b"},"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":"S46","location":"querystring","locationName":"startDate"},"EndDate":{"shape":"S46","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":"S4b"},"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":"S39","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":"S1r","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":"S4m"},"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":"S4m"},"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":"S21","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":"S4x"}}}},"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":"S4x","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":"S58"},"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":"S58"},"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":"S58"},"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":"S2a","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"}}},"output":{"type":"structure","required":["HealthCheck"],"members":{"HealthCheck":{"shape":"S1r"}}}},"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":"S1z"}}}},"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":"S2a"}}}},"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":"S2f"}}}}},"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"}}},"S1o":{"type":"list","member":{"locationName":"ChildHealthCheck"}},"S1r":{"type":"structure","required":["Id","CallerReference","HealthCheckConfig","HealthCheckVersion"],"members":{"Id":{},"CallerReference":{},"HealthCheckConfig":{"shape":"S1c"},"HealthCheckVersion":{"type":"long"}}},"S1w":{"type":"structure","members":{"Comment":{},"PrivateZone":{"type":"boolean"}}},"S1z":{"type":"structure","required":["Id","Name","CallerReference"],"members":{"Id":{},"Name":{},"CallerReference":{},"Config":{"shape":"S1w"},"ResourceRecordSetCount":{"type":"long"}}},"S21":{"type":"structure","required":["NameServers"],"members":{"Id":{},"CallerReference":{},"NameServers":{"type":"list","member":{"locationName":"NameServer"}}}},"S2a":{"type":"structure","required":["Id","Version","Name","Type","Document"],"members":{"Id":{},"Version":{"type":"integer"},"Name":{},"Type":{},"Document":{},"Comment":{}}},"S2f":{"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":{}}},"S31":{"type":"structure","required":["Id","Status"],"members":{"Id":{},"SubmittedAt":{"type":"timestamp"},"Status":{},"Comment":{},"Submitter":{},"Changes":{"shape":"Se"}},"deprecated":true},"S39":{"type":"structure","members":{"ContinentCode":{},"ContinentName":{},"CountryCode":{},"CountryName":{},"SubdivisionCode":{},"SubdivisionName":{}}},"S3k":{"type":"list","member":{"locationName":"HealthCheckObservation","type":"structure","members":{"IPAddress":{},"StatusReport":{"type":"structure","members":{"Status":{},"CheckedTime":{"type":"timestamp"}}}}}},"S46":{"type":"string","deprecated":true},"S4b":{"type":"list","member":{"shape":"S31","locationName":"ChangeBatchRecord"},"deprecated":true},"S4m":{"type":"list","member":{"shape":"S1z","locationName":"HostedZone"}},"S4x":{"type":"structure","members":{"ResourceType":{},"ResourceId":{},"Tags":{"shape":"S14"}}},"S58":{"type":"list","member":{"shape":"S2f","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"]}}};
127 AWS.apiLoader.services['route53domains'] = {};
128 AWS.Route53Domains = AWS.Service.defineService('route53domains', [ '2014-05-15' ]);
129
130 AWS.apiLoader.services['route53domains']['2014-05-15'] = {"version":"2.0","metadata":{"apiVersion":"2014-05-15","endpointPrefix":"route53domains","jsonVersion":"1.1","serviceFullName":"Amazon Route 53 Domains","signatureVersion":"v4","targetPrefix":"Route53Domains_v20140515","protocol":"json"},"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":{}},"GetDomainDetail":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["DomainName","Nameservers","AdminContact","RegistrantContact","TechContact"],"members":{"DomainName":{},"Nameservers":{"shape":"Sl"},"AutoRenew":{"type":"boolean"},"AdminContact":{"shape":"Sr"},"RegistrantContact":{"shape":"Sr"},"TechContact":{"shape":"Sr"},"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":"S1v"}}},"http":{}},"RegisterDomain":{"input":{"type":"structure","required":["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],"members":{"DomainName":{},"IdnLangCode":{},"DurationInYears":{"type":"integer"},"AutoRenew":{"type":"boolean"},"AdminContact":{"shape":"Sr"},"RegistrantContact":{"shape":"Sr"},"TechContact":{"shape":"Sr"},"PrivacyProtectAdminContact":{"type":"boolean"},"PrivacyProtectRegistrantContact":{"type":"boolean"},"PrivacyProtectTechContact":{"type":"boolean"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"RetrieveDomainAuthCode":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{}}},"output":{"type":"structure","required":["AuthCode"],"members":{"AuthCode":{"shape":"S23"}}},"http":{}},"TransferDomain":{"input":{"type":"structure","required":["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],"members":{"DomainName":{},"IdnLangCode":{},"DurationInYears":{"type":"integer"},"Nameservers":{"shape":"Sl"},"AuthCode":{"shape":"S23"},"AutoRenew":{"type":"boolean"},"AdminContact":{"shape":"Sr"},"RegistrantContact":{"shape":"Sr"},"TechContact":{"shape":"Sr"},"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":"Sr"},"RegistrantContact":{"shape":"Sr"},"TechContact":{"shape":"Sr"}}},"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":"Sl"}}},"output":{"type":"structure","required":["OperationId"],"members":{"OperationId":{}}},"http":{}},"UpdateTagsForDomain":{"input":{"type":"structure","required":["DomainName"],"members":{"DomainName":{},"TagsToUpdate":{"shape":"S1v"}}},"output":{"type":"structure","members":{}},"http":{}}},"shapes":{"Sl":{"type":"list","member":{"type":"structure","required":["Name"],"members":{"Name":{},"GlueIps":{"type":"list","member":{}}}}},"Sr":{"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},"S1v":{"type":"list","member":{"type":"structure","members":{"Key":{},"Value":{}}}},"S23":{"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"}}};
131 AWS.apiLoader.services['s3'] = {};
132 AWS.S3 = AWS.Service.defineService('s3', [ '2006-03-01' ]);
133 require('./services/s3');
134
135 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"},"GetBucketAcl":{"http":{"method":"GET","requestUri":"/{Bucket}?acl"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Owner":{"shape":"S2h"},"Grants":{"shape":"S2k","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":"S2t","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":"S36","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":"S3m","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":"S3u"}}}},"GetBucketNotification":{"http":{"method":"GET","requestUri":"/{Bucket}?notification"},"input":{"shape":"S40"},"output":{"shape":"S41"},"deprecated":true},"GetBucketNotificationConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?notification"},"input":{"shape":"S40"},"output":{"shape":"S4c"}},"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":"S4v"}},"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":"S56"}}}},"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":"S5f"},"IndexDocument":{"shape":"S5i"},"ErrorDocument":{"shape":"S5k"},"RoutingRules":{"shape":"S5l"}}}},"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":"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":"S2h"},"Grants":{"shape":"S2k","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":"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":"S2h"}}},"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":"S2h"},"Initiator":{"shape":"S72"}}},"flattened":true},"CommonPrefixes":{"shape":"S73"},"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":"S2h"}}},"flattened":true},"DeleteMarkers":{"locationName":"DeleteMarker","type":"list","member":{"type":"structure","members":{"Owner":{"shape":"S2h"},"Key":{},"VersionId":{},"IsLatest":{"type":"boolean"},"LastModified":{"type":"timestamp"}}},"flattened":true},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"S73"},"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":{"type":"list","member":{"type":"structure","members":{"Key":{},"LastModified":{"type":"timestamp"},"ETag":{},"Size":{"type":"integer"},"StorageClass":{},"Owner":{"shape":"S2h"}}},"flattened":true},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"S73"},"EncodingType":{}}},"alias":"GetBucket"},"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":"S72"},"Owner":{"shape":"S2h"},"StorageClass":{},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutBucketAcl":{"http":{"method":"PUT","requestUri":"/{Bucket}?acl"},"input":{"type":"structure","required":["Bucket"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"AccessControlPolicy":{"shape":"S7w","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":"S2t","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":"S36","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":"S3m","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":"S3u"}}},"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":"S41","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":"S4c","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":"S4v","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":"S56"}}}},"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":"S5k"},"IndexDocument":{"shape":"S5i"},"RedirectAllRequestsTo":{"shape":"S5f"},"RoutingRules":{"shape":"S5l"}}}},"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":"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":"S7w","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"}},"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":"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":true},"S11":{"type":"map","key":{},"value":{}},"S18":{"type":"blob","sensitive":true},"S1b":{"type":"blob","sensitive":true},"S2h":{"type":"structure","members":{"DisplayName":{},"ID":{}}},"S2k":{"type":"list","member":{"locationName":"Grant","type":"structure","members":{"Grantee":{"shape":"S2m"},"Permission":{}}}},"S2m":{"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"}},"S2t":{"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},"S36":{"type":"list","member":{"type":"structure","required":["Prefix","Status"],"members":{"Expiration":{"shape":"S38"},"ID":{},"Prefix":{},"Status":{},"Transition":{"shape":"S3e"},"NoncurrentVersionTransition":{"shape":"S3g"},"NoncurrentVersionExpiration":{"shape":"S3h"},"AbortIncompleteMultipartUpload":{"shape":"S3i"}}},"flattened":true},"S38":{"type":"structure","members":{"Date":{"shape":"S39"},"Days":{"type":"integer"},"ExpiredObjectDeleteMarker":{"type":"boolean"}}},"S39":{"type":"timestamp","timestampFormat":"iso8601"},"S3e":{"type":"structure","members":{"Date":{"shape":"S39"},"Days":{"type":"integer"},"StorageClass":{}}},"S3g":{"type":"structure","members":{"NoncurrentDays":{"type":"integer"},"StorageClass":{}}},"S3h":{"type":"structure","members":{"NoncurrentDays":{"type":"integer"}}},"S3i":{"type":"structure","members":{"DaysAfterInitiation":{"type":"integer"}}},"S3m":{"type":"list","member":{"type":"structure","required":["Prefix","Status"],"members":{"Expiration":{"shape":"S38"},"ID":{},"Prefix":{},"Status":{},"Transitions":{"locationName":"Transition","type":"list","member":{"shape":"S3e"},"flattened":true},"NoncurrentVersionTransitions":{"locationName":"NoncurrentVersionTransition","type":"list","member":{"shape":"S3g"},"flattened":true},"NoncurrentVersionExpiration":{"shape":"S3h"},"AbortIncompleteMultipartUpload":{"shape":"S3i"}}},"flattened":true},"S3u":{"type":"structure","members":{"TargetBucket":{},"TargetGrants":{"type":"list","member":{"locationName":"Grant","type":"structure","members":{"Grantee":{"shape":"S2m"},"Permission":{}}}},"TargetPrefix":{}}},"S40":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"S41":{"type":"structure","members":{"TopicConfiguration":{"type":"structure","members":{"Id":{},"Events":{"shape":"S44","locationName":"Event"},"Event":{"deprecated":true},"Topic":{}}},"QueueConfiguration":{"type":"structure","members":{"Id":{},"Event":{"deprecated":true},"Events":{"shape":"S44","locationName":"Event"},"Queue":{}}},"CloudFunctionConfiguration":{"type":"structure","members":{"Id":{},"Event":{"deprecated":true},"Events":{"shape":"S44","locationName":"Event"},"CloudFunction":{},"InvocationRole":{}}}}},"S44":{"type":"list","member":{},"flattened":true},"S4c":{"type":"structure","members":{"TopicConfigurations":{"locationName":"TopicConfiguration","type":"list","member":{"type":"structure","required":["TopicArn","Events"],"members":{"Id":{},"TopicArn":{"locationName":"Topic"},"Events":{"shape":"S44","locationName":"Event"},"Filter":{"shape":"S4f"}}},"flattened":true},"QueueConfigurations":{"locationName":"QueueConfiguration","type":"list","member":{"type":"structure","required":["QueueArn","Events"],"members":{"Id":{},"QueueArn":{"locationName":"Queue"},"Events":{"shape":"S44","locationName":"Event"},"Filter":{"shape":"S4f"}}},"flattened":true},"LambdaFunctionConfigurations":{"locationName":"CloudFunctionConfiguration","type":"list","member":{"type":"structure","required":["LambdaFunctionArn","Events"],"members":{"Id":{},"LambdaFunctionArn":{"locationName":"CloudFunction"},"Events":{"shape":"S44","locationName":"Event"},"Filter":{"shape":"S4f"}}},"flattened":true}}},"S4f":{"type":"structure","members":{"Key":{"locationName":"S3Key","type":"structure","members":{"FilterRules":{"locationName":"FilterRule","type":"list","member":{"type":"structure","members":{"Name":{},"Value":{}}},"flattened":true}}}}},"S4v":{"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}}},"S56":{"type":"list","member":{"locationName":"Tag","type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}}},"S5f":{"type":"structure","required":["HostName"],"members":{"HostName":{},"Protocol":{}}},"S5i":{"type":"structure","required":["Suffix"],"members":{"Suffix":{}}},"S5k":{"type":"structure","required":["Key"],"members":{"Key":{}}},"S5l":{"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":{}}}}}},"S72":{"type":"structure","members":{"ID":{},"DisplayName":{}}},"S73":{"type":"list","member":{"type":"structure","members":{"Prefix":{}}},"flattened":true},"S7w":{"type":"structure","members":{"Grants":{"shape":"S2k","locationName":"AccessControlList"},"Owner":{"shape":"S2h"}}}},"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":{"__default__":{"interval":5,"max_attempts":20},"BucketExists":{"operation":"HeadBucket","ignore_errors":[404],"success_type":"output"},"BucketNotExists":{"operation":"HeadBucket","success_type":"error","success_value":404},"ObjectExists":{"operation":"HeadObject","ignore_errors":[404],"success_type":"output"},"ObjectNotExists":{"operation":"HeadObject","success_type":"error","success_value":404}}};
136 AWS.apiLoader.services['sns'] = {};
137 AWS.SNS = AWS.Service.defineService('sns', [ '2010-03-31' ]);
138
139 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"}}};
140 AWS.apiLoader.services['sqs'] = {};
141 AWS.SQS = AWS.Service.defineService('sqs', [ '2012-11-05' ]);
142 require('./services/sqs');
143
144 AWS.apiLoader.services['sqs']['2012-11-05'] = {"version":"2.0","metadata":{"apiVersion":"2012-11-05","endpointPrefix":"sqs","serviceAbbreviation":"Amazon SQS","serviceFullName":"Amazon Simple Queue Service","signatureVersion":"v4","xmlNamespace":"http://queue.amazonaws.com/doc/2012-11-05/","protocol":"query"},"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}},"examples":{},"paginators":{"ListQueues":{"result_key":"QueueUrls"}}};
145 AWS.apiLoader.services['ssm'] = {};
146 AWS.SSM = AWS.Service.defineService('ssm', [ '2014-11-06' ]);
147
148 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":{}},"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":"S27"},"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":"S27"}}},"output":{"type":"structure","members":{"Commands":{"type":"list","member":{"shape":"S2s"}},"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":{},"PlatformTypes":{"shape":"S15"}}}},"NextToken":{}}},"http":{}},"SendCommand":{"input":{"type":"structure","required":["InstanceIds","DocumentName"],"members":{"InstanceIds":{"shape":"S3"},"DocumentName":{},"TimeoutSeconds":{"type":"integer"},"Comment":{},"Parameters":{"shape":"S8"},"OutputS3BucketName":{},"OutputS3KeyPrefix":{}}},"output":{"type":"structure","members":{"Command":{"shape":"S2s"}}},"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":{},"Name":{},"CreatedDate":{"type":"timestamp"},"Status":{},"Description":{},"Parameters":{"type":"list","member":{"locationName":"DocumentParameter","type":"structure","members":{"Name":{},"Type":{},"Description":{},"DefaultValue":{}}}},"PlatformTypes":{"shape":"S15"}}},"S15":{"type":"list","member":{"locationName":"PlatformType"}},"S27":{"type":"list","member":{"type":"structure","required":["key","value"],"members":{"key":{},"value":{}}}},"S2s":{"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"}}};
149 AWS.apiLoader.services['storagegateway'] = {};
150 AWS.StorageGateway = AWS.Service.defineService('storagegateway', [ '2013-06-30' ]);
151
152 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":{"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":{}},"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","required":["GatewayARN"],"members":{"GatewayARN":{},"Marker":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","members":{"GatewayARN":{},"Marker":{},"VolumeInfos":{"type":"list","member":{"type":"structure","members":{"VolumeARN":{},"VolumeType":{}}}}}},"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"}}};
153 AWS.apiLoader.services['sts'] = {};
154 AWS.STS = AWS.Service.defineService('sts', [ '2011-06-15' ]);
155 require('./services/sts');
156
157 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":{}},"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":{}}}}};
158 AWS.apiLoader.services['waf'] = {};
159 AWS.WAF = AWS.Service.defineService('waf', [ '2015-08-24' ]);
160
161 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":{}},"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":{}},"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":"S22"},"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":"S22"}}},"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":{}},"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":{}},"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":{}}},"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"}}},"S22":{"type":"structure","required":["StartTime","EndTime"],"members":{"StartTime":{"type":"timestamp"},"EndTime":{"type":"timestamp"}}}}};
162
163 },{"./core":4,"./http/xhr":18,"./services/cloudfront":42,"./services/cognitoidentity":43,"./services/dynamodb":44,"./services/ec2":45,"./services/machinelearning":46,"./services/route53":47,"./services/s3":48,"./services/sqs":49,"./services/sts":50,"./xml/browser_parser":60}],2:[function(require,module,exports){
164 var crypto = require('crypto'),
165 url = require('url'),
166 AWS = require('../core'),
167 base64Encode = AWS.util.base64.encode,
168 inherit = AWS.util.inherit;
169
170 var queryEncode = function (string) {
171 var replacements = {
172 '+': '-',
173 '=': '_',
174 '/': '~'
175 };
176 return string.replace(/[\+=\/]/g, function (match) {
177 return replacements[match];
178 });
179 };
180
181 var signPolicy = function (policy, privateKey) {
182 var sign = crypto.createSign('RSA-SHA1');
183 sign.write(policy);
184 return queryEncode(sign.sign(privateKey, 'base64'))
185 };
186
187 var signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {
188 var policy = JSON.stringify({
189 Statement: [
190 {
191 Resource: url,
192 Condition: { DateLessThan: { 'AWS:EpochTime': expires } }
193 }
194 ]
195 });
196
197 return {
198 Expires: expires,
199 'Key-Pair-Id': keyPairId,
200 Signature: signPolicy(policy.toString(), privateKey)
201 };
202 };
203
204 var signWithCustomPolicy = function (policy, keyPairId, privateKey) {
205 policy = policy.replace(/\s/mg, policy);
206
207 return {
208 Policy: queryEncode(base64Encode(policy)),
209 'Key-Pair-Id': keyPairId,
210 Signature: signPolicy(policy, privateKey)
211 }
212 };
213
214 var determineScheme = function (url) {
215 var parts = url.split('://');
216 if (parts.length < 2) {
217 throw new Error('Invalid URL.');
218 }
219
220 return parts[0].replace('*', '');
221 };
222
223 var getRtmpUrl = function (rtmpUrl) {
224 var parsed = url.parse(rtmpUrl);
225 return parsed.path.replace(/^\//, '') + parsed.hash;
226 };
227
228 var getResource = function (url) {
229 switch (determineScheme(url)) {
230 case 'http':
231 case 'https':
232 return url;
233 case 'rtmp':
234 return getRtmpUrl(url);
235 default:
236 throw new Error('Invalid URI scheme. Scheme must be one of'
237 + ' http, https, or rtmp');
238 }
239 };
240
241 var handleError = function (err, callback) {
242 if (!callback || typeof callback !== 'function') {
243 throw err;
244 }
245
246 callback(err);
247 };
248
249 var handleSuccess = function (result, callback) {
250 if (!callback || typeof callback !== 'function') {
251 return result;
252 }
253
254 callback(null, result);
255 };
256
257 AWS.CloudFront.Signer = inherit({
258
259 constructor: function Signer(keyPairId, privateKey) {
260 if (keyPairId === void 0 || privateKey === void 0) {
261 throw new Error('A key pair ID and private key are required');
262 }
263
264 this.keyPairId = keyPairId;
265 this.privateKey = privateKey;
266 },
267
268
269 getSignedCookie: function (options, cb) {
270 var signatureHash = 'policy' in options
271 ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)
272 : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);
273
274 var cookieHash = {};
275 for (var key in signatureHash) {
276 if (signatureHash.hasOwnProperty(key)) {
277 cookieHash['CloudFront-' + key] = signatureHash[key];
278 }
279 }
280
281 return handleSuccess(cookieHash, cb);
282 },
283
284
285 getSignedUrl: function (options, cb) {
286 try {
287 var resource = getResource(options.url);
288 } catch (err) {
289 return handleError(err, cb);
290 }
291
292 var parsedUrl = url.parse(options.url, true),
293 signatureHash = options.hasOwnProperty('policy')
294 ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)
295 : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);
296
297 parsedUrl.search = null;
298 for (var key in signatureHash) {
299 if (signatureHash.hasOwnProperty(key)) {
300 parsedUrl.query[key] = signatureHash[key];
301 }
302 }
303
304 try {
305 var signedUrl = determineScheme(options.url) === 'rtmp'
306 ? getRtmpUrl(url.format(parsedUrl))
307 : url.format(parsedUrl);
308 } catch (err) {
309 return handleError(err, cb);
310 }
311
312 return handleSuccess(signedUrl, cb);
313 }
314 });
315
316 module.exports = AWS.CloudFront.Signer;
317
318 },{"../core":4,"crypto":66,"url":78}],3:[function(require,module,exports){
319 var AWS = require('./core');
320 require('./credentials');
321 require('./credentials/credential_provider_chain');
322
323
324 AWS.Config = AWS.util.inherit({
325
326
327
328 constructor: function Config(options) {
329 if (options === undefined) options = {};
330 options = this.extractCredentials(options);
331
332 AWS.util.each.call(this, this.keys, function (key, value) {
333 this.set(key, options[key], value);
334 });
335 },
336
337
338
339
340 getCredentials: function getCredentials(callback) {
341 var self = this;
342
343 function finish(err) {
344 callback(err, err ? null : self.credentials);
345 }
346
347 function credError(msg, err) {
348 return new AWS.util.error(err || new Error(), {
349 code: 'CredentialsError', message: msg
350 });
351 }
352
353 function getAsyncCredentials() {
354 self.credentials.get(function(err) {
355 if (err) {
356 var msg = 'Could not load credentials from ' +
357 self.credentials.constructor.name;
358 err = credError(msg, err);
359 }
360 finish(err);
361 });
362 }
363
364 function getStaticCredentials() {
365 var err = null;
366 if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {
367 err = credError('Missing credentials');
368 }
369 finish(err);
370 }
371
372 if (self.credentials) {
373 if (typeof self.credentials.get === 'function') {
374 getAsyncCredentials();
375 } else { // static credentials
376 getStaticCredentials();
377 }
378 } else if (self.credentialProvider) {
379 self.credentialProvider.resolve(function(err, creds) {
380 if (err) {
381 err = credError('Could not load credentials from any providers', err);
382 }
383 self.credentials = creds;
384 finish(err);
385 });
386 } else {
387 finish(credError('No credentials to load'));
388 }
389 },
390
391
392
393
394 update: function update(options, allowUnknownKeys) {
395 allowUnknownKeys = allowUnknownKeys || false;
396 options = this.extractCredentials(options);
397 AWS.util.each.call(this, options, function (key, value) {
398 if (allowUnknownKeys || this.keys.hasOwnProperty(key) ||
399 AWS.Service.hasService(key)) {
400 this.set(key, value);
401 }
402 });
403 },
404
405
406 loadFromPath: function loadFromPath(path) {
407 this.clear();
408
409 var options = JSON.parse(AWS.util.readFileSync(path));
410 var fileSystemCreds = new AWS.FileSystemCredentials(path);
411 var chain = new AWS.CredentialProviderChain();
412 chain.providers.unshift(fileSystemCreds);
413 chain.resolve(function (err, creds) {
414 if (err) throw err;
415 else options.credentials = creds;
416 });
417
418 this.constructor(options);
419
420 return this;
421 },
422
423
424 clear: function clear() {
425
426 AWS.util.each.call(this, this.keys, function (key) {
427 delete this[key];
428 });
429
430 this.set('credentials', undefined);
431 this.set('credentialProvider', undefined);
432 },
433
434
435 set: function set(property, value, defaultValue) {
436 if (value === undefined) {
437 if (defaultValue === undefined) {
438 defaultValue = this.keys[property];
439 }
440 if (typeof defaultValue === 'function') {
441 this[property] = defaultValue.call(this);
442 } else {
443 this[property] = defaultValue;
444 }
445 } else if (property === 'httpOptions' && this[property]) {
446 this[property] = AWS.util.merge(this[property], value);
447 } else {
448 this[property] = value;
449 }
450 },
451
452
453 keys: {
454 credentials: null,
455 credentialProvider: null,
456 region: null,
457 logger: null,
458 apiVersions: {},
459 apiVersion: null,
460 endpoint: undefined,
461 httpOptions: {
462 timeout: 120000
463 },
464 maxRetries: undefined,
465 maxRedirects: 10,
466 paramValidation: true,
467 sslEnabled: true,
468 s3ForcePathStyle: false,
469 s3BucketEndpoint: false,
470 computeChecksums: true,
471 convertResponseTypes: true,
472 correctClockSkew: false,
473 customUserAgent: null,
474 dynamoDbCrc32: true,
475 systemClockOffset: 0,
476 signatureVersion: null,
477 signatureCache: true,
478 retryDelayOptions: {
479 base: 100
480 }
481 },
482
483
484 extractCredentials: function extractCredentials(options) {
485 if (options.accessKeyId && options.secretAccessKey) {
486 options = AWS.util.copy(options);
487 options.credentials = new AWS.Credentials(options);
488 }
489 return options;
490 }
491 });
492
493
494 AWS.config = new AWS.Config();
495
496 },{"./core":4,"./credentials":5,"./credentials/credential_provider_chain":7}],4:[function(require,module,exports){
497
498 var AWS = { util: require('./util') };
499
500
501 var _hidden = {}; _hidden.toString(); // hack to parse macro
502
503 module.exports = AWS;
504
505 AWS.util.update(AWS, {
506
507
508 VERSION: '2.2.47',
509
510
511 Signers: {},
512
513
514 Protocol: {
515 Json: require('./protocol/json'),
516 Query: require('./protocol/query'),
517 Rest: require('./protocol/rest'),
518 RestJson: require('./protocol/rest_json'),
519 RestXml: require('./protocol/rest_xml')
520 },
521
522
523 XML: {
524 Builder: require('./xml/builder'),
525 Parser: null // conditionally set based on environment
526 },
527
528
529 JSON: {
530 Builder: require('./json/builder'),
531 Parser: require('./json/parser')
532 },
533
534
535 Model: {
536 Api: require('./model/api'),
537 Operation: require('./model/operation'),
538 Shape: require('./model/shape'),
539 Paginator: require('./model/paginator'),
540 ResourceWaiter: require('./model/resource_waiter')
541 },
542
543 util: require('./util'),
544
545
546 apiLoader: function() { throw new Error('No API loader set'); }
547 });
548
549 require('./service');
550
551 require('./credentials');
552 require('./credentials/credential_provider_chain');
553 require('./credentials/temporary_credentials');
554 require('./credentials/web_identity_credentials');
555 require('./credentials/cognito_identity_credentials');
556 require('./credentials/saml_credentials');
557
558 require('./config');
559 require('./http');
560 require('./sequential_executor');
561 require('./event_listeners');
562 require('./request');
563 require('./response');
564 require('./resource_waiter');
565 require('./signers/request_signer');
566 require('./param_validator');
567
568
569 AWS.events = new AWS.SequentialExecutor();
570
571 },{"./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":52,"./util":59,"./xml/builder":61}],5:[function(require,module,exports){
572 var AWS = require('./core');
573
574
575 AWS.Credentials = AWS.util.inherit({
576
577 constructor: function Credentials() {
578 AWS.util.hideProperties(this, ['secretAccessKey']);
579
580 this.expired = false;
581 this.expireTime = null;
582 if (arguments.length === 1 && typeof arguments[0] === 'object') {
583 var creds = arguments[0].credentials || arguments[0];
584 this.accessKeyId = creds.accessKeyId;
585 this.secretAccessKey = creds.secretAccessKey;
586 this.sessionToken = creds.sessionToken;
587 } else {
588 this.accessKeyId = arguments[0];
589 this.secretAccessKey = arguments[1];
590 this.sessionToken = arguments[2];
591 }
592 },
593
594
595 expiryWindow: 15,
596
597
598 needsRefresh: function needsRefresh() {
599 var currentTime = AWS.util.date.getDate().getTime();
600 var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);
601
602 if (this.expireTime && adjustedTime > this.expireTime) {
603 return true;
604 } else {
605 return this.expired || !this.accessKeyId || !this.secretAccessKey;
606 }
607 },
608
609
610 get: function get(callback) {
611 var self = this;
612 if (this.needsRefresh()) {
613 this.refresh(function(err) {
614 if (!err) self.expired = false; // reset expired flag
615 if (callback) callback(err);
616 });
617 } else if (callback) {
618 callback();
619 }
620 },
621
622
623 refresh: function refresh(callback) {
624 this.expired = false;
625 callback();
626 }
627 });
628
629 },{"./core":4}],6:[function(require,module,exports){
630 var AWS = require('../core');
631
632
633 AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {
634
635 localStorageKey: {
636 id: 'aws.cognito.identity-id.',
637 providers: 'aws.cognito.identity-providers.'
638 },
639
640
641 constructor: function CognitoIdentityCredentials(params) {
642 AWS.Credentials.call(this);
643 this.expired = true;
644 this.params = params;
645 this.data = null;
646 this.identityId = null;
647 this.loadCachedId();
648 },
649
650
651 refresh: function refresh(callback) {
652 var self = this;
653 self.createClients();
654 self.data = null;
655 self.identityId = null;
656 self.getId(function(err) {
657 if (!err) {
658 if (!self.params.RoleArn) {
659 self.getCredentialsForIdentity(callback);
660 } else {
661 self.getCredentialsFromSTS(callback);
662 }
663 } else {
664 self.clearCachedId();
665 callback(err);
666 }
667 });
668 },
669
670
671 clearCachedId: function clearCache() {
672 this.identityId = null;
673 delete this.params.IdentityId;
674
675 var poolId = this.params.IdentityPoolId;
676 var loginId = this.params.LoginId || '';
677 delete this.storage[this.localStorageKey.id + poolId + loginId];
678 delete this.storage[this.localStorageKey.providers + poolId + loginId];
679 },
680
681
682 getId: function getId(callback) {
683 var self = this;
684 if (typeof self.params.IdentityId === 'string') {
685 return callback(null, self.params.IdentityId);
686 }
687
688 self.cognito.getId(function(err, data) {
689 if (!err && data.IdentityId) {
690 self.params.IdentityId = data.IdentityId;
691 callback(null, data.IdentityId);
692 } else {
693 callback(err);
694 }
695 });
696 },
697
698
699
700 loadCredentials: function loadCredentials(data, credentials) {
701 if (!data || !credentials) return;
702 credentials.expired = false;
703 credentials.accessKeyId = data.Credentials.AccessKeyId;
704 credentials.secretAccessKey = data.Credentials.SecretKey;
705 credentials.sessionToken = data.Credentials.SessionToken;
706 credentials.expireTime = data.Credentials.Expiration;
707 },
708
709
710 getCredentialsForIdentity: function getCredentialsForIdentity(callback) {
711 var self = this;
712 self.cognito.getCredentialsForIdentity(function(err, data) {
713 if (!err) {
714 self.cacheId(data);
715 self.data = data;
716 self.loadCredentials(self.data, self);
717 } else {
718 self.clearCachedId();
719 }
720 callback(err);
721 });
722 },
723
724
725 getCredentialsFromSTS: function getCredentialsFromSTS(callback) {
726 var self = this;
727 self.cognito.getOpenIdToken(function(err, data) {
728 if (!err) {
729 self.cacheId(data);
730 self.params.WebIdentityToken = data.Token;
731 self.webIdentityCredentials.refresh(function(webErr) {
732 if (!webErr) {
733 self.data = self.webIdentityCredentials.data;
734 self.sts.credentialsFrom(self.data, self);
735 } else {
736 self.clearCachedId();
737 }
738 callback(webErr);
739 });
740 } else {
741 self.clearCachedId();
742 callback(err);
743 }
744 });
745 },
746
747
748 loadCachedId: function loadCachedId() {
749 var self = this;
750
751 if (AWS.util.isBrowser() && !self.params.IdentityId) {
752 var id = self.getStorage('id');
753 if (id && self.params.Logins) {
754 var actualProviders = Object.keys(self.params.Logins);
755 var cachedProviders =
756 (self.getStorage('providers') || '').split(',');
757
758 var intersect = cachedProviders.filter(function(n) {
759 return actualProviders.indexOf(n) !== -1;
760 });
761 if (intersect.length !== 0) {
762 self.params.IdentityId = id;
763 }
764 } else if (id) {
765 self.params.IdentityId = id;
766 }
767 }
768 },
769
770
771 createClients: function() {
772 this.webIdentityCredentials = this.webIdentityCredentials ||
773 new AWS.WebIdentityCredentials(this.params);
774 this.cognito = this.cognito ||
775 new AWS.CognitoIdentity({params: this.params});
776 this.sts = this.sts || new AWS.STS();
777 },
778
779
780 cacheId: function cacheId(data) {
781 this.identityId = data.IdentityId;
782 this.params.IdentityId = this.identityId;
783
784 if (AWS.util.isBrowser()) {
785 this.setStorage('id', data.IdentityId);
786
787 if (this.params.Logins) {
788 this.setStorage('providers', Object.keys(this.params.Logins).join(','));
789 }
790 }
791 },
792
793
794 getStorage: function getStorage(key) {
795 return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];
796 },
797
798
799 setStorage: function setStorage(key, val) {
800 try {
801 this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;
802 } catch (_) {}
803 },
804
805
806 storage: (function() {
807 try {
808 return AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?
809 window.localStorage : {};
810 } catch (_) {
811 return {};
812 }
813 })()
814 });
815
816 },{"../core":4}],7:[function(require,module,exports){
817 var AWS = require('../core');
818
819
820 AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {
821
822
823 constructor: function CredentialProviderChain(providers) {
824 if (providers) {
825 this.providers = providers;
826 } else {
827 this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);
828 }
829 },
830
831
832 resolve: function resolve(callback) {
833 if (this.providers.length === 0) {
834 callback(new Error('No providers'));
835 return this;
836 }
837
838 var index = 0;
839 var providers = this.providers.slice(0);
840
841 function resolveNext(err, creds) {
842 if ((!err && creds) || index === providers.length) {
843 callback(err, creds);
844 return;
845 }
846
847 var provider = providers[index++];
848 if (typeof provider === 'function') {
849 creds = provider.call();
850 } else {
851 creds = provider;
852 }
853
854 if (creds.get) {
855 creds.get(function(getErr) {
856 resolveNext(getErr, getErr ? null : creds);
857 });
858 } else {
859 resolveNext(null, creds);
860 }
861 }
862
863 resolveNext();
864 return this;
865 }
866
867 });
868
869
870 AWS.CredentialProviderChain.defaultProviders = [];
871
872 },{"../core":4}],8:[function(require,module,exports){
873 var AWS = require('../core');
874
875
876 AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {
877
878 constructor: function SAMLCredentials(params) {
879 AWS.Credentials.call(this);
880 this.expired = true;
881 this.params = params;
882 },
883
884
885 refresh: function refresh(callback) {
886 var self = this;
887 self.createClients();
888 if (!callback) callback = function(err) { if (err) throw err; };
889
890 self.service.assumeRoleWithSAML(function (err, data) {
891 if (!err) {
892 self.service.credentialsFrom(data, self);
893 }
894 callback(err);
895 });
896 },
897
898
899 createClients: function() {
900 this.service = this.service || new AWS.STS({params: this.params});
901 }
902
903 });
904
905 },{"../core":4}],9:[function(require,module,exports){
906 var AWS = require('../core');
907
908
909 AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {
910
911 constructor: function TemporaryCredentials(params) {
912 AWS.Credentials.call(this);
913 this.loadMasterCredentials();
914 this.expired = true;
915
916 this.params = params || {};
917 if (this.params.RoleArn) {
918 this.params.RoleSessionName =
919 this.params.RoleSessionName || 'temporary-credentials';
920 }
921 },
922
923
924 refresh: function refresh(callback) {
925 var self = this;
926 self.createClients();
927 if (!callback) callback = function(err) { if (err) throw err; };
928
929 self.service.config.credentials = self.masterCredentials;
930 var operation = self.params.RoleArn ?
931 self.service.assumeRole : self.service.getSessionToken;
932 operation.call(self.service, function (err, data) {
933 if (!err) {
934 self.service.credentialsFrom(data, self);
935 }
936 callback(err);
937 });
938 },
939
940
941 loadMasterCredentials: function loadMasterCredentials() {
942 this.masterCredentials = AWS.config.credentials;
943 while (this.masterCredentials.masterCredentials) {
944 this.masterCredentials = this.masterCredentials.masterCredentials;
945 }
946 },
947
948
949 createClients: function() {
950 this.service = this.service || new AWS.STS({params: this.params});
951 }
952
953 });
954
955 },{"../core":4}],10:[function(require,module,exports){
956 var AWS = require('../core');
957
958
959 AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {
960
961 constructor: function WebIdentityCredentials(params) {
962 AWS.Credentials.call(this);
963 this.expired = true;
964 this.params = params;
965 this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';
966 this.data = null;
967 },
968
969
970 refresh: function refresh(callback) {
971 var self = this;
972 self.createClients();
973 if (!callback) callback = function(err) { if (err) throw err; };
974
975 self.service.assumeRoleWithWebIdentity(function (err, data) {
976 self.data = null;
977 if (!err) {
978 self.data = data;
979 self.service.credentialsFrom(data, self);
980 }
981 callback(err);
982 });
983 },
984
985
986 createClients: function() {
987 this.service = this.service || new AWS.STS({params: this.params});
988 }
989
990 });
991
992 },{"../core":4}],11:[function(require,module,exports){
993 var util = require('../core').util;
994 var typeOf = require('./types').typeOf;
995 var DynamoDBSet = require('./set');
996
997 function convertInput(data) {
998 if (typeOf(data) === 'Object') {
999 var map = {M: {}};
1000 for (var key in data) {
1001 map['M'][key] = convertInput(data[key]);
1002 }
1003 return map;
1004 } else if (typeOf(data) === 'Array') {
1005 var list = {L: []};
1006 for (var i = 0; i < data.length; i++) {
1007 list['L'].push(convertInput(data[i]));
1008 }
1009 return list;
1010 } else if (typeOf(data) === 'Set') {
1011 return formatSet(data);
1012 } else if (typeOf(data) === 'String') {
1013 return { 'S': data };
1014 } else if (typeOf(data) === 'Number') {
1015 return { 'N': data.toString() };
1016 } else if (typeOf(data) === 'Binary') {
1017 return { 'B': data };
1018 } else if (typeOf(data) === 'Boolean') {
1019 return {'BOOL': data};
1020 } else if (typeOf(data) === 'null') {
1021 return {'NULL': true};
1022 }
1023 }
1024
1025 function formatSet(data) {
1026 var map = {};
1027 switch (data.type) {
1028 case 'String': map['SS'] = data.values; break;
1029 case 'Binary': map['BS'] = data.values; break;
1030 case 'Number': map['NS'] = data.values.map(function (value) {
1031 return value.toString();
1032 });
1033 }
1034 return map;
1035 }
1036
1037 function convertOutput(data) {
1038 var list, map, i;
1039 for (var type in data) {
1040 var values = data[type];
1041 if (type === 'M') {
1042 map = {};
1043 for (var key in values) {
1044 map[key] = convertOutput(values[key]);
1045 }
1046 return map;
1047 } else if (type === 'L') {
1048 list = [];
1049 for (i = 0; i < values.length; i++) {
1050 list.push(convertOutput(values[i]));
1051 }
1052 return list;
1053 } else if (type === 'SS') {
1054 list = [];
1055 for (i = 0; i < values.length; i++) {
1056 list.push(values[i] + '');
1057 }
1058 return new DynamoDBSet(list);
1059 } else if (type === 'NS') {
1060 list = [];
1061 for (i = 0; i < values.length; i++) {
1062 list.push(Number(values[i]));
1063 }
1064 return new DynamoDBSet(list);
1065 } else if (type === 'BS') {
1066 list = [];
1067 for (i = 0; i < values.length; i++) {
1068 list.push(new util.Buffer(values[i]));
1069 }
1070 return new DynamoDBSet(list);
1071 } else if (type === 'S') {
1072 return values + '';
1073 } else if (type === 'N') {
1074 return Number(values);
1075 } else if (type === 'B') {
1076 return new util.Buffer(values);
1077 } else if (type === 'BOOL') {
1078 return (values === 'true' || values === 'TRUE' || values === true);
1079 } else if (type === 'NULL') {
1080 return null;
1081 }
1082 }
1083 }
1084
1085 module.exports = {
1086 input: convertInput,
1087 output: convertOutput
1088 };
1089
1090 },{"../core":4,"./set":13,"./types":15}],12:[function(require,module,exports){
1091 var AWS = require('../core');
1092 var Translator = require('./translator');
1093 var DynamoDBSet = require('./set');
1094
1095
1096 AWS.DynamoDB.DocumentClient = AWS.util.inherit({
1097
1098
1099 operations: {
1100 batchGetItem: 'batchGet',
1101 batchWriteItem: 'batchWrite',
1102 putItem: 'put',
1103 getItem: 'get',
1104 deleteItem: 'delete',
1105 updateItem: 'update',
1106 scan: 'scan',
1107 query: 'query'
1108 },
1109
1110
1111 constructor: function DocumentClient(options) {
1112 var self = this;
1113 self.options = options || {};
1114 self.configure(self.options);
1115 },
1116
1117
1118 configure: function configure(options) {
1119 var self = this;
1120 self.service = options.service;
1121 self.bindServiceObject(options);
1122 self.attrValue =
1123 self.service.api.operations.putItem.input.members.Item.value.shape;
1124 },
1125
1126
1127 bindServiceObject: function bindServiceObject(options) {
1128 var self = this;
1129 options = options || {};
1130
1131 if (!self.service) {
1132 self.service = new AWS.DynamoDB(options);
1133 } else {
1134 var config = AWS.util.copy(self.service.config);
1135 self.service = new self.service.constructor.__super__(config);
1136 self.service.config.params =
1137 AWS.util.merge(self.service.config.params || {}, options.params);
1138 }
1139 },
1140
1141
1142 batchGet: function(params, callback) {
1143 var self = this;
1144 var request = self.service.batchGetItem(params);
1145 self.setupRequest(request);
1146 self.setupResponse(request);
1147 if (typeof callback === 'function') {
1148 request.send(callback);
1149 }
1150 return request;
1151 },
1152
1153
1154 batchWrite: function(params, callback) {
1155 var self = this;
1156 var request = self.service.batchWriteItem(params);
1157 self.setupRequest(request);
1158 self.setupResponse(request);
1159 if (typeof callback === 'function') {
1160 request.send(callback);
1161 }
1162 return request;
1163 },
1164
1165
1166 delete: function(params, callback) {
1167 var self = this;
1168 var request = self.service.deleteItem(params);
1169 self.setupRequest(request);
1170 self.setupResponse(request);
1171 if (typeof callback === 'function') {
1172 request.send(callback);
1173 }
1174 return request;
1175 },
1176
1177
1178 get: function(params, callback) {
1179 var self = this;
1180 var request = self.service.getItem(params);
1181 self.setupRequest(request);
1182 self.setupResponse(request);
1183 if (typeof callback === 'function') {
1184 request.send(callback);
1185 }
1186 return request;
1187 },
1188
1189
1190 put: function put(params, callback) {
1191 var self = this;
1192 var request = self.service.putItem(params);
1193 self.setupRequest(request);
1194 self.setupResponse(request);
1195 if (typeof callback === 'function') {
1196 request.send(callback);
1197 }
1198 return request;
1199 },
1200
1201
1202 update: function(params, callback) {
1203 var self = this;
1204 var request = self.service.updateItem(params);
1205 self.setupRequest(request);
1206 self.setupResponse(request);
1207 if (typeof callback === 'function') {
1208 request.send(callback);
1209 }
1210 return request;
1211 },
1212
1213
1214 scan: function(params, callback) {
1215 var self = this;
1216 var request = self.service.scan(params);
1217 self.setupRequest(request);
1218 self.setupResponse(request);
1219 if (typeof callback === 'function') {
1220 request.send(callback);
1221 }
1222 return request;
1223 },
1224
1225
1226 query: function(params, callback) {
1227 var self = this;
1228 var request = self.service.query(params);
1229 self.setupRequest(request);
1230 self.setupResponse(request);
1231 if (typeof callback === 'function') {
1232 request.send(callback);
1233 }
1234 return request;
1235 },
1236
1237
1238 createSet: function(list, options) {
1239 options = options || {};
1240 return new DynamoDBSet(list, options);
1241 },
1242
1243
1244 getTranslator: function() {
1245 return new Translator({attrValue: this.attrValue});
1246 },
1247
1248
1249 setupRequest: function setupRequest(request) {
1250 var self = this;
1251 var translator = self.getTranslator();
1252 var operation = request.operation;
1253 var inputShape = request.service.api.operations[operation].input;
1254 request._events.validate.unshift(function(req) {
1255 req.rawParams = AWS.util.copy(req.params);
1256 req.params = translator.translateInput(req.rawParams, inputShape);
1257 });
1258 },
1259
1260
1261 setupResponse: function setupResponse(request) {
1262 var self = this;
1263 var translator = self.getTranslator();
1264 var outputShape = self.service.api.operations[request.operation].output;
1265 request.on('extractData', function(response) {
1266 response.data = translator.translateOutput(response.data, outputShape);
1267 });
1268
1269 var response = request.response;
1270 response.nextPage = function(cb) {
1271 var resp = this;
1272 var req = resp.request;
1273 var config;
1274 var service = req.service;
1275 var operation = req.operation;
1276 try {
1277 config = service.paginationConfig(operation, true);
1278 } catch (e) { resp.error = e; }
1279
1280 if (!resp.hasNextPage()) {
1281 if (cb) cb(resp.error, null);
1282 else if (resp.error) throw resp.error;
1283 return null;
1284 }
1285
1286 var params = AWS.util.copy(req.rawParams);
1287 if (!resp.nextPageTokens) {
1288 return cb ? cb(null, null) : null;
1289 } else {
1290 var inputTokens = config.inputToken;
1291 if (typeof inputTokens === 'string') inputTokens = [inputTokens];
1292 for (var i = 0; i < inputTokens.length; i++) {
1293 params[inputTokens[i]] = resp.nextPageTokens[i];
1294 }
1295 return self[operation](params, cb);
1296 }
1297 };
1298 }
1299
1300 });
1301
1302 module.exports = AWS.DynamoDB.DocumentClient;
1303
1304 },{"../core":4,"./set":13,"./translator":14}],13:[function(require,module,exports){
1305 var util = require('../core').util;
1306 var typeOf = require('./types').typeOf;
1307
1308 var DynamoDBSet = util.inherit({
1309
1310 constructor: function Set(list, options) {
1311 options = options || {};
1312 this.initialize(list, options.validate);
1313 },
1314
1315 initialize: function(list, validate) {
1316 var self = this;
1317 self.values = [].concat(list);
1318 self.detectType();
1319 if (validate) {
1320 self.validate();
1321 }
1322 },
1323
1324 detectType: function() {
1325 var self = this;
1326 var value = self.values[0];
1327 if (typeOf(value) === 'String') {
1328 self.type = 'String';
1329 } else if (typeOf(value) === 'Number') {
1330 self.type = 'Number';
1331 } else if (typeOf(value) === 'Binary') {
1332 self.type = 'Binary';
1333 } else {
1334 throw util.error(new Error(), {
1335 code: 'InvalidSetType',
1336 message: 'Sets can contain string, number, or binary values'
1337 });
1338 }
1339 },
1340
1341 validate: function() {
1342 var self = this;
1343 var length = self.values.length;
1344 var values = self.values;
1345 for (var i = 0; i < length; i++) {
1346 if (typeOf(values[i]) !== self.type) {
1347 throw util.error(new Error(), {
1348 code: 'InvalidType',
1349 message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'
1350 });
1351 }
1352 }
1353 }
1354
1355 });
1356
1357 module.exports = DynamoDBSet;
1358
1359 },{"../core":4,"./types":15}],14:[function(require,module,exports){
1360 var util = require('../core').util;
1361 var convert = require('./converter');
1362
1363 var Translator = function(options) {
1364 options = options || {};
1365 this.attrValue = options.attrValue;
1366 };
1367
1368 Translator.prototype.translateInput = function(value, shape) {
1369 this.mode = 'input';
1370 return this.translate(value, shape);
1371 };
1372
1373 Translator.prototype.translateOutput = function(value, shape) {
1374 this.mode = 'output';
1375 return this.translate(value, shape);
1376 };
1377
1378 Translator.prototype.translate = function(value, shape) {
1379 var self = this;
1380 if (!shape || value === undefined) return undefined;
1381
1382 if (shape.shape === self.attrValue) {
1383 return convert[self.mode](value);
1384 }
1385 switch (shape.type) {
1386 case 'structure': return self.translateStructure(value, shape);
1387 case 'map': return self.translateMap(value, shape);
1388 case 'list': return self.translateList(value, shape);
1389 default: return self.translateScalar(value, shape);
1390 }
1391 };
1392
1393 Translator.prototype.translateStructure = function(structure, shape) {
1394 var self = this;
1395 if (structure == null) return undefined;
1396
1397 var struct = {};
1398 util.each(structure, function(name, value) {
1399 var memberShape = shape.members[name];
1400 if (memberShape) {
1401 var result = self.translate(value, memberShape);
1402 if (result !== undefined) struct[name] = result;
1403 }
1404 });
1405 return struct;
1406 };
1407
1408 Translator.prototype.translateList = function(list, shape) {
1409 var self = this;
1410 if (list == null) return undefined;
1411
1412 var out = [];
1413 util.arrayEach(list, function(value) {
1414 var result = self.translate(value, shape.member);
1415 if (result === undefined) out.push(null);
1416 else out.push(result);
1417 });
1418 return out;
1419 };
1420
1421 Translator.prototype.translateMap = function(map, shape) {
1422 var self = this;
1423 if (map == null) return undefined;
1424
1425 var out = {};
1426 util.each(map, function(key, value) {
1427 var result = self.translate(value, shape.value);
1428 if (result === undefined) out[key] = null;
1429 else out[key] = result;
1430 });
1431 return out;
1432 };
1433
1434 Translator.prototype.translateScalar = function(value, shape) {
1435 return shape.toType(value);
1436 };
1437
1438 module.exports = Translator;
1439
1440 },{"../core":4,"./converter":11}],15:[function(require,module,exports){
1441 var util = require('../core').util;
1442
1443 function typeOf(data) {
1444 if (data === null && typeof data === 'object') {
1445 return 'null';
1446 } else if (data !== undefined && isBinary(data)) {
1447 return 'Binary';
1448 } else if (data !== undefined && data.constructor) {
1449 return util.typeName(data.constructor);
1450 } else {
1451 return 'undefined';
1452 }
1453 }
1454
1455 function isBinary(data) {
1456 var types = [
1457 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',
1458 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',
1459 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',
1460 'Float32Array', 'Float64Array'
1461 ];
1462 if (util.isNode()) {
1463 var Stream = util.nodeRequire('stream').Stream;
1464 if (util.Buffer.isBuffer(data) || data instanceof Stream)
1465 return true;
1466 } else {
1467 for (var i = 0; i < types.length; i++) {
1468 if (data !== undefined && data.constructor) {
1469 if (util.isType(data, types[i])) return true;
1470 if (util.typeName(data.constructor) === types[i]) return true;
1471 }
1472 }
1473 }
1474 return false;
1475 }
1476
1477 module.exports = {
1478 typeOf: typeOf,
1479 isBinary: isBinary
1480 };
1481
1482 },{"../core":4}],16:[function(require,module,exports){
1483 var AWS = require('./core');
1484 var SequentialExecutor = require('./sequential_executor');
1485
1486
1487 AWS.EventListeners = {
1488
1489 Core: {} /* doc hack */
1490 };
1491
1492 AWS.EventListeners = {
1493 Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {
1494 addAsync('VALIDATE_CREDENTIALS', 'validate',
1495 function VALIDATE_CREDENTIALS(req, done) {
1496 if (!req.service.api.signatureVersion) return done(); // none
1497 req.service.config.getCredentials(function(err) {
1498 if (err) {
1499 req.response.error = AWS.util.error(err,
1500 {code: 'CredentialsError', message: 'Missing credentials in config'});
1501 }
1502 done();
1503 });
1504 });
1505
1506 add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {
1507 if (!req.service.config.region && !req.service.isGlobalEndpoint) {
1508 req.response.error = AWS.util.error(new Error(),
1509 {code: 'ConfigError', message: 'Missing region in config'});
1510 }
1511 });
1512
1513 add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {
1514 var rules = req.service.api.operations[req.operation].input;
1515 var validation = req.service.config.paramValidation;
1516 new AWS.ParamValidator(validation).validate(rules, req.params);
1517 });
1518
1519 addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {
1520 req.haltHandlersOnError();
1521 if (!req.service.api.signatureVersion) return done(); // none
1522 if (req.service.getSignerClass(req) === AWS.Signers.V4) {
1523 var body = req.httpRequest.body || '';
1524 AWS.util.computeSha256(body, function(err, sha) {
1525 if (err) {
1526 done(err);
1527 }
1528 else {
1529 req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;
1530 done();
1531 }
1532 });
1533 } else {
1534 done();
1535 }
1536 });
1537
1538 add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {
1539 if (req.httpRequest.headers['Content-Length'] === undefined) {
1540 var length = AWS.util.string.byteLength(req.httpRequest.body);
1541 req.httpRequest.headers['Content-Length'] = length;
1542 }
1543 });
1544
1545 add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {
1546 req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;
1547 });
1548
1549 add('RESTART', 'restart', function RESTART() {
1550 var err = this.response.error;
1551 if (!err || !err.retryable) return;
1552
1553 this.httpRequest = new AWS.HttpRequest(
1554 this.service.endpoint,
1555 this.service.region
1556 );
1557
1558 if (this.response.retryCount < this.service.config.maxRetries) {
1559 this.response.retryCount++;
1560 } else {
1561 this.response.error = null;
1562 }
1563 });
1564
1565 addAsync('SIGN', 'sign', function SIGN(req, done) {
1566 if (!req.service.api.signatureVersion) return done(); // none
1567
1568 req.service.config.getCredentials(function (err, credentials) {
1569 if (err) {
1570 req.response.error = err;
1571 return done();
1572 }
1573
1574 try {
1575 var date = AWS.util.date.getDate();
1576 var SignerClass = req.service.getSignerClass(req);
1577 var signer = new SignerClass(req.httpRequest,
1578 req.service.api.signingName || req.service.api.endpointPrefix,
1579 req.service.config.signatureCache);
1580
1581 delete req.httpRequest.headers['Authorization'];
1582 delete req.httpRequest.headers['Date'];
1583 delete req.httpRequest.headers['X-Amz-Date'];
1584
1585 signer.addAuthorization(credentials, date);
1586 req.signedAt = date;
1587 } catch (e) {
1588 req.response.error = e;
1589 }
1590 done();
1591 });
1592 });
1593
1594 add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {
1595 if (this.service.successfulResponse(resp, this)) {
1596 resp.data = {};
1597 resp.error = null;
1598 } else {
1599 resp.data = null;
1600 resp.error = AWS.util.error(new Error(),
1601 {code: 'UnknownError', message: 'An unknown error occurred.'});
1602 }
1603 });
1604
1605 addAsync('SEND', 'send', function SEND(resp, done) {
1606 resp.httpResponse._abortCallback = done;
1607 resp.error = null;
1608 resp.data = null;
1609
1610 function callback(httpResp) {
1611 resp.httpResponse.stream = httpResp;
1612
1613 httpResp.on('headers', function onHeaders(statusCode, headers) {
1614 resp.request.emit('httpHeaders', [statusCode, headers, resp]);
1615
1616 if (!resp.httpResponse.streaming) {
1617 if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check
1618 httpResp.on('readable', function onReadable() {
1619 var data = httpResp.read();
1620 if (data !== null) {
1621 resp.request.emit('httpData', [data, resp]);
1622 }
1623 });
1624 } else { // legacy streams API
1625 httpResp.on('data', function onData(data) {
1626 resp.request.emit('httpData', [data, resp]);
1627 });
1628 }
1629 }
1630 });
1631
1632 httpResp.on('end', function onEnd() {
1633 resp.request.emit('httpDone');
1634 done();
1635 });
1636 }
1637
1638 function progress(httpResp) {
1639 httpResp.on('sendProgress', function onSendProgress(value) {
1640 resp.request.emit('httpUploadProgress', [value, resp]);
1641 });
1642
1643 httpResp.on('receiveProgress', function onReceiveProgress(value) {
1644 resp.request.emit('httpDownloadProgress', [value, resp]);
1645 });
1646 }
1647
1648 function error(err) {
1649 resp.error = AWS.util.error(err, {
1650 code: 'NetworkingError',
1651 region: resp.request.httpRequest.region,
1652 hostname: resp.request.httpRequest.endpoint.hostname,
1653 retryable: true
1654 });
1655 resp.request.emit('httpError', [resp.error, resp], function() {
1656 done();
1657 });
1658 }
1659
1660 function executeSend() {
1661 var http = AWS.HttpClient.getInstance();
1662 var httpOptions = resp.request.service.config.httpOptions || {};
1663 try {
1664 var stream = http.handleRequest(resp.request.httpRequest, httpOptions,
1665 callback, error);
1666 progress(stream);
1667 } catch (err) {
1668 error(err);
1669 }
1670 }
1671
1672 var timeDiff = (AWS.util.date.getDate() - this.signedAt) / 1000;
1673 if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign
1674 this.emit('sign', [this], function(err) {
1675 if (err) done(err);
1676 else executeSend();
1677 });
1678 } else {
1679 executeSend();
1680 }
1681 });
1682
1683 add('HTTP_HEADERS', 'httpHeaders',
1684 function HTTP_HEADERS(statusCode, headers, resp) {
1685 resp.httpResponse.statusCode = statusCode;
1686 resp.httpResponse.headers = headers;
1687 resp.httpResponse.body = new AWS.util.Buffer('');
1688 resp.httpResponse.buffers = [];
1689 resp.httpResponse.numBytes = 0;
1690 var dateHeader = headers.date || headers.Date;
1691 if (dateHeader) {
1692 var serverTime = Date.parse(dateHeader);
1693 if (resp.request.service.config.correctClockSkew
1694 && AWS.util.isClockSkewed(serverTime)) {
1695 AWS.util.applyClockOffset(serverTime);
1696 }
1697 }
1698 });
1699
1700 add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {
1701 if (chunk) {
1702 if (AWS.util.isNode()) {
1703 resp.httpResponse.numBytes += chunk.length;
1704
1705 var total = resp.httpResponse.headers['content-length'];
1706 var progress = { loaded: resp.httpResponse.numBytes, total: total };
1707 resp.request.emit('httpDownloadProgress', [progress, resp]);
1708 }
1709
1710 resp.httpResponse.buffers.push(new AWS.util.Buffer(chunk));
1711 }
1712 });
1713
1714 add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {
1715 if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {
1716 var body = AWS.util.buffer.concat(resp.httpResponse.buffers);
1717 resp.httpResponse.body = body;
1718 }
1719 delete resp.httpResponse.numBytes;
1720 delete resp.httpResponse.buffers;
1721 });
1722
1723 add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {
1724 if (resp.httpResponse.statusCode) {
1725 resp.error.statusCode = resp.httpResponse.statusCode;
1726 if (resp.error.retryable === undefined) {
1727 resp.error.retryable = this.service.retryableError(resp.error, this);
1728 }
1729 }
1730 });
1731
1732 add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {
1733 if (!resp.error) return;
1734 switch (resp.error.code) {
1735 case 'RequestExpired': // EC2 only
1736 case 'ExpiredTokenException':
1737 case 'ExpiredToken':
1738 resp.error.retryable = true;
1739 resp.request.service.config.credentials.expired = true;
1740 }
1741 });
1742
1743 add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {
1744 var err = resp.error;
1745 if (!err) return;
1746 if (typeof err.code === 'string' && typeof err.message === 'string') {
1747 if (err.code.match(/Signature/) && err.message.match(/expired/)) {
1748 resp.error.retryable = true;
1749 }
1750 }
1751 });
1752
1753 add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {
1754 if (!resp.error) return;
1755 if (this.service.clockSkewError(resp.error)
1756 && this.service.config.correctClockSkew
1757 && AWS.config.isClockSkewed) {
1758 resp.error.retryable = true;
1759 }
1760 });
1761
1762 add('REDIRECT', 'retry', function REDIRECT(resp) {
1763 if (resp.error && resp.error.statusCode >= 300 &&
1764 resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {
1765 this.httpRequest.endpoint =
1766 new AWS.Endpoint(resp.httpResponse.headers['location']);
1767 this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;
1768 resp.error.redirect = true;
1769 resp.error.retryable = true;
1770 }
1771 });
1772
1773 add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {
1774 if (resp.error) {
1775 if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {
1776 resp.error.retryDelay = 0;
1777 } else if (resp.retryCount < resp.maxRetries) {
1778 resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0;
1779 }
1780 }
1781 });
1782
1783 addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {
1784 var delay, willRetry = false;
1785
1786 if (resp.error) {
1787 delay = resp.error.retryDelay || 0;
1788 if (resp.error.retryable && resp.retryCount < resp.maxRetries) {
1789 resp.retryCount++;
1790 willRetry = true;
1791 } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {
1792 resp.redirectCount++;
1793 willRetry = true;
1794 }
1795 }
1796
1797 if (willRetry) {
1798 resp.error = null;
1799 setTimeout(done, delay);
1800 } else {
1801 done();
1802 }
1803 });
1804 }),
1805
1806 CorePost: new SequentialExecutor().addNamedListeners(function(add) {
1807 add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);
1808 add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);
1809
1810 add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {
1811 if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') {
1812 var message = 'Inaccessible host: `' + err.hostname +
1813 '\'. This service may not be available in the `' + err.region +
1814 '\' region.';
1815 this.response.error = AWS.util.error(new Error(message), {
1816 code: 'UnknownEndpoint',
1817 region: err.region,
1818 hostname: err.hostname,
1819 retryable: true,
1820 originalError: err
1821 });
1822 }
1823 });
1824 }),
1825
1826 Logger: new SequentialExecutor().addNamedListeners(function(add) {
1827 add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {
1828 var req = resp.request;
1829 var logger = req.service.config.logger;
1830 if (!logger) return;
1831
1832 function buildMessage() {
1833 var time = AWS.util.date.getDate().getTime();
1834 var delta = (time - req.startTime.getTime()) / 1000;
1835 var ansi = logger.isTTY ? true : false;
1836 var status = resp.httpResponse.statusCode;
1837 var params = require('util').inspect(req.params, true, null);
1838
1839 var message = '';
1840 if (ansi) message += '\x1B[33m';
1841 message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;
1842 message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';
1843 if (ansi) message += '\x1B[0;1m';
1844 message += ' ' + AWS.util.string.lowerFirst(req.operation);
1845 message += '(' + params + ')';
1846 if (ansi) message += '\x1B[0m';
1847 return message;
1848 }
1849
1850 var line = buildMessage();
1851 if (typeof logger.log === 'function') {
1852 logger.log(line);
1853 } else if (typeof logger.write === 'function') {
1854 logger.write(line + '\n');
1855 }
1856 });
1857 }),
1858
1859 Json: new SequentialExecutor().addNamedListeners(function(add) {
1860 var svc = require('./protocol/json');
1861 add('BUILD', 'build', svc.buildRequest);
1862 add('EXTRACT_DATA', 'extractData', svc.extractData);
1863 add('EXTRACT_ERROR', 'extractError', svc.extractError);
1864 }),
1865
1866 Rest: new SequentialExecutor().addNamedListeners(function(add) {
1867 var svc = require('./protocol/rest');
1868 add('BUILD', 'build', svc.buildRequest);
1869 add('EXTRACT_DATA', 'extractData', svc.extractData);
1870 add('EXTRACT_ERROR', 'extractError', svc.extractError);
1871 }),
1872
1873 RestJson: new SequentialExecutor().addNamedListeners(function(add) {
1874 var svc = require('./protocol/rest_json');
1875 add('BUILD', 'build', svc.buildRequest);
1876 add('EXTRACT_DATA', 'extractData', svc.extractData);
1877 add('EXTRACT_ERROR', 'extractError', svc.extractError);
1878 }),
1879
1880 RestXml: new SequentialExecutor().addNamedListeners(function(add) {
1881 var svc = require('./protocol/rest_xml');
1882 add('BUILD', 'build', svc.buildRequest);
1883 add('EXTRACT_DATA', 'extractData', svc.extractData);
1884 add('EXTRACT_ERROR', 'extractError', svc.extractError);
1885 }),
1886
1887 Query: new SequentialExecutor().addNamedListeners(function(add) {
1888 var svc = require('./protocol/query');
1889 add('BUILD', 'build', svc.buildRequest);
1890 add('EXTRACT_DATA', 'extractData', svc.extractData);
1891 add('EXTRACT_ERROR', 'extractError', svc.extractError);
1892 })
1893 };
1894
1895 },{"./core":4,"./protocol/json":28,"./protocol/query":29,"./protocol/rest":30,"./protocol/rest_json":31,"./protocol/rest_xml":32,"./sequential_executor":40,"util":80}],17:[function(require,module,exports){
1896 var AWS = require('./core');
1897 var inherit = AWS.util.inherit;
1898
1899
1900 AWS.Endpoint = inherit({
1901
1902
1903 constructor: function Endpoint(endpoint, config) {
1904 AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);
1905
1906 if (typeof endpoint === 'undefined' || endpoint === null) {
1907 throw new Error('Invalid endpoint: ' + endpoint);
1908 } else if (typeof endpoint !== 'string') {
1909 return AWS.util.copy(endpoint);
1910 }
1911
1912 if (!endpoint.match(/^http/)) {
1913 var useSSL = config && config.sslEnabled !== undefined ?
1914 config.sslEnabled : AWS.config.sslEnabled;
1915 endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;
1916 }
1917
1918 AWS.util.update(this, AWS.util.urlParse(endpoint));
1919
1920 if (this.port) {
1921 this.port = parseInt(this.port, 10);
1922 } else {
1923 this.port = this.protocol === 'https:' ? 443 : 80;
1924 }
1925 }
1926
1927 });
1928
1929
1930 AWS.HttpRequest = inherit({
1931
1932
1933 constructor: function HttpRequest(endpoint, region, customUserAgent) {
1934 endpoint = new AWS.Endpoint(endpoint);
1935 this.method = 'POST';
1936 this.path = endpoint.path || '/';
1937 this.headers = {};
1938 this.body = '';
1939 this.endpoint = endpoint;
1940 this.region = region;
1941 this.setUserAgent(customUserAgent);
1942 },
1943
1944
1945 setUserAgent: function setUserAgent(customUserAgent) {
1946 var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';
1947 var customSuffix = '';
1948 if (typeof customUserAgent === 'string' && customUserAgent) {
1949 customSuffix += ' ' + customUserAgent;
1950 }
1951 this.headers[prefix + 'User-Agent'] = AWS.util.userAgent() + customSuffix;
1952 },
1953
1954
1955 pathname: function pathname() {
1956 return this.path.split('?', 1)[0];
1957 },
1958
1959
1960 search: function search() {
1961 var query = this.path.split('?', 2)[1];
1962 if (query) {
1963 query = AWS.util.queryStringParse(query);
1964 return AWS.util.queryParamsToString(query);
1965 }
1966 return '';
1967 }
1968
1969 });
1970
1971
1972 AWS.HttpResponse = inherit({
1973
1974
1975 constructor: function HttpResponse() {
1976 this.statusCode = undefined;
1977 this.headers = {};
1978 this.body = undefined;
1979 this.streaming = false;
1980 this.stream = null;
1981 },
1982
1983
1984 createUnbufferedStream: function createUnbufferedStream() {
1985 this.streaming = true;
1986 return this.stream;
1987 }
1988 });
1989
1990
1991 AWS.HttpClient = inherit({});
1992
1993
1994 AWS.HttpClient.getInstance = function getInstance() {
1995 if (this.singleton === undefined) {
1996 this.singleton = new this();
1997 }
1998 return this.singleton;
1999 };
2000
2001 },{"./core":4}],18:[function(require,module,exports){
2002 var AWS = require('../core');
2003 var EventEmitter = require('events').EventEmitter;
2004 require('../http');
2005
2006
2007 AWS.XHRClient = AWS.util.inherit({
2008 handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {
2009 var self = this;
2010 var endpoint = httpRequest.endpoint;
2011 var emitter = new EventEmitter();
2012 var href = endpoint.protocol + '//' + endpoint.hostname;
2013 if (endpoint.port !== 80 && endpoint.port !== 443) {
2014 href += ':' + endpoint.port;
2015 }
2016 href += httpRequest.path;
2017
2018 var xhr = new XMLHttpRequest(), headersEmitted = false;
2019 httpRequest.stream = xhr;
2020
2021 xhr.addEventListener('readystatechange', function() {
2022 try {
2023 if (xhr.status === 0) return; // 0 code is invalid
2024 } catch (e) { return; }
2025
2026 if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {
2027 try { xhr.responseType = 'arraybuffer'; } catch (e) {}
2028 emitter.statusCode = xhr.status;
2029 emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());
2030 emitter.emit('headers', emitter.statusCode, emitter.headers);
2031 headersEmitted = true;
2032 }
2033 if (this.readyState === this.DONE) {
2034 self.finishRequest(xhr, emitter);
2035 }
2036 }, false);
2037 xhr.upload.addEventListener('progress', function (evt) {
2038 emitter.emit('sendProgress', evt);
2039 });
2040 xhr.addEventListener('progress', function (evt) {
2041 emitter.emit('receiveProgress', evt);
2042 }, false);
2043 xhr.addEventListener('timeout', function () {
2044 errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));
2045 }, false);
2046 xhr.addEventListener('error', function () {
2047 errCallback(AWS.util.error(new Error('Network Failure'), {
2048 code: 'NetworkingError'
2049 }));
2050 }, false);
2051
2052 callback(emitter);
2053 xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);
2054 AWS.util.each(httpRequest.headers, function (key, value) {
2055 if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {
2056 xhr.setRequestHeader(key, value);
2057 }
2058 });
2059
2060 if (httpOptions.timeout && httpOptions.xhrAsync !== false) {
2061 xhr.timeout = httpOptions.timeout;
2062 }
2063
2064 if (httpOptions.xhrWithCredentials) {
2065 xhr.withCredentials = true;
2066 }
2067
2068 try {
2069 xhr.send(httpRequest.body);
2070 } catch (err) {
2071 if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {
2072 xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly
2073 } else {
2074 throw err;
2075 }
2076 }
2077
2078 return emitter;
2079 },
2080
2081 parseHeaders: function parseHeaders(rawHeaders) {
2082 var headers = {};
2083 AWS.util.arrayEach(rawHeaders.split(/\r?\n/), function (line) {
2084 var key = line.split(':', 1)[0];
2085 var value = line.substring(key.length + 2);
2086 if (key.length > 0) headers[key.toLowerCase()] = value;
2087 });
2088 return headers;
2089 },
2090
2091 finishRequest: function finishRequest(xhr, emitter) {
2092 var buffer;
2093 if (xhr.responseType === 'arraybuffer' && xhr.response) {
2094 var ab = xhr.response;
2095 buffer = new AWS.util.Buffer(ab.byteLength);
2096 var view = new Uint8Array(ab);
2097 for (var i = 0; i < buffer.length; ++i) {
2098 buffer[i] = view[i];
2099 }
2100 }
2101
2102 try {
2103 if (!buffer && typeof xhr.responseText === 'string') {
2104 buffer = new AWS.util.Buffer(xhr.responseText);
2105 }
2106 } catch (e) {}
2107
2108 if (buffer) emitter.emit('data', buffer);
2109 emitter.emit('end');
2110 }
2111 });
2112
2113
2114 AWS.HttpClient.prototype = AWS.XHRClient.prototype;
2115
2116
2117 AWS.HttpClient.streamsApiVersion = 1;
2118
2119 },{"../core":4,"../http":17,"events":71}],19:[function(require,module,exports){
2120 var util = require('../util');
2121
2122 function JsonBuilder() { }
2123
2124 JsonBuilder.prototype.build = function(value, shape) {
2125 return JSON.stringify(translate(value, shape));
2126 };
2127
2128 function translate(value, shape) {
2129 if (!shape || value === undefined || value === null) return undefined;
2130
2131 switch (shape.type) {
2132 case 'structure': return translateStructure(value, shape);
2133 case 'map': return translateMap(value, shape);
2134 case 'list': return translateList(value, shape);
2135 default: return translateScalar(value, shape);
2136 }
2137 }
2138
2139 function translateStructure(structure, shape) {
2140 var struct = {};
2141 util.each(structure, function(name, value) {
2142 var memberShape = shape.members[name];
2143 if (memberShape) {
2144 if (memberShape.location !== 'body') return;
2145 var locationName = memberShape.isLocationName ? memberShape.name : name;
2146 var result = translate(value, memberShape);
2147 if (result !== undefined) struct[locationName] = result;
2148 }
2149 });
2150 return struct;
2151 }
2152
2153 function translateList(list, shape) {
2154 var out = [];
2155 util.arrayEach(list, function(value) {
2156 var result = translate(value, shape.member);
2157 if (result !== undefined) out.push(result);
2158 });
2159 return out;
2160 }
2161
2162 function translateMap(map, shape) {
2163 var out = {};
2164 util.each(map, function(key, value) {
2165 var result = translate(value, shape.value);
2166 if (result !== undefined) out[key] = result;
2167 });
2168 return out;
2169 }
2170
2171 function translateScalar(value, shape) {
2172 return shape.toWireFormat(value);
2173 }
2174
2175 module.exports = JsonBuilder;
2176
2177 },{"../util":59}],20:[function(require,module,exports){
2178 var util = require('../util');
2179
2180 function JsonParser() { }
2181
2182 JsonParser.prototype.parse = function(value, shape) {
2183 return translate(JSON.parse(value), shape);
2184 };
2185
2186 function translate(value, shape) {
2187 if (!shape || value === undefined) return undefined;
2188
2189 switch (shape.type) {
2190 case 'structure': return translateStructure(value, shape);
2191 case 'map': return translateMap(value, shape);
2192 case 'list': return translateList(value, shape);
2193 default: return translateScalar(value, shape);
2194 }
2195 }
2196
2197 function translateStructure(structure, shape) {
2198 if (structure == null) return undefined;
2199
2200 var struct = {};
2201 var shapeMembers = shape.members;
2202 util.each(shapeMembers, function(name, memberShape) {
2203 var locationName = memberShape.isLocationName ? memberShape.name : name;
2204 if (structure.hasOwnProperty(locationName)) {
2205 var value = structure[locationName];
2206 var result = translate(value, memberShape);
2207 if (result !== undefined) struct[name] = result;
2208 }
2209 });
2210 return struct;
2211 }
2212
2213 function translateList(list, shape) {
2214 if (list == null) return undefined;
2215
2216 var out = [];
2217 util.arrayEach(list, function(value) {
2218 var result = translate(value, shape.member);
2219 if (result === undefined) out.push(null);
2220 else out.push(result);
2221 });
2222 return out;
2223 }
2224
2225 function translateMap(map, shape) {
2226 if (map == null) return undefined;
2227
2228 var out = {};
2229 util.each(map, function(key, value) {
2230 var result = translate(value, shape.value);
2231 if (result === undefined) out[key] = null;
2232 else out[key] = result;
2233 });
2234 return out;
2235 }
2236
2237 function translateScalar(value, shape) {
2238 return shape.toType(value);
2239 }
2240
2241 module.exports = JsonParser;
2242
2243 },{"../util":59}],21:[function(require,module,exports){
2244 var Collection = require('./collection');
2245 var Operation = require('./operation');
2246 var Shape = require('./shape');
2247 var Paginator = require('./paginator');
2248 var ResourceWaiter = require('./resource_waiter');
2249
2250 var util = require('../util');
2251 var property = util.property;
2252 var memoizedProperty = util.memoizedProperty;
2253
2254 function Api(api, options) {
2255 api = api || {};
2256 options = options || {};
2257 options.api = this;
2258
2259 api.metadata = api.metadata || {};
2260
2261 property(this, 'isApi', true, false);
2262 property(this, 'apiVersion', api.metadata.apiVersion);
2263 property(this, 'endpointPrefix', api.metadata.endpointPrefix);
2264 property(this, 'signingName', api.metadata.signingName);
2265 property(this, 'globalEndpoint', api.metadata.globalEndpoint);
2266 property(this, 'signatureVersion', api.metadata.signatureVersion);
2267 property(this, 'jsonVersion', api.metadata.jsonVersion);
2268 property(this, 'targetPrefix', api.metadata.targetPrefix);
2269 property(this, 'protocol', api.metadata.protocol);
2270 property(this, 'timestampFormat', api.metadata.timestampFormat);
2271 property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);
2272 property(this, 'abbreviation', api.metadata.serviceAbbreviation);
2273 property(this, 'fullName', api.metadata.serviceFullName);
2274
2275 memoizedProperty(this, 'className', function() {
2276 var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;
2277 if (!name) return null;
2278
2279 name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, '');
2280 if (name === 'ElasticLoadBalancing') name = 'ELB';
2281 return name;
2282 });
2283
2284 property(this, 'operations', new Collection(api.operations, options, function(name, operation) {
2285 return new Operation(name, operation, options);
2286 }, util.string.lowerFirst));
2287
2288 property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {
2289 return Shape.create(shape, options);
2290 }));
2291
2292 property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {
2293 return new Paginator(name, paginator, options);
2294 }));
2295
2296 property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {
2297 return new ResourceWaiter(name, waiter, options);
2298 }, util.string.lowerFirst));
2299
2300 if (options.documentation) {
2301 property(this, 'documentation', api.documentation);
2302 property(this, 'documentationUrl', api.documentationUrl);
2303 }
2304 }
2305
2306 module.exports = Api;
2307
2308 },{"../util":59,"./collection":22,"./operation":23,"./paginator":24,"./resource_waiter":25,"./shape":26}],22:[function(require,module,exports){
2309 var memoizedProperty = require('../util').memoizedProperty;
2310
2311 function memoize(name, value, fn, nameTr) {
2312 memoizedProperty(this, nameTr(name), function() {
2313 return fn(name, value);
2314 });
2315 }
2316
2317 function Collection(iterable, options, fn, nameTr) {
2318 nameTr = nameTr || String;
2319 var self = this;
2320
2321 for (var id in iterable) {
2322 if (iterable.hasOwnProperty(id)) {
2323 memoize.call(self, id, iterable[id], fn, nameTr);
2324 }
2325 }
2326 }
2327
2328 module.exports = Collection;
2329
2330 },{"../util":59}],23:[function(require,module,exports){
2331 var Shape = require('./shape');
2332
2333 var util = require('../util');
2334 var property = util.property;
2335 var memoizedProperty = util.memoizedProperty;
2336
2337 function Operation(name, operation, options) {
2338 options = options || {};
2339
2340 property(this, 'name', operation.name || name);
2341 property(this, 'api', options.api, false);
2342
2343 operation.http = operation.http || {};
2344 property(this, 'httpMethod', operation.http.method || 'POST');
2345 property(this, 'httpPath', operation.http.requestUri || '/');
2346
2347 memoizedProperty(this, 'input', function() {
2348 if (!operation.input) {
2349 return new Shape.create({type: 'structure'}, options);
2350 }
2351 return Shape.create(operation.input, options);
2352 });
2353
2354 memoizedProperty(this, 'output', function() {
2355 if (!operation.output) {
2356 return new Shape.create({type: 'structure'}, options);
2357 }
2358 return Shape.create(operation.output, options);
2359 });
2360
2361 memoizedProperty(this, 'errors', function() {
2362 var list = [];
2363 if (!operation.errors) return null;
2364
2365 for (var i = 0; i < operation.errors.length; i++) {
2366 list.push(Shape.create(operation.errors[i], options));
2367 }
2368
2369 return list;
2370 });
2371
2372 memoizedProperty(this, 'paginator', function() {
2373 return options.api.paginators[name];
2374 });
2375
2376 if (options.documentation) {
2377 property(this, 'documentation', operation.documentation);
2378 property(this, 'documentationUrl', operation.documentationUrl);
2379 }
2380 }
2381
2382 module.exports = Operation;
2383
2384 },{"../util":59,"./shape":26}],24:[function(require,module,exports){
2385 var property = require('../util').property;
2386
2387 function Paginator(name, paginator) {
2388 property(this, 'inputToken', paginator.input_token);
2389 property(this, 'limitKey', paginator.limit_key);
2390 property(this, 'moreResults', paginator.more_results);
2391 property(this, 'outputToken', paginator.output_token);
2392 property(this, 'resultKey', paginator.result_key);
2393 }
2394
2395 module.exports = Paginator;
2396
2397 },{"../util":59}],25:[function(require,module,exports){
2398 var util = require('../util');
2399 var property = util.property;
2400
2401 function ResourceWaiter(name, waiter, options) {
2402 options = options || {};
2403
2404 function InnerResourceWaiter() {
2405 property(this, 'name', name);
2406 property(this, 'api', options.api, false);
2407
2408 if (waiter.operation) {
2409 property(this, 'operation', util.string.lowerFirst(waiter.operation));
2410 }
2411
2412 var self = this, map = {
2413 ignoreErrors: 'ignore_errors',
2414 successType: 'success_type',
2415 successValue: 'success_value',
2416 successPath: 'success_path',
2417 acceptorType: 'acceptor_type',
2418 acceptorValue: 'acceptor_value',
2419 acceptorPath: 'acceptor_path',
2420 failureType: 'failure_type',
2421 failureValue: 'failure_value',
2422 failurePath: 'success_path',
2423 interval: 'interval',
2424 maxAttempts: 'max_attempts'
2425 };
2426 Object.keys(map).forEach(function(key) {
2427 var value = waiter[map[key]];
2428 if (value) property(self, key, value);
2429 });
2430 }
2431
2432 if (options.api) {
2433 var proto = null;
2434 if (waiter['extends']) {
2435 proto = options.api.waiters[waiter['extends']];
2436 } else if (name !== '__default__') {
2437 proto = options.api.waiters['__default__'];
2438 }
2439
2440 if (proto) InnerResourceWaiter.prototype = proto;
2441 }
2442
2443 return new InnerResourceWaiter();
2444 }
2445
2446 module.exports = ResourceWaiter;
2447
2448 },{"../util":59}],26:[function(require,module,exports){
2449 var Collection = require('./collection');
2450
2451 var util = require('../util');
2452
2453 function property(obj, name, value) {
2454 if (value !== null && value !== undefined) {
2455 util.property.apply(this, arguments);
2456 }
2457 }
2458
2459 function memoizedProperty(obj, name) {
2460 if (!obj.constructor.prototype[name]) {
2461 util.memoizedProperty.apply(this, arguments);
2462 }
2463 }
2464
2465 function Shape(shape, options, memberName) {
2466 options = options || {};
2467
2468 property(this, 'shape', shape.shape);
2469 property(this, 'api', options.api, false);
2470 property(this, 'type', shape.type);
2471 property(this, 'enum', shape.enum);
2472 property(this, 'min', shape.min);
2473 property(this, 'max', shape.max);
2474 property(this, 'pattern', shape.pattern);
2475 property(this, 'location', shape.location || this.location || 'body');
2476 property(this, 'name', this.name || shape.xmlName || shape.queryName ||
2477 shape.locationName || memberName);
2478 property(this, 'isStreaming', shape.streaming || this.isStreaming || false);
2479 property(this, 'isComposite', shape.isComposite || false);
2480 property(this, 'isShape', true, false);
2481 property(this, 'isQueryName', shape.queryName ? true : false, false);
2482 property(this, 'isLocationName', shape.locationName ? true : false, false);
2483
2484 if (options.documentation) {
2485 property(this, 'documentation', shape.documentation);
2486 property(this, 'documentationUrl', shape.documentationUrl);
2487 }
2488
2489 if (shape.xmlAttribute) {
2490 property(this, 'isXmlAttribute', shape.xmlAttribute || false);
2491 }
2492
2493 property(this, 'defaultValue', null);
2494 this.toWireFormat = function(value) {
2495 if (value === null || value === undefined) return '';
2496 return value;
2497 };
2498 this.toType = function(value) { return value; };
2499 }
2500
2501
2502 Shape.normalizedTypes = {
2503 character: 'string',
2504 double: 'float',
2505 long: 'integer',
2506 short: 'integer',
2507 biginteger: 'integer',
2508 bigdecimal: 'float',
2509 blob: 'binary'
2510 };
2511
2512
2513 Shape.types = {
2514 'structure': StructureShape,
2515 'list': ListShape,
2516 'map': MapShape,
2517 'boolean': BooleanShape,
2518 'timestamp': TimestampShape,
2519 'float': FloatShape,
2520 'integer': IntegerShape,
2521 'string': StringShape,
2522 'base64': Base64Shape,
2523 'binary': BinaryShape
2524 };
2525
2526 Shape.resolve = function resolve(shape, options) {
2527 if (shape.shape) {
2528 var refShape = options.api.shapes[shape.shape];
2529 if (!refShape) {
2530 throw new Error('Cannot find shape reference: ' + shape.shape);
2531 }
2532
2533 return refShape;
2534 } else {
2535 return null;
2536 }
2537 };
2538
2539 Shape.create = function create(shape, options, memberName) {
2540 if (shape.isShape) return shape;
2541
2542 var refShape = Shape.resolve(shape, options);
2543 if (refShape) {
2544 var filteredKeys = Object.keys(shape);
2545 if (!options.documentation) {
2546 filteredKeys = filteredKeys.filter(function(name) {
2547 return !name.match(/documentation/);
2548 });
2549 }
2550 if (filteredKeys === ['shape']) { // no inline customizations
2551 return refShape;
2552 }
2553
2554 var InlineShape = function() {
2555 refShape.constructor.call(this, shape, options, memberName);
2556 };
2557 InlineShape.prototype = refShape;
2558 return new InlineShape();
2559 } else {
2560 if (!shape.type) {
2561 if (shape.members) shape.type = 'structure';
2562 else if (shape.member) shape.type = 'list';
2563 else if (shape.key) shape.type = 'map';
2564 else shape.type = 'string';
2565 }
2566
2567 var origType = shape.type;
2568 if (Shape.normalizedTypes[shape.type]) {
2569 shape.type = Shape.normalizedTypes[shape.type];
2570 }
2571
2572 if (Shape.types[shape.type]) {
2573 return new Shape.types[shape.type](shape, options, memberName);
2574 } else {
2575 throw new Error('Unrecognized shape type: ' + origType);
2576 }
2577 }
2578 };
2579
2580 function CompositeShape(shape) {
2581 Shape.apply(this, arguments);
2582 property(this, 'isComposite', true);
2583
2584 if (shape.flattened) {
2585 property(this, 'flattened', shape.flattened || false);
2586 }
2587 }
2588
2589 function StructureShape(shape, options) {
2590 var requiredMap = null, firstInit = !this.isShape;
2591
2592 CompositeShape.apply(this, arguments);
2593
2594 if (firstInit) {
2595 property(this, 'defaultValue', function() { return {}; });
2596 property(this, 'members', {});
2597 property(this, 'memberNames', []);
2598 property(this, 'required', []);
2599 property(this, 'isRequired', function() { return false; });
2600 }
2601
2602 if (shape.members) {
2603 property(this, 'members', new Collection(shape.members, options, function(name, member) {
2604 return Shape.create(member, options, name);
2605 }));
2606 memoizedProperty(this, 'memberNames', function() {
2607 return shape.xmlOrder || Object.keys(shape.members);
2608 });
2609 }
2610
2611 if (shape.required) {
2612 property(this, 'required', shape.required);
2613 property(this, 'isRequired', function(name) {
2614 if (!requiredMap) {
2615 requiredMap = {};
2616 for (var i = 0; i < shape.required.length; i++) {
2617 requiredMap[shape.required[i]] = true;
2618 }
2619 }
2620
2621 return requiredMap[name];
2622 }, false, true);
2623 }
2624
2625 property(this, 'resultWrapper', shape.resultWrapper || null);
2626
2627 if (shape.payload) {
2628 property(this, 'payload', shape.payload);
2629 }
2630
2631 if (typeof shape.xmlNamespace === 'string') {
2632 property(this, 'xmlNamespaceUri', shape.xmlNamespace);
2633 } else if (typeof shape.xmlNamespace === 'object') {
2634 property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);
2635 property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);
2636 }
2637 }
2638
2639 function ListShape(shape, options) {
2640 var self = this, firstInit = !this.isShape;
2641 CompositeShape.apply(this, arguments);
2642
2643 if (firstInit) {
2644 property(this, 'defaultValue', function() { return []; });
2645 }
2646
2647 if (shape.member) {
2648 memoizedProperty(this, 'member', function() {
2649 return Shape.create(shape.member, options);
2650 });
2651 }
2652
2653 if (this.flattened) {
2654 var oldName = this.name;
2655 memoizedProperty(this, 'name', function() {
2656 return self.member.name || oldName;
2657 });
2658 }
2659 }
2660
2661 function MapShape(shape, options) {
2662 var firstInit = !this.isShape;
2663 CompositeShape.apply(this, arguments);
2664
2665 if (firstInit) {
2666 property(this, 'defaultValue', function() { return {}; });
2667 property(this, 'key', Shape.create({type: 'string'}, options));
2668 property(this, 'value', Shape.create({type: 'string'}, options));
2669 }
2670
2671 if (shape.key) {
2672 memoizedProperty(this, 'key', function() {
2673 return Shape.create(shape.key, options);
2674 });
2675 }
2676 if (shape.value) {
2677 memoizedProperty(this, 'value', function() {
2678 return Shape.create(shape.value, options);
2679 });
2680 }
2681 }
2682
2683 function TimestampShape(shape) {
2684 var self = this;
2685 Shape.apply(this, arguments);
2686
2687 if (this.location === 'header') {
2688 property(this, 'timestampFormat', 'rfc822');
2689 } else if (shape.timestampFormat) {
2690 property(this, 'timestampFormat', shape.timestampFormat);
2691 } else if (this.api) {
2692 if (this.api.timestampFormat) {
2693 property(this, 'timestampFormat', this.api.timestampFormat);
2694 } else {
2695 switch (this.api.protocol) {
2696 case 'json':
2697 case 'rest-json':
2698 property(this, 'timestampFormat', 'unixTimestamp');
2699 break;
2700 case 'rest-xml':
2701 case 'query':
2702 case 'ec2':
2703 property(this, 'timestampFormat', 'iso8601');
2704 break;
2705 }
2706 }
2707 }
2708
2709 this.toType = function(value) {
2710 if (value === null || value === undefined) return null;
2711 if (typeof value.toUTCString === 'function') return value;
2712 return typeof value === 'string' || typeof value === 'number' ?
2713 util.date.parseTimestamp(value) : null;
2714 };
2715
2716 this.toWireFormat = function(value) {
2717 return util.date.format(value, self.timestampFormat);
2718 };
2719 }
2720
2721 function StringShape() {
2722 Shape.apply(this, arguments);
2723
2724 if (this.api) {
2725 switch (this.api.protocol) {
2726 case 'rest-xml':
2727 case 'query':
2728 case 'ec2':
2729 this.toType = function(value) { return value || ''; };
2730 }
2731 }
2732 }
2733
2734 function FloatShape() {
2735 Shape.apply(this, arguments);
2736
2737 this.toType = function(value) {
2738 if (value === null || value === undefined) return null;
2739 return parseFloat(value);
2740 };
2741 this.toWireFormat = this.toType;
2742 }
2743
2744 function IntegerShape() {
2745 Shape.apply(this, arguments);
2746
2747 this.toType = function(value) {
2748 if (value === null || value === undefined) return null;
2749 return parseInt(value, 10);
2750 };
2751 this.toWireFormat = this.toType;
2752 }
2753
2754 function BinaryShape() {
2755 Shape.apply(this, arguments);
2756 this.toType = util.base64.decode;
2757 this.toWireFormat = util.base64.encode;
2758 }
2759
2760 function Base64Shape() {
2761 BinaryShape.apply(this, arguments);
2762 }
2763
2764 function BooleanShape() {
2765 Shape.apply(this, arguments);
2766
2767 this.toType = function(value) {
2768 if (typeof value === 'boolean') return value;
2769 if (value === null || value === undefined) return null;
2770 return value === 'true';
2771 };
2772 }
2773
2774
2775 Shape.shapes = {
2776 StructureShape: StructureShape,
2777 ListShape: ListShape,
2778 MapShape: MapShape,
2779 StringShape: StringShape,
2780 BooleanShape: BooleanShape,
2781 Base64Shape: Base64Shape
2782 };
2783
2784 module.exports = Shape;
2785
2786 },{"../util":59,"./collection":22}],27:[function(require,module,exports){
2787 var AWS = require('./core');
2788
2789
2790 AWS.ParamValidator = AWS.util.inherit({
2791
2792 constructor: function ParamValidator(validation) {
2793 if (validation === true || validation === undefined) {
2794 validation = {'min': true};
2795 }
2796 this.validation = validation;
2797 },
2798
2799 validate: function validate(shape, params, context) {
2800 this.errors = [];
2801 this.validateMember(shape, params || {}, context || 'params');
2802
2803 if (this.errors.length > 1) {
2804 var msg = this.errors.join('\n* ');
2805 msg = 'There were ' + this.errors.length +
2806 ' validation errors:\n* ' + msg;
2807 throw AWS.util.error(new Error(msg),
2808 {code: 'MultipleValidationErrors', errors: this.errors});
2809 } else if (this.errors.length === 1) {
2810 throw this.errors[0];
2811 } else {
2812 return true;
2813 }
2814 },
2815
2816 fail: function fail(code, message) {
2817 this.errors.push(AWS.util.error(new Error(message), {code: code}));
2818 },
2819
2820 validateStructure: function validateStructure(shape, params, context) {
2821 this.validateType(params, context, ['object'], 'structure');
2822
2823 var paramName;
2824 for (var i = 0; shape.required && i < shape.required.length; i++) {
2825 paramName = shape.required[i];
2826 var value = params[paramName];
2827 if (value === undefined || value === null) {
2828 this.fail('MissingRequiredParameter',
2829 'Missing required key \'' + paramName + '\' in ' + context);
2830 }
2831 }
2832
2833 for (paramName in params) {
2834 if (!params.hasOwnProperty(paramName)) continue;
2835
2836 var paramValue = params[paramName],
2837 memberShape = shape.members[paramName];
2838
2839 if (memberShape !== undefined) {
2840 var memberContext = [context, paramName].join('.');
2841 this.validateMember(memberShape, paramValue, memberContext);
2842 } else {
2843 this.fail('UnexpectedParameter',
2844 'Unexpected key \'' + paramName + '\' found in ' + context);
2845 }
2846 }
2847
2848 return true;
2849 },
2850
2851 validateMember: function validateMember(shape, param, context) {
2852 switch (shape.type) {
2853 case 'structure':
2854 return this.validateStructure(shape, param, context);
2855 case 'list':
2856 return this.validateList(shape, param, context);
2857 case 'map':
2858 return this.validateMap(shape, param, context);
2859 default:
2860 return this.validateScalar(shape, param, context);
2861 }
2862 },
2863
2864 validateList: function validateList(shape, params, context) {
2865 if (this.validateType(params, context, [Array])) {
2866 this.validateRange(shape, params.length, context, 'list member count');
2867 for (var i = 0; i < params.length; i++) {
2868 this.validateMember(shape.member, params[i], context + '[' + i + ']');
2869 }
2870 }
2871 },
2872
2873 validateMap: function validateMap(shape, params, context) {
2874 if (this.validateType(params, context, ['object'], 'map')) {
2875 var mapCount = 0;
2876 for (var param in params) {
2877 if (!params.hasOwnProperty(param)) continue;
2878 this.validateMember(shape.key, param,
2879 context + '[key=\'' + param + '\']')
2880 this.validateMember(shape.value, params[param],
2881 context + '[\'' + param + '\']');
2882 mapCount++;
2883 }
2884 this.validateRange(shape, mapCount, context, 'map member count');
2885 }
2886 },
2887
2888 validateScalar: function validateScalar(shape, value, context) {
2889 switch (shape.type) {
2890 case null:
2891 case undefined:
2892 case 'string':
2893 return this.validateString(shape, value, context);
2894 case 'base64':
2895 case 'binary':
2896 return this.validatePayload(value, context);
2897 case 'integer':
2898 case 'float':
2899 return this.validateNumber(shape, value, context);
2900 case 'boolean':
2901 return this.validateType(value, context, ['boolean']);
2902 case 'timestamp':
2903 return this.validateType(value, context, [Date,
2904 /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'],
2905 'Date object, ISO-8601 string, or a UNIX timestamp');
2906 default:
2907 return this.fail('UnkownType', 'Unhandled type ' +
2908 shape.type + ' for ' + context);
2909 }
2910 },
2911
2912 validateString: function validateString(shape, value, context) {
2913 if (this.validateType(value, context, ['string'])) {
2914 this.validateEnum(shape, value, context);
2915 this.validateRange(shape, value.length, context, 'string length');
2916 this.validatePattern(shape, value, context);
2917 }
2918 },
2919
2920 validatePattern: function validatePattern(shape, value, context) {
2921 if (this.validation['pattern'] && shape['pattern'] !== undefined) {
2922 if (!(new RegExp(shape['pattern'])).test(value)) {
2923 this.fail('PatternMatchError', 'Provided value "' + value + '" '
2924 + 'does not match regex pattern /' + shape['pattern'] + '/ for '
2925 + context);
2926 }
2927 }
2928 },
2929
2930 validateRange: function validateRange(shape, value, context, descriptor) {
2931 if (this.validation['min']) {
2932 if (shape['min'] !== undefined && value < shape['min']) {
2933 this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '
2934 + shape['min'] + ', but found ' + value + ' for ' + context);
2935 }
2936 }
2937 if (this.validation['max']) {
2938 if (shape['max'] !== undefined && value > shape['max']) {
2939 this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '
2940 + shape['max'] + ', but found ' + value + ' for ' + context);
2941 }
2942 }
2943 },
2944
2945 validateEnum: function validateRange(shape, value, context) {
2946 if (this.validation['enum'] && shape['enum'] !== undefined) {
2947 if (shape['enum'].indexOf(value) === -1) {
2948 this.fail('EnumError', 'Found string value of ' + value + ', but '
2949 + 'expected ' + shape['enum'].join('|') + ' for ' + context);
2950 }
2951 }
2952 },
2953
2954 validateType: function validateType(value, context, acceptedTypes, type) {
2955 if (value === null || value === undefined) return false;
2956
2957 var foundInvalidType = false;
2958 for (var i = 0; i < acceptedTypes.length; i++) {
2959 if (typeof acceptedTypes[i] === 'string') {
2960 if (typeof value === acceptedTypes[i]) return true;
2961 } else if (acceptedTypes[i] instanceof RegExp) {
2962 if ((value || '').toString().match(acceptedTypes[i])) return true;
2963 } else {
2964 if (value instanceof acceptedTypes[i]) return true;
2965 if (AWS.util.isType(value, acceptedTypes[i])) return true;
2966 if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();
2967 acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);
2968 }
2969 foundInvalidType = true;
2970 }
2971
2972 var acceptedType = type;
2973 if (!acceptedType) {
2974 acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');
2975 }
2976
2977 var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';
2978 this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +
2979 vowel + ' ' + acceptedType);
2980 return false;
2981 },
2982
2983 validateNumber: function validateNumber(shape, value, context) {
2984 if (value === null || value === undefined) return;
2985 if (typeof value === 'string') {
2986 var castedValue = parseFloat(value);
2987 if (castedValue.toString() === value) value = castedValue;
2988 }
2989 if (this.validateType(value, context, ['number'])) {
2990 this.validateRange(shape, value, context, 'numeric value');
2991 }
2992 },
2993
2994 validatePayload: function validatePayload(value, context) {
2995 if (value === null || value === undefined) return;
2996 if (typeof value === 'string') return;
2997 if (value && typeof value.byteLength === 'number') return; // typed arrays
2998 if (AWS.util.isNode()) { // special check for buffer/stream in Node.js
2999 var Stream = AWS.util.nodeRequire('stream').Stream;
3000 if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;
3001 }
3002
3003 var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];
3004 if (value) {
3005 for (var i = 0; i < types.length; i++) {
3006 if (AWS.util.isType(value, types[i])) return;
3007 if (AWS.util.typeName(value.constructor) === types[i]) return;
3008 }
3009 }
3010
3011 this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +
3012 'string, Buffer, Stream, Blob, or typed array object');
3013 }
3014 });
3015
3016 },{"./core":4}],28:[function(require,module,exports){
3017 var util = require('../util');
3018 var JsonBuilder = require('../json/builder');
3019 var JsonParser = require('../json/parser');
3020
3021 function buildRequest(req) {
3022 var httpRequest = req.httpRequest;
3023 var api = req.service.api;
3024 var target = api.targetPrefix + '.' + api.operations[req.operation].name;
3025 var version = api.jsonVersion || '1.0';
3026 var input = api.operations[req.operation].input;
3027 var builder = new JsonBuilder();
3028
3029 if (version === 1) version = '1.0';
3030 httpRequest.body = builder.build(req.params || {}, input);
3031 httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;
3032 httpRequest.headers['X-Amz-Target'] = target;
3033 }
3034
3035 function extractError(resp) {
3036 var error = {};
3037 var httpResponse = resp.httpResponse;
3038
3039 error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';
3040 if (typeof error.code === 'string') {
3041 error.code = error.code.split(':')[0];
3042 }
3043
3044 if (httpResponse.body.length > 0) {
3045 var e = JSON.parse(httpResponse.body.toString());
3046 if (e.__type || e.code) {
3047 error.code = (e.__type || e.code).split('#').pop();
3048 }
3049 if (error.code === 'RequestEntityTooLarge') {
3050 error.message = 'Request body must be less than 1 MB';
3051 } else {
3052 error.message = (e.message || e.Message || null);
3053 }
3054 } else {
3055 error.statusCode = httpResponse.statusCode;
3056 error.message = httpResponse.statusCode.toString();
3057 }
3058
3059 resp.error = util.error(new Error(), error);
3060 }
3061
3062 function extractData(resp) {
3063 var body = resp.httpResponse.body.toString() || '{}';
3064 if (resp.request.service.config.convertResponseTypes === false) {
3065 resp.data = JSON.parse(body);
3066 } else {
3067 var operation = resp.request.service.api.operations[resp.request.operation];
3068 var shape = operation.output || {};
3069 var parser = new JsonParser();
3070 resp.data = parser.parse(body, shape);
3071 }
3072 }
3073
3074 module.exports = {
3075 buildRequest: buildRequest,
3076 extractError: extractError,
3077 extractData: extractData
3078 };
3079
3080 },{"../json/builder":19,"../json/parser":20,"../util":59}],29:[function(require,module,exports){
3081 var AWS = require('../core');
3082 var util = require('../util');
3083 var QueryParamSerializer = require('../query/query_param_serializer');
3084 var Shape = require('../model/shape');
3085
3086 function buildRequest(req) {
3087 var operation = req.service.api.operations[req.operation];
3088 var httpRequest = req.httpRequest;
3089 httpRequest.headers['Content-Type'] =
3090 'application/x-www-form-urlencoded; charset=utf-8';
3091 httpRequest.params = {
3092 Version: req.service.api.apiVersion,
3093 Action: operation.name
3094 };
3095
3096 var builder = new QueryParamSerializer();
3097 builder.serialize(req.params, operation.input, function(name, value) {
3098 httpRequest.params[name] = value;
3099 });
3100 httpRequest.body = util.queryParamsToString(httpRequest.params);
3101 }
3102
3103 function extractError(resp) {
3104 var data, body = resp.httpResponse.body.toString();
3105 if (body.match('<UnknownOperationException')) {
3106 data = {
3107 Code: 'UnknownOperation',
3108 Message: 'Unknown operation ' + resp.request.operation
3109 };
3110 } else {
3111 data = new AWS.XML.Parser().parse(body);
3112 }
3113
3114 if (data.requestId && !resp.requestId) resp.requestId = data.requestId;
3115 if (data.Errors) data = data.Errors;
3116 if (data.Error) data = data.Error;
3117 if (data.Code) {
3118 resp.error = util.error(new Error(), {
3119 code: data.Code,
3120 message: data.Message
3121 });
3122 } else {
3123 resp.error = util.error(new Error(), {
3124 code: resp.httpResponse.statusCode,
3125 message: null
3126 });
3127 }
3128 }
3129
3130 function extractData(resp) {
3131 var req = resp.request;
3132 var operation = req.service.api.operations[req.operation];
3133 var shape = operation.output || {};
3134 var origRules = shape;
3135
3136 if (origRules.resultWrapper) {
3137 var tmp = Shape.create({type: 'structure'});
3138 tmp.members[origRules.resultWrapper] = shape;
3139 tmp.memberNames = [origRules.resultWrapper];
3140 util.property(shape, 'name', shape.resultWrapper);
3141 shape = tmp;
3142 }
3143
3144 var parser = new AWS.XML.Parser();
3145
3146 if (shape && shape.members && !shape.members._XAMZRequestId) {
3147 var requestIdShape = Shape.create(
3148 { type: 'string' },
3149 { api: { protocol: 'query' } },
3150 'requestId'
3151 );
3152 shape.members._XAMZRequestId = requestIdShape;
3153 }
3154
3155 var data = parser.parse(resp.httpResponse.body.toString(), shape);
3156 resp.requestId = data._XAMZRequestId || data.requestId;
3157
3158 if (data._XAMZRequestId) delete data._XAMZRequestId;
3159
3160 if (origRules.resultWrapper) {
3161 if (data[origRules.resultWrapper]) {
3162 util.update(data, data[origRules.resultWrapper]);
3163 delete data[origRules.resultWrapper];
3164 }
3165 }
3166
3167 resp.data = data;
3168 }
3169
3170 module.exports = {
3171 buildRequest: buildRequest,
3172 extractError: extractError,
3173 extractData: extractData
3174 };
3175
3176 },{"../core":4,"../model/shape":26,"../query/query_param_serializer":33,"../util":59}],30:[function(require,module,exports){
3177 var util = require('../util');
3178
3179 function populateMethod(req) {
3180 req.httpRequest.method = req.service.api.operations[req.operation].httpMethod;
3181 }
3182
3183 function populateURI(req) {
3184 var operation = req.service.api.operations[req.operation];
3185 var input = operation.input;
3186 var uri = [req.httpRequest.endpoint.path, operation.httpPath].join('/');
3187 uri = uri.replace(/\/+/g, '/');
3188
3189 var queryString = {}, queryStringSet = false;
3190 util.each(input.members, function (name, member) {
3191 var paramValue = req.params[name];
3192 if (paramValue === null || paramValue === undefined) return;
3193 if (member.location === 'uri') {
3194 var regex = new RegExp('\\{' + member.name + '(\\+)?\\}');
3195 uri = uri.replace(regex, function(_, plus) {
3196 var fn = plus ? util.uriEscapePath : util.uriEscape;
3197 return fn(String(paramValue));
3198 });
3199 } else if (member.location === 'querystring') {
3200 queryStringSet = true;
3201
3202 if (member.type === 'list') {
3203 queryString[member.name] = paramValue.map(function(val) {
3204 return util.uriEscape(String(val));
3205 });
3206 } else if (member.type === 'map') {
3207 util.each(paramValue, function(key, value) {
3208 if (Array.isArray(value)) {
3209 queryString[key] = value.map(function(val) {
3210 return util.uriEscape(String(val));
3211 });
3212 } else {
3213 queryString[key] = util.uriEscape(String(value));
3214 }
3215 });
3216 } else {
3217 queryString[member.name] = util.uriEscape(String(paramValue));
3218 }
3219 }
3220 });
3221
3222 if (queryStringSet) {
3223 uri += (uri.indexOf('?') >= 0 ? '&' : '?');
3224 var parts = [];
3225 util.arrayEach(Object.keys(queryString).sort(), function(key) {
3226 if (!Array.isArray(queryString[key])) {
3227 queryString[key] = [queryString[key]];
3228 }
3229 for (var i = 0; i < queryString[key].length; i++) {
3230 parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);
3231 }
3232 });
3233 uri += parts.join('&');
3234 }
3235
3236 req.httpRequest.path = uri;
3237 }
3238
3239 function populateHeaders(req) {
3240 var operation = req.service.api.operations[req.operation];
3241 util.each(operation.input.members, function (name, member) {
3242 var value = req.params[name];
3243 if (value === null || value === undefined) return;
3244
3245 if (member.location === 'headers' && member.type === 'map') {
3246 util.each(value, function(key, memberValue) {
3247 req.httpRequest.headers[member.name + key] = memberValue;
3248 });
3249 } else if (member.location === 'header') {
3250 value = member.toWireFormat(value).toString();
3251 req.httpRequest.headers[member.name] = value;
3252 }
3253 });
3254 }
3255
3256 function buildRequest(req) {
3257 populateMethod(req);
3258 populateURI(req);
3259 populateHeaders(req);
3260 }
3261
3262 function extractError() {
3263 }
3264
3265 function extractData(resp) {
3266 var req = resp.request;
3267 var data = {};
3268 var r = resp.httpResponse;
3269 var operation = req.service.api.operations[req.operation];
3270 var output = operation.output;
3271
3272 var headers = {};
3273 util.each(r.headers, function (k, v) {
3274 headers[k.toLowerCase()] = v;
3275 });
3276
3277 util.each(output.members, function(name, member) {
3278 var header = (member.name || name).toLowerCase();
3279 if (member.location === 'headers' && member.type === 'map') {
3280 data[name] = {};
3281 var location = member.isLocationName ? member.name : '';
3282 var pattern = new RegExp('^' + location + '(.+)', 'i');
3283 util.each(r.headers, function (k, v) {
3284 var result = k.match(pattern);
3285 if (result !== null) {
3286 data[name][result[1]] = v;
3287 }
3288 });
3289 } else if (member.location === 'header') {
3290 if (headers[header] !== undefined) {
3291 data[name] = headers[header];
3292 }
3293 } else if (member.location === 'statusCode') {
3294 data[name] = parseInt(r.statusCode, 10);
3295 }
3296 });
3297
3298 resp.data = data;
3299 }
3300
3301 module.exports = {
3302 buildRequest: buildRequest,
3303 extractError: extractError,
3304 extractData: extractData
3305 };
3306
3307 },{"../util":59}],31:[function(require,module,exports){
3308 var util = require('../util');
3309 var Rest = require('./rest');
3310 var Json = require('./json');
3311 var JsonBuilder = require('../json/builder');
3312 var JsonParser = require('../json/parser');
3313
3314 function populateBody(req) {
3315 var builder = new JsonBuilder();
3316 var input = req.service.api.operations[req.operation].input;
3317
3318 if (input.payload) {
3319 var params = {};
3320 var payloadShape = input.members[input.payload];
3321 params = req.params[input.payload];
3322 if (params === undefined) return;
3323
3324 if (payloadShape.type === 'structure') {
3325 req.httpRequest.body = builder.build(params, payloadShape);
3326 } else { // non-JSON payload
3327 req.httpRequest.body = params;
3328 }
3329 } else {
3330 req.httpRequest.body = builder.build(req.params, input);
3331 }
3332 }
3333
3334 function buildRequest(req) {
3335 Rest.buildRequest(req);
3336
3337 if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) {
3338 populateBody(req);
3339 }
3340 }
3341
3342 function extractError(resp) {
3343 Json.extractError(resp);
3344 }
3345
3346 function extractData(resp) {
3347 Rest.extractData(resp);
3348
3349 var req = resp.request;
3350 var rules = req.service.api.operations[req.operation].output || {};
3351 if (rules.payload) {
3352 var payloadMember = rules.members[rules.payload];
3353 var body = resp.httpResponse.body;
3354 if (payloadMember.isStreaming) {
3355 resp.data[rules.payload] = body;
3356 } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {
3357 var parser = new JsonParser();
3358 resp.data[rules.payload] = parser.parse(body, payloadMember);
3359 } else {
3360 resp.data[rules.payload] = body.toString();
3361 }
3362 } else {
3363 var data = resp.data;
3364 Json.extractData(resp);
3365 resp.data = util.merge(data, resp.data);
3366 }
3367 }
3368
3369 module.exports = {
3370 buildRequest: buildRequest,
3371 extractError: extractError,
3372 extractData: extractData
3373 };
3374
3375 },{"../json/builder":19,"../json/parser":20,"../util":59,"./json":28,"./rest":30}],32:[function(require,module,exports){
3376 var AWS = require('../core');
3377 var util = require('../util');
3378 var Rest = require('./rest');
3379
3380 function populateBody(req) {
3381 var input = req.service.api.operations[req.operation].input;
3382 var builder = new AWS.XML.Builder();
3383 var params = req.params;
3384
3385 var payload = input.payload;
3386 if (payload) {
3387 var payloadMember = input.members[payload];
3388 params = params[payload];
3389 if (params === undefined) return;
3390
3391 if (payloadMember.type === 'structure') {
3392 var rootElement = payloadMember.name;
3393 req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);
3394 } else { // non-xml payload
3395 req.httpRequest.body = params;
3396 }
3397 } else {
3398 req.httpRequest.body = builder.toXML(params, input, input.name ||
3399 input.shape || util.string.upperFirst(req.operation) + 'Request');
3400 }
3401 }
3402
3403 function buildRequest(req) {
3404 Rest.buildRequest(req);
3405
3406 if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {
3407 populateBody(req);
3408 }
3409 }
3410
3411 function extractError(resp) {
3412 Rest.extractError(resp);
3413
3414 var data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());
3415 if (data.Errors) data = data.Errors;
3416 if (data.Error) data = data.Error;
3417 if (data.Code) {
3418 resp.error = util.error(new Error(), {
3419 code: data.Code,
3420 message: data.Message
3421 });
3422 } else {
3423 resp.error = util.error(new Error(), {
3424 code: resp.httpResponse.statusCode,
3425 message: null
3426 });
3427 }
3428 }
3429
3430 function extractData(resp) {
3431 Rest.extractData(resp);
3432
3433 var parser;
3434 var req = resp.request;
3435 var body = resp.httpResponse.body;
3436 var operation = req.service.api.operations[req.operation];
3437 var output = operation.output;
3438
3439 var payload = output.payload;
3440 if (payload) {
3441 var payloadMember = output.members[payload];
3442 if (payloadMember.isStreaming) {
3443 resp.data[payload] = body;
3444 } else if (payloadMember.type === 'structure') {
3445 parser = new AWS.XML.Parser();
3446 resp.data[payload] = parser.parse(body.toString(), payloadMember);
3447 } else {
3448 resp.data[payload] = body.toString();
3449 }
3450 } else if (body.length > 0) {
3451 parser = new AWS.XML.Parser();
3452 var data = parser.parse(body.toString(), output);
3453 util.update(resp.data, data);
3454 }
3455 }
3456
3457 module.exports = {
3458 buildRequest: buildRequest,
3459 extractError: extractError,
3460 extractData: extractData
3461 };
3462
3463 },{"../core":4,"../util":59,"./rest":30}],33:[function(require,module,exports){
3464 var util = require('../util');
3465
3466 function QueryParamSerializer() {
3467 }
3468
3469 QueryParamSerializer.prototype.serialize = function(params, shape, fn) {
3470 serializeStructure('', params, shape, fn);
3471 };
3472
3473 function ucfirst(shape) {
3474 if (shape.isQueryName || shape.api.protocol !== 'ec2') {
3475 return shape.name;
3476 } else {
3477 return shape.name[0].toUpperCase() + shape.name.substr(1);
3478 }
3479 }
3480
3481 function serializeStructure(prefix, struct, rules, fn) {
3482 util.each(rules.members, function(name, member) {
3483 var value = struct[name];
3484 if (value === null || value === undefined) return;
3485
3486 var memberName = ucfirst(member);
3487 memberName = prefix ? prefix + '.' + memberName : memberName;
3488 serializeMember(memberName, value, member, fn);
3489 });
3490 }
3491
3492 function serializeMap(name, map, rules, fn) {
3493 var i = 1;
3494 util.each(map, function (key, value) {
3495 var prefix = rules.flattened ? '.' : '.entry.';
3496 var position = prefix + (i++) + '.';
3497 var keyName = position + (rules.key.name || 'key');
3498 var valueName = position + (rules.value.name || 'value');
3499 serializeMember(name + keyName, key, rules.key, fn);
3500 serializeMember(name + valueName, value, rules.value, fn);
3501 });
3502 }
3503
3504 function serializeList(name, list, rules, fn) {
3505 var memberRules = rules.member || {};
3506
3507 if (list.length === 0) {
3508 fn.call(this, name, null);
3509 return;
3510 }
3511
3512 util.arrayEach(list, function (v, n) {
3513 var suffix = '.' + (n + 1);
3514 if (rules.api.protocol === 'ec2') {
3515 suffix = suffix + ''; // make linter happy
3516 } else if (rules.flattened) {
3517 if (memberRules.name) {
3518 var parts = name.split('.');
3519 parts.pop();
3520 parts.push(ucfirst(memberRules));
3521 name = parts.join('.');
3522 }
3523 } else {
3524 suffix = '.member' + suffix;
3525 }
3526 serializeMember(name + suffix, v, memberRules, fn);
3527 });
3528 }
3529
3530 function serializeMember(name, value, rules, fn) {
3531 if (value === null || value === undefined) return;
3532 if (rules.type === 'structure') {
3533 serializeStructure(name, value, rules, fn);
3534 } else if (rules.type === 'list') {
3535 serializeList(name, value, rules, fn);
3536 } else if (rules.type === 'map') {
3537 serializeMap(name, value, rules, fn);
3538 } else {
3539 fn(name, rules.toWireFormat(value).toString());
3540 }
3541 }
3542
3543 module.exports = QueryParamSerializer;
3544
3545 },{"../util":59}],34:[function(require,module,exports){
3546 var util = require('./util');
3547 var regionConfig = require('./region_config.json');
3548
3549 function generateRegionPrefix(region) {
3550 if (!region) return null;
3551
3552 var parts = region.split('-');
3553 if (parts.length < 3) return null;
3554 return parts.slice(0, parts.length - 2).join('-') + '-*';
3555 }
3556
3557 function derivedKeys(service) {
3558 var region = service.config.region;
3559 var regionPrefix = generateRegionPrefix(region);
3560 var endpointPrefix = service.api.endpointPrefix;
3561
3562 return [
3563 [region, endpointPrefix],
3564 [regionPrefix, endpointPrefix],
3565 [region, '*'],
3566 [regionPrefix, '*'],
3567 ['*', endpointPrefix],
3568 ['*', '*']
3569 ].map(function(item) {
3570 return item[0] && item[1] ? item.join('/') : null;
3571 });
3572 }
3573
3574 function applyConfig(service, config) {
3575 util.each(config, function(key, value) {
3576 if (key === 'globalEndpoint') return;
3577 if (service.config[key] === undefined || service.config[key] === null) {
3578 service.config[key] = value;
3579 }
3580 });
3581 }
3582
3583 function configureEndpoint(service) {
3584 var keys = derivedKeys(service);
3585 for (var i = 0; i < keys.length; i++) {
3586 var key = keys[i];
3587 if (!key) continue;
3588
3589 if (regionConfig.rules.hasOwnProperty(key)) {
3590 var config = regionConfig.rules[key];
3591 if (typeof config === 'string') {
3592 config = regionConfig.patterns[config];
3593 }
3594
3595 service.isGlobalEndpoint = !!config.globalEndpoint;
3596
3597 if (!config.signatureVersion) config.signatureVersion = 'v4';
3598
3599 applyConfig(service, config);
3600 return;
3601 }
3602 }
3603 }
3604
3605 module.exports = configureEndpoint;
3606
3607 },{"./region_config.json":35,"./util":59}],35:[function(require,module,exports){
3608 module.exports={
3609 "rules": {
3610 "*/*": {
3611 "endpoint": "{service}.{region}.amazonaws.com"
3612 },
3613 "cn-*/*": {
3614 "endpoint": "{service}.{region}.amazonaws.com.cn"
3615 },
3616 "*/cloudfront": "globalSSL",
3617 "*/iam": "globalSSL",
3618 "*/sts": "globalSSL",
3619 "*/importexport": {
3620 "endpoint": "{service}.amazonaws.com",
3621 "signatureVersion": "v2",
3622 "globalEndpoint": true
3623 },
3624 "*/route53": {
3625 "endpoint": "https://{service}.amazonaws.com",
3626 "signatureVersion": "v3https",
3627 "globalEndpoint": true
3628 },
3629 "*/waf": "globalSSL",
3630 "us-gov-*/iam": "globalGovCloud",
3631 "us-gov-*/sts": {
3632 "endpoint": "{service}.{region}.amazonaws.com"
3633 },
3634 "us-gov-west-1/s3": "s3dash",
3635 "us-west-1/s3": "s3dash",
3636 "us-west-2/s3": "s3dash",
3637 "eu-west-1/s3": "s3dash",
3638 "ap-southeast-1/s3": "s3dash",
3639 "ap-southeast-2/s3": "s3dash",
3640 "ap-northeast-1/s3": "s3dash",
3641 "sa-east-1/s3": "s3dash",
3642 "us-east-1/s3": {
3643 "endpoint": "{service}.amazonaws.com",
3644 "signatureVersion": "s3"
3645 },
3646 "us-east-1/sdb": {
3647 "endpoint": "{service}.amazonaws.com",
3648 "signatureVersion": "v2"
3649 },
3650 "*/sdb": {
3651 "endpoint": "{service}.{region}.amazonaws.com",
3652 "signatureVersion": "v2"
3653 }
3654 },
3655
3656 "patterns": {
3657 "globalSSL": {
3658 "endpoint": "https://{service}.amazonaws.com",
3659 "globalEndpoint": true
3660 },
3661 "globalGovCloud": {
3662 "endpoint": "{service}.us-gov.amazonaws.com"
3663 },
3664 "s3dash": {
3665 "endpoint": "{service}-{region}.amazonaws.com",
3666 "signatureVersion": "s3"
3667 }
3668 }
3669 }
3670
3671 },{}],36:[function(require,module,exports){
3672 (function (process){
3673 var AWS = require('./core');
3674 var AcceptorStateMachine = require('./state_machine');
3675 var inherit = AWS.util.inherit;
3676 var domain = AWS.util.nodeRequire('domain');
3677
3678
3679 var hardErrorStates = {success: 1, error: 1, complete: 1};
3680
3681 function isTerminalState(machine) {
3682 return hardErrorStates.hasOwnProperty(machine._asm.currentState);
3683 }
3684
3685 var fsm = new AcceptorStateMachine();
3686 fsm.setupStates = function() {
3687 var transition = function(_, done) {
3688 var self = this;
3689 self._haltHandlersOnError = false;
3690
3691 self.emit(self._asm.currentState, function(err) {
3692 if (err) {
3693 if (isTerminalState(self)) {
3694 if (domain && self.domain instanceof domain.Domain) {
3695 err.domainEmitter = self;
3696 err.domain = self.domain;
3697 err.domainThrown = false;
3698 self.domain.emit('error', err);
3699 } else {
3700 throw err;
3701 }
3702 } else {
3703 self.response.error = err;
3704 done(err);
3705 }
3706 } else {
3707 done(self.response.error);
3708 }
3709 });
3710
3711 };
3712
3713 this.addState('validate', 'build', 'error', transition);
3714 this.addState('build', 'afterBuild', 'restart', transition);
3715 this.addState('afterBuild', 'sign', 'restart', transition);
3716 this.addState('sign', 'send', 'retry', transition);
3717 this.addState('retry', 'afterRetry', 'afterRetry', transition);
3718 this.addState('afterRetry', 'sign', 'error', transition);
3719 this.addState('send', 'validateResponse', 'retry', transition);
3720 this.addState('validateResponse', 'extractData', 'extractError', transition);
3721 this.addState('extractError', 'extractData', 'retry', transition);
3722 this.addState('extractData', 'success', 'retry', transition);
3723 this.addState('restart', 'build', 'error', transition);
3724 this.addState('success', 'complete', 'complete', transition);
3725 this.addState('error', 'complete', 'complete', transition);
3726 this.addState('complete', null, null, transition);
3727 };
3728 fsm.setupStates();
3729
3730
3731 AWS.Request = inherit({
3732
3733
3734 constructor: function Request(service, operation, params) {
3735 var endpoint = service.endpoint;
3736 var region = service.config.region;
3737 var customUserAgent = service.config.customUserAgent;
3738
3739 if (service.isGlobalEndpoint) region = 'us-east-1';
3740
3741 this.domain = domain && domain.active;
3742 this.service = service;
3743 this.operation = operation;
3744 this.params = params || {};
3745 this.httpRequest = new AWS.HttpRequest(endpoint, region, customUserAgent);
3746 this.startTime = AWS.util.date.getDate();
3747
3748 this.response = new AWS.Response(this);
3749 this._asm = new AcceptorStateMachine(fsm.states, 'validate');
3750 this._haltHandlersOnError = false;
3751
3752 AWS.SequentialExecutor.call(this);
3753 this.emit = this.emitEvent;
3754 },
3755
3756
3757
3758
3759 send: function send(callback) {
3760 if (callback) {
3761 this.on('complete', function (resp) {
3762 callback.call(resp, resp.error, resp.data);
3763 });
3764 }
3765 this.runTo();
3766
3767 return this.response;
3768 },
3769
3770
3771 build: function build(callback) {
3772 return this.runTo('send', callback);
3773 },
3774
3775
3776 runTo: function runTo(state, done) {
3777 this._asm.runTo(state, done, this);
3778 return this;
3779 },
3780
3781
3782 abort: function abort() {
3783 this.removeAllListeners('validateResponse');
3784 this.removeAllListeners('extractError');
3785 this.on('validateResponse', function addAbortedError(resp) {
3786 resp.error = AWS.util.error(new Error('Request aborted by user'), {
3787 code: 'RequestAbortedError', retryable: false
3788 });
3789 });
3790
3791 if (this.httpRequest.stream) { // abort HTTP stream
3792 this.httpRequest.stream.abort();
3793 if (this.httpRequest._abortCallback) {
3794 this.httpRequest._abortCallback();
3795 } else {
3796 this.removeAllListeners('send'); // haven't sent yet, so let's not
3797 }
3798 }
3799
3800 return this;
3801 },
3802
3803
3804 eachPage: function eachPage(callback) {
3805 callback = AWS.util.fn.makeAsync(callback, 3);
3806
3807 function wrappedCallback(response) {
3808 callback.call(response, response.error, response.data, function (result) {
3809 if (result === false) return;
3810
3811 if (response.hasNextPage()) {
3812 response.nextPage().on('complete', wrappedCallback).send();
3813 } else {
3814 callback.call(response, null, null, AWS.util.fn.noop);
3815 }
3816 });
3817 }
3818
3819 this.on('complete', wrappedCallback).send();
3820 },
3821
3822
3823 eachItem: function eachItem(callback) {
3824 var self = this;
3825 function wrappedCallback(err, data) {
3826 if (err) return callback(err, null);
3827 if (data === null) return callback(null, null);
3828
3829 var config = self.service.paginationConfig(self.operation);
3830 var resultKey = config.resultKey;
3831 if (Array.isArray(resultKey)) resultKey = resultKey[0];
3832 var results = AWS.util.jamespath.query(resultKey, data);
3833 AWS.util.arrayEach(results, function(result) {
3834 AWS.util.arrayEach(result, function(item) { callback(null, item); });
3835 });
3836 }
3837
3838 this.eachPage(wrappedCallback);
3839 },
3840
3841
3842 isPageable: function isPageable() {
3843 return this.service.paginationConfig(this.operation) ? true : false;
3844 },
3845
3846
3847 createReadStream: function createReadStream() {
3848 var streams = AWS.util.nodeRequire('stream');
3849 var req = this;
3850 var stream = null;
3851
3852 if (AWS.HttpClient.streamsApiVersion === 2) {
3853 stream = new streams.PassThrough();
3854 req.send();
3855 } else {
3856 stream = new streams.Stream();
3857 stream.readable = true;
3858
3859 stream.sent = false;
3860 stream.on('newListener', function(event) {
3861 if (!stream.sent && event === 'data') {
3862 stream.sent = true;
3863 process.nextTick(function() { req.send(); });
3864 }
3865 });
3866 }
3867
3868 this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {
3869 if (statusCode < 300) {
3870 req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);
3871 req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);
3872 req.on('httpError', function streamHttpError(error) {
3873 resp.error = error;
3874 resp.error.retryable = false;
3875 });
3876
3877 var httpStream = resp.httpResponse.createUnbufferedStream();
3878 if (AWS.HttpClient.streamsApiVersion === 2) {
3879 httpStream.pipe(stream);
3880 } else {
3881 httpStream.on('data', function(arg) {
3882 stream.emit('data', arg);
3883 });
3884 httpStream.on('end', function() {
3885 stream.emit('end');
3886 });
3887 }
3888
3889 httpStream.on('error', function(err) {
3890 stream.emit('error', err);
3891 });
3892 }
3893 });
3894
3895 this.on('error', function(err) {
3896 stream.emit('error', err);
3897 });
3898
3899 return stream;
3900 },
3901
3902
3903 emitEvent: function emit(eventName, args, done) {
3904 if (typeof args === 'function') { done = args; args = null; }
3905 if (!done) done = function() { };
3906 if (!args) args = this.eventParameters(eventName, this.response);
3907
3908 var origEmit = AWS.SequentialExecutor.prototype.emit;
3909 origEmit.call(this, eventName, args, function (err) {
3910 if (err) this.response.error = err;
3911 done.call(this, err);
3912 });
3913 },
3914
3915
3916 eventParameters: function eventParameters(eventName) {
3917 switch (eventName) {
3918 case 'restart':
3919 case 'validate':
3920 case 'sign':
3921 case 'build':
3922 case 'afterValidate':
3923 case 'afterBuild':
3924 return [this];
3925 case 'error':
3926 return [this.response.error, this.response];
3927 default:
3928 return [this.response];
3929 }
3930 },
3931
3932
3933 presign: function presign(expires, callback) {
3934 if (!callback && typeof expires === 'function') {
3935 callback = expires;
3936 expires = null;
3937 }
3938 return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);
3939 },
3940
3941
3942 toUnauthenticated: function toUnauthenticated() {
3943 this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);
3944 this.removeListener('sign', AWS.EventListeners.Core.SIGN);
3945 return this;
3946 },
3947
3948
3949 toGet: function toGet() {
3950 if (this.service.api.protocol === 'query' ||
3951 this.service.api.protocol === 'ec2') {
3952 this.removeListener('build', this.buildAsGet);
3953 this.addListener('build', this.buildAsGet);
3954 }
3955 return this;
3956 },
3957
3958
3959 buildAsGet: function buildAsGet(request) {
3960 request.httpRequest.method = 'GET';
3961 request.httpRequest.path = request.service.endpoint.path +
3962 '?' + request.httpRequest.body;
3963 request.httpRequest.body = '';
3964
3965 delete request.httpRequest.headers['Content-Length'];
3966 delete request.httpRequest.headers['Content-Type'];
3967 },
3968
3969
3970 haltHandlersOnError: function haltHandlersOnError() {
3971 this._haltHandlersOnError = true;
3972 }
3973 });
3974
3975 AWS.util.mixin(AWS.Request, AWS.SequentialExecutor);
3976
3977 }).call(this,require("FWaASH"))
3978 },{"./core":4,"./state_machine":58,"FWaASH":73}],37:[function(require,module,exports){
3979
3980
3981 var AWS = require('./core');
3982 var inherit = AWS.util.inherit;
3983
3984
3985 AWS.ResourceWaiter = inherit({
3986
3987 constructor: function constructor(service, state) {
3988 this.service = service;
3989 this.state = state;
3990
3991 if (typeof this.state === 'object') {
3992 AWS.util.each.call(this, this.state, function (key, value) {
3993 this.state = key;
3994 this.expectedValue = value;
3995 });
3996 }
3997
3998 this.loadWaiterConfig(this.state);
3999 if (!this.expectedValue) {
4000 this.expectedValue = this.config.successValue;
4001 }
4002 },
4003
4004 service: null,
4005
4006 state: null,
4007
4008 expectedValue: null,
4009
4010 config: null,
4011
4012 waitDone: false,
4013
4014 Listeners: {
4015 retry: new AWS.SequentialExecutor().addNamedListeners(function(add) {
4016 add('RETRY_CHECK', 'retry', function(resp) {
4017 var waiter = resp.request._waiter;
4018 if (resp.error && resp.error.code === 'ResourceNotReady') {
4019 resp.error.retryDelay = waiter.config.interval * 1000;
4020 }
4021 });
4022 }),
4023
4024 output: new AWS.SequentialExecutor().addNamedListeners(function(add) {
4025 add('CHECK_OUT_ERROR', 'extractError', function CHECK_OUT_ERROR(resp) {
4026 if (resp.error) {
4027 resp.request._waiter.setError(resp, true);
4028 }
4029 });
4030
4031 add('CHECK_OUTPUT', 'extractData', function CHECK_OUTPUT(resp) {
4032 var waiter = resp.request._waiter;
4033 var success = waiter.checkSuccess(resp);
4034 if (!success) {
4035 waiter.setError(resp, success === null ? false : true);
4036 } else {
4037 resp.error = null;
4038 }
4039 });
4040 }),
4041
4042 error: new AWS.SequentialExecutor().addNamedListeners(function(add) {
4043 add('CHECK_ERROR', 'extractError', function CHECK_ERROR(resp) {
4044 var waiter = resp.request._waiter;
4045 var success = waiter.checkError(resp);
4046 if (!success) {
4047 waiter.setError(resp, success === null ? false : true);
4048 } else {
4049 resp.error = null;
4050 resp.data = {};
4051 resp.request.removeAllListeners('extractData');
4052 }
4053 });
4054
4055 add('CHECK_ERR_OUTPUT', 'extractData', function CHECK_ERR_OUTPUT(resp) {
4056 resp.request._waiter.setError(resp, true);
4057 });
4058 })
4059 },
4060
4061
4062 wait: function wait(params, callback) {
4063 if (typeof params === 'function') {
4064 callback = params; params = undefined;
4065 }
4066
4067 var request = this.service.makeRequest(this.config.operation, params);
4068 var listeners = this.Listeners[this.config.successType];
4069 request._waiter = this;
4070 request.response.maxRetries = this.config.maxAttempts;
4071 request.addListeners(this.Listeners.retry);
4072 if (listeners) request.addListeners(listeners);
4073
4074 if (callback) request.send(callback);
4075 return request;
4076 },
4077
4078 setError: function setError(resp, retryable) {
4079 resp.data = null;
4080 resp.error = AWS.util.error(resp.error || new Error(), {
4081 code: 'ResourceNotReady',
4082 message: 'Resource is not in the state ' + this.state,
4083 retryable: retryable
4084 });
4085 },
4086
4087
4088 checkSuccess: function checkSuccess(resp) {
4089 if (!this.config.successPath) {
4090 return resp.httpResponse.statusCode < 300;
4091 }
4092
4093 var r = AWS.util.jamespath.find(this.config.successPath, resp.data);
4094
4095 if (this.config.failureValue &&
4096 this.config.failureValue.indexOf(r) >= 0) {
4097 return null; // fast fail
4098 }
4099
4100 if (this.expectedValue) {
4101 return r === this.expectedValue;
4102 } else {
4103 return r ? true : false;
4104 }
4105 },
4106
4107
4108 checkError: function checkError(resp) {
4109 var value = this.config.successValue;
4110 if (typeof value === 'number') {
4111 return resp.httpResponse.statusCode === value;
4112 } else {
4113 return resp.error && resp.error.code === value;
4114 }
4115 },
4116
4117
4118 loadWaiterConfig: function loadWaiterConfig(state, noException) {
4119 if (!this.service.api.waiters[state]) {
4120 if (noException) return;
4121 throw new AWS.util.error(new Error(), {
4122 code: 'StateNotFoundError',
4123 message: 'State ' + state + ' not found.'
4124 });
4125 }
4126
4127 this.config = this.service.api.waiters[state];
4128 var config = this.config;
4129
4130 (function () { // anonymous function to avoid max complexity count
4131 config.successType = config.successType || config.acceptorType;
4132 config.successPath = config.successPath || config.acceptorPath;
4133 config.successValue = config.successValue || config.acceptorValue;
4134 config.failureType = config.failureType || config.acceptorType;
4135 config.failurePath = config.failurePath || config.acceptorPath;
4136 config.failureValue = config.failureValue || config.acceptorValue;
4137 })();
4138 }
4139 });
4140
4141 },{"./core":4}],38:[function(require,module,exports){
4142 var AWS = require('./core');
4143 var inherit = AWS.util.inherit;
4144
4145
4146 AWS.Response = inherit({
4147
4148
4149 constructor: function Response(request) {
4150 this.request = request;
4151 this.data = null;
4152 this.error = null;
4153 this.retryCount = 0;
4154 this.redirectCount = 0;
4155 this.httpResponse = new AWS.HttpResponse();
4156 if (request) {
4157 this.maxRetries = request.service.numRetries();
4158 this.maxRedirects = request.service.config.maxRedirects;
4159 }
4160 },
4161
4162
4163 nextPage: function nextPage(callback) {
4164 var config;
4165 var service = this.request.service;
4166 var operation = this.request.operation;
4167 try {
4168 config = service.paginationConfig(operation, true);
4169 } catch (e) { this.error = e; }
4170
4171 if (!this.hasNextPage()) {
4172 if (callback) callback(this.error, null);
4173 else if (this.error) throw this.error;
4174 return null;
4175 }
4176
4177 var params = AWS.util.copy(this.request.params);
4178 if (!this.nextPageTokens) {
4179 return callback ? callback(null, null) : null;
4180 } else {
4181 var inputTokens = config.inputToken;
4182 if (typeof inputTokens === 'string') inputTokens = [inputTokens];
4183 for (var i = 0; i < inputTokens.length; i++) {
4184 params[inputTokens[i]] = this.nextPageTokens[i];
4185 }
4186 return service.makeRequest(this.request.operation, params, callback);
4187 }
4188 },
4189
4190
4191 hasNextPage: function hasNextPage() {
4192 this.cacheNextPageTokens();
4193 if (this.nextPageTokens) return true;
4194 if (this.nextPageTokens === undefined) return undefined;
4195 else return false;
4196 },
4197
4198
4199 cacheNextPageTokens: function cacheNextPageTokens() {
4200 if (this.hasOwnProperty('nextPageTokens')) return this.nextPageTokens;
4201 this.nextPageTokens = undefined;
4202
4203 var config = this.request.service.paginationConfig(this.request.operation);
4204 if (!config) return this.nextPageTokens;
4205
4206 this.nextPageTokens = null;
4207 if (config.moreResults) {
4208 if (!AWS.util.jamespath.find(config.moreResults, this.data)) {
4209 return this.nextPageTokens;
4210 }
4211 }
4212
4213 var exprs = config.outputToken;
4214 if (typeof exprs === 'string') exprs = [exprs];
4215 AWS.util.arrayEach.call(this, exprs, function (expr) {
4216 var output = AWS.util.jamespath.find(expr, this.data);
4217 if (output) {
4218 this.nextPageTokens = this.nextPageTokens || [];
4219 this.nextPageTokens.push(output);
4220 }
4221 });
4222
4223 return this.nextPageTokens;
4224 }
4225
4226 });
4227
4228 },{"./core":4}],39:[function(require,module,exports){
4229 (function (Buffer){
4230 var AWS = require('../core');
4231 var byteLength = AWS.util.string.byteLength;
4232
4233
4234 AWS.S3.ManagedUpload = AWS.util.inherit({
4235
4236 constructor: function ManagedUpload(options) {
4237 var self = this;
4238 AWS.SequentialExecutor.call(self);
4239 self.body = null;
4240 self.sliceFn = null;
4241 self.callback = null;
4242 self.parts = {};
4243 self.completeInfo = [];
4244 self.fillQueue = function() {
4245 self.callback(new Error('Unsupported body payload ' + typeof self.body));
4246 };
4247
4248 self.configure(options);
4249 },
4250
4251
4252 configure: function configure(options) {
4253 options = options || {};
4254 this.partSize = this.minPartSize;
4255
4256 if (options.queueSize) this.queueSize = options.queueSize;
4257 if (options.partSize) this.partSize = options.partSize;
4258 if (options.leavePartsOnError) this.leavePartsOnError = true;
4259
4260 if (this.partSize < this.minPartSize) {
4261 throw new Error('partSize must be greater than ' +
4262 this.minPartSize);
4263 }
4264
4265 this.service = options.service;
4266 this.bindServiceObject(options.params);
4267 this.validateBody();
4268 this.adjustTotalBytes();
4269 },
4270
4271
4272 leavePartsOnError: false,
4273
4274
4275 queueSize: 4,
4276
4277
4278 partSize: null,
4279
4280
4281 minPartSize: 1024 * 1024 * 5,
4282
4283
4284 maxTotalParts: 10000,
4285
4286
4287 send: function(callback) {
4288 var self = this;
4289 self.failed = false;
4290 self.callback = callback || function(err) { if (err) throw err; };
4291
4292 var runFill = true;
4293 if (self.sliceFn) {
4294 self.fillQueue = self.fillBuffer;
4295 } else if (AWS.util.isNode()) {
4296 var Stream = AWS.util.nodeRequire('stream').Stream;
4297 if (self.body instanceof Stream) {
4298 runFill = false;
4299 self.fillQueue = self.fillStream;
4300 self.partBuffers = [];
4301 self.body.
4302 on('readable', function() { self.fillQueue(); }).
4303 on('end', function() {
4304 self.isDoneChunking = true;
4305 self.numParts = self.totalPartNumbers;
4306 self.fillQueue.call(self);
4307 });
4308 }
4309 }
4310
4311 if (runFill) self.fillQueue.call(self);
4312 },
4313
4314
4315 abort: function() {
4316 this.cleanup(AWS.util.error(new Error('Request aborted by user'), {
4317 code: 'RequestAbortedError', retryable: false
4318 }));
4319 },
4320
4321
4322 validateBody: function validateBody() {
4323 var self = this;
4324 self.body = self.service.config.params.Body;
4325 if (!self.body) throw new Error('params.Body is required');
4326 if (typeof self.body === 'string') {
4327 self.body = new AWS.util.Buffer(self.body);
4328 }
4329 self.sliceFn = AWS.util.arraySliceFn(self.body);
4330 },
4331
4332
4333 bindServiceObject: function bindServiceObject(params) {
4334 params = params || {};
4335 var self = this;
4336
4337 if (!self.service) {
4338 self.service = new AWS.S3({params: params});
4339 } else {
4340 var config = AWS.util.copy(self.service.config);
4341 self.service = new self.service.constructor.__super__(config);
4342 self.service.config.params =
4343 AWS.util.merge(self.service.config.params || {}, params);
4344 }
4345 },
4346
4347
4348 adjustTotalBytes: function adjustTotalBytes() {
4349 var self = this;
4350 try { // try to get totalBytes
4351 self.totalBytes = byteLength(self.body);
4352 } catch (e) { }
4353
4354 if (self.totalBytes) {
4355 var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);
4356 if (newPartSize > self.partSize) self.partSize = newPartSize;
4357 } else {
4358 self.totalBytes = undefined;
4359 }
4360 },
4361
4362
4363 isDoneChunking: false,
4364
4365
4366 partPos: 0,
4367
4368
4369 totalChunkedBytes: 0,
4370
4371
4372 totalUploadedBytes: 0,
4373
4374
4375 totalBytes: undefined,
4376
4377
4378 numParts: 0,
4379
4380
4381 totalPartNumbers: 0,
4382
4383
4384 activeParts: 0,
4385
4386
4387 doneParts: 0,
4388
4389
4390 parts: null,
4391
4392
4393 completeInfo: null,
4394
4395
4396 failed: false,
4397
4398
4399 multipartReq: null,
4400
4401
4402 partBuffers: null,
4403
4404
4405 partBufferLength: 0,
4406
4407
4408 fillBuffer: function fillBuffer() {
4409 var self = this;
4410 var bodyLen = byteLength(self.body);
4411
4412 if (bodyLen === 0) {
4413 self.isDoneChunking = true;
4414 self.numParts = 1;
4415 self.nextChunk(self.body);
4416 return;
4417 }
4418
4419 while (self.activeParts < self.queueSize && self.partPos < bodyLen) {
4420 var endPos = Math.min(self.partPos + self.partSize, bodyLen);
4421 var buf = self.sliceFn.call(self.body, self.partPos, endPos);
4422 self.partPos += self.partSize;
4423
4424 if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {
4425 self.isDoneChunking = true;
4426 self.numParts = self.totalPartNumbers + 1;
4427 }
4428 self.nextChunk(buf);
4429 }
4430 },
4431
4432
4433 fillStream: function fillStream() {
4434 var self = this;
4435 if (self.activeParts >= self.queueSize) return;
4436
4437 var buf = self.body.read(self.partSize - self.partBufferLength) ||
4438 self.body.read();
4439 if (buf) {
4440 self.partBuffers.push(buf);
4441 self.partBufferLength += buf.length;
4442 self.totalChunkedBytes += buf.length;
4443 }
4444
4445 if (self.partBufferLength >= self.partSize) {
4446 var pbuf = self.partBuffers.length === 1 ?
4447 self.partBuffers[0] : Buffer.concat(self.partBuffers);
4448 self.partBuffers = [];
4449 self.partBufferLength = 0;
4450
4451 if (pbuf.length > self.partSize) {
4452 var rest = pbuf.slice(self.partSize);
4453 self.partBuffers.push(rest);
4454 self.partBufferLength += rest.length;
4455 pbuf = pbuf.slice(0, self.partSize);
4456 }
4457
4458 self.nextChunk(pbuf);
4459 }
4460
4461 if (self.isDoneChunking && !self.isDoneSending) {
4462 pbuf = self.partBuffers.length === 1 ?
4463 self.partBuffers[0] : Buffer.concat(self.partBuffers);
4464 self.partBuffers = [];
4465 self.partBufferLength = 0;
4466 self.totalBytes = self.totalChunkedBytes;
4467 self.isDoneSending = true;
4468
4469 if (self.numParts === 0 || pbuf.length > 0) {
4470 self.numParts++;
4471 self.nextChunk(pbuf);
4472 }
4473 }
4474
4475 self.body.read(0);
4476 },
4477
4478
4479 nextChunk: function nextChunk(chunk) {
4480 var self = this;
4481 if (self.failed) return null;
4482
4483 var partNumber = ++self.totalPartNumbers;
4484 if (self.isDoneChunking && partNumber === 1) {
4485 var req = self.service.putObject({Body: chunk});
4486 req._managedUpload = self;
4487 req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);
4488 return null;
4489 } else if (self.service.config.params.ContentMD5) {
4490 var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {
4491 code: 'InvalidDigest', retryable: false
4492 });
4493
4494 self.cleanup(err);
4495 return null;
4496 }
4497
4498 if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {
4499 return null; // Already uploaded this part.
4500 }
4501
4502 self.activeParts++;
4503 if (!self.service.config.params.UploadId) {
4504
4505 if (!self.multipartReq) { // create multipart
4506 self.multipartReq = self.service.createMultipartUpload();
4507 self.multipartReq.on('success', function(resp) {
4508 self.service.config.params.UploadId = resp.data.UploadId;
4509 self.multipartReq = null;
4510 });
4511 self.queueChunks(chunk, partNumber);
4512 self.multipartReq.on('error', function(err) {
4513 self.cleanup(err);
4514 });
4515 self.multipartReq.send();
4516 } else {
4517 self.queueChunks(chunk, partNumber);
4518 }
4519 } else { // multipart is created, just send
4520 self.uploadPart(chunk, partNumber);
4521 }
4522 },
4523
4524
4525 uploadPart: function uploadPart(chunk, partNumber) {
4526 var self = this;
4527
4528 var partParams = {
4529 Body: chunk,
4530 ContentLength: AWS.util.string.byteLength(chunk),
4531 PartNumber: partNumber
4532 };
4533
4534 var partInfo = {ETag: null, PartNumber: partNumber};
4535 self.completeInfo[partNumber] = partInfo;
4536
4537 var req = self.service.uploadPart(partParams);
4538 self.parts[partNumber] = req;
4539 req._lastUploadedBytes = 0;
4540 req._managedUpload = self;
4541 req.on('httpUploadProgress', self.progress);
4542 req.send(function(err, data) {
4543 delete self.parts[partParams.PartNumber];
4544 self.activeParts--;
4545
4546 if (!err && (!data || !data.ETag)) {
4547 var message = 'No access to ETag property on response.';
4548 if (AWS.util.isBrowser()) {
4549 message += ' Check CORS configuration to expose ETag header.';
4550 }
4551
4552 err = AWS.util.error(new Error(message), {
4553 code: 'ETagMissing', retryable: false
4554 });
4555 }
4556 if (err) return self.cleanup(err);
4557
4558 partInfo.ETag = data.ETag;
4559 self.doneParts++;
4560 if (self.isDoneChunking && self.doneParts === self.numParts) {
4561 self.finishMultiPart();
4562 } else {
4563 self.fillQueue.call(self);
4564 }
4565 });
4566 },
4567
4568
4569 queueChunks: function queueChunks(chunk, partNumber) {
4570 var self = this;
4571 self.multipartReq.on('success', function() {
4572 self.uploadPart(chunk, partNumber);
4573 });
4574 },
4575
4576
4577 cleanup: function cleanup(err) {
4578 var self = this;
4579 if (self.failed) return;
4580
4581 if (typeof self.body.removeAllListeners === 'function' &&
4582 typeof self.body.resume === 'function') {
4583 self.body.removeAllListeners('readable');
4584 self.body.removeAllListeners('end');
4585 self.body.resume();
4586 }
4587
4588 if (self.service.config.params.UploadId && !self.leavePartsOnError) {
4589 self.service.abortMultipartUpload().send();
4590 }
4591
4592 AWS.util.each(self.parts, function(partNumber, part) {
4593 part.removeAllListeners('complete');
4594 part.abort();
4595 });
4596
4597 self.activeParts = 0;
4598 self.partPos = 0;
4599 self.numParts = 0;
4600 self.totalPartNumbers = 0;
4601 self.parts = {};
4602 self.failed = true;
4603 self.callback(err);
4604 },
4605
4606
4607 finishMultiPart: function finishMultiPart() {
4608 var self = this;
4609 var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };
4610 self.service.completeMultipartUpload(completeParams, function(err, data) {
4611 if (err) return self.cleanup(err);
4612 else self.callback(err, data);
4613 });
4614 },
4615
4616
4617 finishSinglePart: function finishSinglePart(err, data) {
4618 var upload = this.request._managedUpload;
4619 var httpReq = this.request.httpRequest;
4620 var endpoint = httpReq.endpoint;
4621 if (err) return upload.callback(err);
4622 data.Location =
4623 [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');
4624 data.key = this.request.params.Key;
4625 upload.callback(err, data);
4626 },
4627
4628
4629 progress: function progress(info) {
4630 var upload = this._managedUpload;
4631 if (this.operation === 'putObject') {
4632 info.part = 1;
4633 info.key = this.params.Key;
4634 } else {
4635 upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;
4636 this._lastUploadedBytes = info.loaded;
4637 info = {
4638 loaded: upload.totalUploadedBytes,
4639 total: upload.totalBytes,
4640 part: this.params.PartNumber,
4641 key: this.params.Key
4642 };
4643 }
4644 upload.emit('httpUploadProgress', [info]);
4645 }
4646 });
4647
4648 AWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);
4649 module.exports = AWS.S3.ManagedUpload;
4650
4651 }).call(this,require("buffer").Buffer)
4652 },{"../core":4,"buffer":62}],40:[function(require,module,exports){
4653 var AWS = require('./core');
4654
4655
4656 AWS.SequentialExecutor = AWS.util.inherit({
4657
4658 constructor: function SequentialExecutor() {
4659 this._events = {};
4660 },
4661
4662
4663 listeners: function listeners(eventName) {
4664 return this._events[eventName] ? this._events[eventName].slice(0) : [];
4665 },
4666
4667 on: function on(eventName, listener) {
4668 if (this._events[eventName]) {
4669 this._events[eventName].push(listener);
4670 } else {
4671 this._events[eventName] = [listener];
4672 }
4673 return this;
4674 },
4675
4676
4677 onAsync: function onAsync(eventName, listener) {
4678 listener._isAsync = true;
4679 return this.on(eventName, listener);
4680 },
4681
4682 removeListener: function removeListener(eventName, listener) {
4683 var listeners = this._events[eventName];
4684 if (listeners) {
4685 var length = listeners.length;
4686 var position = -1;
4687 for (var i = 0; i < length; ++i) {
4688 if (listeners[i] === listener) {
4689 position = i;
4690 }
4691 }
4692 if (position > -1) {
4693 listeners.splice(position, 1);
4694 }
4695 }
4696 return this;
4697 },
4698
4699 removeAllListeners: function removeAllListeners(eventName) {
4700 if (eventName) {
4701 delete this._events[eventName];
4702 } else {
4703 this._events = {};
4704 }
4705 return this;
4706 },
4707
4708
4709 emit: function emit(eventName, eventArgs, doneCallback) {
4710 if (!doneCallback) doneCallback = function() { };
4711 var listeners = this.listeners(eventName);
4712 var count = listeners.length;
4713 this.callListeners(listeners, eventArgs, doneCallback);
4714 return count > 0;
4715 },
4716
4717
4718 callListeners: function callListeners(listeners, args, doneCallback, prevError) {
4719 var self = this;
4720 var error = prevError || null;
4721
4722 function callNextListener(err) {
4723 if (err) {
4724 error = AWS.util.error(error || new Error(), err);
4725 if (self._haltHandlersOnError) {
4726 return doneCallback.call(self, error);
4727 }
4728 }
4729 self.callListeners(listeners, args, doneCallback, error);
4730 }
4731
4732 while (listeners.length > 0) {
4733 var listener = listeners.shift();
4734 if (listener._isAsync) { // asynchronous listener
4735 listener.apply(self, args.concat([callNextListener]));
4736 return; // stop here, callNextListener will continue
4737 } else { // synchronous listener
4738 try {
4739 listener.apply(self, args);
4740 } catch (err) {
4741 error = AWS.util.error(error || new Error(), err);
4742 }
4743 if (error && self._haltHandlersOnError) {
4744 doneCallback.call(self, error);
4745 return;
4746 }
4747 }
4748 }
4749 doneCallback.call(self, error);
4750 },
4751
4752
4753 addListeners: function addListeners(listeners) {
4754 var self = this;
4755
4756 if (listeners._events) listeners = listeners._events;
4757
4758 AWS.util.each(listeners, function(event, callbacks) {
4759 if (typeof callbacks === 'function') callbacks = [callbacks];
4760 AWS.util.arrayEach(callbacks, function(callback) {
4761 self.on(event, callback);
4762 });
4763 });
4764
4765 return self;
4766 },
4767
4768
4769 addNamedListener: function addNamedListener(name, eventName, callback) {
4770 this[name] = callback;
4771 this.addListener(eventName, callback);
4772 return this;
4773 },
4774
4775
4776 addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) {
4777 callback._isAsync = true;
4778 return this.addNamedListener(name, eventName, callback);
4779 },
4780
4781
4782 addNamedListeners: function addNamedListeners(callback) {
4783 var self = this;
4784 callback(
4785 function() {
4786 self.addNamedListener.apply(self, arguments);
4787 },
4788 function() {
4789 self.addNamedAsyncListener.apply(self, arguments);
4790 }
4791 );
4792 return this;
4793 }
4794 });
4795
4796
4797 AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;
4798
4799 module.exports = AWS.SequentialExecutor;
4800
4801 },{"./core":4}],41:[function(require,module,exports){
4802 var AWS = require('./core');
4803 var Api = require('./model/api');
4804 var regionConfig = require('./region_config');
4805 var inherit = AWS.util.inherit;
4806
4807
4808 AWS.Service = inherit({
4809
4810 constructor: function Service(config) {
4811 if (!this.loadServiceClass) {
4812 throw AWS.util.error(new Error(),
4813 'Service must be constructed with `new\' operator');
4814 }
4815 var ServiceClass = this.loadServiceClass(config || {});
4816 if (ServiceClass) return new ServiceClass(config);
4817 this.initialize(config);
4818 },
4819
4820
4821 initialize: function initialize(config) {
4822 var svcConfig = AWS.config[this.serviceIdentifier];
4823
4824 this.config = new AWS.Config(AWS.config);
4825 if (svcConfig) this.config.update(svcConfig, true);
4826 if (config) this.config.update(config, true);
4827
4828 this.validateService();
4829 if (!this.config.endpoint) regionConfig(this);
4830
4831 this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);
4832 this.setEndpoint(this.config.endpoint);
4833 },
4834
4835
4836 validateService: function validateService() {
4837 },
4838
4839
4840 loadServiceClass: function loadServiceClass(serviceConfig) {
4841 var config = serviceConfig;
4842 if (!AWS.util.isEmpty(this.api)) {
4843 return null;
4844 } else if (config.apiConfig) {
4845 return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);
4846 } else if (!this.constructor.services) {
4847 return null;
4848 } else {
4849 config = new AWS.Config(AWS.config);
4850 config.update(serviceConfig, true);
4851 var version = config.apiVersions[this.constructor.serviceIdentifier];
4852 version = version || config.apiVersion;
4853 return this.getLatestServiceClass(version);
4854 }
4855 },
4856
4857
4858 getLatestServiceClass: function getLatestServiceClass(version) {
4859 version = this.getLatestServiceVersion(version);
4860 if (this.constructor.services[version] === null) {
4861 AWS.Service.defineServiceApi(this.constructor, version);
4862 }
4863
4864 return this.constructor.services[version];
4865 },
4866
4867
4868 getLatestServiceVersion: function getLatestServiceVersion(version) {
4869 if (!this.constructor.services || this.constructor.services.length === 0) {
4870 throw new Error('No services defined on ' +
4871 this.constructor.serviceIdentifier);
4872 }
4873
4874 if (!version) {
4875 version = 'latest';
4876 } else if (AWS.util.isType(version, Date)) {
4877 version = AWS.util.date.iso8601(version).split('T')[0];
4878 }
4879
4880 if (Object.hasOwnProperty(this.constructor.services, version)) {
4881 return version;
4882 }
4883
4884 var keys = Object.keys(this.constructor.services).sort();
4885 var selectedVersion = null;
4886 for (var i = keys.length - 1; i >= 0; i--) {
4887 if (keys[i][keys[i].length - 1] !== '*') {
4888 selectedVersion = keys[i];
4889 }
4890 if (keys[i].substr(0, 10) <= version) {
4891 return selectedVersion;
4892 }
4893 }
4894
4895 throw new Error('Could not find ' + this.constructor.serviceIdentifier +
4896 ' API to satisfy version constraint `' + version + '\'');
4897 },
4898
4899
4900 api: {},
4901
4902
4903 defaultRetryCount: 3,
4904
4905
4906 makeRequest: function makeRequest(operation, params, callback) {
4907 if (typeof params === 'function') {
4908 callback = params;
4909 params = null;
4910 }
4911
4912 params = params || {};
4913 if (this.config.params) { // copy only toplevel bound params
4914 var rules = this.api.operations[operation];
4915 if (rules) {
4916 params = AWS.util.copy(params);
4917 AWS.util.each(this.config.params, function(key, value) {
4918 if (rules.input.members[key]) {
4919 if (params[key] === undefined || params[key] === null) {
4920 params[key] = value;
4921 }
4922 }
4923 });
4924 }
4925 }
4926
4927 var request = new AWS.Request(this, operation, params);
4928 this.addAllRequestListeners(request);
4929
4930 if (callback) request.send(callback);
4931 return request;
4932 },
4933
4934
4935 makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {
4936 if (typeof params === 'function') {
4937 callback = params;
4938 params = {};
4939 }
4940
4941 var request = this.makeRequest(operation, params).toUnauthenticated();
4942 return callback ? request.send(callback) : request;
4943 },
4944
4945
4946 waitFor: function waitFor(state, params, callback) {
4947 var waiter = new AWS.ResourceWaiter(this, state);
4948 return waiter.wait(params, callback);
4949 },
4950
4951
4952 addAllRequestListeners: function addAllRequestListeners(request) {
4953 var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),
4954 AWS.EventListeners.CorePost];
4955 for (var i = 0; i < list.length; i++) {
4956 if (list[i]) request.addListeners(list[i]);
4957 }
4958
4959 if (!this.config.paramValidation) {
4960 request.removeListener('validate',
4961 AWS.EventListeners.Core.VALIDATE_PARAMETERS);
4962 }
4963
4964 if (this.config.logger) { // add logging events
4965 request.addListeners(AWS.EventListeners.Logger);
4966 }
4967
4968 this.setupRequestListeners(request);
4969 },
4970
4971
4972 setupRequestListeners: function setupRequestListeners() {
4973 },
4974
4975
4976 getSignerClass: function getSignerClass() {
4977 var version;
4978 if (this.config.signatureVersion) {
4979 version = this.config.signatureVersion;
4980 } else {
4981 version = this.api.signatureVersion;
4982 }
4983 return AWS.Signers.RequestSigner.getVersion(version);
4984 },
4985
4986
4987 serviceInterface: function serviceInterface() {
4988 switch (this.api.protocol) {
4989 case 'ec2': return AWS.EventListeners.Query;
4990 case 'query': return AWS.EventListeners.Query;
4991 case 'json': return AWS.EventListeners.Json;
4992 case 'rest-json': return AWS.EventListeners.RestJson;
4993 case 'rest-xml': return AWS.EventListeners.RestXml;
4994 }
4995 if (this.api.protocol) {
4996 throw new Error('Invalid service `protocol\' ' +
4997 this.api.protocol + ' in API config');
4998 }
4999 },
5000
5001
5002 successfulResponse: function successfulResponse(resp) {
5003 return resp.httpResponse.statusCode < 300;
5004 },
5005
5006
5007 numRetries: function numRetries() {
5008 if (this.config.maxRetries !== undefined) {
5009 return this.config.maxRetries;
5010 } else {
5011 return this.defaultRetryCount;
5012 }
5013 },
5014
5015
5016 retryDelays: function retryDelays(retryCount) {
5017 var retryDelayOptions = this.config.retryDelayOptions || {};
5018 var customBackoff = retryDelayOptions.customBackoff || null;
5019 if (typeof customBackoff === 'function') {
5020 return customBackoff(retryCount);
5021 }
5022 var base = retryDelayOptions.base || 30;
5023 var delay = Math.random() * (Math.pow(2, retryCount) * base);
5024 return delay;
5025 },
5026
5027
5028 retryableError: function retryableError(error) {
5029 if (this.networkingError(error)) return true;
5030 if (this.expiredCredentialsError(error)) return true;
5031 if (this.throttledError(error)) return true;
5032 if (error.statusCode >= 500) return true;
5033 return false;
5034 },
5035
5036
5037 networkingError: function networkingError(error) {
5038 return error.code === 'NetworkingError';
5039 },
5040
5041
5042 expiredCredentialsError: function expiredCredentialsError(error) {
5043 return (error.code === 'ExpiredTokenException');
5044 },
5045
5046
5047 clockSkewError: function clockSkewError(error) {
5048 switch (error.code) {
5049 case 'RequestTimeTooSkewed':
5050 case 'RequestExpired':
5051 case 'InvalidSignatureException':
5052 case 'SignatureDoesNotMatch':
5053 case 'AuthFailure':
5054 case 'RequestInTheFuture':
5055 return true;
5056 default: return false;
5057 }
5058 },
5059
5060
5061 throttledError: function throttledError(error) {
5062 switch (error.code) {
5063 case 'ProvisionedThroughputExceededException':
5064 case 'Throttling':
5065 case 'ThrottlingException':
5066 case 'RequestLimitExceeded':
5067 case 'RequestThrottled':
5068 return true;
5069 default:
5070 return false;
5071 }
5072 },
5073
5074
5075 endpointFromTemplate: function endpointFromTemplate(endpoint) {
5076 if (typeof endpoint !== 'string') return endpoint;
5077
5078 var e = endpoint;
5079 e = e.replace(/\{service\}/g, this.api.endpointPrefix);
5080 e = e.replace(/\{region\}/g, this.config.region);
5081 e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http');
5082 return e;
5083 },
5084
5085
5086 setEndpoint: function setEndpoint(endpoint) {
5087 this.endpoint = new AWS.Endpoint(endpoint, this.config);
5088 },
5089
5090
5091 paginationConfig: function paginationConfig(operation, throwException) {
5092 var paginator = this.api.operations[operation].paginator;
5093 if (!paginator) {
5094 if (throwException) {
5095 var e = new Error();
5096 throw AWS.util.error(e, 'No pagination configuration for ' + operation);
5097 }
5098 return null;
5099 }
5100
5101 return paginator;
5102 }
5103 });
5104
5105 AWS.util.update(AWS.Service, {
5106
5107
5108 defineMethods: function defineMethods(svc) {
5109 AWS.util.each(svc.prototype.api.operations, function iterator(method) {
5110 if (svc.prototype[method]) return;
5111 svc.prototype[method] = function (params, callback) {
5112 return this.makeRequest(method, params, callback);
5113 };
5114 });
5115 },
5116
5117
5118 defineService: function defineService(serviceIdentifier, versions, features) {
5119 AWS.Service._serviceMap[serviceIdentifier] = true;
5120 if (!Array.isArray(versions)) {
5121 features = versions;
5122 versions = [];
5123 }
5124
5125 var svc = inherit(AWS.Service, features || {});
5126
5127 if (typeof serviceIdentifier === 'string') {
5128 AWS.Service.addVersions(svc, versions);
5129
5130 var identifier = svc.serviceIdentifier || serviceIdentifier;
5131 svc.serviceIdentifier = identifier;
5132 } else { // defineService called with an API
5133 svc.prototype.api = serviceIdentifier;
5134 AWS.Service.defineMethods(svc);
5135 }
5136
5137 return svc;
5138 },
5139
5140
5141 addVersions: function addVersions(svc, versions) {
5142 if (!Array.isArray(versions)) versions = [versions];
5143
5144 svc.services = svc.services || {};
5145 for (var i = 0; i < versions.length; i++) {
5146 if (svc.services[versions[i]] === undefined) {
5147 svc.services[versions[i]] = null;
5148 }
5149 }
5150
5151 svc.apiVersions = Object.keys(svc.services).sort();
5152 },
5153
5154
5155 defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {
5156 var svc = inherit(superclass, {
5157 serviceIdentifier: superclass.serviceIdentifier
5158 });
5159
5160 function setApi(api) {
5161 if (api.isApi) {
5162 svc.prototype.api = api;
5163 } else {
5164 svc.prototype.api = new Api(api);
5165 }
5166 }
5167
5168 if (typeof version === 'string') {
5169 if (apiConfig) {
5170 setApi(apiConfig);
5171 } else {
5172 try {
5173 setApi(AWS.apiLoader(superclass.serviceIdentifier, version));
5174 } catch (err) {
5175 throw AWS.util.error(err, {
5176 message: 'Could not find API configuration ' +
5177 superclass.serviceIdentifier + '-' + version
5178 });
5179 }
5180 }
5181 if (!superclass.services.hasOwnProperty(version)) {
5182 superclass.apiVersions = superclass.apiVersions.concat(version).sort();
5183 }
5184 superclass.services[version] = svc;
5185 } else {
5186 setApi(version);
5187 }
5188
5189 AWS.Service.defineMethods(svc);
5190 return svc;
5191 },
5192
5193
5194 hasService: function(identifier) {
5195 return AWS.Service._serviceMap.hasOwnProperty(identifier);
5196 },
5197
5198
5199 _serviceMap: {}
5200 });
5201
5202 },{"./core":4,"./model/api":21,"./region_config":34}],42:[function(require,module,exports){
5203 var AWS = require('../core');
5204
5205 require('../cloudfront/signer');
5206
5207 AWS.util.update(AWS.CloudFront.prototype, {
5208
5209 setupRequestListeners: function setupRequestListeners(request) {
5210 request.addListener('extractData', AWS.util.hoistPayloadMember);
5211 }
5212
5213 });
5214
5215 },{"../cloudfront/signer":2,"../core":4}],43:[function(require,module,exports){
5216 var AWS = require('../core');
5217
5218 AWS.util.update(AWS.CognitoIdentity.prototype, {
5219 getOpenIdToken: function getOpenIdToken(params, callback) {
5220 return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback);
5221 },
5222
5223 getId: function getId(params, callback) {
5224 return this.makeUnauthenticatedRequest('getId', params, callback);
5225 },
5226
5227 getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) {
5228 return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback);
5229 }
5230 });
5231
5232 },{"../core":4}],44:[function(require,module,exports){
5233 var AWS = require('../core');
5234 require('../dynamodb/document_client');
5235
5236 AWS.util.update(AWS.DynamoDB.prototype, {
5237
5238 setupRequestListeners: function setupRequestListeners(request) {
5239 if (request.service.config.dynamoDbCrc32) {
5240 request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);
5241 request.addListener('extractData', this.checkCrc32);
5242 request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);
5243 }
5244 },
5245
5246
5247 checkCrc32: function checkCrc32(resp) {
5248 if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {
5249 resp.error = AWS.util.error(new Error(), {
5250 code: 'CRC32CheckFailed',
5251 message: 'CRC32 integrity check failed',
5252 retryable: true
5253 });
5254 resp.request.haltHandlersOnError();
5255 throw (resp.error);
5256 }
5257 },
5258
5259
5260 crc32IsValid: function crc32IsValid(resp) {
5261 var crc = resp.httpResponse.headers['x-amz-crc32'];
5262 if (!crc) return true; // no (valid) CRC32 header
5263 return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);
5264 },
5265
5266
5267 defaultRetryCount: 10,
5268
5269
5270 retryDelays: function retryDelays(retryCount) {
5271 var delay = retryCount > 0 ? (50 * Math.pow(2, retryCount - 1)) : 0;
5272 return delay;
5273 }
5274 });
5275
5276 },{"../core":4,"../dynamodb/document_client":12}],45:[function(require,module,exports){
5277 var AWS = require('../core');
5278
5279 AWS.util.update(AWS.EC2.prototype, {
5280
5281 setupRequestListeners: function setupRequestListeners(request) {
5282 request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);
5283 request.addListener('extractError', this.extractError);
5284
5285 if (request.operation === 'copySnapshot') {
5286 request.onAsync('validate', this.buildCopySnapshotPresignedUrl);
5287 }
5288 },
5289
5290
5291 buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {
5292 if (req.params.PresignedUrl || req._subRequest) {
5293 return done();
5294 }
5295
5296 req.params = AWS.util.copy(req.params);
5297 req.params.DestinationRegion = req.service.config.region;
5298
5299 var config = AWS.util.copy(req.service.config);
5300 delete config.endpoint;
5301 config.region = req.params.SourceRegion;
5302 var svc = new req.service.constructor(config);
5303 var newReq = svc[req.operation](req.params);
5304 newReq._subRequest = true;
5305 newReq.presign(function(err, url) {
5306 if (err) done(err);
5307 else {
5308 req.params.PresignedUrl = url;
5309 done();
5310 }
5311 });
5312 },
5313
5314
5315 extractError: function extractError(resp) {
5316 var httpResponse = resp.httpResponse;
5317 var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');
5318 if (data.Errors) {
5319 resp.error = AWS.util.error(new Error(), {
5320 code: data.Errors.Error.Code,
5321 message: data.Errors.Error.Message
5322 });
5323 } else {
5324 resp.error = AWS.util.error(new Error(), {
5325 code: httpResponse.statusCode,
5326 message: null
5327 });
5328 }
5329 resp.error.requestId = data.RequestID || null;
5330 }
5331 });
5332
5333 },{"../core":4}],46:[function(require,module,exports){
5334 var AWS = require('../core');
5335
5336 AWS.util.update(AWS.MachineLearning.prototype, {
5337
5338 setupRequestListeners: function setupRequestListeners(request) {
5339 if (request.operation === 'predict') {
5340 request.addListener('build', this.buildEndpoint);
5341 }
5342 },
5343
5344
5345 buildEndpoint: function buildEndpoint(request) {
5346 var url = request.params.PredictEndpoint;
5347 if (url) {
5348 request.httpRequest.endpoint = new AWS.Endpoint(url);
5349 }
5350 }
5351
5352 });
5353
5354 },{"../core":4}],47:[function(require,module,exports){
5355 var AWS = require('../core');
5356
5357 AWS.util.update(AWS.Route53.prototype, {
5358
5359 setupRequestListeners: function setupRequestListeners(request) {
5360 request.on('build', this.sanitizeUrl);
5361 },
5362
5363
5364 sanitizeUrl: function sanitizeUrl(request) {
5365 var path = request.httpRequest.path;
5366 request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/');
5367 }
5368 });
5369
5370 },{"../core":4}],48:[function(require,module,exports){
5371 var AWS = require('../core');
5372
5373 require('../s3/managed_upload');
5374
5375 AWS.util.update(AWS.S3.prototype, {
5376
5377 validateService: function validateService() {
5378 if (!this.config.region) this.config.region = 'us-east-1';
5379
5380 if (!this.config.endpoint && this.config.s3BucketEndpoint) {
5381 var msg = 'An endpoint must be provided when configuring ' +
5382 '`s3BucketEndpoint` to true.';
5383 throw AWS.util.error(new Error(),
5384 {name: 'InvalidEndpoint', message: msg});
5385 }
5386 },
5387
5388
5389 setupRequestListeners: function setupRequestListeners(request) {
5390 request.addListener('validate', this.validateScheme);
5391 request.addListener('validate', this.validateBucketEndpoint);
5392 request.addListener('build', this.addContentType);
5393 request.addListener('build', this.populateURI);
5394 request.addListener('build', this.computeContentMd5);
5395 request.addListener('build', this.computeSseCustomerKeyMd5);
5396 request.addListener('afterBuild', this.addExpect100Continue);
5397 request.removeListener('validate',
5398 AWS.EventListeners.Core.VALIDATE_REGION);
5399 request.addListener('extractError', this.extractError);
5400 request.addListener('extractData', this.extractData);
5401 request.addListener('extractData', AWS.util.hoistPayloadMember);
5402 request.addListener('beforePresign', this.prepareSignedUrl);
5403 },
5404
5405
5406 validateScheme: function(req) {
5407 var params = req.params,
5408 scheme = req.httpRequest.endpoint.protocol,
5409 sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;
5410 if (sensitive && scheme !== 'https:') {
5411 var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' +
5412 'to \'true\' in your configuration';
5413 throw AWS.util.error(new Error(),
5414 { code: 'ConfigError', message: msg });
5415 }
5416 },
5417
5418
5419 validateBucketEndpoint: function(req) {
5420 if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {
5421 var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';
5422 throw AWS.util.error(new Error(),
5423 { code: 'ConfigError', message: msg });
5424 }
5425 },
5426
5427
5428 populateURI: function populateURI(req) {
5429 var httpRequest = req.httpRequest;
5430 var b = req.params.Bucket;
5431
5432 if (b) {
5433 if (!req.service.pathStyleBucketName(b)) {
5434 if (!req.service.config.s3BucketEndpoint) {
5435 httpRequest.endpoint.hostname =
5436 b + '.' + httpRequest.endpoint.hostname;
5437
5438 var port = httpRequest.endpoint.port;
5439 if (port !== 80 && port !== 443) {
5440 httpRequest.endpoint.host = httpRequest.endpoint.hostname + ':' +
5441 httpRequest.endpoint.port;
5442 } else {
5443 httpRequest.endpoint.host = httpRequest.endpoint.hostname;
5444 }
5445 }
5446
5447 httpRequest.virtualHostedBucket = b; // needed for signing the request
5448 httpRequest.path = httpRequest.path.replace(new RegExp('/' + b), '');
5449 if (httpRequest.path[0] !== '/') {
5450 httpRequest.path = '/' + httpRequest.path;
5451 }
5452 }
5453 }
5454 },
5455
5456
5457 addExpect100Continue: function addExpect100Continue(req) {
5458 var len = req.httpRequest.headers['Content-Length'];
5459 if (AWS.util.isNode() && len >= 1024 * 1024) {
5460 req.httpRequest.headers['Expect'] = '100-continue';
5461 }
5462 },
5463
5464
5465 addContentType: function addContentType(req) {
5466 var httpRequest = req.httpRequest;
5467 if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {
5468 delete httpRequest.headers['Content-Type'];
5469 return;
5470 }
5471
5472 if (!httpRequest.headers['Content-Type']) { // always have a Content-Type
5473 httpRequest.headers['Content-Type'] = 'application/octet-stream';
5474 }
5475
5476 var contentType = httpRequest.headers['Content-Type'];
5477 if (AWS.util.isBrowser()) {
5478 if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) {
5479 var charset = '; charset=UTF-8';
5480 httpRequest.headers['Content-Type'] += charset;
5481 } else {
5482 var replaceFn = function(_, prefix, charsetName) {
5483 return prefix + charsetName.toUpperCase();
5484 };
5485
5486 httpRequest.headers['Content-Type'] =
5487 contentType.replace(/(;\s*charset=)(.+)$/, replaceFn);
5488 }
5489 }
5490 },
5491
5492
5493 computableChecksumOperations: {
5494 putBucketCors: true,
5495 putBucketLifecycle: true,
5496 putBucketLifecycleConfiguration: true,
5497 putBucketTagging: true,
5498 deleteObjects: true,
5499 putBucketReplication: true
5500 },
5501
5502
5503 willComputeChecksums: function willComputeChecksums(req) {
5504 if (this.computableChecksumOperations[req.operation]) return true;
5505 if (!this.config.computeChecksums) return false;
5506
5507 if (!AWS.util.Buffer.isBuffer(req.httpRequest.body) &&
5508 typeof req.httpRequest.body !== 'string') {
5509 return false;
5510 }
5511
5512 var rules = req.service.api.operations[req.operation].input.members;
5513
5514 if (req.service.getSignerClass(req) === AWS.Signers.V4) {
5515 if (rules.ContentMD5 && !rules.ContentMD5.required) return false;
5516 }
5517
5518 if (rules.ContentMD5 && !req.params.ContentMD5) return true;
5519 },
5520
5521
5522 computeContentMd5: function computeContentMd5(req) {
5523 if (req.service.willComputeChecksums(req)) {
5524 var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');
5525 req.httpRequest.headers['Content-MD5'] = md5;
5526 }
5527 },
5528
5529
5530 computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {
5531 var keys = {
5532 SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',
5533 CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'
5534 };
5535 AWS.util.each(keys, function(key, header) {
5536 if (req.params[key]) {
5537 var value = AWS.util.crypto.md5(req.params[key], 'base64');
5538 req.httpRequest.headers[header] = value;
5539 }
5540 });
5541 },
5542
5543
5544 pathStyleBucketName: function pathStyleBucketName(bucketName) {
5545 if (this.config.s3ForcePathStyle) return true;
5546 if (this.config.s3BucketEndpoint) return false;
5547
5548 if (this.dnsCompatibleBucketName(bucketName)) {
5549 return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false;
5550 } else {
5551 return true; // not dns compatible names must always use path style
5552 }
5553 },
5554
5555
5556 dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {
5557 var b = bucketName;
5558 var domain = new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/);
5559 var ipAddress = new RegExp(/(\d+\.){3}\d+/);
5560 var dots = new RegExp(/\.\./);
5561 return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;
5562 },
5563
5564
5565 successfulResponse: function successfulResponse(resp) {
5566 var req = resp.request;
5567 var httpResponse = resp.httpResponse;
5568 if (req.operation === 'completeMultipartUpload' &&
5569 httpResponse.body.toString().match('<Error>')) {
5570 return false;
5571 } else {
5572 return httpResponse.statusCode < 300;
5573 }
5574 },
5575
5576
5577 retryableError: function retryableError(error, request) {
5578 if (request.operation === 'completeMultipartUpload' &&
5579 error.statusCode === 200) {
5580 return true;
5581 } else if (error && error.code === 'RequestTimeout') {
5582 return true;
5583 } else if (error && error.code === 'AuthorizationHeaderMalformed' &&
5584 error.region && error.region != request.httpRequest.region) {
5585 request.httpRequest.region = error.region;
5586 return true;
5587 } else {
5588 var _super = AWS.Service.prototype.retryableError;
5589 return _super.call(this, error, request);
5590 }
5591 },
5592
5593
5594 extractData: function extractData(resp) {
5595 var req = resp.request;
5596 if (req.operation === 'getBucketLocation') {
5597 var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/);
5598 delete resp.data['_'];
5599 if (match) {
5600 resp.data.LocationConstraint = match[1];
5601 } else {
5602 resp.data.LocationConstraint = '';
5603 }
5604 }
5605 },
5606
5607
5608 extractError: function extractError(resp) {
5609 var codes = {
5610 304: 'NotModified',
5611 403: 'Forbidden',
5612 400: 'BadRequest',
5613 404: 'NotFound'
5614 };
5615
5616 var code = resp.httpResponse.statusCode;
5617 var body = resp.httpResponse.body || '';
5618 var requestId = resp.requestId;
5619 var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;
5620 if (codes[code] && body.length === 0) {
5621 resp.error = AWS.util.error(new Error(), {
5622 code: codes[resp.httpResponse.statusCode],
5623 message: null
5624 });
5625 } else {
5626 var data = new AWS.XML.Parser().parse(body.toString());
5627 resp.error = AWS.util.error(new Error(), {
5628 code: data.Code || code,
5629 message: data.Message || null,
5630 region: data.Region || null
5631 });
5632 }
5633 resp.error.requestId = requestId || null;
5634 resp.error.extendedRequestId = extendedRequestId || null;
5635 },
5636
5637
5638 getSignedUrl: function getSignedUrl(operation, params, callback) {
5639 params = AWS.util.copy(params || {});
5640 var expires = params.Expires || 900;
5641 delete params.Expires; // we can't validate this
5642 var request = this.makeRequest(operation, params);
5643 return request.presign(expires, callback);
5644 },
5645
5646
5647 prepareSignedUrl: function prepareSignedUrl(request) {
5648 request.addListener('validate', request.service.noPresignedContentLength);
5649 request.removeListener('build', request.service.addContentType);
5650 if (!request.params.Body) {
5651 request.removeListener('build', request.service.computeContentMd5);
5652 } else {
5653 request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);
5654 }
5655 },
5656
5657 noPresignedContentLength: function noPresignedContentLength(request) {
5658 if (request.params.ContentLength !== undefined) {
5659 throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',
5660 message: 'ContentLength is not supported in pre-signed URLs.'});
5661 }
5662 },
5663
5664 createBucket: function createBucket(params, callback) {
5665 if (typeof params === 'function' || !params) {
5666 callback = callback || params;
5667 params = {};
5668 }
5669 var hostname = this.endpoint.hostname;
5670 if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {
5671 params.CreateBucketConfiguration = { LocationConstraint: this.config.region };
5672 }
5673 return this.makeRequest('createBucket', params, callback);
5674 },
5675
5676
5677 upload: function upload(params, options, callback) {
5678 if (typeof options === 'function' && callback === undefined) {
5679 callback = options;
5680 options = null;
5681 }
5682
5683 options = options || {};
5684 options = AWS.util.merge(options || {}, {service: this, params: params});
5685
5686 var uploader = new AWS.S3.ManagedUpload(options);
5687 if (typeof callback === 'function') uploader.send(callback);
5688 return uploader;
5689 }
5690 });
5691
5692 },{"../core":4,"../s3/managed_upload":39}],49:[function(require,module,exports){
5693 var AWS = require('../core');
5694
5695 AWS.util.update(AWS.SQS.prototype, {
5696
5697 setupRequestListeners: function setupRequestListeners(request) {
5698 request.addListener('build', this.buildEndpoint);
5699
5700 if (request.service.config.computeChecksums) {
5701 if (request.operation === 'sendMessage') {
5702 request.addListener('extractData', this.verifySendMessageChecksum);
5703 } else if (request.operation === 'sendMessageBatch') {
5704 request.addListener('extractData', this.verifySendMessageBatchChecksum);
5705 } else if (request.operation === 'receiveMessage') {
5706 request.addListener('extractData', this.verifyReceiveMessageChecksum);
5707 }
5708 }
5709 },
5710
5711
5712 verifySendMessageChecksum: function verifySendMessageChecksum(response) {
5713 if (!response.data) return;
5714
5715 var md5 = response.data.MD5OfMessageBody;
5716 var body = this.params.MessageBody;
5717 var calculatedMd5 = this.service.calculateChecksum(body);
5718 if (calculatedMd5 !== md5) {
5719 var msg = 'Got "' + response.data.MD5OfMessageBody +
5720 '", expecting "' + calculatedMd5 + '".';
5721 this.service.throwInvalidChecksumError(response,
5722 [response.data.MessageId], msg);
5723 }
5724 },
5725
5726
5727 verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {
5728 if (!response.data) return;
5729
5730 var service = this.service;
5731 var entries = {};
5732 var errors = [];
5733 var messageIds = [];
5734 AWS.util.arrayEach(response.data.Successful, function (entry) {
5735 entries[entry.Id] = entry;
5736 });
5737 AWS.util.arrayEach(this.params.Entries, function (entry) {
5738 if (entries[entry.Id]) {
5739 var md5 = entries[entry.Id].MD5OfMessageBody;
5740 var body = entry.MessageBody;
5741 if (!service.isChecksumValid(md5, body)) {
5742 errors.push(entry.Id);
5743 messageIds.push(entries[entry.Id].MessageId);
5744 }
5745 }
5746 });
5747
5748 if (errors.length > 0) {
5749 service.throwInvalidChecksumError(response, messageIds,
5750 'Invalid messages: ' + errors.join(', '));
5751 }
5752 },
5753
5754
5755 verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {
5756 if (!response.data) return;
5757
5758 var service = this.service;
5759 var messageIds = [];
5760 AWS.util.arrayEach(response.data.Messages, function(message) {
5761 var md5 = message.MD5OfBody;
5762 var body = message.Body;
5763 if (!service.isChecksumValid(md5, body)) {
5764 messageIds.push(message.MessageId);
5765 }
5766 });
5767
5768 if (messageIds.length > 0) {
5769 service.throwInvalidChecksumError(response, messageIds,
5770 'Invalid messages: ' + messageIds.join(', '));
5771 }
5772 },
5773
5774
5775 throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {
5776 response.error = AWS.util.error(new Error(), {
5777 retryable: true,
5778 code: 'InvalidChecksum',
5779 messageIds: ids,
5780 message: response.request.operation +
5781 ' returned an invalid MD5 response. ' + message
5782 });
5783 },
5784
5785
5786 isChecksumValid: function isChecksumValid(checksum, data) {
5787 return this.calculateChecksum(data) === checksum;
5788 },
5789
5790
5791 calculateChecksum: function calculateChecksum(data) {
5792 return AWS.util.crypto.md5(data, 'hex');
5793 },
5794
5795
5796 buildEndpoint: function buildEndpoint(request) {
5797 var url = request.httpRequest.params.QueueUrl;
5798 if (url) {
5799 request.httpRequest.endpoint = new AWS.Endpoint(url);
5800
5801 var matches = request.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);
5802 if (matches) request.httpRequest.region = matches[1];
5803 }
5804 }
5805 });
5806
5807 },{"../core":4}],50:[function(require,module,exports){
5808 var AWS = require('../core');
5809
5810 AWS.util.update(AWS.STS.prototype, {
5811
5812 credentialsFrom: function credentialsFrom(data, credentials) {
5813 if (!data) return null;
5814 if (!credentials) credentials = new AWS.TemporaryCredentials();
5815 credentials.expired = false;
5816 credentials.accessKeyId = data.Credentials.AccessKeyId;
5817 credentials.secretAccessKey = data.Credentials.SecretAccessKey;
5818 credentials.sessionToken = data.Credentials.SessionToken;
5819 credentials.expireTime = data.Credentials.Expiration;
5820 return credentials;
5821 },
5822
5823 assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {
5824 return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);
5825 },
5826
5827 assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {
5828 return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);
5829 }
5830 });
5831
5832 },{"../core":4}],51:[function(require,module,exports){
5833 var AWS = require('../core');
5834 var inherit = AWS.util.inherit;
5835
5836
5837 var expiresHeader = 'presigned-expires';
5838
5839
5840 function signedUrlBuilder(request) {
5841 var expires = request.httpRequest.headers[expiresHeader];
5842
5843 delete request.httpRequest.headers['User-Agent'];
5844 delete request.httpRequest.headers['X-Amz-User-Agent'];
5845
5846 if (request.service.getSignerClass() === AWS.Signers.V4) {
5847 if (expires > 604800) { // one week expiry is invalid
5848 var message = 'Presigning does not support expiry time greater ' +
5849 'than a week with SigV4 signing.';
5850 throw AWS.util.error(new Error(), {
5851 code: 'InvalidExpiryTime', message: message, retryable: false
5852 });
5853 }
5854 request.httpRequest.headers[expiresHeader] = expires;
5855 } else if (request.service.getSignerClass() === AWS.Signers.S3) {
5856 request.httpRequest.headers[expiresHeader] = parseInt(
5857 AWS.util.date.unixTimestamp() + expires, 10).toString();
5858 } else {
5859 throw AWS.util.error(new Error(), {
5860 message: 'Presigning only supports S3 or SigV4 signing.',
5861 code: 'UnsupportedSigner', retryable: false
5862 });
5863 }
5864 }
5865
5866
5867 function signedUrlSigner(request) {
5868 var endpoint = request.httpRequest.endpoint;
5869 var parsedUrl = AWS.util.urlParse(request.httpRequest.path);
5870 var queryParams = {};
5871
5872 if (parsedUrl.search) {
5873 queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));
5874 }
5875
5876 AWS.util.each(request.httpRequest.headers, function (key, value) {
5877 if (key === expiresHeader) key = 'Expires';
5878 if (key.indexOf('x-amz-meta-') === 0) {
5879 key = key.toLowerCase();
5880 }
5881 queryParams[key] = value;
5882 });
5883 delete request.httpRequest.headers[expiresHeader];
5884
5885 var auth = queryParams['Authorization'].split(' ');
5886 if (auth[0] === 'AWS') {
5887 auth = auth[1].split(':');
5888 queryParams['AWSAccessKeyId'] = auth[0];
5889 queryParams['Signature'] = auth[1];
5890 } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing
5891 auth.shift();
5892 var rest = auth.join(' ');
5893 var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];
5894 queryParams['X-Amz-Signature'] = signature;
5895 delete queryParams['Expires'];
5896 }
5897 delete queryParams['Authorization'];
5898 delete queryParams['Host'];
5899
5900 endpoint.pathname = parsedUrl.pathname;
5901 endpoint.search = AWS.util.queryParamsToString(queryParams);
5902 }
5903
5904
5905 AWS.Signers.Presign = inherit({
5906
5907 sign: function sign(request, expireTime, callback) {
5908 request.httpRequest.headers[expiresHeader] = expireTime || 3600;
5909 request.on('build', signedUrlBuilder);
5910 request.on('sign', signedUrlSigner);
5911 request.removeListener('afterBuild',
5912 AWS.EventListeners.Core.SET_CONTENT_LENGTH);
5913 request.removeListener('afterBuild',
5914 AWS.EventListeners.Core.COMPUTE_SHA256);
5915
5916 request.emit('beforePresign', [request]);
5917
5918 if (callback) {
5919 request.build(function() {
5920 if (this.response.error) callback(this.response.error);
5921 else {
5922 callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));
5923 }
5924 });
5925 } else {
5926 request.build();
5927 if (request.response.error) throw request.response.error;
5928 return AWS.util.urlFormat(request.httpRequest.endpoint);
5929 }
5930 }
5931 });
5932
5933 module.exports = AWS.Signers.Presign;
5934
5935 },{"../core":4}],52:[function(require,module,exports){
5936 var AWS = require('../core');
5937 var inherit = AWS.util.inherit;
5938
5939
5940 AWS.Signers.RequestSigner = inherit({
5941 constructor: function RequestSigner(request) {
5942 this.request = request;
5943 }
5944 });
5945
5946 AWS.Signers.RequestSigner.getVersion = function getVersion(version) {
5947 switch (version) {
5948 case 'v2': return AWS.Signers.V2;
5949 case 'v3': return AWS.Signers.V3;
5950 case 'v4': return AWS.Signers.V4;
5951 case 's3': return AWS.Signers.S3;
5952 case 'v3https': return AWS.Signers.V3Https;
5953 }
5954 throw new Error('Unknown signing version ' + version);
5955 };
5956
5957 require('./v2');
5958 require('./v3');
5959 require('./v3https');
5960 require('./v4');
5961 require('./s3');
5962 require('./presign');
5963
5964 },{"../core":4,"./presign":51,"./s3":53,"./v2":54,"./v3":55,"./v3https":56,"./v4":57}],53:[function(require,module,exports){
5965 var AWS = require('../core');
5966 var inherit = AWS.util.inherit;
5967
5968
5969 AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {
5970
5971 subResources: {
5972 'acl': 1,
5973 'cors': 1,
5974 'lifecycle': 1,
5975 'delete': 1,
5976 'location': 1,
5977 'logging': 1,
5978 'notification': 1,
5979 'partNumber': 1,
5980 'policy': 1,
5981 'requestPayment': 1,
5982 'replication': 1,
5983 'restore': 1,
5984 'tagging': 1,
5985 'torrent': 1,
5986 'uploadId': 1,
5987 'uploads': 1,
5988 'versionId': 1,
5989 'versioning': 1,
5990 'versions': 1,
5991 'website': 1
5992 },
5993
5994 responseHeaders: {
5995 'response-content-type': 1,
5996 'response-content-language': 1,
5997 'response-expires': 1,
5998 'response-cache-control': 1,
5999 'response-content-disposition': 1,
6000 'response-content-encoding': 1
6001 },
6002
6003 addAuthorization: function addAuthorization(credentials, date) {
6004 if (!this.request.headers['presigned-expires']) {
6005 this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);
6006 }
6007
6008 if (credentials.sessionToken) {
6009 this.request.headers['x-amz-security-token'] = credentials.sessionToken;
6010 }
6011
6012 var signature = this.sign(credentials.secretAccessKey, this.stringToSign());
6013 var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;
6014
6015 this.request.headers['Authorization'] = auth;
6016 },
6017
6018 stringToSign: function stringToSign() {
6019 var r = this.request;
6020
6021 var parts = [];
6022 parts.push(r.method);
6023 parts.push(r.headers['Content-MD5'] || '');
6024 parts.push(r.headers['Content-Type'] || '');
6025
6026 parts.push(r.headers['presigned-expires'] || '');
6027
6028 var headers = this.canonicalizedAmzHeaders();
6029 if (headers) parts.push(headers);
6030 parts.push(this.canonicalizedResource());
6031
6032 return parts.join('\n');
6033
6034 },
6035
6036 canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {
6037
6038 var amzHeaders = [];
6039
6040 AWS.util.each(this.request.headers, function (name) {
6041 if (name.match(/^x-amz-/i))
6042 amzHeaders.push(name);
6043 });
6044
6045 amzHeaders.sort(function (a, b) {
6046 return a.toLowerCase() < b.toLowerCase() ? -1 : 1;
6047 });
6048
6049 var parts = [];
6050 AWS.util.arrayEach.call(this, amzHeaders, function (name) {
6051 parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));
6052 });
6053
6054 return parts.join('\n');
6055
6056 },
6057
6058 canonicalizedResource: function canonicalizedResource() {
6059
6060 var r = this.request;
6061
6062 var parts = r.path.split('?');
6063 var path = parts[0];
6064 var querystring = parts[1];
6065
6066 var resource = '';
6067
6068 if (r.virtualHostedBucket)
6069 resource += '/' + r.virtualHostedBucket;
6070
6071 resource += path;
6072
6073 if (querystring) {
6074
6075 var resources = [];
6076
6077 AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {
6078 var name = param.split('=')[0];
6079 var value = param.split('=')[1];
6080 if (this.subResources[name] || this.responseHeaders[name]) {
6081 var subresource = { name: name };
6082 if (value !== undefined) {
6083 if (this.subResources[name]) {
6084 subresource.value = value;
6085 } else {
6086 subresource.value = decodeURIComponent(value);
6087 }
6088 }
6089 resources.push(subresource);
6090 }
6091 });
6092
6093 resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });
6094
6095 if (resources.length) {
6096
6097 querystring = [];
6098 AWS.util.arrayEach(resources, function (res) {
6099 if (res.value === undefined) {
6100 querystring.push(res.name);
6101 } else {
6102 querystring.push(res.name + '=' + res.value);
6103 }
6104 });
6105
6106 resource += '?' + querystring.join('&');
6107 }
6108
6109 }
6110
6111 return resource;
6112
6113 },
6114
6115 sign: function sign(secret, string) {
6116 return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');
6117 }
6118 });
6119
6120 module.exports = AWS.Signers.S3;
6121
6122 },{"../core":4}],54:[function(require,module,exports){
6123 var AWS = require('../core');
6124 var inherit = AWS.util.inherit;
6125
6126
6127 AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {
6128 addAuthorization: function addAuthorization(credentials, date) {
6129
6130 if (!date) date = AWS.util.date.getDate();
6131
6132 var r = this.request;
6133
6134 r.params.Timestamp = AWS.util.date.iso8601(date);
6135 r.params.SignatureVersion = '2';
6136 r.params.SignatureMethod = 'HmacSHA256';
6137 r.params.AWSAccessKeyId = credentials.accessKeyId;
6138
6139 if (credentials.sessionToken) {
6140 r.params.SecurityToken = credentials.sessionToken;
6141 }
6142
6143 delete r.params.Signature; // delete old Signature for re-signing
6144 r.params.Signature = this.signature(credentials);
6145
6146 r.body = AWS.util.queryParamsToString(r.params);
6147 r.headers['Content-Length'] = r.body.length;
6148 },
6149
6150 signature: function signature(credentials) {
6151 return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');
6152 },
6153
6154 stringToSign: function stringToSign() {
6155 var parts = [];
6156 parts.push(this.request.method);
6157 parts.push(this.request.endpoint.host.toLowerCase());
6158 parts.push(this.request.pathname());
6159 parts.push(AWS.util.queryParamsToString(this.request.params));
6160 return parts.join('\n');
6161 }
6162
6163 });
6164
6165 module.exports = AWS.Signers.V2;
6166
6167 },{"../core":4}],55:[function(require,module,exports){
6168 var AWS = require('../core');
6169 var inherit = AWS.util.inherit;
6170
6171
6172 AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {
6173 addAuthorization: function addAuthorization(credentials, date) {
6174
6175 var datetime = AWS.util.date.rfc822(date);
6176
6177 this.request.headers['X-Amz-Date'] = datetime;
6178
6179 if (credentials.sessionToken) {
6180 this.request.headers['x-amz-security-token'] = credentials.sessionToken;
6181 }
6182
6183 this.request.headers['X-Amzn-Authorization'] =
6184 this.authorization(credentials, datetime);
6185
6186 },
6187
6188 authorization: function authorization(credentials) {
6189 return 'AWS3 ' +
6190 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +
6191 'Algorithm=HmacSHA256,' +
6192 'SignedHeaders=' + this.signedHeaders() + ',' +
6193 'Signature=' + this.signature(credentials);
6194 },
6195
6196 signedHeaders: function signedHeaders() {
6197 var headers = [];
6198 AWS.util.arrayEach(this.headersToSign(), function iterator(h) {
6199 headers.push(h.toLowerCase());
6200 });
6201 return headers.sort().join(';');
6202 },
6203
6204 canonicalHeaders: function canonicalHeaders() {
6205 var headers = this.request.headers;
6206 var parts = [];
6207 AWS.util.arrayEach(this.headersToSign(), function iterator(h) {
6208 parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());
6209 });
6210 return parts.sort().join('\n') + '\n';
6211 },
6212
6213 headersToSign: function headersToSign() {
6214 var headers = [];
6215 AWS.util.each(this.request.headers, function iterator(k) {
6216 if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {
6217 headers.push(k);
6218 }
6219 });
6220 return headers;
6221 },
6222
6223 signature: function signature(credentials) {
6224 return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');
6225 },
6226
6227 stringToSign: function stringToSign() {
6228 var parts = [];
6229 parts.push(this.request.method);
6230 parts.push('/');
6231 parts.push('');
6232 parts.push(this.canonicalHeaders());
6233 parts.push(this.request.body);
6234 return AWS.util.crypto.sha256(parts.join('\n'));
6235 }
6236
6237 });
6238
6239 module.exports = AWS.Signers.V3;
6240
6241 },{"../core":4}],56:[function(require,module,exports){
6242 var AWS = require('../core');
6243 var inherit = AWS.util.inherit;
6244
6245 require('./v3');
6246
6247
6248 AWS.Signers.V3Https = inherit(AWS.Signers.V3, {
6249 authorization: function authorization(credentials) {
6250 return 'AWS3-HTTPS ' +
6251 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +
6252 'Algorithm=HmacSHA256,' +
6253 'Signature=' + this.signature(credentials);
6254 },
6255
6256 stringToSign: function stringToSign() {
6257 return this.request.headers['X-Amz-Date'];
6258 }
6259 });
6260
6261 module.exports = AWS.Signers.V3Https;
6262
6263 },{"../core":4,"./v3":55}],57:[function(require,module,exports){
6264 var AWS = require('../core');
6265 var inherit = AWS.util.inherit;
6266
6267
6268 var cachedSecret = {};
6269
6270
6271 var expiresHeader = 'presigned-expires';
6272
6273
6274 AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {
6275 constructor: function V4(request, serviceName, signatureCache) {
6276 AWS.Signers.RequestSigner.call(this, request);
6277 this.serviceName = serviceName;
6278 this.signatureCache = signatureCache;
6279 },
6280
6281 algorithm: 'AWS4-HMAC-SHA256',
6282
6283 addAuthorization: function addAuthorization(credentials, date) {
6284 var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, '');
6285
6286 if (this.isPresigned()) {
6287 this.updateForPresigned(credentials, datetime);
6288 } else {
6289 this.addHeaders(credentials, datetime);
6290 }
6291
6292 this.request.headers['Authorization'] =
6293 this.authorization(credentials, datetime);
6294 },
6295
6296 addHeaders: function addHeaders(credentials, datetime) {
6297 this.request.headers['X-Amz-Date'] = datetime;
6298 if (credentials.sessionToken) {
6299 this.request.headers['x-amz-security-token'] = credentials.sessionToken;
6300 }
6301 },
6302
6303 updateForPresigned: function updateForPresigned(credentials, datetime) {
6304 var credString = this.credentialString(datetime);
6305 var qs = {
6306 'X-Amz-Date': datetime,
6307 'X-Amz-Algorithm': this.algorithm,
6308 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,
6309 'X-Amz-Expires': this.request.headers[expiresHeader],
6310 'X-Amz-SignedHeaders': this.signedHeaders()
6311 };
6312
6313 if (credentials.sessionToken) {
6314 qs['X-Amz-Security-Token'] = credentials.sessionToken;
6315 }
6316
6317 if (this.request.headers['Content-Type']) {
6318 qs['Content-Type'] = this.request.headers['Content-Type'];
6319 }
6320 if (this.request.headers['Content-MD5']) {
6321 qs['Content-MD5'] = this.request.headers['Content-MD5'];
6322 }
6323 if (this.request.headers['Cache-Control']) {
6324 qs['Cache-Control'] = this.request.headers['Cache-Control'];
6325 }
6326
6327 AWS.util.each.call(this, this.request.headers, function(key, value) {
6328 if (key === expiresHeader) return;
6329 if (this.isSignableHeader(key) &&
6330 key.toLowerCase().indexOf('x-amz-') === 0) {
6331 qs[key] = value;
6332 }
6333 });
6334
6335 var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';
6336 this.request.path += sep + AWS.util.queryParamsToString(qs);
6337 },
6338
6339 authorization: function authorization(credentials, datetime) {
6340 var parts = [];
6341 var credString = this.credentialString(datetime);
6342 parts.push(this.algorithm + ' Credential=' +
6343 credentials.accessKeyId + '/' + credString);
6344 parts.push('SignedHeaders=' + this.signedHeaders());
6345 parts.push('Signature=' + this.signature(credentials, datetime));
6346 return parts.join(', ');
6347 },
6348
6349 signature: function signature(credentials, datetime) {
6350 var cache = null;
6351 if (this.signatureCache) {
6352 var cache = cachedSecret[this.serviceName];
6353 }
6354 var date = datetime.substr(0, 8);
6355
6356 if (!cache ||
6357 cache.akid !== credentials.accessKeyId ||
6358 cache.region !== this.request.region ||
6359 cache.date !== date) {
6360
6361 var kSecret = credentials.secretAccessKey;
6362 var kDate = AWS.util.crypto.hmac('AWS4' + kSecret, date, 'buffer');
6363 var kRegion = AWS.util.crypto.hmac(kDate, this.request.region, 'buffer');
6364 var kService = AWS.util.crypto.hmac(kRegion, this.serviceName, 'buffer');
6365 var kCredentials = AWS.util.crypto.hmac(kService, 'aws4_request', 'buffer');
6366
6367 if (!this.signatureCache) {
6368 return AWS.util.crypto.hmac(kCredentials, this.stringToSign(datetime), 'hex');
6369 }
6370
6371 cachedSecret[this.serviceName] = {
6372 region: this.request.region, date: date,
6373 key: kCredentials, akid: credentials.accessKeyId
6374 };
6375 }
6376
6377 var key = cachedSecret[this.serviceName].key;
6378 return AWS.util.crypto.hmac(key, this.stringToSign(datetime), 'hex');
6379 },
6380
6381 stringToSign: function stringToSign(datetime) {
6382 var parts = [];
6383 parts.push('AWS4-HMAC-SHA256');
6384 parts.push(datetime);
6385 parts.push(this.credentialString(datetime));
6386 parts.push(this.hexEncodedHash(this.canonicalString()));
6387 return parts.join('\n');
6388 },
6389
6390 canonicalString: function canonicalString() {
6391 var parts = [], pathname = this.request.pathname();
6392 if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname);
6393
6394 parts.push(this.request.method);
6395 parts.push(pathname);
6396 parts.push(this.request.search());
6397 parts.push(this.canonicalHeaders() + '\n');
6398 parts.push(this.signedHeaders());
6399 parts.push(this.hexEncodedBodyHash());
6400 return parts.join('\n');
6401 },
6402
6403 canonicalHeaders: function canonicalHeaders() {
6404 var headers = [];
6405 AWS.util.each.call(this, this.request.headers, function (key, item) {
6406 headers.push([key, item]);
6407 });
6408 headers.sort(function (a, b) {
6409 return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;
6410 });
6411 var parts = [];
6412 AWS.util.arrayEach.call(this, headers, function (item) {
6413 var key = item[0].toLowerCase();
6414 if (this.isSignableHeader(key)) {
6415 parts.push(key + ':' +
6416 this.canonicalHeaderValues(item[1].toString()));
6417 }
6418 });
6419 return parts.join('\n');
6420 },
6421
6422 canonicalHeaderValues: function canonicalHeaderValues(values) {
6423 return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '');
6424 },
6425
6426 signedHeaders: function signedHeaders() {
6427 var keys = [];
6428 AWS.util.each.call(this, this.request.headers, function (key) {
6429 key = key.toLowerCase();
6430 if (this.isSignableHeader(key)) keys.push(key);
6431 });
6432 return keys.sort().join(';');
6433 },
6434
6435 credentialString: function credentialString(datetime) {
6436 var parts = [];
6437 parts.push(datetime.substr(0, 8));
6438 parts.push(this.request.region);
6439 parts.push(this.serviceName);
6440 parts.push('aws4_request');
6441 return parts.join('/');
6442 },
6443
6444 hexEncodedHash: function hash(string) {
6445 return AWS.util.crypto.sha256(string, 'hex');
6446 },
6447
6448 hexEncodedBodyHash: function hexEncodedBodyHash() {
6449 if (this.isPresigned() && this.serviceName === 's3') {
6450 return 'UNSIGNED-PAYLOAD';
6451 } else if (this.request.headers['X-Amz-Content-Sha256']) {
6452 return this.request.headers['X-Amz-Content-Sha256'];
6453 } else {
6454 return this.hexEncodedHash(this.request.body || '');
6455 }
6456 },
6457
6458 unsignableHeaders: ['authorization', 'content-type', 'content-length',
6459 'user-agent', expiresHeader],
6460
6461 isSignableHeader: function isSignableHeader(key) {
6462 if (key.toLowerCase().indexOf('x-amz-') === 0) return true;
6463 return this.unsignableHeaders.indexOf(key) < 0;
6464 },
6465
6466 isPresigned: function isPresigned() {
6467 return this.request.headers[expiresHeader] ? true : false;
6468 }
6469
6470 });
6471
6472 module.exports = AWS.Signers.V4;
6473
6474 },{"../core":4}],58:[function(require,module,exports){
6475 function AcceptorStateMachine(states, state) {
6476 this.currentState = state || null;
6477 this.states = states || {};
6478 }
6479
6480 AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {
6481 if (typeof finalState === 'function') {
6482 inputError = bindObject; bindObject = done;
6483 done = finalState; finalState = null;
6484 }
6485
6486 var self = this;
6487 var state = self.states[self.currentState];
6488 state.fn.call(bindObject || self, inputError, function(err) {
6489 if (err) {
6490 if (state.fail) self.currentState = state.fail;
6491 else return done ? done.call(bindObject, err) : null;
6492 } else {
6493 if (state.accept) self.currentState = state.accept;
6494 else return done ? done.call(bindObject) : null;
6495 }
6496 if (self.currentState === finalState) {
6497 return done ? done.call(bindObject, err) : null;
6498 }
6499
6500 self.runTo(finalState, done, bindObject, err);
6501 });
6502 };
6503
6504 AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {
6505 if (typeof acceptState === 'function') {
6506 fn = acceptState; acceptState = null; failState = null;
6507 } else if (typeof failState === 'function') {
6508 fn = failState; failState = null;
6509 }
6510
6511 if (!this.currentState) this.currentState = name;
6512 this.states[name] = { accept: acceptState, fail: failState, fn: fn };
6513 return this;
6514 };
6515
6516 module.exports = AcceptorStateMachine;
6517
6518 },{}],59:[function(require,module,exports){
6519 (function (process){
6520
6521
6522 var cryptoLib = require('crypto');
6523 var Buffer = require('buffer').Buffer;
6524 var AWS;
6525
6526
6527 var util = {
6528 engine: function engine() {
6529 if (util.isBrowser() && typeof navigator !== 'undefined') {
6530 return navigator.userAgent;
6531 } else {
6532 return process.platform + '/' + process.version;
6533 }
6534 },
6535
6536 userAgent: function userAgent() {
6537 var name = util.isBrowser() ? 'js' : 'nodejs';
6538 var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;
6539 if (name === 'nodejs') agent += ' ' + util.engine();
6540 return agent;
6541 },
6542
6543 isBrowser: function isBrowser() { return process && process.browser; },
6544 isNode: function isNode() { return !util.isBrowser(); },
6545 nodeRequire: function nodeRequire(module) {
6546 if (util.isNode()) return require(module);
6547 },
6548 multiRequire: function multiRequire(module1, module2) {
6549 return require(util.isNode() ? module1 : module2);
6550 },
6551
6552 uriEscape: function uriEscape(string) {
6553 var output = encodeURIComponent(string);
6554 output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape);
6555
6556 output = output.replace(/[*]/g, function(ch) {
6557 return '%' + ch.charCodeAt(0).toString(16).toUpperCase();
6558 });
6559
6560 return output;
6561 },
6562
6563 uriEscapePath: function uriEscapePath(string) {
6564 var parts = [];
6565 util.arrayEach(string.split('/'), function (part) {
6566 parts.push(util.uriEscape(part));
6567 });
6568 return parts.join('/');
6569 },
6570
6571 urlParse: function urlParse(url) {
6572 return require('url').parse(url);
6573 },
6574
6575 urlFormat: function urlFormat(url) {
6576 return require('url').format(url);
6577 },
6578
6579 queryStringParse: function queryStringParse(qs) {
6580 return require('querystring').parse(qs);
6581 },
6582
6583 queryParamsToString: function queryParamsToString(params) {
6584 var items = [];
6585 var escape = util.uriEscape;
6586 var sortedKeys = Object.keys(params).sort();
6587
6588 util.arrayEach(sortedKeys, function(name) {
6589 var value = params[name];
6590 var ename = escape(name);
6591 var result = ename + '=';
6592 if (Array.isArray(value)) {
6593 var vals = [];
6594 util.arrayEach(value, function(item) { vals.push(escape(item)); });
6595 result = ename + '=' + vals.sort().join('&' + ename + '=');
6596 } else if (value !== undefined && value !== null) {
6597 result = ename + '=' + escape(value);
6598 }
6599 items.push(result);
6600 });
6601
6602 return items.join('&');
6603 },
6604
6605 readFileSync: function readFileSync(path) {
6606 if (typeof window !== 'undefined') return null;
6607 return util.nodeRequire('fs').readFileSync(path, 'utf-8');
6608 },
6609
6610 base64: {
6611
6612 encode: function encode64(string) {
6613 return new Buffer(string).toString('base64');
6614 },
6615
6616 decode: function decode64(string) {
6617 return new Buffer(string, 'base64');
6618 }
6619
6620 },
6621
6622 Buffer: Buffer,
6623
6624 buffer: {
6625 toStream: function toStream(buffer) {
6626 if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer);
6627
6628 var readable = new (util.nodeRequire('stream').Readable)();
6629 var pos = 0;
6630 readable._read = function(size) {
6631 if (pos >= buffer.length) return readable.push(null);
6632
6633 var end = pos + size;
6634 if (end > buffer.length) end = buffer.length;
6635 readable.push(buffer.slice(pos, end));
6636 pos = end;
6637 };
6638
6639 return readable;
6640 },
6641
6642
6643 concat: function(buffers) {
6644 var length = 0,
6645 offset = 0,
6646 buffer = null, i;
6647
6648 for (i = 0; i < buffers.length; i++) {
6649 length += buffers[i].length;
6650 }
6651
6652 buffer = new Buffer(length);
6653
6654 for (i = 0; i < buffers.length; i++) {
6655 buffers[i].copy(buffer, offset);
6656 offset += buffers[i].length;
6657 }
6658
6659 return buffer;
6660 }
6661 },
6662
6663 string: {
6664 byteLength: function byteLength(string) {
6665 if (string === null || string === undefined) return 0;
6666 if (typeof string === 'string') string = new Buffer(string);
6667
6668 if (typeof string.byteLength === 'number') {
6669 return string.byteLength;
6670 } else if (typeof string.length === 'number') {
6671 return string.length;
6672 } else if (typeof string.size === 'number') {
6673 return string.size;
6674 } else if (typeof string.path === 'string') {
6675 return util.nodeRequire('fs').lstatSync(string.path).size;
6676 } else {
6677 throw util.error(new Error('Cannot determine length of ' + string),
6678 { object: string });
6679 }
6680 },
6681
6682 upperFirst: function upperFirst(string) {
6683 return string[0].toUpperCase() + string.substr(1);
6684 },
6685
6686 lowerFirst: function lowerFirst(string) {
6687 return string[0].toLowerCase() + string.substr(1);
6688 }
6689 },
6690
6691 ini: {
6692 parse: function string(ini) {
6693 var currentSection, map = {};
6694 util.arrayEach(ini.split(/\r?\n/), function(line) {
6695 line = line.split(/(^|\s);/)[0]; // remove comments
6696 var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/);
6697 if (section) {
6698 currentSection = section[1];
6699 } else if (currentSection) {
6700 var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/);
6701 if (item) {
6702 map[currentSection] = map[currentSection] || {};
6703 map[currentSection][item[1]] = item[2];
6704 }
6705 }
6706 });
6707
6708 return map;
6709 }
6710 },
6711
6712 fn: {
6713 noop: function() {},
6714
6715
6716 makeAsync: function makeAsync(fn, expectedArgs) {
6717 if (expectedArgs && expectedArgs <= fn.length) {
6718 return fn;
6719 }
6720
6721 return function() {
6722 var args = Array.prototype.slice.call(arguments, 0);
6723 var callback = args.pop();
6724 var result = fn.apply(null, args);
6725 callback(result);
6726 };
6727 }
6728 },
6729
6730 jamespath: {
6731 query: function query(expression, data) {
6732 if (!data) return [];
6733
6734 var results = [];
6735 var expressions = expression.split(/\s+\|\|\s+/);
6736 util.arrayEach.call(this, expressions, function (expr) {
6737 var objects = [data];
6738 var tokens = expr.split('.');
6739 util.arrayEach.call(this, tokens, function (token) {
6740 var match = token.match('^(.+?)(?:\\[(-?\\d+|\\*|)\\])?$');
6741 var newObjects = [];
6742 util.arrayEach.call(this, objects, function (obj) {
6743 if (match[1] === '*') {
6744 util.arrayEach.call(this, obj, function (value) {
6745 newObjects.push(value);
6746 });
6747 } else if (obj.hasOwnProperty(match[1])) {
6748 newObjects.push(obj[match[1]]);
6749 }
6750 });
6751 objects = newObjects;
6752
6753 if (match[2] !== undefined) {
6754 newObjects = [];
6755 util.arrayEach.call(this, objects, function (obj) {
6756 if (Array.isArray(obj)) {
6757 if (match[2] === '*' || match[2] === '') {
6758 newObjects = newObjects.concat(obj);
6759 } else {
6760 var idx = parseInt(match[2], 10);
6761 if (idx < 0) idx = obj.length + idx; // negative indexing
6762 newObjects.push(obj[idx]);
6763 }
6764 }
6765 });
6766 objects = newObjects;
6767 }
6768
6769 if (objects.length === 0) return util.abort;
6770 });
6771
6772 if (objects.length > 0) {
6773 results = objects;
6774 return util.abort;
6775 }
6776 });
6777
6778 return results;
6779 },
6780
6781 find: function find(expression, data) {
6782 return util.jamespath.query(expression, data)[0];
6783 }
6784 },
6785
6786
6787 date: {
6788
6789
6790 getDate: function getDate() {
6791 if (!AWS) AWS = require('./core');
6792 if (AWS.config.systemClockOffset) { // use offset when non-zero
6793 return new Date(new Date().getTime() + AWS.config.systemClockOffset);
6794 } else {
6795 return new Date();
6796 }
6797 },
6798
6799
6800 iso8601: function iso8601(date) {
6801 if (date === undefined) { date = util.date.getDate(); }
6802 return date.toISOString().replace(/\.\d{3}Z$/, 'Z');
6803 },
6804
6805
6806 rfc822: function rfc822(date) {
6807 if (date === undefined) { date = util.date.getDate(); }
6808 return date.toUTCString();
6809 },
6810
6811
6812 unixTimestamp: function unixTimestamp(date) {
6813 if (date === undefined) { date = util.date.getDate(); }
6814 return date.getTime() / 1000;
6815 },
6816
6817
6818 from: function format(date) {
6819 if (typeof date === 'number') {
6820 return new Date(date * 1000); // unix timestamp
6821 } else {
6822 return new Date(date);
6823 }
6824 },
6825
6826
6827 format: function format(date, formatter) {
6828 if (!formatter) formatter = 'iso8601';
6829 return util.date[formatter](util.date.from(date));
6830 },
6831
6832 parseTimestamp: function parseTimestamp(value) {
6833 if (typeof value === 'number') { // unix timestamp (number)
6834 return new Date(value * 1000);
6835 } else if (value.match(/^\d+$/)) { // unix timestamp
6836 return new Date(value * 1000);
6837 } else if (value.match(/^\d{4}/)) { // iso8601
6838 return new Date(value);
6839 } else if (value.match(/^\w{3},/)) { // rfc822
6840 return new Date(value);
6841 } else {
6842 throw util.error(
6843 new Error('unhandled timestamp format: ' + value),
6844 {code: 'TimestampParserError'});
6845 }
6846 }
6847
6848 },
6849
6850 crypto: {
6851 crc32Table: [
6852 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,
6853 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,
6854 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,
6855 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
6856 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,
6857 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,
6858 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,
6859 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
6860 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,
6861 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,
6862 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,
6863 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
6864 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,
6865 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,
6866 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,
6867 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
6868 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,
6869 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,
6870 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,
6871 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
6872 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,
6873 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,
6874 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,
6875 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
6876 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,
6877 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,
6878 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,
6879 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
6880 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,
6881 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,
6882 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,
6883 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
6884 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,
6885 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,
6886 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,
6887 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
6888 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,
6889 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,
6890 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,
6891 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
6892 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,
6893 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,
6894 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,
6895 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
6896 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,
6897 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,
6898 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,
6899 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
6900 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,
6901 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,
6902 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,
6903 0x2D02EF8D],
6904
6905 crc32: function crc32(data) {
6906 var tbl = util.crypto.crc32Table;
6907 var crc = 0 ^ -1;
6908
6909 if (typeof data === 'string') {
6910 data = new Buffer(data);
6911 }
6912
6913 for (var i = 0; i < data.length; i++) {
6914 var code = data.readUInt8(i);
6915 crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];
6916 }
6917 return (crc ^ -1) >>> 0;
6918 },
6919
6920 hmac: function hmac(key, string, digest, fn) {
6921 if (!digest) digest = 'binary';
6922 if (digest === 'buffer') { digest = undefined; }
6923 if (!fn) fn = 'sha256';
6924 if (typeof string === 'string') string = new Buffer(string);
6925 return cryptoLib.createHmac(fn, key).update(string).digest(digest);
6926 },
6927
6928 md5: function md5(data, digest, callback) {
6929 return util.crypto.hash('md5', data, digest, callback);
6930 },
6931
6932 sha256: function sha256(data, digest, callback) {
6933 return util.crypto.hash('sha256', data, digest, callback);
6934 },
6935
6936 hash: function(algorithm, data, digest, callback) {
6937 var hash = util.crypto.createHash(algorithm);
6938 if (!digest) { digest = 'binary'; }
6939 if (digest === 'buffer') { digest = undefined; }
6940 if (typeof data === 'string') data = new Buffer(data);
6941 var sliceFn = util.arraySliceFn(data);
6942 var isBuffer = Buffer.isBuffer(data);
6943 if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;
6944
6945 if (callback && typeof data === 'object' &&
6946 typeof data.on === 'function' && !isBuffer) {
6947 data.on('data', function(chunk) { hash.update(chunk); });
6948 data.on('error', function(err) { callback(err); });
6949 data.on('end', function() { callback(null, hash.digest(digest)); });
6950 } else if (callback && sliceFn && !isBuffer &&
6951 typeof FileReader !== 'undefined') {
6952 var index = 0, size = 1024 * 512;
6953 var reader = new FileReader();
6954 reader.onerror = function() {
6955 callback(new Error('Failed to read data.'));
6956 };
6957 reader.onload = function() {
6958 var buf = new Buffer(new Uint8Array(reader.result));
6959 hash.update(buf);
6960 index += buf.length;
6961 reader._continueReading();
6962 };
6963 reader._continueReading = function() {
6964 if (index >= data.size) {
6965 callback(null, hash.digest(digest));
6966 return;
6967 }
6968
6969 var back = index + size;
6970 if (back > data.size) back = data.size;
6971 reader.readAsArrayBuffer(sliceFn.call(data, index, back));
6972 };
6973
6974 reader._continueReading();
6975 } else {
6976 if (util.isBrowser() && typeof data === 'object' && !isBuffer) {
6977 data = new Buffer(new Uint8Array(data));
6978 }
6979 var out = hash.update(data).digest(digest);
6980 if (callback) callback(null, out);
6981 return out;
6982 }
6983 },
6984
6985 toHex: function toHex(data) {
6986 var out = [];
6987 for (var i = 0; i < data.length; i++) {
6988 out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));
6989 }
6990 return out.join('');
6991 },
6992
6993 createHash: function createHash(algorithm) {
6994 return cryptoLib.createHash(algorithm);
6995 }
6996
6997 },
6998
6999
7000
7001
7002 abort: {},
7003
7004 each: function each(object, iterFunction) {
7005 for (var key in object) {
7006 if (Object.prototype.hasOwnProperty.call(object, key)) {
7007 var ret = iterFunction.call(this, key, object[key]);
7008 if (ret === util.abort) break;
7009 }
7010 }
7011 },
7012
7013 arrayEach: function arrayEach(array, iterFunction) {
7014 for (var idx in array) {
7015 if (array.hasOwnProperty(idx)) {
7016 var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));
7017 if (ret === util.abort) break;
7018 }
7019 }
7020 },
7021
7022 update: function update(obj1, obj2) {
7023 util.each(obj2, function iterator(key, item) {
7024 obj1[key] = item;
7025 });
7026 return obj1;
7027 },
7028
7029 merge: function merge(obj1, obj2) {
7030 return util.update(util.copy(obj1), obj2);
7031 },
7032
7033 copy: function copy(object) {
7034 if (object === null || object === undefined) return object;
7035 var dupe = {};
7036 for (var key in object) {
7037 dupe[key] = object[key];
7038 }
7039 return dupe;
7040 },
7041
7042 isEmpty: function isEmpty(obj) {
7043 for (var prop in obj) {
7044 if (obj.hasOwnProperty(prop)) {
7045 return false;
7046 }
7047 }
7048 return true;
7049 },
7050
7051 arraySliceFn: function arraySliceFn(obj) {
7052 var fn = obj.slice || obj.webkitSlice || obj.mozSlice;
7053 return typeof fn === 'function' ? fn : null;
7054 },
7055
7056 isType: function isType(obj, type) {
7057 if (typeof type === 'function') type = util.typeName(type);
7058 return Object.prototype.toString.call(obj) === '[object ' + type + ']';
7059 },
7060
7061 typeName: function typeName(type) {
7062 if (type.hasOwnProperty('name')) return type.name;
7063 var str = type.toString();
7064 var match = str.match(/^\s*function (.+)\(/);
7065 return match ? match[1] : str;
7066 },
7067
7068 error: function error(err, options) {
7069 var originalError = null;
7070 if (typeof err.message === 'string' && err.message !== '') {
7071 if (typeof options === 'string' || (options && options.message)) {
7072 originalError = util.copy(err);
7073 originalError.message = err.message;
7074 }
7075 }
7076 err.message = err.message || null;
7077
7078 if (typeof options === 'string') {
7079 err.message = options;
7080 } else if (typeof options === 'object' && options !== null) {
7081 util.update(err, options);
7082 if (options.message)
7083 err.message = options.message;
7084 if (options.code || options.name)
7085 err.code = options.code || options.name;
7086 if (options.stack)
7087 err.stack = options.stack;
7088 }
7089
7090 if (typeof Object.defineProperty === 'function') {
7091 Object.defineProperty(err, 'name', {writable: true, enumerable: false});
7092 Object.defineProperty(err, 'message', {enumerable: true});
7093 }
7094
7095 err.name = options && options.name || err.name || err.code || 'Error';
7096 err.time = new Date();
7097
7098 if (originalError) err.originalError = originalError;
7099
7100 return err;
7101 },
7102
7103
7104 inherit: function inherit(klass, features) {
7105 var newObject = null;
7106 if (features === undefined) {
7107 features = klass;
7108 klass = Object;
7109 newObject = {};
7110 } else {
7111 var ctor = function ConstructorWrapper() {};
7112 ctor.prototype = klass.prototype;
7113 newObject = new ctor();
7114 }
7115
7116 if (features.constructor === Object) {
7117 features.constructor = function() {
7118 if (klass !== Object) {
7119 return klass.apply(this, arguments);
7120 }
7121 };
7122 }
7123
7124 features.constructor.prototype = newObject;
7125 util.update(features.constructor.prototype, features);
7126 features.constructor.__super__ = klass;
7127 return features.constructor;
7128 },
7129
7130
7131 mixin: function mixin() {
7132 var klass = arguments[0];
7133 for (var i = 1; i < arguments.length; i++) {
7134 for (var prop in arguments[i].prototype) {
7135 var fn = arguments[i].prototype[prop];
7136 if (prop !== 'constructor') {
7137 klass.prototype[prop] = fn;
7138 }
7139 }
7140 }
7141 return klass;
7142 },
7143
7144
7145 hideProperties: function hideProperties(obj, props) {
7146 if (typeof Object.defineProperty !== 'function') return;
7147
7148 util.arrayEach(props, function (key) {
7149 Object.defineProperty(obj, key, {
7150 enumerable: false, writable: true, configurable: true });
7151 });
7152 },
7153
7154
7155 property: function property(obj, name, value, enumerable, isValue) {
7156 var opts = {
7157 configurable: true,
7158 enumerable: enumerable !== undefined ? enumerable : true
7159 };
7160 if (typeof value === 'function' && !isValue) {
7161 opts.get = value;
7162 }
7163 else {
7164 opts.value = value; opts.writable = true;
7165 }
7166
7167 Object.defineProperty(obj, name, opts);
7168 },
7169
7170
7171 memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {
7172 var cachedValue = null;
7173
7174 util.property(obj, name, function() {
7175 if (cachedValue === null) {
7176 cachedValue = get();
7177 }
7178 return cachedValue;
7179 }, enumerable);
7180 },
7181
7182
7183 hoistPayloadMember: function hoistPayloadMember(resp) {
7184 var req = resp.request;
7185 var operation = req.operation;
7186 var output = req.service.api.operations[operation].output;
7187 if (output.payload) {
7188 var payloadMember = output.members[output.payload];
7189 var responsePayload = resp.data[output.payload];
7190 if (payloadMember.type === 'structure') {
7191 util.each(responsePayload, function(key, value) {
7192 util.property(resp.data, key, value, false);
7193 });
7194 }
7195 }
7196 },
7197
7198
7199 computeSha256: function computeSha256(body, done) {
7200 if (util.isNode()) {
7201 var Stream = util.nodeRequire('stream').Stream;
7202 var fs = util.nodeRequire('fs');
7203 if (body instanceof Stream) {
7204 if (typeof body.path === 'string') { // assume file object
7205 body = fs.createReadStream(body.path);
7206 } else { // TODO support other stream types
7207 return done(new Error('Non-file stream objects are ' +
7208 'not supported with SigV4'));
7209 }
7210 }
7211 }
7212
7213 util.crypto.sha256(body, 'hex', function(err, sha) {
7214 if (err) done(err);
7215 else done(null, sha);
7216 });
7217 },
7218
7219
7220 isClockSkewed: function isClockSkewed(serverTime) {
7221 if (serverTime) {
7222 util.property(AWS.config, 'isClockSkewed',
7223 Math.abs(new Date().getTime() - serverTime) >= 300000, false);
7224 return AWS.config.isClockSkewed;
7225 }
7226 },
7227
7228 applyClockOffset: function applyClockOffset(serverTime) {
7229 if (serverTime)
7230 AWS.config.systemClockOffset = serverTime - new Date().getTime();
7231 },
7232
7233
7234 extractRequestId: function extractRequestId(resp) {
7235 var requestId = resp.httpResponse.headers['x-amz-request-id'] ||
7236 resp.httpResponse.headers['x-amzn-requestid'];
7237
7238 if (!requestId && resp.data && resp.data.ResponseMetadata) {
7239 requestId = resp.data.ResponseMetadata.RequestId;
7240 }
7241
7242 if (requestId) {
7243 resp.requestId = requestId;
7244 }
7245
7246 if (resp.error) {
7247 resp.error.requestId = requestId;
7248 }
7249 }
7250 };
7251
7252 module.exports = util;
7253
7254 }).call(this,require("FWaASH"))
7255 },{"./core":4,"FWaASH":73,"buffer":62,"crypto":66,"querystring":77,"url":78}],60:[function(require,module,exports){
7256 var util = require('../util');
7257 var Shape = require('../model/shape');
7258
7259 function DomXmlParser() { }
7260
7261 DomXmlParser.prototype.parse = function(xml, shape) {
7262 if (xml.replace(/^\s+/, '') === '') return {};
7263
7264 var result, error;
7265 try {
7266 if (window.DOMParser) {
7267 try {
7268 var parser = new DOMParser();
7269 result = parser.parseFromString(xml, 'text/xml');
7270 } catch (syntaxError) {
7271 throw util.error(new Error('Parse error in document'),
7272 {
7273 originalError: syntaxError,
7274 code: 'XMLParserError',
7275 retryable: true
7276 });
7277 }
7278
7279 if (result.documentElement === null) {
7280 throw util.error(new Error('Cannot parse empty document.'),
7281 {
7282 code: 'XMLParserError',
7283 retryable: true
7284 });
7285 }
7286
7287 var isError = result.getElementsByTagName('parsererror')[0];
7288 if (isError && (isError.parentNode === result ||
7289 isError.parentNode.nodeName === 'body' ||
7290 isError.parentNode.parentNode === result ||
7291 isError.parentNode.parentNode.nodeName === 'body')) {
7292 var errorElement = isError.getElementsByTagName('div')[0] || isError;
7293 throw util.error(new Error(errorElement.textContent || 'Parser error in document'),
7294 {
7295 code: 'XMLParserError',
7296 retryable: true
7297 });
7298 }
7299 } else if (window.ActiveXObject) {
7300 result = new window.ActiveXObject('Microsoft.XMLDOM');
7301 result.async = false;
7302
7303 if (!result.loadXML(xml)) {
7304 throw util.error(new Error('Parse error in document'),
7305 {
7306 code: 'XMLParserError',
7307 retryable: true
7308 });
7309 }
7310 } else {
7311 throw new Error('Cannot load XML parser');
7312 }
7313 } catch (e) {
7314 error = e;
7315 }
7316
7317 if (result && result.documentElement && !error) {
7318 var data = parseXml(result.documentElement, shape);
7319 var metadata = result.getElementsByTagName('ResponseMetadata')[0];
7320 if (metadata) {
7321 data.ResponseMetadata = parseXml(metadata, {});
7322 }
7323 return data;
7324 } else if (error) {
7325 throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});
7326 } else { // empty xml document
7327 return {};
7328 }
7329 };
7330
7331 function parseXml(xml, shape) {
7332 if (!shape) shape = {};
7333 switch (shape.type) {
7334 case 'structure': return parseStructure(xml, shape);
7335 case 'map': return parseMap(xml, shape);
7336 case 'list': return parseList(xml, shape);
7337 case undefined: case null: return parseUnknown(xml);
7338 default: return parseScalar(xml, shape);
7339 }
7340 }
7341
7342 function parseStructure(xml, shape) {
7343 var data = {};
7344 if (xml === null) return data;
7345
7346 util.each(shape.members, function(memberName, memberShape) {
7347 if (memberShape.isXmlAttribute) {
7348 if (xml.attributes.hasOwnProperty(memberShape.name)) {
7349 var value = xml.attributes[memberShape.name].value;
7350 data[memberName] = parseXml({textContent: value}, memberShape);
7351 }
7352 } else {
7353 var xmlChild = memberShape.flattened ? xml :
7354 xml.getElementsByTagName(memberShape.name)[0];
7355 if (xmlChild) {
7356 data[memberName] = parseXml(xmlChild, memberShape);
7357 } else if (!memberShape.flattened && memberShape.type === 'list') {
7358 data[memberName] = memberShape.defaultValue;
7359 }
7360 }
7361 });
7362
7363 return data;
7364 }
7365
7366 function parseMap(xml, shape) {
7367 var data = {};
7368 var xmlKey = shape.key.name || 'key';
7369 var xmlValue = shape.value.name || 'value';
7370 var tagName = shape.flattened ? shape.name : 'entry';
7371
7372 var child = xml.firstElementChild;
7373 while (child) {
7374 if (child.nodeName === tagName) {
7375 var key = child.getElementsByTagName(xmlKey)[0].textContent;
7376 var value = child.getElementsByTagName(xmlValue)[0];
7377 data[key] = parseXml(value, shape.value);
7378 }
7379 child = child.nextElementSibling;
7380 }
7381 return data;
7382 }
7383
7384 function parseList(xml, shape) {
7385 var data = [];
7386 var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');
7387
7388 var child = xml.firstElementChild;
7389 while (child) {
7390 if (child.nodeName === tagName) {
7391 data.push(parseXml(child, shape.member));
7392 }
7393 child = child.nextElementSibling;
7394 }
7395 return data;
7396 }
7397
7398 function parseScalar(xml, shape) {
7399 if (xml.getAttribute) {
7400 var encoding = xml.getAttribute('encoding');
7401 if (encoding === 'base64') {
7402 shape = new Shape.create({type: encoding});
7403 }
7404 }
7405
7406 var text = xml.textContent;
7407 if (text === '') text = null;
7408 if (typeof shape.toType === 'function') {
7409 return shape.toType(text);
7410 } else {
7411 return text;
7412 }
7413 }
7414
7415 function parseUnknown(xml) {
7416 if (xml === undefined || xml === null) return '';
7417
7418 if (!xml.firstElementChild) {
7419 if (xml.parentNode.parentNode === null) return {};
7420 if (xml.childNodes.length === 0) return '';
7421 else return xml.textContent;
7422 }
7423
7424 var shape = {type: 'structure', members: {}};
7425 var child = xml.firstElementChild;
7426 while (child) {
7427 var tag = child.nodeName;
7428 if (shape.members.hasOwnProperty(tag)) {
7429 shape.members[tag].type = 'list';
7430 } else {
7431 shape.members[tag] = {name: tag};
7432 }
7433 child = child.nextElementSibling;
7434 }
7435 return parseStructure(xml, shape);
7436 }
7437
7438 module.exports = DomXmlParser;
7439
7440 },{"../model/shape":26,"../util":59}],61:[function(require,module,exports){
7441 var util = require('../util');
7442 var builder = require('xmlbuilder');
7443
7444 function XmlBuilder() { }
7445
7446 XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {
7447 var xml = builder.create(rootElement);
7448 applyNamespaces(xml, shape);
7449 serialize(xml, params, shape);
7450 return xml.children.length > 0 || noEmpty ? xml.root().toString() : '';
7451 };
7452
7453 function serialize(xml, value, shape) {
7454 switch (shape.type) {
7455 case 'structure': return serializeStructure(xml, value, shape);
7456 case 'map': return serializeMap(xml, value, shape);
7457 case 'list': return serializeList(xml, value, shape);
7458 default: return serializeScalar(xml, value, shape);
7459 }
7460 }
7461
7462 function serializeStructure(xml, params, shape) {
7463 util.arrayEach(shape.memberNames, function(memberName) {
7464 var memberShape = shape.members[memberName];
7465 if (memberShape.location !== 'body') return;
7466
7467 var value = params[memberName];
7468 var name = memberShape.name;
7469 if (value !== undefined && value !== null) {
7470 if (memberShape.isXmlAttribute) {
7471 xml.att(name, value);
7472 } else if (memberShape.flattened) {
7473 serialize(xml, value, memberShape);
7474 } else {
7475 var element = xml.ele(name);
7476 applyNamespaces(element, memberShape);
7477 serialize(element, value, memberShape);
7478 }
7479 }
7480 });
7481 }
7482
7483 function serializeMap(xml, map, shape) {
7484 var xmlKey = shape.key.name || 'key';
7485 var xmlValue = shape.value.name || 'value';
7486
7487 util.each(map, function(key, value) {
7488 var entry = xml.ele(shape.flattened ? shape.name : 'entry');
7489 serialize(entry.ele(xmlKey), key, shape.key);
7490 serialize(entry.ele(xmlValue), value, shape.value);
7491 });
7492 }
7493
7494 function serializeList(xml, list, shape) {
7495 if (shape.flattened) {
7496 util.arrayEach(list, function(value) {
7497 var name = shape.member.name || shape.name;
7498 var element = xml.ele(name);
7499 serialize(element, value, shape.member);
7500 });
7501 } else {
7502 util.arrayEach(list, function(value) {
7503 var name = shape.member.name || 'member';
7504 var element = xml.ele(name);
7505 serialize(element, value, shape.member);
7506 });
7507 }
7508 }
7509
7510 function serializeScalar(xml, value, shape) {
7511 xml.txt(shape.toWireFormat(value));
7512 }
7513
7514 function applyNamespaces(xml, shape) {
7515 var uri, prefix = 'xmlns';
7516 if (shape.xmlNamespaceUri) {
7517 uri = shape.xmlNamespaceUri;
7518 if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;
7519 } else if (xml.isRoot && shape.api.xmlNamespaceUri) {
7520 uri = shape.api.xmlNamespaceUri;
7521 }
7522
7523 if (uri) xml.att(prefix, uri);
7524 }
7525
7526 module.exports = XmlBuilder;
7527
7528 },{"../util":59,"xmlbuilder":145}],62:[function(require,module,exports){
7529
7530
7531 var base64 = require('base64-js')
7532 var ieee754 = require('ieee754')
7533
7534 exports.Buffer = Buffer
7535 exports.SlowBuffer = Buffer
7536 exports.INSPECT_MAX_BYTES = 50
7537 Buffer.poolSize = 8192
7538
7539
7540 Buffer._useTypedArrays = (function () {
7541 try {
7542 var buf = new ArrayBuffer(0)
7543 var arr = new Uint8Array(buf)
7544 arr.foo = function () { return 42 }
7545 return 42 === arr.foo() &&
7546 typeof arr.subarray === 'function' // Chrome 9-10 lack `subarray`
7547 } catch (e) {
7548 return false
7549 }
7550 })()
7551
7552
7553 function Buffer (subject, encoding, noZero) {
7554 if (!(this instanceof Buffer))
7555 return new Buffer(subject, encoding, noZero)
7556
7557 var type = typeof subject
7558
7559 if (encoding === 'base64' && type === 'string') {
7560 subject = stringtrim(subject)
7561 while (subject.length % 4 !== 0) {
7562 subject = subject + '='
7563 }
7564 }
7565
7566 var length
7567 if (type === 'number')
7568 length = coerce(subject)
7569 else if (type === 'string')
7570 length = Buffer.byteLength(subject, encoding)
7571 else if (type === 'object')
7572 length = coerce(subject.length) // assume that object is array-like
7573 else
7574 throw new Error('First argument needs to be a number, array or string.')
7575
7576 var buf
7577 if (Buffer._useTypedArrays) {
7578 buf = Buffer._augment(new Uint8Array(length))
7579 } else {
7580 buf = this
7581 buf.length = length
7582 buf._isBuffer = true
7583 }
7584
7585 var i
7586 if (Buffer._useTypedArrays && typeof subject.byteLength === 'number') {
7587 buf._set(subject)
7588 } else if (isArrayish(subject)) {
7589 for (i = 0; i < length; i++) {
7590 if (Buffer.isBuffer(subject))
7591 buf[i] = subject.readUInt8(i)
7592 else
7593 buf[i] = subject[i]
7594 }
7595 } else if (type === 'string') {
7596 buf.write(subject, 0, encoding)
7597 } else if (type === 'number' && !Buffer._useTypedArrays && !noZero) {
7598 for (i = 0; i < length; i++) {
7599 buf[i] = 0
7600 }
7601 }
7602
7603 return buf
7604 }
7605
7606
7607 Buffer.isEncoding = function (encoding) {
7608 switch (String(encoding).toLowerCase()) {
7609 case 'hex':
7610 case 'utf8':
7611 case 'utf-8':
7612 case 'ascii':
7613 case 'binary':
7614 case 'base64':
7615 case 'raw':
7616 case 'ucs2':
7617 case 'ucs-2':
7618 case 'utf16le':
7619 case 'utf-16le':
7620 return true
7621 default:
7622 return false
7623 }
7624 }
7625
7626 Buffer.isBuffer = function (b) {
7627 return !!(b !== null && b !== undefined && b._isBuffer)
7628 }
7629
7630 Buffer.byteLength = function (str, encoding) {
7631 var ret
7632 str = str + ''
7633 switch (encoding || 'utf8') {
7634 case 'hex':
7635 ret = str.length / 2
7636 break
7637 case 'utf8':
7638 case 'utf-8':
7639 ret = utf8ToBytes(str).length
7640 break
7641 case 'ascii':
7642 case 'binary':
7643 case 'raw':
7644 ret = str.length
7645 break
7646 case 'base64':
7647 ret = base64ToBytes(str).length
7648 break
7649 case 'ucs2':
7650 case 'ucs-2':
7651 case 'utf16le':
7652 case 'utf-16le':
7653 ret = str.length * 2
7654 break
7655 default:
7656 throw new Error('Unknown encoding')
7657 }
7658 return ret
7659 }
7660
7661 Buffer.concat = function (list, totalLength) {
7662 assert(isArray(list), 'Usage: Buffer.concat(list, [totalLength])\n' +
7663 'list should be an Array.')
7664
7665 if (list.length === 0) {
7666 return new Buffer(0)
7667 } else if (list.length === 1) {
7668 return list[0]
7669 }
7670
7671 var i
7672 if (typeof totalLength !== 'number') {
7673 totalLength = 0
7674 for (i = 0; i < list.length; i++) {
7675 totalLength += list[i].length
7676 }
7677 }
7678
7679 var buf = new Buffer(totalLength)
7680 var pos = 0
7681 for (i = 0; i < list.length; i++) {
7682 var item = list[i]
7683 item.copy(buf, pos)
7684 pos += item.length
7685 }
7686 return buf
7687 }
7688
7689
7690 function _hexWrite (buf, string, offset, length) {
7691 offset = Number(offset) || 0
7692 var remaining = buf.length - offset
7693 if (!length) {
7694 length = remaining
7695 } else {
7696 length = Number(length)
7697 if (length > remaining) {
7698 length = remaining
7699 }
7700 }
7701
7702 var strLen = string.length
7703 assert(strLen % 2 === 0, 'Invalid hex string')
7704
7705 if (length > strLen / 2) {
7706 length = strLen / 2
7707 }
7708 for (var i = 0; i < length; i++) {
7709 var byte = parseInt(string.substr(i * 2, 2), 16)
7710 assert(!isNaN(byte), 'Invalid hex string')
7711 buf[offset + i] = byte
7712 }
7713 Buffer._charsWritten = i * 2
7714 return i
7715 }
7716
7717 function _utf8Write (buf, string, offset, length) {
7718 var charsWritten = Buffer._charsWritten =
7719 blitBuffer(utf8ToBytes(string), buf, offset, length)
7720 return charsWritten
7721 }
7722
7723 function _asciiWrite (buf, string, offset, length) {
7724 var charsWritten = Buffer._charsWritten =
7725 blitBuffer(asciiToBytes(string), buf, offset, length)
7726 return charsWritten
7727 }
7728
7729 function _binaryWrite (buf, string, offset, length) {
7730 return _asciiWrite(buf, string, offset, length)
7731 }
7732
7733 function _base64Write (buf, string, offset, length) {
7734 var charsWritten = Buffer._charsWritten =
7735 blitBuffer(base64ToBytes(string), buf, offset, length)
7736 return charsWritten
7737 }
7738
7739 function _utf16leWrite (buf, string, offset, length) {
7740 var charsWritten = Buffer._charsWritten =
7741 blitBuffer(utf16leToBytes(string), buf, offset, length)
7742 return charsWritten
7743 }
7744
7745 Buffer.prototype.write = function (string, offset, length, encoding) {
7746 if (isFinite(offset)) {
7747 if (!isFinite(length)) {
7748 encoding = length
7749 length = undefined
7750 }
7751 } else { // legacy
7752 var swap = encoding
7753 encoding = offset
7754 offset = length
7755 length = swap
7756 }
7757
7758 offset = Number(offset) || 0
7759 var remaining = this.length - offset
7760 if (!length) {
7761 length = remaining
7762 } else {
7763 length = Number(length)
7764 if (length > remaining) {
7765 length = remaining
7766 }
7767 }
7768 encoding = String(encoding || 'utf8').toLowerCase()
7769
7770 var ret
7771 switch (encoding) {
7772 case 'hex':
7773 ret = _hexWrite(this, string, offset, length)
7774 break
7775 case 'utf8':
7776 case 'utf-8':
7777 ret = _utf8Write(this, string, offset, length)
7778 break
7779 case 'ascii':
7780 ret = _asciiWrite(this, string, offset, length)
7781 break
7782 case 'binary':
7783 ret = _binaryWrite(this, string, offset, length)
7784 break
7785 case 'base64':
7786 ret = _base64Write(this, string, offset, length)
7787 break
7788 case 'ucs2':
7789 case 'ucs-2':
7790 case 'utf16le':
7791 case 'utf-16le':
7792 ret = _utf16leWrite(this, string, offset, length)
7793 break
7794 default:
7795 throw new Error('Unknown encoding')
7796 }
7797 return ret
7798 }
7799
7800 Buffer.prototype.toString = function (encoding, start, end) {
7801 var self = this
7802
7803 encoding = String(encoding || 'utf8').toLowerCase()
7804 start = Number(start) || 0
7805 end = (end !== undefined)
7806 ? Number(end)
7807 : end = self.length
7808
7809 if (end === start)
7810 return ''
7811
7812 var ret
7813 switch (encoding) {
7814 case 'hex':
7815 ret = _hexSlice(self, start, end)
7816 break
7817 case 'utf8':
7818 case 'utf-8':
7819 ret = _utf8Slice(self, start, end)
7820 break
7821 case 'ascii':
7822 ret = _asciiSlice(self, start, end)
7823 break
7824 case 'binary':
7825 ret = _binarySlice(self, start, end)
7826 break
7827 case 'base64':
7828 ret = _base64Slice(self, start, end)
7829 break
7830 case 'ucs2':
7831 case 'ucs-2':
7832 case 'utf16le':
7833 case 'utf-16le':
7834 ret = _utf16leSlice(self, start, end)
7835 break
7836 default:
7837 throw new Error('Unknown encoding')
7838 }
7839 return ret
7840 }
7841
7842 Buffer.prototype.toJSON = function () {
7843 return {
7844 type: 'Buffer',
7845 data: Array.prototype.slice.call(this._arr || this, 0)
7846 }
7847 }
7848
7849 Buffer.prototype.copy = function (target, target_start, start, end) {
7850 var source = this
7851
7852 if (!start) start = 0
7853 if (!end && end !== 0) end = this.length
7854 if (!target_start) target_start = 0
7855
7856 if (end === start) return
7857 if (target.length === 0 || source.length === 0) return
7858
7859 assert(end >= start, 'sourceEnd < sourceStart')
7860 assert(target_start >= 0 && target_start < target.length,
7861 'targetStart out of bounds')
7862 assert(start >= 0 && start < source.length, 'sourceStart out of bounds')
7863 assert(end >= 0 && end <= source.length, 'sourceEnd out of bounds')
7864
7865 if (end > this.length)
7866 end = this.length
7867 if (target.length - target_start < end - start)
7868 end = target.length - target_start + start
7869
7870 var len = end - start
7871
7872 if (len < 100 || !Buffer._useTypedArrays) {
7873 for (var i = 0; i < len; i++)
7874 target[i + target_start] = this[i + start]
7875 } else {
7876 target._set(this.subarray(start, start + len), target_start)
7877 }
7878 }
7879
7880 function _base64Slice (buf, start, end) {
7881 if (start === 0 && end === buf.length) {
7882 return base64.fromByteArray(buf)
7883 } else {
7884 return base64.fromByteArray(buf.slice(start, end))
7885 }
7886 }
7887
7888 function _utf8Slice (buf, start, end) {
7889 var res = ''
7890 var tmp = ''
7891 end = Math.min(buf.length, end)
7892
7893 for (var i = start; i < end; i++) {
7894 if (buf[i] <= 0x7F) {
7895 res += decodeUtf8Char(tmp) + String.fromCharCode(buf[i])
7896 tmp = ''
7897 } else {
7898 tmp += '%' + buf[i].toString(16)
7899 }
7900 }
7901
7902 return res + decodeUtf8Char(tmp)
7903 }
7904
7905 function _asciiSlice (buf, start, end) {
7906 var ret = ''
7907 end = Math.min(buf.length, end)
7908
7909 for (var i = start; i < end; i++)
7910 ret += String.fromCharCode(buf[i])
7911 return ret
7912 }
7913
7914 function _binarySlice (buf, start, end) {
7915 return _asciiSlice(buf, start, end)
7916 }
7917
7918 function _hexSlice (buf, start, end) {
7919 var len = buf.length
7920
7921 if (!start || start < 0) start = 0
7922 if (!end || end < 0 || end > len) end = len
7923
7924 var out = ''
7925 for (var i = start; i < end; i++) {
7926 out += toHex(buf[i])
7927 }
7928 return out
7929 }
7930
7931 function _utf16leSlice (buf, start, end) {
7932 var bytes = buf.slice(start, end)
7933 var res = ''
7934 for (var i = 0; i < bytes.length; i += 2) {
7935 res += String.fromCharCode(bytes[i] + bytes[i+1] * 256)
7936 }
7937 return res
7938 }
7939
7940 Buffer.prototype.slice = function (start, end) {
7941 var len = this.length
7942 start = clamp(start, len, 0)
7943 end = clamp(end, len, len)
7944
7945 if (Buffer._useTypedArrays) {
7946 return Buffer._augment(this.subarray(start, end))
7947 } else {
7948 var sliceLen = end - start
7949 var newBuf = new Buffer(sliceLen, undefined, true)
7950 for (var i = 0; i < sliceLen; i++) {
7951 newBuf[i] = this[i + start]
7952 }
7953 return newBuf
7954 }
7955 }
7956
7957 Buffer.prototype.get = function (offset) {
7958 console.log('.get() is deprecated. Access using array indexes instead.')
7959 return this.readUInt8(offset)
7960 }
7961
7962 Buffer.prototype.set = function (v, offset) {
7963 console.log('.set() is deprecated. Access using array indexes instead.')
7964 return this.writeUInt8(v, offset)
7965 }
7966
7967 Buffer.prototype.readUInt8 = function (offset, noAssert) {
7968 if (!noAssert) {
7969 assert(offset !== undefined && offset !== null, 'missing offset')
7970 assert(offset < this.length, 'Trying to read beyond buffer length')
7971 }
7972
7973 if (offset >= this.length)
7974 return
7975
7976 return this[offset]
7977 }
7978
7979 function _readUInt16 (buf, offset, littleEndian, noAssert) {
7980 if (!noAssert) {
7981 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
7982 assert(offset !== undefined && offset !== null, 'missing offset')
7983 assert(offset + 1 < buf.length, 'Trying to read beyond buffer length')
7984 }
7985
7986 var len = buf.length
7987 if (offset >= len)
7988 return
7989
7990 var val
7991 if (littleEndian) {
7992 val = buf[offset]
7993 if (offset + 1 < len)
7994 val |= buf[offset + 1] << 8
7995 } else {
7996 val = buf[offset] << 8
7997 if (offset + 1 < len)
7998 val |= buf[offset + 1]
7999 }
8000 return val
8001 }
8002
8003 Buffer.prototype.readUInt16LE = function (offset, noAssert) {
8004 return _readUInt16(this, offset, true, noAssert)
8005 }
8006
8007 Buffer.prototype.readUInt16BE = function (offset, noAssert) {
8008 return _readUInt16(this, offset, false, noAssert)
8009 }
8010
8011 function _readUInt32 (buf, offset, littleEndian, noAssert) {
8012 if (!noAssert) {
8013 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8014 assert(offset !== undefined && offset !== null, 'missing offset')
8015 assert(offset + 3 < buf.length, 'Trying to read beyond buffer length')
8016 }
8017
8018 var len = buf.length
8019 if (offset >= len)
8020 return
8021
8022 var val
8023 if (littleEndian) {
8024 if (offset + 2 < len)
8025 val = buf[offset + 2] << 16
8026 if (offset + 1 < len)
8027 val |= buf[offset + 1] << 8
8028 val |= buf[offset]
8029 if (offset + 3 < len)
8030 val = val + (buf[offset + 3] << 24 >>> 0)
8031 } else {
8032 if (offset + 1 < len)
8033 val = buf[offset + 1] << 16
8034 if (offset + 2 < len)
8035 val |= buf[offset + 2] << 8
8036 if (offset + 3 < len)
8037 val |= buf[offset + 3]
8038 val = val + (buf[offset] << 24 >>> 0)
8039 }
8040 return val
8041 }
8042
8043 Buffer.prototype.readUInt32LE = function (offset, noAssert) {
8044 return _readUInt32(this, offset, true, noAssert)
8045 }
8046
8047 Buffer.prototype.readUInt32BE = function (offset, noAssert) {
8048 return _readUInt32(this, offset, false, noAssert)
8049 }
8050
8051 Buffer.prototype.readInt8 = function (offset, noAssert) {
8052 if (!noAssert) {
8053 assert(offset !== undefined && offset !== null,
8054 'missing offset')
8055 assert(offset < this.length, 'Trying to read beyond buffer length')
8056 }
8057
8058 if (offset >= this.length)
8059 return
8060
8061 var neg = this[offset] & 0x80
8062 if (neg)
8063 return (0xff - this[offset] + 1) * -1
8064 else
8065 return this[offset]
8066 }
8067
8068 function _readInt16 (buf, offset, littleEndian, noAssert) {
8069 if (!noAssert) {
8070 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8071 assert(offset !== undefined && offset !== null, 'missing offset')
8072 assert(offset + 1 < buf.length, 'Trying to read beyond buffer length')
8073 }
8074
8075 var len = buf.length
8076 if (offset >= len)
8077 return
8078
8079 var val = _readUInt16(buf, offset, littleEndian, true)
8080 var neg = val & 0x8000
8081 if (neg)
8082 return (0xffff - val + 1) * -1
8083 else
8084 return val
8085 }
8086
8087 Buffer.prototype.readInt16LE = function (offset, noAssert) {
8088 return _readInt16(this, offset, true, noAssert)
8089 }
8090
8091 Buffer.prototype.readInt16BE = function (offset, noAssert) {
8092 return _readInt16(this, offset, false, noAssert)
8093 }
8094
8095 function _readInt32 (buf, offset, littleEndian, noAssert) {
8096 if (!noAssert) {
8097 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8098 assert(offset !== undefined && offset !== null, 'missing offset')
8099 assert(offset + 3 < buf.length, 'Trying to read beyond buffer length')
8100 }
8101
8102 var len = buf.length
8103 if (offset >= len)
8104 return
8105
8106 var val = _readUInt32(buf, offset, littleEndian, true)
8107 var neg = val & 0x80000000
8108 if (neg)
8109 return (0xffffffff - val + 1) * -1
8110 else
8111 return val
8112 }
8113
8114 Buffer.prototype.readInt32LE = function (offset, noAssert) {
8115 return _readInt32(this, offset, true, noAssert)
8116 }
8117
8118 Buffer.prototype.readInt32BE = function (offset, noAssert) {
8119 return _readInt32(this, offset, false, noAssert)
8120 }
8121
8122 function _readFloat (buf, offset, littleEndian, noAssert) {
8123 if (!noAssert) {
8124 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8125 assert(offset + 3 < buf.length, 'Trying to read beyond buffer length')
8126 }
8127
8128 return ieee754.read(buf, offset, littleEndian, 23, 4)
8129 }
8130
8131 Buffer.prototype.readFloatLE = function (offset, noAssert) {
8132 return _readFloat(this, offset, true, noAssert)
8133 }
8134
8135 Buffer.prototype.readFloatBE = function (offset, noAssert) {
8136 return _readFloat(this, offset, false, noAssert)
8137 }
8138
8139 function _readDouble (buf, offset, littleEndian, noAssert) {
8140 if (!noAssert) {
8141 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8142 assert(offset + 7 < buf.length, 'Trying to read beyond buffer length')
8143 }
8144
8145 return ieee754.read(buf, offset, littleEndian, 52, 8)
8146 }
8147
8148 Buffer.prototype.readDoubleLE = function (offset, noAssert) {
8149 return _readDouble(this, offset, true, noAssert)
8150 }
8151
8152 Buffer.prototype.readDoubleBE = function (offset, noAssert) {
8153 return _readDouble(this, offset, false, noAssert)
8154 }
8155
8156 Buffer.prototype.writeUInt8 = function (value, offset, noAssert) {
8157 if (!noAssert) {
8158 assert(value !== undefined && value !== null, 'missing value')
8159 assert(offset !== undefined && offset !== null, 'missing offset')
8160 assert(offset < this.length, 'trying to write beyond buffer length')
8161 verifuint(value, 0xff)
8162 }
8163
8164 if (offset >= this.length) return
8165
8166 this[offset] = value
8167 }
8168
8169 function _writeUInt16 (buf, value, offset, littleEndian, noAssert) {
8170 if (!noAssert) {
8171 assert(value !== undefined && value !== null, 'missing value')
8172 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8173 assert(offset !== undefined && offset !== null, 'missing offset')
8174 assert(offset + 1 < buf.length, 'trying to write beyond buffer length')
8175 verifuint(value, 0xffff)
8176 }
8177
8178 var len = buf.length
8179 if (offset >= len)
8180 return
8181
8182 for (var i = 0, j = Math.min(len - offset, 2); i < j; i++) {
8183 buf[offset + i] =
8184 (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
8185 (littleEndian ? i : 1 - i) * 8
8186 }
8187 }
8188
8189 Buffer.prototype.writeUInt16LE = function (value, offset, noAssert) {
8190 _writeUInt16(this, value, offset, true, noAssert)
8191 }
8192
8193 Buffer.prototype.writeUInt16BE = function (value, offset, noAssert) {
8194 _writeUInt16(this, value, offset, false, noAssert)
8195 }
8196
8197 function _writeUInt32 (buf, value, offset, littleEndian, noAssert) {
8198 if (!noAssert) {
8199 assert(value !== undefined && value !== null, 'missing value')
8200 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8201 assert(offset !== undefined && offset !== null, 'missing offset')
8202 assert(offset + 3 < buf.length, 'trying to write beyond buffer length')
8203 verifuint(value, 0xffffffff)
8204 }
8205
8206 var len = buf.length
8207 if (offset >= len)
8208 return
8209
8210 for (var i = 0, j = Math.min(len - offset, 4); i < j; i++) {
8211 buf[offset + i] =
8212 (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
8213 }
8214 }
8215
8216 Buffer.prototype.writeUInt32LE = function (value, offset, noAssert) {
8217 _writeUInt32(this, value, offset, true, noAssert)
8218 }
8219
8220 Buffer.prototype.writeUInt32BE = function (value, offset, noAssert) {
8221 _writeUInt32(this, value, offset, false, noAssert)
8222 }
8223
8224 Buffer.prototype.writeInt8 = function (value, offset, noAssert) {
8225 if (!noAssert) {
8226 assert(value !== undefined && value !== null, 'missing value')
8227 assert(offset !== undefined && offset !== null, 'missing offset')
8228 assert(offset < this.length, 'Trying to write beyond buffer length')
8229 verifsint(value, 0x7f, -0x80)
8230 }
8231
8232 if (offset >= this.length)
8233 return
8234
8235 if (value >= 0)
8236 this.writeUInt8(value, offset, noAssert)
8237 else
8238 this.writeUInt8(0xff + value + 1, offset, noAssert)
8239 }
8240
8241 function _writeInt16 (buf, value, offset, littleEndian, noAssert) {
8242 if (!noAssert) {
8243 assert(value !== undefined && value !== null, 'missing value')
8244 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8245 assert(offset !== undefined && offset !== null, 'missing offset')
8246 assert(offset + 1 < buf.length, 'Trying to write beyond buffer length')
8247 verifsint(value, 0x7fff, -0x8000)
8248 }
8249
8250 var len = buf.length
8251 if (offset >= len)
8252 return
8253
8254 if (value >= 0)
8255 _writeUInt16(buf, value, offset, littleEndian, noAssert)
8256 else
8257 _writeUInt16(buf, 0xffff + value + 1, offset, littleEndian, noAssert)
8258 }
8259
8260 Buffer.prototype.writeInt16LE = function (value, offset, noAssert) {
8261 _writeInt16(this, value, offset, true, noAssert)
8262 }
8263
8264 Buffer.prototype.writeInt16BE = function (value, offset, noAssert) {
8265 _writeInt16(this, value, offset, false, noAssert)
8266 }
8267
8268 function _writeInt32 (buf, value, offset, littleEndian, noAssert) {
8269 if (!noAssert) {
8270 assert(value !== undefined && value !== null, 'missing value')
8271 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8272 assert(offset !== undefined && offset !== null, 'missing offset')
8273 assert(offset + 3 < buf.length, 'Trying to write beyond buffer length')
8274 verifsint(value, 0x7fffffff, -0x80000000)
8275 }
8276
8277 var len = buf.length
8278 if (offset >= len)
8279 return
8280
8281 if (value >= 0)
8282 _writeUInt32(buf, value, offset, littleEndian, noAssert)
8283 else
8284 _writeUInt32(buf, 0xffffffff + value + 1, offset, littleEndian, noAssert)
8285 }
8286
8287 Buffer.prototype.writeInt32LE = function (value, offset, noAssert) {
8288 _writeInt32(this, value, offset, true, noAssert)
8289 }
8290
8291 Buffer.prototype.writeInt32BE = function (value, offset, noAssert) {
8292 _writeInt32(this, value, offset, false, noAssert)
8293 }
8294
8295 function _writeFloat (buf, value, offset, littleEndian, noAssert) {
8296 if (!noAssert) {
8297 assert(value !== undefined && value !== null, 'missing value')
8298 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8299 assert(offset !== undefined && offset !== null, 'missing offset')
8300 assert(offset + 3 < buf.length, 'Trying to write beyond buffer length')
8301 verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38)
8302 }
8303
8304 var len = buf.length
8305 if (offset >= len)
8306 return
8307
8308 ieee754.write(buf, value, offset, littleEndian, 23, 4)
8309 }
8310
8311 Buffer.prototype.writeFloatLE = function (value, offset, noAssert) {
8312 _writeFloat(this, value, offset, true, noAssert)
8313 }
8314
8315 Buffer.prototype.writeFloatBE = function (value, offset, noAssert) {
8316 _writeFloat(this, value, offset, false, noAssert)
8317 }
8318
8319 function _writeDouble (buf, value, offset, littleEndian, noAssert) {
8320 if (!noAssert) {
8321 assert(value !== undefined && value !== null, 'missing value')
8322 assert(typeof littleEndian === 'boolean', 'missing or invalid endian')
8323 assert(offset !== undefined && offset !== null, 'missing offset')
8324 assert(offset + 7 < buf.length,
8325 'Trying to write beyond buffer length')
8326 verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308)
8327 }
8328
8329 var len = buf.length
8330 if (offset >= len)
8331 return
8332
8333 ieee754.write(buf, value, offset, littleEndian, 52, 8)
8334 }
8335
8336 Buffer.prototype.writeDoubleLE = function (value, offset, noAssert) {
8337 _writeDouble(this, value, offset, true, noAssert)
8338 }
8339
8340 Buffer.prototype.writeDoubleBE = function (value, offset, noAssert) {
8341 _writeDouble(this, value, offset, false, noAssert)
8342 }
8343
8344 Buffer.prototype.fill = function (value, start, end) {
8345 if (!value) value = 0
8346 if (!start) start = 0
8347 if (!end) end = this.length
8348
8349 if (typeof value === 'string') {
8350 value = value.charCodeAt(0)
8351 }
8352
8353 assert(typeof value === 'number' && !isNaN(value), 'value is not a number')
8354 assert(end >= start, 'end < start')
8355
8356 if (end === start) return
8357 if (this.length === 0) return
8358
8359 assert(start >= 0 && start < this.length, 'start out of bounds')
8360 assert(end >= 0 && end <= this.length, 'end out of bounds')
8361
8362 for (var i = start; i < end; i++) {
8363 this[i] = value
8364 }
8365 }
8366
8367 Buffer.prototype.inspect = function () {
8368 var out = []
8369 var len = this.length
8370 for (var i = 0; i < len; i++) {
8371 out[i] = toHex(this[i])
8372 if (i === exports.INSPECT_MAX_BYTES) {
8373 out[i + 1] = '...'
8374 break
8375 }
8376 }
8377 return '<Buffer ' + out.join(' ') + '>'
8378 }
8379
8380
8381 Buffer.prototype.toArrayBuffer = function () {
8382 if (typeof Uint8Array !== 'undefined') {
8383 if (Buffer._useTypedArrays) {
8384 return (new Buffer(this)).buffer
8385 } else {
8386 var buf = new Uint8Array(this.length)
8387 for (var i = 0, len = buf.length; i < len; i += 1)
8388 buf[i] = this[i]
8389 return buf.buffer
8390 }
8391 } else {
8392 throw new Error('Buffer.toArrayBuffer not supported in this browser')
8393 }
8394 }
8395
8396
8397 function stringtrim (str) {
8398 if (str.trim) return str.trim()
8399 return str.replace(/^\s+|\s+$/g, '')
8400 }
8401
8402 var BP = Buffer.prototype
8403
8404
8405 Buffer._augment = function (arr) {
8406 arr._isBuffer = true
8407
8408 arr._get = arr.get
8409 arr._set = arr.set
8410
8411 arr.get = BP.get
8412 arr.set = BP.set
8413
8414 arr.write = BP.write
8415 arr.toString = BP.toString
8416 arr.toLocaleString = BP.toString
8417 arr.toJSON = BP.toJSON
8418 arr.copy = BP.copy
8419 arr.slice = BP.slice
8420 arr.readUInt8 = BP.readUInt8
8421 arr.readUInt16LE = BP.readUInt16LE
8422 arr.readUInt16BE = BP.readUInt16BE
8423 arr.readUInt32LE = BP.readUInt32LE
8424 arr.readUInt32BE = BP.readUInt32BE
8425 arr.readInt8 = BP.readInt8
8426 arr.readInt16LE = BP.readInt16LE
8427 arr.readInt16BE = BP.readInt16BE
8428 arr.readInt32LE = BP.readInt32LE
8429 arr.readInt32BE = BP.readInt32BE
8430 arr.readFloatLE = BP.readFloatLE
8431 arr.readFloatBE = BP.readFloatBE
8432 arr.readDoubleLE = BP.readDoubleLE
8433 arr.readDoubleBE = BP.readDoubleBE
8434 arr.writeUInt8 = BP.writeUInt8
8435 arr.writeUInt16LE = BP.writeUInt16LE
8436 arr.writeUInt16BE = BP.writeUInt16BE
8437 arr.writeUInt32LE = BP.writeUInt32LE
8438 arr.writeUInt32BE = BP.writeUInt32BE
8439 arr.writeInt8 = BP.writeInt8
8440 arr.writeInt16LE = BP.writeInt16LE
8441 arr.writeInt16BE = BP.writeInt16BE
8442 arr.writeInt32LE = BP.writeInt32LE
8443 arr.writeInt32BE = BP.writeInt32BE
8444 arr.writeFloatLE = BP.writeFloatLE
8445 arr.writeFloatBE = BP.writeFloatBE
8446 arr.writeDoubleLE = BP.writeDoubleLE
8447 arr.writeDoubleBE = BP.writeDoubleBE
8448 arr.fill = BP.fill
8449 arr.inspect = BP.inspect
8450 arr.toArrayBuffer = BP.toArrayBuffer
8451
8452 return arr
8453 }
8454
8455 function clamp (index, len, defaultValue) {
8456 if (typeof index !== 'number') return defaultValue
8457 index = ~~index; // Coerce to integer.
8458 if (index >= len) return len
8459 if (index >= 0) return index
8460 index += len
8461 if (index >= 0) return index
8462 return 0
8463 }
8464
8465 function coerce (length) {
8466 length = ~~Math.ceil(+length)
8467 return length < 0 ? 0 : length
8468 }
8469
8470 function isArray (subject) {
8471 return (Array.isArray || function (subject) {
8472 return Object.prototype.toString.call(subject) === '[object Array]'
8473 })(subject)
8474 }
8475
8476 function isArrayish (subject) {
8477 return isArray(subject) || Buffer.isBuffer(subject) ||
8478 subject && typeof subject === 'object' &&
8479 typeof subject.length === 'number'
8480 }
8481
8482 function toHex (n) {
8483 if (n < 16) return '0' + n.toString(16)
8484 return n.toString(16)
8485 }
8486
8487 function utf8ToBytes (str) {
8488 var byteArray = []
8489 for (var i = 0; i < str.length; i++) {
8490 var b = str.charCodeAt(i)
8491 if (b <= 0x7F)
8492 byteArray.push(str.charCodeAt(i))
8493 else {
8494 var start = i
8495 if (b >= 0xD800 && b <= 0xDFFF) i++
8496 var h = encodeURIComponent(str.slice(start, i+1)).substr(1).split('%')
8497 for (var j = 0; j < h.length; j++)
8498 byteArray.push(parseInt(h[j], 16))
8499 }
8500 }
8501 return byteArray
8502 }
8503
8504 function asciiToBytes (str) {
8505 var byteArray = []
8506 for (var i = 0; i < str.length; i++) {
8507 byteArray.push(str.charCodeAt(i) & 0xFF)
8508 }
8509 return byteArray
8510 }
8511
8512 function utf16leToBytes (str) {
8513 var c, hi, lo
8514 var byteArray = []
8515 for (var i = 0; i < str.length; i++) {
8516 c = str.charCodeAt(i)
8517 hi = c >> 8
8518 lo = c % 256
8519 byteArray.push(lo)
8520 byteArray.push(hi)
8521 }
8522
8523 return byteArray
8524 }
8525
8526 function base64ToBytes (str) {
8527 return base64.toByteArray(str)
8528 }
8529
8530 function blitBuffer (src, dst, offset, length) {
8531 var pos
8532 for (var i = 0; i < length; i++) {
8533 if ((i + offset >= dst.length) || (i >= src.length))
8534 break
8535 dst[i + offset] = src[i]
8536 }
8537 return i
8538 }
8539
8540 function decodeUtf8Char (str) {
8541 try {
8542 return decodeURIComponent(str)
8543 } catch (err) {
8544 return String.fromCharCode(0xFFFD) // UTF 8 invalid char
8545 }
8546 }
8547
8548
8549 function verifuint (value, max) {
8550 assert(typeof value === 'number', 'cannot write a non-number as a number')
8551 assert(value >= 0, 'specified a negative value for writing an unsigned value')
8552 assert(value <= max, 'value is larger than maximum value for type')
8553 assert(Math.floor(value) === value, 'value has a fractional component')
8554 }
8555
8556 function verifsint (value, max, min) {
8557 assert(typeof value === 'number', 'cannot write a non-number as a number')
8558 assert(value <= max, 'value larger than maximum allowed value')
8559 assert(value >= min, 'value smaller than minimum allowed value')
8560 assert(Math.floor(value) === value, 'value has a fractional component')
8561 }
8562
8563 function verifIEEE754 (value, max, min) {
8564 assert(typeof value === 'number', 'cannot write a non-number as a number')
8565 assert(value <= max, 'value larger than maximum allowed value')
8566 assert(value >= min, 'value smaller than minimum allowed value')
8567 }
8568
8569 function assert (test, message) {
8570 if (!test) throw new Error(message || 'Failed assertion')
8571 }
8572
8573 },{"base64-js":63,"ieee754":64}],63:[function(require,module,exports){
8574 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
8575
8576 ;(function (exports) {
8577 'use strict';
8578
8579 var Arr = (typeof Uint8Array !== 'undefined')
8580 ? Uint8Array
8581 : Array
8582
8583 var PLUS = '+'.charCodeAt(0)
8584 var SLASH = '/'.charCodeAt(0)
8585 var NUMBER = '0'.charCodeAt(0)
8586 var LOWER = 'a'.charCodeAt(0)
8587 var UPPER = 'A'.charCodeAt(0)
8588 var PLUS_URL_SAFE = '-'.charCodeAt(0)
8589 var SLASH_URL_SAFE = '_'.charCodeAt(0)
8590
8591 function decode (elt) {
8592 var code = elt.charCodeAt(0)
8593 if (code === PLUS ||
8594 code === PLUS_URL_SAFE)
8595 return 62 // '+'
8596 if (code === SLASH ||
8597 code === SLASH_URL_SAFE)
8598 return 63 // '/'
8599 if (code < NUMBER)
8600 return -1 //no match
8601 if (code < NUMBER + 10)
8602 return code - NUMBER + 26 + 26
8603 if (code < UPPER + 26)
8604 return code - UPPER
8605 if (code < LOWER + 26)
8606 return code - LOWER + 26
8607 }
8608
8609 function b64ToByteArray (b64) {
8610 var i, j, l, tmp, placeHolders, arr
8611
8612 if (b64.length % 4 > 0) {
8613 throw new Error('Invalid string. Length must be a multiple of 4')
8614 }
8615
8616 var len = b64.length
8617 placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0
8618
8619 arr = new Arr(b64.length * 3 / 4 - placeHolders)
8620
8621 l = placeHolders > 0 ? b64.length - 4 : b64.length
8622
8623 var L = 0
8624
8625 function push (v) {
8626 arr[L++] = v
8627 }
8628
8629 for (i = 0, j = 0; i < l; i += 4, j += 3) {
8630 tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))
8631 push((tmp & 0xFF0000) >> 16)
8632 push((tmp & 0xFF00) >> 8)
8633 push(tmp & 0xFF)
8634 }
8635
8636 if (placeHolders === 2) {
8637 tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)
8638 push(tmp & 0xFF)
8639 } else if (placeHolders === 1) {
8640 tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)
8641 push((tmp >> 8) & 0xFF)
8642 push(tmp & 0xFF)
8643 }
8644
8645 return arr
8646 }
8647
8648 function uint8ToBase64 (uint8) {
8649 var i,
8650 extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
8651 output = "",
8652 temp, length
8653
8654 function encode (num) {
8655 return lookup.charAt(num)
8656 }
8657
8658 function tripletToBase64 (num) {
8659 return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)
8660 }
8661
8662 for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
8663 temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
8664 output += tripletToBase64(temp)
8665 }
8666
8667 switch (extraBytes) {
8668 case 1:
8669 temp = uint8[uint8.length - 1]
8670 output += encode(temp >> 2)
8671 output += encode((temp << 4) & 0x3F)
8672 output += '=='
8673 break
8674 case 2:
8675 temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])
8676 output += encode(temp >> 10)
8677 output += encode((temp >> 4) & 0x3F)
8678 output += encode((temp << 2) & 0x3F)
8679 output += '='
8680 break
8681 }
8682
8683 return output
8684 }
8685
8686 exports.toByteArray = b64ToByteArray
8687 exports.fromByteArray = uint8ToBase64
8688 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
8689
8690 },{}],64:[function(require,module,exports){
8691 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
8692 var e, m
8693 var eLen = nBytes * 8 - mLen - 1
8694 var eMax = (1 << eLen) - 1
8695 var eBias = eMax >> 1
8696 var nBits = -7
8697 var i = isLE ? (nBytes - 1) : 0
8698 var d = isLE ? -1 : 1
8699 var s = buffer[offset + i]
8700
8701 i += d
8702
8703 e = s & ((1 << (-nBits)) - 1)
8704 s >>= (-nBits)
8705 nBits += eLen
8706 for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
8707
8708 m = e & ((1 << (-nBits)) - 1)
8709 e >>= (-nBits)
8710 nBits += mLen
8711 for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
8712
8713 if (e === 0) {
8714 e = 1 - eBias
8715 } else if (e === eMax) {
8716 return m ? NaN : ((s ? -1 : 1) * Infinity)
8717 } else {
8718 m = m + Math.pow(2, mLen)
8719 e = e - eBias
8720 }
8721 return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
8722 }
8723
8724 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
8725 var e, m, c
8726 var eLen = nBytes * 8 - mLen - 1
8727 var eMax = (1 << eLen) - 1
8728 var eBias = eMax >> 1
8729 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
8730 var i = isLE ? 0 : (nBytes - 1)
8731 var d = isLE ? 1 : -1
8732 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
8733
8734 value = Math.abs(value)
8735
8736 if (isNaN(value) || value === Infinity) {
8737 m = isNaN(value) ? 1 : 0
8738 e = eMax
8739 } else {
8740 e = Math.floor(Math.log(value) / Math.LN2)
8741 if (value * (c = Math.pow(2, -e)) < 1) {
8742 e--
8743 c *= 2
8744 }
8745 if (e + eBias >= 1) {
8746 value += rt / c
8747 } else {
8748 value += rt * Math.pow(2, 1 - eBias)
8749 }
8750 if (value * c >= 2) {
8751 e++
8752 c /= 2
8753 }
8754
8755 if (e + eBias >= eMax) {
8756 m = 0
8757 e = eMax
8758 } else if (e + eBias >= 1) {
8759 m = (value * c - 1) * Math.pow(2, mLen)
8760 e = e + eBias
8761 } else {
8762 m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
8763 e = 0
8764 }
8765 }
8766
8767 for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
8768
8769 e = (e << mLen) | m
8770 eLen += mLen
8771 for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
8772
8773 buffer[offset + i - d] |= s * 128
8774 }
8775
8776 },{}],65:[function(require,module,exports){
8777 var Buffer = require('buffer').Buffer;
8778 var intSize = 4;
8779 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(0);
8780 var chrsz = 8;
8781
8782 function toArray(buf, bigEndian) {
8783 if ((buf.length % intSize) !== 0) {
8784 var len = buf.length + (intSize - (buf.length % intSize));
8785 buf = Buffer.concat([buf, zeroBuffer], len);
8786 }
8787
8788 var arr = [];
8789 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
8790 for (var i = 0; i < buf.length; i += intSize) {
8791 arr.push(fn.call(buf, i));
8792 }
8793 return arr;
8794 }
8795
8796 function toBuffer(arr, size, bigEndian) {
8797 var buf = new Buffer(size);
8798 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
8799 for (var i = 0; i < arr.length; i++) {
8800 fn.call(buf, arr[i], i * 4, true);
8801 }
8802 return buf;
8803 }
8804
8805 function hash(buf, fn, hashSize, bigEndian) {
8806 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
8807 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
8808 return toBuffer(arr, hashSize, bigEndian);
8809 }
8810
8811 module.exports = { hash: hash };
8812
8813 },{"buffer":62}],66:[function(require,module,exports){
8814 var Buffer = require('buffer').Buffer
8815 var sha = require('./sha')
8816 var sha256 = require('./sha256')
8817 var rng = require('./rng')
8818 var md5 = require('./md5')
8819
8820 var algorithms = {
8821 sha1: sha,
8822 sha256: sha256,
8823 md5: md5
8824 }
8825
8826 var blocksize = 64
8827 var zeroBuffer = new Buffer(blocksize); zeroBuffer.fill(0)
8828 function hmac(fn, key, data) {
8829 if(!Buffer.isBuffer(key)) key = new Buffer(key)
8830 if(!Buffer.isBuffer(data)) data = new Buffer(data)
8831
8832 if(key.length > blocksize) {
8833 key = fn(key)
8834 } else if(key.length < blocksize) {
8835 key = Buffer.concat([key, zeroBuffer], blocksize)
8836 }
8837
8838 var ipad = new Buffer(blocksize), opad = new Buffer(blocksize)
8839 for(var i = 0; i < blocksize; i++) {
8840 ipad[i] = key[i] ^ 0x36
8841 opad[i] = key[i] ^ 0x5C
8842 }
8843
8844 var hash = fn(Buffer.concat([ipad, data]))
8845 return fn(Buffer.concat([opad, hash]))
8846 }
8847
8848 function hash(alg, key) {
8849 alg = alg || 'sha1'
8850 var fn = algorithms[alg]
8851 var bufs = []
8852 var length = 0
8853 if(!fn) error('algorithm:', alg, 'is not yet supported')
8854 return {
8855 update: function (data) {
8856 if(!Buffer.isBuffer(data)) data = new Buffer(data)
8857
8858 bufs.push(data)
8859 length += data.length
8860 return this
8861 },
8862 digest: function (enc) {
8863 var buf = Buffer.concat(bufs)
8864 var r = key ? hmac(fn, key, buf) : fn(buf)
8865 bufs = null
8866 return enc ? r.toString(enc) : r
8867 }
8868 }
8869 }
8870
8871 function error () {
8872 var m = [].slice.call(arguments).join(' ')
8873 throw new Error([
8874 m,
8875 'we accept pull requests',
8876 'http://github.com/dominictarr/crypto-browserify'
8877 ].join('\n'))
8878 }
8879
8880 exports.createHash = function (alg) { return hash(alg) }
8881 exports.createHmac = function (alg, key) { return hash(alg, key) }
8882 exports.randomBytes = function(size, callback) {
8883 if (callback && callback.call) {
8884 try {
8885 callback.call(this, undefined, new Buffer(rng(size)))
8886 } catch (err) { callback(err) }
8887 } else {
8888 return new Buffer(rng(size))
8889 }
8890 }
8891
8892 function each(a, f) {
8893 for(var i in a)
8894 f(a[i], i)
8895 }
8896
8897 each(['createCredentials'
8898 , 'createCipher'
8899 , 'createCipheriv'
8900 , 'createDecipher'
8901 , 'createDecipheriv'
8902 , 'createSign'
8903 , 'createVerify'
8904 , 'createDiffieHellman'
8905 , 'pbkdf2'], function (name) {
8906 exports[name] = function () {
8907 error('sorry,', name, 'is not implemented yet')
8908 }
8909 })
8910
8911 },{"./md5":67,"./rng":68,"./sha":69,"./sha256":70,"buffer":62}],67:[function(require,module,exports){
8912
8913
8914 var helpers = require('./helpers');
8915
8916
8917 function md5_vm_test()
8918 {
8919 return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
8920 }
8921
8922
8923 function core_md5(x, len)
8924 {
8925
8926 x[len >> 5] |= 0x80 << ((len) % 32);
8927 x[(((len + 64) >>> 9) << 4) + 14] = len;
8928
8929 var a = 1732584193;
8930 var b = -271733879;
8931 var c = -1732584194;
8932 var d = 271733878;
8933
8934 for(var i = 0; i < x.length; i += 16)
8935 {
8936 var olda = a;
8937 var oldb = b;
8938 var oldc = c;
8939 var oldd = d;
8940
8941 a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
8942 d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
8943 c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
8944 b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
8945 a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
8946 d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
8947 c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
8948 b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
8949 a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
8950 d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
8951 c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
8952 b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
8953 a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
8954 d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
8955 c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
8956 b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
8957
8958 a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
8959 d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
8960 c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
8961 b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
8962 a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
8963 d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
8964 c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
8965 b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
8966 a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
8967 d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
8968 c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
8969 b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
8970 a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
8971 d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
8972 c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
8973 b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
8974
8975 a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
8976 d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
8977 c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
8978 b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
8979 a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
8980 d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
8981 c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
8982 b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
8983 a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
8984 d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
8985 c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
8986 b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
8987 a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
8988 d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
8989 c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
8990 b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
8991
8992 a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
8993 d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
8994 c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
8995 b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
8996 a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
8997 d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
8998 c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
8999 b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
9000 a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
9001 d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
9002 c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
9003 b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
9004 a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
9005 d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
9006 c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
9007 b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
9008
9009 a = safe_add(a, olda);
9010 b = safe_add(b, oldb);
9011 c = safe_add(c, oldc);
9012 d = safe_add(d, oldd);
9013 }
9014 return Array(a, b, c, d);
9015
9016 }
9017
9018
9019 function md5_cmn(q, a, b, x, s, t)
9020 {
9021 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
9022 }
9023 function md5_ff(a, b, c, d, x, s, t)
9024 {
9025 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
9026 }
9027 function md5_gg(a, b, c, d, x, s, t)
9028 {
9029 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
9030 }
9031 function md5_hh(a, b, c, d, x, s, t)
9032 {
9033 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
9034 }
9035 function md5_ii(a, b, c, d, x, s, t)
9036 {
9037 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
9038 }
9039
9040
9041 function safe_add(x, y)
9042 {
9043 var lsw = (x & 0xFFFF) + (y & 0xFFFF);
9044 var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
9045 return (msw << 16) | (lsw & 0xFFFF);
9046 }
9047
9048
9049 function bit_rol(num, cnt)
9050 {
9051 return (num << cnt) | (num >>> (32 - cnt));
9052 }
9053
9054 module.exports = function md5(buf) {
9055 return helpers.hash(buf, core_md5, 16);
9056 };
9057
9058 },{"./helpers":65}],68:[function(require,module,exports){
9059 (function() {
9060 var _global = this;
9061
9062 var mathRNG, whatwgRNG;
9063
9064 mathRNG = function(size) {
9065 var bytes = new Array(size);
9066 var r;
9067
9068 for (var i = 0, r; i < size; i++) {
9069 if ((i & 0x03) == 0) r = Math.random() * 0x100000000;
9070 bytes[i] = r >>> ((i & 0x03) << 3) & 0xff;
9071 }
9072
9073 return bytes;
9074 }
9075
9076 if (_global.crypto && crypto.getRandomValues) {
9077 whatwgRNG = function(size) {
9078 var bytes = new Uint8Array(size);
9079 crypto.getRandomValues(bytes);
9080 return bytes;
9081 }
9082 }
9083
9084 module.exports = whatwgRNG || mathRNG;
9085
9086 }())
9087
9088 },{}],69:[function(require,module,exports){
9089
9090
9091 var helpers = require('./helpers');
9092
9093
9094 function core_sha1(x, len)
9095 {
9096
9097 x[len >> 5] |= 0x80 << (24 - len % 32);
9098 x[((len + 64 >> 9) << 4) + 15] = len;
9099
9100 var w = Array(80);
9101 var a = 1732584193;
9102 var b = -271733879;
9103 var c = -1732584194;
9104 var d = 271733878;
9105 var e = -1009589776;
9106
9107 for(var i = 0; i < x.length; i += 16)
9108 {
9109 var olda = a;
9110 var oldb = b;
9111 var oldc = c;
9112 var oldd = d;
9113 var olde = e;
9114
9115 for(var j = 0; j < 80; j++)
9116 {
9117 if(j < 16) w[j] = x[i + j];
9118 else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
9119 var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
9120 safe_add(safe_add(e, w[j]), sha1_kt(j)));
9121 e = d;
9122 d = c;
9123 c = rol(b, 30);
9124 b = a;
9125 a = t;
9126 }
9127
9128 a = safe_add(a, olda);
9129 b = safe_add(b, oldb);
9130 c = safe_add(c, oldc);
9131 d = safe_add(d, oldd);
9132 e = safe_add(e, olde);
9133 }
9134 return Array(a, b, c, d, e);
9135
9136 }
9137
9138
9139 function sha1_ft(t, b, c, d)
9140 {
9141 if(t < 20) return (b & c) | ((~b) & d);
9142 if(t < 40) return b ^ c ^ d;
9143 if(t < 60) return (b & c) | (b & d) | (c & d);
9144 return b ^ c ^ d;
9145 }
9146
9147
9148 function sha1_kt(t)
9149 {
9150 return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
9151 (t < 60) ? -1894007588 : -899497514;
9152 }
9153
9154
9155 function safe_add(x, y)
9156 {
9157 var lsw = (x & 0xFFFF) + (y & 0xFFFF);
9158 var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
9159 return (msw << 16) | (lsw & 0xFFFF);
9160 }
9161
9162
9163 function rol(num, cnt)
9164 {
9165 return (num << cnt) | (num >>> (32 - cnt));
9166 }
9167
9168 module.exports = function sha1(buf) {
9169 return helpers.hash(buf, core_sha1, 20, true);
9170 };
9171
9172 },{"./helpers":65}],70:[function(require,module,exports){
9173
9174
9175
9176 var helpers = require('./helpers');
9177
9178 var safe_add = function(x, y) {
9179 var lsw = (x & 0xFFFF) + (y & 0xFFFF);
9180 var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
9181 return (msw << 16) | (lsw & 0xFFFF);
9182 };
9183
9184 var S = function(X, n) {
9185 return (X >>> n) | (X << (32 - n));
9186 };
9187
9188 var R = function(X, n) {
9189 return (X >>> n);
9190 };
9191
9192 var Ch = function(x, y, z) {
9193 return ((x & y) ^ ((~x) & z));
9194 };
9195
9196 var Maj = function(x, y, z) {
9197 return ((x & y) ^ (x & z) ^ (y & z));
9198 };
9199
9200 var Sigma0256 = function(x) {
9201 return (S(x, 2) ^ S(x, 13) ^ S(x, 22));
9202 };
9203
9204 var Sigma1256 = function(x) {
9205 return (S(x, 6) ^ S(x, 11) ^ S(x, 25));
9206 };
9207
9208 var Gamma0256 = function(x) {
9209 return (S(x, 7) ^ S(x, 18) ^ R(x, 3));
9210 };
9211
9212 var Gamma1256 = function(x) {
9213 return (S(x, 17) ^ S(x, 19) ^ R(x, 10));
9214 };
9215
9216 var core_sha256 = function(m, l) {
9217 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);
9218 var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);
9219 var W = new Array(64);
9220 var a, b, c, d, e, f, g, h, i, j;
9221 var T1, T2;
9222
9223 m[l >> 5] |= 0x80 << (24 - l % 32);
9224 m[((l + 64 >> 9) << 4) + 15] = l;
9225 for (var i = 0; i < m.length; i += 16) {
9226 a = HASH[0]; b = HASH[1]; c = HASH[2]; d = HASH[3]; e = HASH[4]; f = HASH[5]; g = HASH[6]; h = HASH[7];
9227 for (var j = 0; j < 64; j++) {
9228 if (j < 16) {
9229 W[j] = m[j + i];
9230 } else {
9231 W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);
9232 }
9233 T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);
9234 T2 = safe_add(Sigma0256(a), Maj(a, b, c));
9235 h = g; g = f; f = e; e = safe_add(d, T1); d = c; c = b; b = a; a = safe_add(T1, T2);
9236 }
9237 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]);
9238 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]);
9239 }
9240 return HASH;
9241 };
9242
9243 module.exports = function sha256(buf) {
9244 return helpers.hash(buf, core_sha256, 32, true);
9245 };
9246
9247 },{"./helpers":65}],71:[function(require,module,exports){
9248
9249 function EventEmitter() {
9250 this._events = this._events || {};
9251 this._maxListeners = this._maxListeners || undefined;
9252 }
9253 module.exports = EventEmitter;
9254
9255 EventEmitter.EventEmitter = EventEmitter;
9256
9257 EventEmitter.prototype._events = undefined;
9258 EventEmitter.prototype._maxListeners = undefined;
9259
9260 EventEmitter.defaultMaxListeners = 10;
9261
9262 EventEmitter.prototype.setMaxListeners = function(n) {
9263 if (!isNumber(n) || n < 0 || isNaN(n))
9264 throw TypeError('n must be a positive number');
9265 this._maxListeners = n;
9266 return this;
9267 };
9268
9269 EventEmitter.prototype.emit = function(type) {
9270 var er, handler, len, args, i, listeners;
9271
9272 if (!this._events)
9273 this._events = {};
9274
9275 if (type === 'error') {
9276 if (!this._events.error ||
9277 (isObject(this._events.error) && !this._events.error.length)) {
9278 er = arguments[1];
9279 if (er instanceof Error) {
9280 throw er; // Unhandled 'error' event
9281 }
9282 throw TypeError('Uncaught, unspecified "error" event.');
9283 }
9284 }
9285
9286 handler = this._events[type];
9287
9288 if (isUndefined(handler))
9289 return false;
9290
9291 if (isFunction(handler)) {
9292 switch (arguments.length) {
9293 case 1:
9294 handler.call(this);
9295 break;
9296 case 2:
9297 handler.call(this, arguments[1]);
9298 break;
9299 case 3:
9300 handler.call(this, arguments[1], arguments[2]);
9301 break;
9302 default:
9303 len = arguments.length;
9304 args = new Array(len - 1);
9305 for (i = 1; i < len; i++)
9306 args[i - 1] = arguments[i];
9307 handler.apply(this, args);
9308 }
9309 } else if (isObject(handler)) {
9310 len = arguments.length;
9311 args = new Array(len - 1);
9312 for (i = 1; i < len; i++)
9313 args[i - 1] = arguments[i];
9314
9315 listeners = handler.slice();
9316 len = listeners.length;
9317 for (i = 0; i < len; i++)
9318 listeners[i].apply(this, args);
9319 }
9320
9321 return true;
9322 };
9323
9324 EventEmitter.prototype.addListener = function(type, listener) {
9325 var m;
9326
9327 if (!isFunction(listener))
9328 throw TypeError('listener must be a function');
9329
9330 if (!this._events)
9331 this._events = {};
9332
9333 if (this._events.newListener)
9334 this.emit('newListener', type,
9335 isFunction(listener.listener) ?
9336 listener.listener : listener);
9337
9338 if (!this._events[type])
9339 this._events[type] = listener;
9340 else if (isObject(this._events[type]))
9341 this._events[type].push(listener);
9342 else
9343 this._events[type] = [this._events[type], listener];
9344
9345 if (isObject(this._events[type]) && !this._events[type].warned) {
9346 var m;
9347 if (!isUndefined(this._maxListeners)) {
9348 m = this._maxListeners;
9349 } else {
9350 m = EventEmitter.defaultMaxListeners;
9351 }
9352
9353 if (m && m > 0 && this._events[type].length > m) {
9354 this._events[type].warned = true;
9355 console.error('(node) warning: possible EventEmitter memory ' +
9356 'leak detected. %d listeners added. ' +
9357 'Use emitter.setMaxListeners() to increase limit.',
9358 this._events[type].length);
9359 if (typeof console.trace === 'function') {
9360 console.trace();
9361 }
9362 }
9363 }
9364
9365 return this;
9366 };
9367
9368 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9369
9370 EventEmitter.prototype.once = function(type, listener) {
9371 if (!isFunction(listener))
9372 throw TypeError('listener must be a function');
9373
9374 var fired = false;
9375
9376 function g() {
9377 this.removeListener(type, g);
9378
9379 if (!fired) {
9380 fired = true;
9381 listener.apply(this, arguments);
9382 }
9383 }
9384
9385 g.listener = listener;
9386 this.on(type, g);
9387
9388 return this;
9389 };
9390
9391 EventEmitter.prototype.removeListener = function(type, listener) {
9392 var list, position, length, i;
9393
9394 if (!isFunction(listener))
9395 throw TypeError('listener must be a function');
9396
9397 if (!this._events || !this._events[type])
9398 return this;
9399
9400 list = this._events[type];
9401 length = list.length;
9402 position = -1;
9403
9404 if (list === listener ||
9405 (isFunction(list.listener) && list.listener === listener)) {
9406 delete this._events[type];
9407 if (this._events.removeListener)
9408 this.emit('removeListener', type, listener);
9409
9410 } else if (isObject(list)) {
9411 for (i = length; i-- > 0;) {
9412 if (list[i] === listener ||
9413 (list[i].listener && list[i].listener === listener)) {
9414 position = i;
9415 break;
9416 }
9417 }
9418
9419 if (position < 0)
9420 return this;
9421
9422 if (list.length === 1) {
9423 list.length = 0;
9424 delete this._events[type];
9425 } else {
9426 list.splice(position, 1);
9427 }
9428
9429 if (this._events.removeListener)
9430 this.emit('removeListener', type, listener);
9431 }
9432
9433 return this;
9434 };
9435
9436 EventEmitter.prototype.removeAllListeners = function(type) {
9437 var key, listeners;
9438
9439 if (!this._events)
9440 return this;
9441
9442 if (!this._events.removeListener) {
9443 if (arguments.length === 0)
9444 this._events = {};
9445 else if (this._events[type])
9446 delete this._events[type];
9447 return this;
9448 }
9449
9450 if (arguments.length === 0) {
9451 for (key in this._events) {
9452 if (key === 'removeListener') continue;
9453 this.removeAllListeners(key);
9454 }
9455 this.removeAllListeners('removeListener');
9456 this._events = {};
9457 return this;
9458 }
9459
9460 listeners = this._events[type];
9461
9462 if (isFunction(listeners)) {
9463 this.removeListener(type, listeners);
9464 } else {
9465 while (listeners.length)
9466 this.removeListener(type, listeners[listeners.length - 1]);
9467 }
9468 delete this._events[type];
9469
9470 return this;
9471 };
9472
9473 EventEmitter.prototype.listeners = function(type) {
9474 var ret;
9475 if (!this._events || !this._events[type])
9476 ret = [];
9477 else if (isFunction(this._events[type]))
9478 ret = [this._events[type]];
9479 else
9480 ret = this._events[type].slice();
9481 return ret;
9482 };
9483
9484 EventEmitter.listenerCount = function(emitter, type) {
9485 var ret;
9486 if (!emitter._events || !emitter._events[type])
9487 ret = 0;
9488 else if (isFunction(emitter._events[type]))
9489 ret = 1;
9490 else
9491 ret = emitter._events[type].length;
9492 return ret;
9493 };
9494
9495 function isFunction(arg) {
9496 return typeof arg === 'function';
9497 }
9498
9499 function isNumber(arg) {
9500 return typeof arg === 'number';
9501 }
9502
9503 function isObject(arg) {
9504 return typeof arg === 'object' && arg !== null;
9505 }
9506
9507 function isUndefined(arg) {
9508 return arg === void 0;
9509 }
9510
9511 },{}],72:[function(require,module,exports){
9512 if (typeof Object.create === 'function') {
9513 module.exports = function inherits(ctor, superCtor) {
9514 ctor.super_ = superCtor
9515 ctor.prototype = Object.create(superCtor.prototype, {
9516 constructor: {
9517 value: ctor,
9518 enumerable: false,
9519 writable: true,
9520 configurable: true
9521 }
9522 });
9523 };
9524 } else {
9525 module.exports = function inherits(ctor, superCtor) {
9526 ctor.super_ = superCtor
9527 var TempCtor = function () {}
9528 TempCtor.prototype = superCtor.prototype
9529 ctor.prototype = new TempCtor()
9530 ctor.prototype.constructor = ctor
9531 }
9532 }
9533
9534 },{}],73:[function(require,module,exports){
9535
9536 var process = module.exports = {};
9537
9538 process.nextTick = (function () {
9539 var canSetImmediate = typeof window !== 'undefined'
9540 && window.setImmediate;
9541 var canPost = typeof window !== 'undefined'
9542 && window.postMessage && window.addEventListener
9543 ;
9544
9545 if (canSetImmediate) {
9546 return function (f) { return window.setImmediate(f) };
9547 }
9548
9549 if (canPost) {
9550 var queue = [];
9551 window.addEventListener('message', function (ev) {
9552 var source = ev.source;
9553 if ((source === window || source === null) && ev.data === 'process-tick') {
9554 ev.stopPropagation();
9555 if (queue.length > 0) {
9556 var fn = queue.shift();
9557 fn();
9558 }
9559 }
9560 }, true);
9561
9562 return function nextTick(fn) {
9563 queue.push(fn);
9564 window.postMessage('process-tick', '*');
9565 };
9566 }
9567
9568 return function nextTick(fn) {
9569 setTimeout(fn, 0);
9570 };
9571 })();
9572
9573 process.title = 'browser';
9574 process.browser = true;
9575 process.env = {};
9576 process.argv = [];
9577
9578 function noop() {}
9579
9580 process.on = noop;
9581 process.addListener = noop;
9582 process.once = noop;
9583 process.off = noop;
9584 process.removeListener = noop;
9585 process.removeAllListeners = noop;
9586 process.emit = noop;
9587
9588 process.binding = function (name) {
9589 throw new Error('process.binding is not supported');
9590 }
9591
9592 process.cwd = function () { return '/' };
9593 process.chdir = function (dir) {
9594 throw new Error('process.chdir is not supported');
9595 };
9596
9597 },{}],74:[function(require,module,exports){
9598 (function (global){
9599
9600 ;(function(root) {
9601
9602
9603 var freeExports = typeof exports == 'object' && exports;
9604 var freeModule = typeof module == 'object' && module &&
9605 module.exports == freeExports && module;
9606 var freeGlobal = typeof global == 'object' && global;
9607 if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
9608 root = freeGlobal;
9609 }
9610
9611
9612 var punycode,
9613
9614
9615 maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
9616
9617
9618 base = 36,
9619 tMin = 1,
9620 tMax = 26,
9621 skew = 38,
9622 damp = 700,
9623 initialBias = 72,
9624 initialN = 128, // 0x80
9625 delimiter = '-', // '\x2D'
9626
9627
9628 regexPunycode = /^xn--/,
9629 regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars
9630 regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators
9631
9632
9633 errors = {
9634 'overflow': 'Overflow: input needs wider integers to process',
9635 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
9636 'invalid-input': 'Invalid input'
9637 },
9638
9639
9640 baseMinusTMin = base - tMin,
9641 floor = Math.floor,
9642 stringFromCharCode = String.fromCharCode,
9643
9644
9645 key;
9646
9647
9648
9649
9650 function error(type) {
9651 throw RangeError(errors[type]);
9652 }
9653
9654
9655 function map(array, fn) {
9656 var length = array.length;
9657 while (length--) {
9658 array[length] = fn(array[length]);
9659 }
9660 return array;
9661 }
9662
9663
9664 function mapDomain(string, fn) {
9665 return map(string.split(regexSeparators), fn).join('.');
9666 }
9667
9668
9669 function ucs2decode(string) {
9670 var output = [],
9671 counter = 0,
9672 length = string.length,
9673 value,
9674 extra;
9675 while (counter < length) {
9676 value = string.charCodeAt(counter++);
9677 if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
9678 extra = string.charCodeAt(counter++);
9679 if ((extra & 0xFC00) == 0xDC00) { // low surrogate
9680 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
9681 } else {
9682 output.push(value);
9683 counter--;
9684 }
9685 } else {
9686 output.push(value);
9687 }
9688 }
9689 return output;
9690 }
9691
9692
9693 function ucs2encode(array) {
9694 return map(array, function(value) {
9695 var output = '';
9696 if (value > 0xFFFF) {
9697 value -= 0x10000;
9698 output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
9699 value = 0xDC00 | value & 0x3FF;
9700 }
9701 output += stringFromCharCode(value);
9702 return output;
9703 }).join('');
9704 }
9705
9706
9707 function basicToDigit(codePoint) {
9708 if (codePoint - 48 < 10) {
9709 return codePoint - 22;
9710 }
9711 if (codePoint - 65 < 26) {
9712 return codePoint - 65;
9713 }
9714 if (codePoint - 97 < 26) {
9715 return codePoint - 97;
9716 }
9717 return base;
9718 }
9719
9720
9721 function digitToBasic(digit, flag) {
9722 return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
9723 }
9724
9725
9726 function adapt(delta, numPoints, firstTime) {
9727 var k = 0;
9728 delta = firstTime ? floor(delta / damp) : delta >> 1;
9729 delta += floor(delta / numPoints);
9730 for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
9731 delta = floor(delta / baseMinusTMin);
9732 }
9733 return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
9734 }
9735
9736
9737 function decode(input) {
9738 var output = [],
9739 inputLength = input.length,
9740 out,
9741 i = 0,
9742 n = initialN,
9743 bias = initialBias,
9744 basic,
9745 j,
9746 index,
9747 oldi,
9748 w,
9749 k,
9750 digit,
9751 t,
9752
9753 baseMinusT;
9754
9755
9756 basic = input.lastIndexOf(delimiter);
9757 if (basic < 0) {
9758 basic = 0;
9759 }
9760
9761 for (j = 0; j < basic; ++j) {
9762 if (input.charCodeAt(j) >= 0x80) {
9763 error('not-basic');
9764 }
9765 output.push(input.charCodeAt(j));
9766 }
9767
9768
9769 for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
9770
9771 for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
9772
9773 if (index >= inputLength) {
9774 error('invalid-input');
9775 }
9776
9777 digit = basicToDigit(input.charCodeAt(index++));
9778
9779 if (digit >= base || digit > floor((maxInt - i) / w)) {
9780 error('overflow');
9781 }
9782
9783 i += digit * w;
9784 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
9785
9786 if (digit < t) {
9787 break;
9788 }
9789
9790 baseMinusT = base - t;
9791 if (w > floor(maxInt / baseMinusT)) {
9792 error('overflow');
9793 }
9794
9795 w *= baseMinusT;
9796
9797 }
9798
9799 out = output.length + 1;
9800 bias = adapt(i - oldi, out, oldi == 0);
9801
9802 if (floor(i / out) > maxInt - n) {
9803 error('overflow');
9804 }
9805
9806 n += floor(i / out);
9807 i %= out;
9808
9809 output.splice(i++, 0, n);
9810
9811 }
9812
9813 return ucs2encode(output);
9814 }
9815
9816
9817 function encode(input) {
9818 var n,
9819 delta,
9820 handledCPCount,
9821 basicLength,
9822 bias,
9823 j,
9824 m,
9825 q,
9826 k,
9827 t,
9828 currentValue,
9829 output = [],
9830
9831 inputLength,
9832
9833 handledCPCountPlusOne,
9834 baseMinusT,
9835 qMinusT;
9836
9837 input = ucs2decode(input);
9838
9839 inputLength = input.length;
9840
9841 n = initialN;
9842 delta = 0;
9843 bias = initialBias;
9844
9845 for (j = 0; j < inputLength; ++j) {
9846 currentValue = input[j];
9847 if (currentValue < 0x80) {
9848 output.push(stringFromCharCode(currentValue));
9849 }
9850 }
9851
9852 handledCPCount = basicLength = output.length;
9853
9854
9855 if (basicLength) {
9856 output.push(delimiter);
9857 }
9858
9859 while (handledCPCount < inputLength) {
9860
9861 for (m = maxInt, j = 0; j < inputLength; ++j) {
9862 currentValue = input[j];
9863 if (currentValue >= n && currentValue < m) {
9864 m = currentValue;
9865 }
9866 }
9867
9868 handledCPCountPlusOne = handledCPCount + 1;
9869 if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
9870 error('overflow');
9871 }
9872
9873 delta += (m - n) * handledCPCountPlusOne;
9874 n = m;
9875
9876 for (j = 0; j < inputLength; ++j) {
9877 currentValue = input[j];
9878
9879 if (currentValue < n && ++delta > maxInt) {
9880 error('overflow');
9881 }
9882
9883 if (currentValue == n) {
9884 for (q = delta, k = base; /* no condition */; k += base) {
9885 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
9886 if (q < t) {
9887 break;
9888 }
9889 qMinusT = q - t;
9890 baseMinusT = base - t;
9891 output.push(
9892 stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
9893 );
9894 q = floor(qMinusT / baseMinusT);
9895 }
9896
9897 output.push(stringFromCharCode(digitToBasic(q, 0)));
9898 bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
9899 delta = 0;
9900 ++handledCPCount;
9901 }
9902 }
9903
9904 ++delta;
9905 ++n;
9906
9907 }
9908 return output.join('');
9909 }
9910
9911
9912 function toUnicode(domain) {
9913 return mapDomain(domain, function(string) {
9914 return regexPunycode.test(string)
9915 ? decode(string.slice(4).toLowerCase())
9916 : string;
9917 });
9918 }
9919
9920
9921 function toASCII(domain) {
9922 return mapDomain(domain, function(string) {
9923 return regexNonASCII.test(string)
9924 ? 'xn--' + encode(string)
9925 : string;
9926 });
9927 }
9928
9929
9930
9931
9932 punycode = {
9933
9934 'version': '1.2.4',
9935
9936 'ucs2': {
9937 'decode': ucs2decode,
9938 'encode': ucs2encode
9939 },
9940 'decode': decode,
9941 'encode': encode,
9942 'toASCII': toASCII,
9943 'toUnicode': toUnicode
9944 };
9945
9946
9947 if (
9948 typeof define == 'function' &&
9949 typeof define.amd == 'object' &&
9950 define.amd
9951 ) {
9952 define('punycode', function() {
9953 return punycode;
9954 });
9955 } else if (freeExports && !freeExports.nodeType) {
9956 if (freeModule) { // in Node.js or RingoJS v0.8.0+
9957 freeModule.exports = punycode;
9958 } else { // in Narwhal or RingoJS v0.7.0-
9959 for (key in punycode) {
9960 punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
9961 }
9962 }
9963 } else { // in Rhino or a web browser
9964 root.punycode = punycode;
9965 }
9966
9967 }(this));
9968
9969 }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
9970 },{}],75:[function(require,module,exports){
9971
9972 'use strict';
9973
9974 function hasOwnProperty(obj, prop) {
9975 return Object.prototype.hasOwnProperty.call(obj, prop);
9976 }
9977
9978 module.exports = function(qs, sep, eq, options) {
9979 sep = sep || '&';
9980 eq = eq || '=';
9981 var obj = {};
9982
9983 if (typeof qs !== 'string' || qs.length === 0) {
9984 return obj;
9985 }
9986
9987 var regexp = /\+/g;
9988 qs = qs.split(sep);
9989
9990 var maxKeys = 1000;
9991 if (options && typeof options.maxKeys === 'number') {
9992 maxKeys = options.maxKeys;
9993 }
9994
9995 var len = qs.length;
9996 if (maxKeys > 0 && len > maxKeys) {
9997 len = maxKeys;
9998 }
9999
10000 for (var i = 0; i < len; ++i) {
10001 var x = qs[i].replace(regexp, '%20'),
10002 idx = x.indexOf(eq),
10003 kstr, vstr, k, v;
10004
10005 if (idx >= 0) {
10006 kstr = x.substr(0, idx);
10007 vstr = x.substr(idx + 1);
10008 } else {
10009 kstr = x;
10010 vstr = '';
10011 }
10012
10013 k = decodeURIComponent(kstr);
10014 v = decodeURIComponent(vstr);
10015
10016 if (!hasOwnProperty(obj, k)) {
10017 obj[k] = v;
10018 } else if (isArray(obj[k])) {
10019 obj[k].push(v);
10020 } else {
10021 obj[k] = [obj[k], v];
10022 }
10023 }
10024
10025 return obj;
10026 };
10027
10028 var isArray = Array.isArray || function (xs) {
10029 return Object.prototype.toString.call(xs) === '[object Array]';
10030 };
10031
10032 },{}],76:[function(require,module,exports){
10033
10034 'use strict';
10035
10036 var stringifyPrimitive = function(v) {
10037 switch (typeof v) {
10038 case 'string':
10039 return v;
10040
10041 case 'boolean':
10042 return v ? 'true' : 'false';
10043
10044 case 'number':
10045 return isFinite(v) ? v : '';
10046
10047 default:
10048 return '';
10049 }
10050 };
10051
10052 module.exports = function(obj, sep, eq, name) {
10053 sep = sep || '&';
10054 eq = eq || '=';
10055 if (obj === null) {
10056 obj = undefined;
10057 }
10058
10059 if (typeof obj === 'object') {
10060 return map(objectKeys(obj), function(k) {
10061 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
10062 if (isArray(obj[k])) {
10063 return obj[k].map(function(v) {
10064 return ks + encodeURIComponent(stringifyPrimitive(v));
10065 }).join(sep);
10066 } else {
10067 return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
10068 }
10069 }).join(sep);
10070
10071 }
10072
10073 if (!name) return '';
10074 return encodeURIComponent(stringifyPrimitive(name)) + eq +
10075 encodeURIComponent(stringifyPrimitive(obj));
10076 };
10077
10078 var isArray = Array.isArray || function (xs) {
10079 return Object.prototype.toString.call(xs) === '[object Array]';
10080 };
10081
10082 function map (xs, f) {
10083 if (xs.map) return xs.map(f);
10084 var res = [];
10085 for (var i = 0; i < xs.length; i++) {
10086 res.push(f(xs[i], i));
10087 }
10088 return res;
10089 }
10090
10091 var objectKeys = Object.keys || function (obj) {
10092 var res = [];
10093 for (var key in obj) {
10094 if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
10095 }
10096 return res;
10097 };
10098
10099 },{}],77:[function(require,module,exports){
10100 'use strict';
10101
10102 exports.decode = exports.parse = require('./decode');
10103 exports.encode = exports.stringify = require('./encode');
10104
10105 },{"./decode":75,"./encode":76}],78:[function(require,module,exports){
10106
10107 var punycode = require('punycode');
10108
10109 exports.parse = urlParse;
10110 exports.resolve = urlResolve;
10111 exports.resolveObject = urlResolveObject;
10112 exports.format = urlFormat;
10113
10114 exports.Url = Url;
10115
10116 function Url() {
10117 this.protocol = null;
10118 this.slashes = null;
10119 this.auth = null;
10120 this.host = null;
10121 this.port = null;
10122 this.hostname = null;
10123 this.hash = null;
10124 this.search = null;
10125 this.query = null;
10126 this.pathname = null;
10127 this.path = null;
10128 this.href = null;
10129 }
10130
10131
10132 var protocolPattern = /^([a-z0-9.+-]+:)/i,
10133 portPattern = /:[0-9]*$/,
10134
10135 delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'],
10136
10137 unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims),
10138
10139 autoEscape = ['\''].concat(unwise),
10140 nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),
10141 hostEndingChars = ['/', '?', '#'],
10142 hostnameMaxLen = 255,
10143 hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,
10144 hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,
10145 unsafeProtocol = {
10146 'javascript': true,
10147 'javascript:': true
10148 },
10149 hostlessProtocol = {
10150 'javascript': true,
10151 'javascript:': true
10152 },
10153 slashedProtocol = {
10154 'http': true,
10155 'https': true,
10156 'ftp': true,
10157 'gopher': true,
10158 'file': true,
10159 'http:': true,
10160 'https:': true,
10161 'ftp:': true,
10162 'gopher:': true,
10163 'file:': true
10164 },
10165 querystring = require('querystring');
10166
10167 function urlParse(url, parseQueryString, slashesDenoteHost) {
10168 if (url && isObject(url) && url instanceof Url) return url;
10169
10170 var u = new Url;
10171 u.parse(url, parseQueryString, slashesDenoteHost);
10172 return u;
10173 }
10174
10175 Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
10176 if (!isString(url)) {
10177 throw new TypeError("Parameter 'url' must be a string, not " + typeof url);
10178 }
10179
10180 var rest = url;
10181
10182 rest = rest.trim();
10183
10184 var proto = protocolPattern.exec(rest);
10185 if (proto) {
10186 proto = proto[0];
10187 var lowerProto = proto.toLowerCase();
10188 this.protocol = lowerProto;
10189 rest = rest.substr(proto.length);
10190 }
10191
10192 if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
10193 var slashes = rest.substr(0, 2) === '//';
10194 if (slashes && !(proto && hostlessProtocol[proto])) {
10195 rest = rest.substr(2);
10196 this.slashes = true;
10197 }
10198 }
10199
10200 if (!hostlessProtocol[proto] &&
10201 (slashes || (proto && !slashedProtocol[proto]))) {
10202
10203
10204
10205 var hostEnd = -1;
10206 for (var i = 0; i < hostEndingChars.length; i++) {
10207 var hec = rest.indexOf(hostEndingChars[i]);
10208 if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
10209 hostEnd = hec;
10210 }
10211
10212 var auth, atSign;
10213 if (hostEnd === -1) {
10214 atSign = rest.lastIndexOf('@');
10215 } else {
10216 atSign = rest.lastIndexOf('@', hostEnd);
10217 }
10218
10219 if (atSign !== -1) {
10220 auth = rest.slice(0, atSign);
10221 rest = rest.slice(atSign + 1);
10222 this.auth = decodeURIComponent(auth);
10223 }
10224
10225 hostEnd = -1;
10226 for (var i = 0; i < nonHostChars.length; i++) {
10227 var hec = rest.indexOf(nonHostChars[i]);
10228 if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
10229 hostEnd = hec;
10230 }
10231 if (hostEnd === -1)
10232 hostEnd = rest.length;
10233
10234 this.host = rest.slice(0, hostEnd);
10235 rest = rest.slice(hostEnd);
10236
10237 this.parseHost();
10238
10239 this.hostname = this.hostname || '';
10240
10241 var ipv6Hostname = this.hostname[0] === '[' &&
10242 this.hostname[this.hostname.length - 1] === ']';
10243
10244 if (!ipv6Hostname) {
10245 var hostparts = this.hostname.split(/\./);
10246 for (var i = 0, l = hostparts.length; i < l; i++) {
10247 var part = hostparts[i];
10248 if (!part) continue;
10249 if (!part.match(hostnamePartPattern)) {
10250 var newpart = '';
10251 for (var j = 0, k = part.length; j < k; j++) {
10252 if (part.charCodeAt(j) > 127) {
10253 newpart += 'x';
10254 } else {
10255 newpart += part[j];
10256 }
10257 }
10258 if (!newpart.match(hostnamePartPattern)) {
10259 var validParts = hostparts.slice(0, i);
10260 var notHost = hostparts.slice(i + 1);
10261 var bit = part.match(hostnamePartStart);
10262 if (bit) {
10263 validParts.push(bit[1]);
10264 notHost.unshift(bit[2]);
10265 }
10266 if (notHost.length) {
10267 rest = '/' + notHost.join('.') + rest;
10268 }
10269 this.hostname = validParts.join('.');
10270 break;
10271 }
10272 }
10273 }
10274 }
10275
10276 if (this.hostname.length > hostnameMaxLen) {
10277 this.hostname = '';
10278 } else {
10279 this.hostname = this.hostname.toLowerCase();
10280 }
10281
10282 if (!ipv6Hostname) {
10283 var domainArray = this.hostname.split('.');
10284 var newOut = [];
10285 for (var i = 0; i < domainArray.length; ++i) {
10286 var s = domainArray[i];
10287 newOut.push(s.match(/[^A-Za-z0-9_-]/) ?
10288 'xn--' + punycode.encode(s) : s);
10289 }
10290 this.hostname = newOut.join('.');
10291 }
10292
10293 var p = this.port ? ':' + this.port : '';
10294 var h = this.hostname || '';
10295 this.host = h + p;
10296 this.href += this.host;
10297
10298 if (ipv6Hostname) {
10299 this.hostname = this.hostname.substr(1, this.hostname.length - 2);
10300 if (rest[0] !== '/') {
10301 rest = '/' + rest;
10302 }
10303 }
10304 }
10305
10306 if (!unsafeProtocol[lowerProto]) {
10307
10308 for (var i = 0, l = autoEscape.length; i < l; i++) {
10309 var ae = autoEscape[i];
10310 var esc = encodeURIComponent(ae);
10311 if (esc === ae) {
10312 esc = escape(ae);
10313 }
10314 rest = rest.split(ae).join(esc);
10315 }
10316 }
10317
10318
10319 var hash = rest.indexOf('#');
10320 if (hash !== -1) {
10321 this.hash = rest.substr(hash);
10322 rest = rest.slice(0, hash);
10323 }
10324 var qm = rest.indexOf('?');
10325 if (qm !== -1) {
10326 this.search = rest.substr(qm);
10327 this.query = rest.substr(qm + 1);
10328 if (parseQueryString) {
10329 this.query = querystring.parse(this.query);
10330 }
10331 rest = rest.slice(0, qm);
10332 } else if (parseQueryString) {
10333 this.search = '';
10334 this.query = {};
10335 }
10336 if (rest) this.pathname = rest;
10337 if (slashedProtocol[lowerProto] &&
10338 this.hostname && !this.pathname) {
10339 this.pathname = '/';
10340 }
10341
10342 if (this.pathname || this.search) {
10343 var p = this.pathname || '';
10344 var s = this.search || '';
10345 this.path = p + s;
10346 }
10347
10348 this.href = this.format();
10349 return this;
10350 };
10351
10352 function urlFormat(obj) {
10353 if (isString(obj)) obj = urlParse(obj);
10354 if (!(obj instanceof Url)) return Url.prototype.format.call(obj);
10355 return obj.format();
10356 }
10357
10358 Url.prototype.format = function() {
10359 var auth = this.auth || '';
10360 if (auth) {
10361 auth = encodeURIComponent(auth);
10362 auth = auth.replace(/%3A/i, ':');
10363 auth += '@';
10364 }
10365
10366 var protocol = this.protocol || '',
10367 pathname = this.pathname || '',
10368 hash = this.hash || '',
10369 host = false,
10370 query = '';
10371
10372 if (this.host) {
10373 host = auth + this.host;
10374 } else if (this.hostname) {
10375 host = auth + (this.hostname.indexOf(':') === -1 ?
10376 this.hostname :
10377 '[' + this.hostname + ']');
10378 if (this.port) {
10379 host += ':' + this.port;
10380 }
10381 }
10382
10383 if (this.query &&
10384 isObject(this.query) &&
10385 Object.keys(this.query).length) {
10386 query = querystring.stringify(this.query);
10387 }
10388
10389 var search = this.search || (query && ('?' + query)) || '';
10390
10391 if (protocol && protocol.substr(-1) !== ':') protocol += ':';
10392
10393 if (this.slashes ||
10394 (!protocol || slashedProtocol[protocol]) && host !== false) {
10395 host = '//' + (host || '');
10396 if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;
10397 } else if (!host) {
10398 host = '';
10399 }
10400
10401 if (hash && hash.charAt(0) !== '#') hash = '#' + hash;
10402 if (search && search.charAt(0) !== '?') search = '?' + search;
10403
10404 pathname = pathname.replace(/[?#]/g, function(match) {
10405 return encodeURIComponent(match);
10406 });
10407 search = search.replace('#', '%23');
10408
10409 return protocol + host + pathname + search + hash;
10410 };
10411
10412 function urlResolve(source, relative) {
10413 return urlParse(source, false, true).resolve(relative);
10414 }
10415
10416 Url.prototype.resolve = function(relative) {
10417 return this.resolveObject(urlParse(relative, false, true)).format();
10418 };
10419
10420 function urlResolveObject(source, relative) {
10421 if (!source) return relative;
10422 return urlParse(source, false, true).resolveObject(relative);
10423 }
10424
10425 Url.prototype.resolveObject = function(relative) {
10426 if (isString(relative)) {
10427 var rel = new Url();
10428 rel.parse(relative, false, true);
10429 relative = rel;
10430 }
10431
10432 var result = new Url();
10433 Object.keys(this).forEach(function(k) {
10434 result[k] = this[k];
10435 }, this);
10436
10437 result.hash = relative.hash;
10438
10439 if (relative.href === '') {
10440 result.href = result.format();
10441 return result;
10442 }
10443
10444 if (relative.slashes && !relative.protocol) {
10445 Object.keys(relative).forEach(function(k) {
10446 if (k !== 'protocol')
10447 result[k] = relative[k];
10448 });
10449
10450 if (slashedProtocol[result.protocol] &&
10451 result.hostname && !result.pathname) {
10452 result.path = result.pathname = '/';
10453 }
10454
10455 result.href = result.format();
10456 return result;
10457 }
10458
10459 if (relative.protocol && relative.protocol !== result.protocol) {
10460 if (!slashedProtocol[relative.protocol]) {
10461 Object.keys(relative).forEach(function(k) {
10462 result[k] = relative[k];
10463 });
10464 result.href = result.format();
10465 return result;
10466 }
10467
10468 result.protocol = relative.protocol;
10469 if (!relative.host && !hostlessProtocol[relative.protocol]) {
10470 var relPath = (relative.pathname || '').split('/');
10471 while (relPath.length && !(relative.host = relPath.shift()));
10472 if (!relative.host) relative.host = '';
10473 if (!relative.hostname) relative.hostname = '';
10474 if (relPath[0] !== '') relPath.unshift('');
10475 if (relPath.length < 2) relPath.unshift('');
10476 result.pathname = relPath.join('/');
10477 } else {
10478 result.pathname = relative.pathname;
10479 }
10480 result.search = relative.search;
10481 result.query = relative.query;
10482 result.host = relative.host || '';
10483 result.auth = relative.auth;
10484 result.hostname = relative.hostname || relative.host;
10485 result.port = relative.port;
10486 if (result.pathname || result.search) {
10487 var p = result.pathname || '';
10488 var s = result.search || '';
10489 result.path = p + s;
10490 }
10491 result.slashes = result.slashes || relative.slashes;
10492 result.href = result.format();
10493 return result;
10494 }
10495
10496 var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),
10497 isRelAbs = (
10498 relative.host ||
10499 relative.pathname && relative.pathname.charAt(0) === '/'
10500 ),
10501 mustEndAbs = (isRelAbs || isSourceAbs ||
10502 (result.host && relative.pathname)),
10503 removeAllDots = mustEndAbs,
10504 srcPath = result.pathname && result.pathname.split('/') || [],
10505 relPath = relative.pathname && relative.pathname.split('/') || [],
10506 psychotic = result.protocol && !slashedProtocol[result.protocol];
10507
10508 if (psychotic) {
10509 result.hostname = '';
10510 result.port = null;
10511 if (result.host) {
10512 if (srcPath[0] === '') srcPath[0] = result.host;
10513 else srcPath.unshift(result.host);
10514 }
10515 result.host = '';
10516 if (relative.protocol) {
10517 relative.hostname = null;
10518 relative.port = null;
10519 if (relative.host) {
10520 if (relPath[0] === '') relPath[0] = relative.host;
10521 else relPath.unshift(relative.host);
10522 }
10523 relative.host = null;
10524 }
10525 mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');
10526 }
10527
10528 if (isRelAbs) {
10529 result.host = (relative.host || relative.host === '') ?
10530 relative.host : result.host;
10531 result.hostname = (relative.hostname || relative.hostname === '') ?
10532 relative.hostname : result.hostname;
10533 result.search = relative.search;
10534 result.query = relative.query;
10535 srcPath = relPath;
10536 } else if (relPath.length) {
10537 if (!srcPath) srcPath = [];
10538 srcPath.pop();
10539 srcPath = srcPath.concat(relPath);
10540 result.search = relative.search;
10541 result.query = relative.query;
10542 } else if (!isNullOrUndefined(relative.search)) {
10543 if (psychotic) {
10544 result.hostname = result.host = srcPath.shift();
10545 var authInHost = result.host && result.host.indexOf('@') > 0 ?
10546 result.host.split('@') : false;
10547 if (authInHost) {
10548 result.auth = authInHost.shift();
10549 result.host = result.hostname = authInHost.shift();
10550 }
10551 }
10552 result.search = relative.search;
10553 result.query = relative.query;
10554 if (!isNull(result.pathname) || !isNull(result.search)) {
10555 result.path = (result.pathname ? result.pathname : '') +
10556 (result.search ? result.search : '');
10557 }
10558 result.href = result.format();
10559 return result;
10560 }
10561
10562 if (!srcPath.length) {
10563 result.pathname = null;
10564 if (result.search) {
10565 result.path = '/' + result.search;
10566 } else {
10567 result.path = null;
10568 }
10569 result.href = result.format();
10570 return result;
10571 }
10572
10573 var last = srcPath.slice(-1)[0];
10574 var hasTrailingSlash = (
10575 (result.host || relative.host) && (last === '.' || last === '..') ||
10576 last === '');
10577
10578 var up = 0;
10579 for (var i = srcPath.length; i >= 0; i--) {
10580 last = srcPath[i];
10581 if (last == '.') {
10582 srcPath.splice(i, 1);
10583 } else if (last === '..') {
10584 srcPath.splice(i, 1);
10585 up++;
10586 } else if (up) {
10587 srcPath.splice(i, 1);
10588 up--;
10589 }
10590 }
10591
10592 if (!mustEndAbs && !removeAllDots) {
10593 for (; up--; up) {
10594 srcPath.unshift('..');
10595 }
10596 }
10597
10598 if (mustEndAbs && srcPath[0] !== '' &&
10599 (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {
10600 srcPath.unshift('');
10601 }
10602
10603 if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {
10604 srcPath.push('');
10605 }
10606
10607 var isAbsolute = srcPath[0] === '' ||
10608 (srcPath[0] && srcPath[0].charAt(0) === '/');
10609
10610 if (psychotic) {
10611 result.hostname = result.host = isAbsolute ? '' :
10612 srcPath.length ? srcPath.shift() : '';
10613 var authInHost = result.host && result.host.indexOf('@') > 0 ?
10614 result.host.split('@') : false;
10615 if (authInHost) {
10616 result.auth = authInHost.shift();
10617 result.host = result.hostname = authInHost.shift();
10618 }
10619 }
10620
10621 mustEndAbs = mustEndAbs || (result.host && srcPath.length);
10622
10623 if (mustEndAbs && !isAbsolute) {
10624 srcPath.unshift('');
10625 }
10626
10627 if (!srcPath.length) {
10628 result.pathname = null;
10629 result.path = null;
10630 } else {
10631 result.pathname = srcPath.join('/');
10632 }
10633
10634 if (!isNull(result.pathname) || !isNull(result.search)) {
10635 result.path = (result.pathname ? result.pathname : '') +
10636 (result.search ? result.search : '');
10637 }
10638 result.auth = relative.auth || result.auth;
10639 result.slashes = result.slashes || relative.slashes;
10640 result.href = result.format();
10641 return result;
10642 };
10643
10644 Url.prototype.parseHost = function() {
10645 var host = this.host;
10646 var port = portPattern.exec(host);
10647 if (port) {
10648 port = port[0];
10649 if (port !== ':') {
10650 this.port = port.substr(1);
10651 }
10652 host = host.substr(0, host.length - port.length);
10653 }
10654 if (host) this.hostname = host;
10655 };
10656
10657 function isString(arg) {
10658 return typeof arg === "string";
10659 }
10660
10661 function isObject(arg) {
10662 return typeof arg === 'object' && arg !== null;
10663 }
10664
10665 function isNull(arg) {
10666 return arg === null;
10667 }
10668 function isNullOrUndefined(arg) {
10669 return arg == null;
10670 }
10671
10672 },{"punycode":74,"querystring":77}],79:[function(require,module,exports){
10673 module.exports = function isBuffer(arg) {
10674 return arg && typeof arg === 'object'
10675 && typeof arg.copy === 'function'
10676 && typeof arg.fill === 'function'
10677 && typeof arg.readUInt8 === 'function';
10678 }
10679 },{}],80:[function(require,module,exports){
10680 (function (process,global){
10681
10682 var formatRegExp = /%[sdj%]/g;
10683 exports.format = function(f) {
10684 if (!isString(f)) {
10685 var objects = [];
10686 for (var i = 0; i < arguments.length; i++) {
10687 objects.push(inspect(arguments[i]));
10688 }
10689 return objects.join(' ');
10690 }
10691
10692 var i = 1;
10693 var args = arguments;
10694 var len = args.length;
10695 var str = String(f).replace(formatRegExp, function(x) {
10696 if (x === '%') return '%';
10697 if (i >= len) return x;
10698 switch (x) {
10699 case '%s': return String(args[i++]);
10700 case '%d': return Number(args[i++]);
10701 case '%j':
10702 try {
10703 return JSON.stringify(args[i++]);
10704 } catch (_) {
10705 return '[Circular]';
10706 }
10707 default:
10708 return x;
10709 }
10710 });
10711 for (var x = args[i]; i < len; x = args[++i]) {
10712 if (isNull(x) || !isObject(x)) {
10713 str += ' ' + x;
10714 } else {
10715 str += ' ' + inspect(x);
10716 }
10717 }
10718 return str;
10719 };
10720
10721
10722 exports.deprecate = function(fn, msg) {
10723 if (isUndefined(global.process)) {
10724 return function() {
10725 return exports.deprecate(fn, msg).apply(this, arguments);
10726 };
10727 }
10728
10729 if (process.noDeprecation === true) {
10730 return fn;
10731 }
10732
10733 var warned = false;
10734 function deprecated() {
10735 if (!warned) {
10736 if (process.throwDeprecation) {
10737 throw new Error(msg);
10738 } else if (process.traceDeprecation) {
10739 console.trace(msg);
10740 } else {
10741 console.error(msg);
10742 }
10743 warned = true;
10744 }
10745 return fn.apply(this, arguments);
10746 }
10747
10748 return deprecated;
10749 };
10750
10751
10752 var debugs = {};
10753 var debugEnviron;
10754 exports.debuglog = function(set) {
10755 if (isUndefined(debugEnviron))
10756 debugEnviron = process.env.NODE_DEBUG || '';
10757 set = set.toUpperCase();
10758 if (!debugs[set]) {
10759 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
10760 var pid = process.pid;
10761 debugs[set] = function() {
10762 var msg = exports.format.apply(exports, arguments);
10763 console.error('%s %d: %s', set, pid, msg);
10764 };
10765 } else {
10766 debugs[set] = function() {};
10767 }
10768 }
10769 return debugs[set];
10770 };
10771
10772
10773
10774
10775 function inspect(obj, opts) {
10776 var ctx = {
10777 seen: [],
10778 stylize: stylizeNoColor
10779 };
10780 if (arguments.length >= 3) ctx.depth = arguments[2];
10781 if (arguments.length >= 4) ctx.colors = arguments[3];
10782 if (isBoolean(opts)) {
10783 ctx.showHidden = opts;
10784 } else if (opts) {
10785 exports._extend(ctx, opts);
10786 }
10787 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
10788 if (isUndefined(ctx.depth)) ctx.depth = 2;
10789 if (isUndefined(ctx.colors)) ctx.colors = false;
10790 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
10791 if (ctx.colors) ctx.stylize = stylizeWithColor;
10792 return formatValue(ctx, obj, ctx.depth);
10793 }
10794 exports.inspect = inspect;
10795
10796
10797 inspect.colors = {
10798 'bold' : [1, 22],
10799 'italic' : [3, 23],
10800 'underline' : [4, 24],
10801 'inverse' : [7, 27],
10802 'white' : [37, 39],
10803 'grey' : [90, 39],
10804 'black' : [30, 39],
10805 'blue' : [34, 39],
10806 'cyan' : [36, 39],
10807 'green' : [32, 39],
10808 'magenta' : [35, 39],
10809 'red' : [31, 39],
10810 'yellow' : [33, 39]
10811 };
10812
10813 inspect.styles = {
10814 'special': 'cyan',
10815 'number': 'yellow',
10816 'boolean': 'yellow',
10817 'undefined': 'grey',
10818 'null': 'bold',
10819 'string': 'green',
10820 'date': 'magenta',
10821 'regexp': 'red'
10822 };
10823
10824
10825 function stylizeWithColor(str, styleType) {
10826 var style = inspect.styles[styleType];
10827
10828 if (style) {
10829 return '\u001b[' + inspect.colors[style][0] + 'm' + str +
10830 '\u001b[' + inspect.colors[style][1] + 'm';
10831 } else {
10832 return str;
10833 }
10834 }
10835
10836
10837 function stylizeNoColor(str, styleType) {
10838 return str;
10839 }
10840
10841
10842 function arrayToHash(array) {
10843 var hash = {};
10844
10845 array.forEach(function(val, idx) {
10846 hash[val] = true;
10847 });
10848
10849 return hash;
10850 }
10851
10852
10853 function formatValue(ctx, value, recurseTimes) {
10854 if (ctx.customInspect &&
10855 value &&
10856 isFunction(value.inspect) &&
10857 value.inspect !== exports.inspect &&
10858 !(value.constructor && value.constructor.prototype === value)) {
10859 var ret = value.inspect(recurseTimes, ctx);
10860 if (!isString(ret)) {
10861 ret = formatValue(ctx, ret, recurseTimes);
10862 }
10863 return ret;
10864 }
10865
10866 var primitive = formatPrimitive(ctx, value);
10867 if (primitive) {
10868 return primitive;
10869 }
10870
10871 var keys = Object.keys(value);
10872 var visibleKeys = arrayToHash(keys);
10873
10874 if (ctx.showHidden) {
10875 keys = Object.getOwnPropertyNames(value);
10876 }
10877
10878 if (isError(value)
10879 && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
10880 return formatError(value);
10881 }
10882
10883 if (keys.length === 0) {
10884 if (isFunction(value)) {
10885 var name = value.name ? ': ' + value.name : '';
10886 return ctx.stylize('[Function' + name + ']', 'special');
10887 }
10888 if (isRegExp(value)) {
10889 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
10890 }
10891 if (isDate(value)) {
10892 return ctx.stylize(Date.prototype.toString.call(value), 'date');
10893 }
10894 if (isError(value)) {
10895 return formatError(value);
10896 }
10897 }
10898
10899 var base = '', array = false, braces = ['{', '}'];
10900
10901 if (isArray(value)) {
10902 array = true;
10903 braces = ['[', ']'];
10904 }
10905
10906 if (isFunction(value)) {
10907 var n = value.name ? ': ' + value.name : '';
10908 base = ' [Function' + n + ']';
10909 }
10910
10911 if (isRegExp(value)) {
10912 base = ' ' + RegExp.prototype.toString.call(value);
10913 }
10914
10915 if (isDate(value)) {
10916 base = ' ' + Date.prototype.toUTCString.call(value);
10917 }
10918
10919 if (isError(value)) {
10920 base = ' ' + formatError(value);
10921 }
10922
10923 if (keys.length === 0 && (!array || value.length == 0)) {
10924 return braces[0] + base + braces[1];
10925 }
10926
10927 if (recurseTimes < 0) {
10928 if (isRegExp(value)) {
10929 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
10930 } else {
10931 return ctx.stylize('[Object]', 'special');
10932 }
10933 }
10934
10935 ctx.seen.push(value);
10936
10937 var output;
10938 if (array) {
10939 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
10940 } else {
10941 output = keys.map(function(key) {
10942 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
10943 });
10944 }
10945
10946 ctx.seen.pop();
10947
10948 return reduceToSingleString(output, base, braces);
10949 }
10950
10951
10952 function formatPrimitive(ctx, value) {
10953 if (isUndefined(value))
10954 return ctx.stylize('undefined', 'undefined');
10955 if (isString(value)) {
10956 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
10957 .replace(/'/g, "\\'")
10958 .replace(/\\"/g, '"') + '\'';
10959 return ctx.stylize(simple, 'string');
10960 }
10961 if (isNumber(value))
10962 return ctx.stylize('' + value, 'number');
10963 if (isBoolean(value))
10964 return ctx.stylize('' + value, 'boolean');
10965 if (isNull(value))
10966 return ctx.stylize('null', 'null');
10967 }
10968
10969
10970 function formatError(value) {
10971 return '[' + Error.prototype.toString.call(value) + ']';
10972 }
10973
10974
10975 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
10976 var output = [];
10977 for (var i = 0, l = value.length; i < l; ++i) {
10978 if (hasOwnProperty(value, String(i))) {
10979 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
10980 String(i), true));
10981 } else {
10982 output.push('');
10983 }
10984 }
10985 keys.forEach(function(key) {
10986 if (!key.match(/^\d+$/)) {
10987 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
10988 key, true));
10989 }
10990 });
10991 return output;
10992 }
10993
10994
10995 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
10996 var name, str, desc;
10997 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
10998 if (desc.get) {
10999 if (desc.set) {
11000 str = ctx.stylize('[Getter/Setter]', 'special');
11001 } else {
11002 str = ctx.stylize('[Getter]', 'special');
11003 }
11004 } else {
11005 if (desc.set) {
11006 str = ctx.stylize('[Setter]', 'special');
11007 }
11008 }
11009 if (!hasOwnProperty(visibleKeys, key)) {
11010 name = '[' + key + ']';
11011 }
11012 if (!str) {
11013 if (ctx.seen.indexOf(desc.value) < 0) {
11014 if (isNull(recurseTimes)) {
11015 str = formatValue(ctx, desc.value, null);
11016 } else {
11017 str = formatValue(ctx, desc.value, recurseTimes - 1);
11018 }
11019 if (str.indexOf('\n') > -1) {
11020 if (array) {
11021 str = str.split('\n').map(function(line) {
11022 return ' ' + line;
11023 }).join('\n').substr(2);
11024 } else {
11025 str = '\n' + str.split('\n').map(function(line) {
11026 return ' ' + line;
11027 }).join('\n');
11028 }
11029 }
11030 } else {
11031 str = ctx.stylize('[Circular]', 'special');
11032 }
11033 }
11034 if (isUndefined(name)) {
11035 if (array && key.match(/^\d+$/)) {
11036 return str;
11037 }
11038 name = JSON.stringify('' + key);
11039 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
11040 name = name.substr(1, name.length - 2);
11041 name = ctx.stylize(name, 'name');
11042 } else {
11043 name = name.replace(/'/g, "\\'")
11044 .replace(/\\"/g, '"')
11045 .replace(/(^"|"$)/g, "'");
11046 name = ctx.stylize(name, 'string');
11047 }
11048 }
11049
11050 return name + ': ' + str;
11051 }
11052
11053
11054 function reduceToSingleString(output, base, braces) {
11055 var numLinesEst = 0;
11056 var length = output.reduce(function(prev, cur) {
11057 numLinesEst++;
11058 if (cur.indexOf('\n') >= 0) numLinesEst++;
11059 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
11060 }, 0);
11061
11062 if (length > 60) {
11063 return braces[0] +
11064 (base === '' ? '' : base + '\n ') +
11065 ' ' +
11066 output.join(',\n ') +
11067 ' ' +
11068 braces[1];
11069 }
11070
11071 return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
11072 }
11073
11074
11075 function isArray(ar) {
11076 return Array.isArray(ar);
11077 }
11078 exports.isArray = isArray;
11079
11080 function isBoolean(arg) {
11081 return typeof arg === 'boolean';
11082 }
11083 exports.isBoolean = isBoolean;
11084
11085 function isNull(arg) {
11086 return arg === null;
11087 }
11088 exports.isNull = isNull;
11089
11090 function isNullOrUndefined(arg) {
11091 return arg == null;
11092 }
11093 exports.isNullOrUndefined = isNullOrUndefined;
11094
11095 function isNumber(arg) {
11096 return typeof arg === 'number';
11097 }
11098 exports.isNumber = isNumber;
11099
11100 function isString(arg) {
11101 return typeof arg === 'string';
11102 }
11103 exports.isString = isString;
11104
11105 function isSymbol(arg) {
11106 return typeof arg === 'symbol';
11107 }
11108 exports.isSymbol = isSymbol;
11109
11110 function isUndefined(arg) {
11111 return arg === void 0;
11112 }
11113 exports.isUndefined = isUndefined;
11114
11115 function isRegExp(re) {
11116 return isObject(re) && objectToString(re) === '[object RegExp]';
11117 }
11118 exports.isRegExp = isRegExp;
11119
11120 function isObject(arg) {
11121 return typeof arg === 'object' && arg !== null;
11122 }
11123 exports.isObject = isObject;
11124
11125 function isDate(d) {
11126 return isObject(d) && objectToString(d) === '[object Date]';
11127 }
11128 exports.isDate = isDate;
11129
11130 function isError(e) {
11131 return isObject(e) &&
11132 (objectToString(e) === '[object Error]' || e instanceof Error);
11133 }
11134 exports.isError = isError;
11135
11136 function isFunction(arg) {
11137 return typeof arg === 'function';
11138 }
11139 exports.isFunction = isFunction;
11140
11141 function isPrimitive(arg) {
11142 return arg === null ||
11143 typeof arg === 'boolean' ||
11144 typeof arg === 'number' ||
11145 typeof arg === 'string' ||
11146 typeof arg === 'symbol' || // ES6 symbol
11147 typeof arg === 'undefined';
11148 }
11149 exports.isPrimitive = isPrimitive;
11150
11151 exports.isBuffer = require('./support/isBuffer');
11152
11153 function objectToString(o) {
11154 return Object.prototype.toString.call(o);
11155 }
11156
11157
11158 function pad(n) {
11159 return n < 10 ? '0' + n.toString(10) : n.toString(10);
11160 }
11161
11162
11163 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
11164 'Oct', 'Nov', 'Dec'];
11165
11166 function timestamp() {
11167 var d = new Date();
11168 var time = [pad(d.getHours()),
11169 pad(d.getMinutes()),
11170 pad(d.getSeconds())].join(':');
11171 return [d.getDate(), months[d.getMonth()], time].join(' ');
11172 }
11173
11174
11175 exports.log = function() {
11176 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
11177 };
11178
11179
11180
11181 exports.inherits = require('inherits');
11182
11183 exports._extend = function(origin, add) {
11184 if (!add || !isObject(add)) return origin;
11185
11186 var keys = Object.keys(add);
11187 var i = keys.length;
11188 while (i--) {
11189 origin[keys[i]] = add[keys[i]];
11190 }
11191 return origin;
11192 };
11193
11194 function hasOwnProperty(obj, prop) {
11195 return Object.prototype.hasOwnProperty.call(obj, prop);
11196 }
11197
11198 }).call(this,require("FWaASH"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
11199 },{"./support/isBuffer":79,"FWaASH":73,"inherits":72}],81:[function(require,module,exports){
11200 var arrayEvery = require('../internal/arrayEvery'),
11201 baseCallback = require('../internal/baseCallback'),
11202 baseEvery = require('../internal/baseEvery'),
11203 isArray = require('../lang/isArray');
11204
11205
11206 function every(collection, predicate, thisArg) {
11207 var func = isArray(collection) ? arrayEvery : baseEvery;
11208 if (typeof predicate != 'function' || typeof thisArg != 'undefined') {
11209 predicate = baseCallback(predicate, thisArg, 3);
11210 }
11211 return func(collection, predicate);
11212 }
11213
11214 module.exports = every;
11215
11216 },{"../internal/arrayEvery":82,"../internal/baseCallback":84,"../internal/baseEvery":88,"../lang/isArray":115}],82:[function(require,module,exports){
11217
11218 function arrayEvery(array, predicate) {
11219 var index = -1,
11220 length = array.length;
11221
11222 while (++index < length) {
11223 if (!predicate(array[index], index, array)) {
11224 return false;
11225 }
11226 }
11227 return true;
11228 }
11229
11230 module.exports = arrayEvery;
11231
11232 },{}],83:[function(require,module,exports){
11233 var baseCopy = require('./baseCopy'),
11234 keys = require('../object/keys');
11235
11236
11237 function baseAssign(object, source, customizer) {
11238 var props = keys(source);
11239 if (!customizer) {
11240 return baseCopy(source, object, props);
11241 }
11242 var index = -1,
11243 length = props.length;
11244
11245 while (++index < length) {
11246 var key = props[index],
11247 value = object[key],
11248 result = customizer(value, source[key], key, object, source);
11249
11250 if ((result === result ? (result !== value) : (value === value)) ||
11251 (typeof value == 'undefined' && !(key in object))) {
11252 object[key] = result;
11253 }
11254 }
11255 return object;
11256 }
11257
11258 module.exports = baseAssign;
11259
11260 },{"../object/keys":124,"./baseCopy":85}],84:[function(require,module,exports){
11261 var baseMatches = require('./baseMatches'),
11262 baseMatchesProperty = require('./baseMatchesProperty'),
11263 baseProperty = require('./baseProperty'),
11264 bindCallback = require('./bindCallback'),
11265 identity = require('../utility/identity'),
11266 isBindable = require('./isBindable');
11267
11268
11269 function baseCallback(func, thisArg, argCount) {
11270 var type = typeof func;
11271 if (type == 'function') {
11272 return (typeof thisArg != 'undefined' && isBindable(func))
11273 ? bindCallback(func, thisArg, argCount)
11274 : func;
11275 }
11276 if (func == null) {
11277 return identity;
11278 }
11279 if (type == 'object') {
11280 return baseMatches(func);
11281 }
11282 return typeof thisArg == 'undefined'
11283 ? baseProperty(func + '')
11284 : baseMatchesProperty(func + '', thisArg);
11285 }
11286
11287 module.exports = baseCallback;
11288
11289 },{"../utility/identity":128,"./baseMatches":95,"./baseMatchesProperty":96,"./baseProperty":97,"./bindCallback":100,"./isBindable":105}],85:[function(require,module,exports){
11290
11291 function baseCopy(source, object, props) {
11292 if (!props) {
11293 props = object;
11294 object = {};
11295 }
11296 var index = -1,
11297 length = props.length;
11298
11299 while (++index < length) {
11300 var key = props[index];
11301 object[key] = source[key];
11302 }
11303 return object;
11304 }
11305
11306 module.exports = baseCopy;
11307
11308 },{}],86:[function(require,module,exports){
11309 (function (global){
11310 var isObject = require('../lang/isObject');
11311
11312
11313 var baseCreate = (function() {
11314 function Object() {}
11315 return function(prototype) {
11316 if (isObject(prototype)) {
11317 Object.prototype = prototype;
11318 var result = new Object;
11319 Object.prototype = null;
11320 }
11321 return result || global.Object();
11322 };
11323 }());
11324
11325 module.exports = baseCreate;
11326
11327 }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
11328 },{"../lang/isObject":119}],87:[function(require,module,exports){
11329 var baseForOwn = require('./baseForOwn'),
11330 isLength = require('./isLength'),
11331 toObject = require('./toObject');
11332
11333
11334 function baseEach(collection, iteratee) {
11335 var length = collection ? collection.length : 0;
11336 if (!isLength(length)) {
11337 return baseForOwn(collection, iteratee);
11338 }
11339 var index = -1,
11340 iterable = toObject(collection);
11341
11342 while (++index < length) {
11343 if (iteratee(iterable[index], index, iterable) === false) {
11344 break;
11345 }
11346 }
11347 return collection;
11348 }
11349
11350 module.exports = baseEach;
11351
11352 },{"./baseForOwn":90,"./isLength":108,"./toObject":113}],88:[function(require,module,exports){
11353 var baseEach = require('./baseEach');
11354
11355
11356 function baseEvery(collection, predicate) {
11357 var result = true;
11358 baseEach(collection, function(value, index, collection) {
11359 result = !!predicate(value, index, collection);
11360 return result;
11361 });
11362 return result;
11363 }
11364
11365 module.exports = baseEvery;
11366
11367 },{"./baseEach":87}],89:[function(require,module,exports){
11368 var toObject = require('./toObject');
11369
11370
11371 function baseFor(object, iteratee, keysFunc) {
11372 var index = -1,
11373 iterable = toObject(object),
11374 props = keysFunc(object),
11375 length = props.length;
11376
11377 while (++index < length) {
11378 var key = props[index];
11379 if (iteratee(iterable[key], key, iterable) === false) {
11380 break;
11381 }
11382 }
11383 return object;
11384 }
11385
11386 module.exports = baseFor;
11387
11388 },{"./toObject":113}],90:[function(require,module,exports){
11389 var baseFor = require('./baseFor'),
11390 keys = require('../object/keys');
11391
11392
11393 function baseForOwn(object, iteratee) {
11394 return baseFor(object, iteratee, keys);
11395 }
11396
11397 module.exports = baseForOwn;
11398
11399 },{"../object/keys":124,"./baseFor":89}],91:[function(require,module,exports){
11400 var baseIsEqualDeep = require('./baseIsEqualDeep');
11401
11402
11403 function baseIsEqual(value, other, customizer, isWhere, stackA, stackB) {
11404 if (value === other) {
11405 return value !== 0 || (1 / value == 1 / other);
11406 }
11407 var valType = typeof value,
11408 othType = typeof other;
11409
11410 if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') ||
11411 value == null || other == null) {
11412 return value !== value && other !== other;
11413 }
11414 return baseIsEqualDeep(value, other, baseIsEqual, customizer, isWhere, stackA, stackB);
11415 }
11416
11417 module.exports = baseIsEqual;
11418
11419 },{"./baseIsEqualDeep":92}],92:[function(require,module,exports){
11420 var equalArrays = require('./equalArrays'),
11421 equalByTag = require('./equalByTag'),
11422 equalObjects = require('./equalObjects'),
11423 isArray = require('../lang/isArray'),
11424 isTypedArray = require('../lang/isTypedArray');
11425
11426
11427 var argsTag = '[object Arguments]',
11428 arrayTag = '[object Array]',
11429 objectTag = '[object Object]';
11430
11431
11432 var objectProto = Object.prototype;
11433
11434
11435 var hasOwnProperty = objectProto.hasOwnProperty;
11436
11437
11438 var objToString = objectProto.toString;
11439
11440
11441 function baseIsEqualDeep(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
11442 var objIsArr = isArray(object),
11443 othIsArr = isArray(other),
11444 objTag = arrayTag,
11445 othTag = arrayTag;
11446
11447 if (!objIsArr) {
11448 objTag = objToString.call(object);
11449 if (objTag == argsTag) {
11450 objTag = objectTag;
11451 } else if (objTag != objectTag) {
11452 objIsArr = isTypedArray(object);
11453 }
11454 }
11455 if (!othIsArr) {
11456 othTag = objToString.call(other);
11457 if (othTag == argsTag) {
11458 othTag = objectTag;
11459 } else if (othTag != objectTag) {
11460 othIsArr = isTypedArray(other);
11461 }
11462 }
11463 var objIsObj = objTag == objectTag,
11464 othIsObj = othTag == objectTag,
11465 isSameTag = objTag == othTag;
11466
11467 if (isSameTag && !(objIsArr || objIsObj)) {
11468 return equalByTag(object, other, objTag);
11469 }
11470 var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
11471 othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
11472
11473 if (valWrapped || othWrapped) {
11474 return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isWhere, stackA, stackB);
11475 }
11476 if (!isSameTag) {
11477 return false;
11478 }
11479 stackA || (stackA = []);
11480 stackB || (stackB = []);
11481
11482 var length = stackA.length;
11483 while (length--) {
11484 if (stackA[length] == object) {
11485 return stackB[length] == other;
11486 }
11487 }
11488 stackA.push(object);
11489 stackB.push(other);
11490
11491 var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isWhere, stackA, stackB);
11492
11493 stackA.pop();
11494 stackB.pop();
11495
11496 return result;
11497 }
11498
11499 module.exports = baseIsEqualDeep;
11500
11501 },{"../lang/isArray":115,"../lang/isTypedArray":121,"./equalArrays":102,"./equalByTag":103,"./equalObjects":104}],93:[function(require,module,exports){
11502
11503 function baseIsFunction(value) {
11504 return typeof value == 'function' || false;
11505 }
11506
11507 module.exports = baseIsFunction;
11508
11509 },{}],94:[function(require,module,exports){
11510 var baseIsEqual = require('./baseIsEqual');
11511
11512
11513 var objectProto = Object.prototype;
11514
11515
11516 var hasOwnProperty = objectProto.hasOwnProperty;
11517
11518
11519 function baseIsMatch(object, props, values, strictCompareFlags, customizer) {
11520 var length = props.length;
11521 if (object == null) {
11522 return !length;
11523 }
11524 var index = -1,
11525 noCustomizer = !customizer;
11526
11527 while (++index < length) {
11528 if ((noCustomizer && strictCompareFlags[index])
11529 ? values[index] !== object[props[index]]
11530 : !hasOwnProperty.call(object, props[index])
11531 ) {
11532 return false;
11533 }
11534 }
11535 index = -1;
11536 while (++index < length) {
11537 var key = props[index];
11538 if (noCustomizer && strictCompareFlags[index]) {
11539 var result = hasOwnProperty.call(object, key);
11540 } else {
11541 var objValue = object[key],
11542 srcValue = values[index];
11543
11544 result = customizer ? customizer(objValue, srcValue, key) : undefined;
11545 if (typeof result == 'undefined') {
11546 result = baseIsEqual(srcValue, objValue, customizer, true);
11547 }
11548 }
11549 if (!result) {
11550 return false;
11551 }
11552 }
11553 return true;
11554 }
11555
11556 module.exports = baseIsMatch;
11557
11558 },{"./baseIsEqual":91}],95:[function(require,module,exports){
11559 var baseIsMatch = require('./baseIsMatch'),
11560 isStrictComparable = require('./isStrictComparable'),
11561 keys = require('../object/keys');
11562
11563
11564 var objectProto = Object.prototype;
11565
11566
11567 var hasOwnProperty = objectProto.hasOwnProperty;
11568
11569
11570 function baseMatches(source) {
11571 var props = keys(source),
11572 length = props.length;
11573
11574 if (length == 1) {
11575 var key = props[0],
11576 value = source[key];
11577
11578 if (isStrictComparable(value)) {
11579 return function(object) {
11580 return object != null && object[key] === value && hasOwnProperty.call(object, key);
11581 };
11582 }
11583 }
11584 var values = Array(length),
11585 strictCompareFlags = Array(length);
11586
11587 while (length--) {
11588 value = source[props[length]];
11589 values[length] = value;
11590 strictCompareFlags[length] = isStrictComparable(value);
11591 }
11592 return function(object) {
11593 return baseIsMatch(object, props, values, strictCompareFlags);
11594 };
11595 }
11596
11597 module.exports = baseMatches;
11598
11599 },{"../object/keys":124,"./baseIsMatch":94,"./isStrictComparable":110}],96:[function(require,module,exports){
11600 var baseIsEqual = require('./baseIsEqual'),
11601 isStrictComparable = require('./isStrictComparable');
11602
11603
11604 function baseMatchesProperty(key, value) {
11605 if (isStrictComparable(value)) {
11606 return function(object) {
11607 return object != null && object[key] === value;
11608 };
11609 }
11610 return function(object) {
11611 return object != null && baseIsEqual(value, object[key], null, true);
11612 };
11613 }
11614
11615 module.exports = baseMatchesProperty;
11616
11617 },{"./baseIsEqual":91,"./isStrictComparable":110}],97:[function(require,module,exports){
11618
11619 function baseProperty(key) {
11620 return function(object) {
11621 return object == null ? undefined : object[key];
11622 };
11623 }
11624
11625 module.exports = baseProperty;
11626
11627 },{}],98:[function(require,module,exports){
11628 var identity = require('../utility/identity'),
11629 metaMap = require('./metaMap');
11630
11631
11632 var baseSetData = !metaMap ? identity : function(func, data) {
11633 metaMap.set(func, data);
11634 return func;
11635 };
11636
11637 module.exports = baseSetData;
11638
11639 },{"../utility/identity":128,"./metaMap":111}],99:[function(require,module,exports){
11640
11641 function baseToString(value) {
11642 if (typeof value == 'string') {
11643 return value;
11644 }
11645 return value == null ? '' : (value + '');
11646 }
11647
11648 module.exports = baseToString;
11649
11650 },{}],100:[function(require,module,exports){
11651 var identity = require('../utility/identity');
11652
11653
11654 function bindCallback(func, thisArg, argCount) {
11655 if (typeof func != 'function') {
11656 return identity;
11657 }
11658 if (typeof thisArg == 'undefined') {
11659 return func;
11660 }
11661 switch (argCount) {
11662 case 1: return function(value) {
11663 return func.call(thisArg, value);
11664 };
11665 case 3: return function(value, index, collection) {
11666 return func.call(thisArg, value, index, collection);
11667 };
11668 case 4: return function(accumulator, value, index, collection) {
11669 return func.call(thisArg, accumulator, value, index, collection);
11670 };
11671 case 5: return function(value, other, key, object, source) {
11672 return func.call(thisArg, value, other, key, object, source);
11673 };
11674 }
11675 return function() {
11676 return func.apply(thisArg, arguments);
11677 };
11678 }
11679
11680 module.exports = bindCallback;
11681
11682 },{"../utility/identity":128}],101:[function(require,module,exports){
11683 var bindCallback = require('./bindCallback'),
11684 isIterateeCall = require('./isIterateeCall');
11685
11686
11687 function createAssigner(assigner) {
11688 return function() {
11689 var args = arguments,
11690 length = args.length,
11691 object = args[0];
11692
11693 if (length < 2 || object == null) {
11694 return object;
11695 }
11696 var customizer = args[length - 2],
11697 thisArg = args[length - 1],
11698 guard = args[3];
11699
11700 if (length > 3 && typeof customizer == 'function') {
11701 customizer = bindCallback(customizer, thisArg, 5);
11702 length -= 2;
11703 } else {
11704 customizer = (length > 2 && typeof thisArg == 'function') ? thisArg : null;
11705 length -= (customizer ? 1 : 0);
11706 }
11707 if (guard && isIterateeCall(args[1], args[2], guard)) {
11708 customizer = length == 3 ? null : customizer;
11709 length = 2;
11710 }
11711 var index = 0;
11712 while (++index < length) {
11713 var source = args[index];
11714 if (source) {
11715 assigner(object, source, customizer);
11716 }
11717 }
11718 return object;
11719 };
11720 }
11721
11722 module.exports = createAssigner;
11723
11724 },{"./bindCallback":100,"./isIterateeCall":107}],102:[function(require,module,exports){
11725
11726 function equalArrays(array, other, equalFunc, customizer, isWhere, stackA, stackB) {
11727 var index = -1,
11728 arrLength = array.length,
11729 othLength = other.length,
11730 result = true;
11731
11732 if (arrLength != othLength && !(isWhere && othLength > arrLength)) {
11733 return false;
11734 }
11735 while (result && ++index < arrLength) {
11736 var arrValue = array[index],
11737 othValue = other[index];
11738
11739 result = undefined;
11740 if (customizer) {
11741 result = isWhere
11742 ? customizer(othValue, arrValue, index)
11743 : customizer(arrValue, othValue, index);
11744 }
11745 if (typeof result == 'undefined') {
11746 if (isWhere) {
11747 var othIndex = othLength;
11748 while (othIndex--) {
11749 othValue = other[othIndex];
11750 result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
11751 if (result) {
11752 break;
11753 }
11754 }
11755 } else {
11756 result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isWhere, stackA, stackB);
11757 }
11758 }
11759 }
11760 return !!result;
11761 }
11762
11763 module.exports = equalArrays;
11764
11765 },{}],103:[function(require,module,exports){
11766
11767 var boolTag = '[object Boolean]',
11768 dateTag = '[object Date]',
11769 errorTag = '[object Error]',
11770 numberTag = '[object Number]',
11771 regexpTag = '[object RegExp]',
11772 stringTag = '[object String]';
11773
11774
11775 function equalByTag(object, other, tag) {
11776 switch (tag) {
11777 case boolTag:
11778 case dateTag:
11779 return +object == +other;
11780
11781 case errorTag:
11782 return object.name == other.name && object.message == other.message;
11783
11784 case numberTag:
11785 return (object != +object)
11786 ? other != +other
11787 : (object == 0 ? ((1 / object) == (1 / other)) : object == +other);
11788
11789 case regexpTag:
11790 case stringTag:
11791 return object == (other + '');
11792 }
11793 return false;
11794 }
11795
11796 module.exports = equalByTag;
11797
11798 },{}],104:[function(require,module,exports){
11799 var keys = require('../object/keys');
11800
11801
11802 var objectProto = Object.prototype;
11803
11804
11805 var hasOwnProperty = objectProto.hasOwnProperty;
11806
11807
11808 function equalObjects(object, other, equalFunc, customizer, isWhere, stackA, stackB) {
11809 var objProps = keys(object),
11810 objLength = objProps.length,
11811 othProps = keys(other),
11812 othLength = othProps.length;
11813
11814 if (objLength != othLength && !isWhere) {
11815 return false;
11816 }
11817 var hasCtor,
11818 index = -1;
11819
11820 while (++index < objLength) {
11821 var key = objProps[index],
11822 result = hasOwnProperty.call(other, key);
11823
11824 if (result) {
11825 var objValue = object[key],
11826 othValue = other[key];
11827
11828 result = undefined;
11829 if (customizer) {
11830 result = isWhere
11831 ? customizer(othValue, objValue, key)
11832 : customizer(objValue, othValue, key);
11833 }
11834 if (typeof result == 'undefined') {
11835 result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isWhere, stackA, stackB);
11836 }
11837 }
11838 if (!result) {
11839 return false;
11840 }
11841 hasCtor || (hasCtor = key == 'constructor');
11842 }
11843 if (!hasCtor) {
11844 var objCtor = object.constructor,
11845 othCtor = other.constructor;
11846
11847 if (objCtor != othCtor &&
11848 ('constructor' in object && 'constructor' in other) &&
11849 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
11850 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
11851 return false;
11852 }
11853 }
11854 return true;
11855 }
11856
11857 module.exports = equalObjects;
11858
11859 },{"../object/keys":124}],105:[function(require,module,exports){
11860 var baseSetData = require('./baseSetData'),
11861 isNative = require('../lang/isNative'),
11862 support = require('../support');
11863
11864
11865 var reFuncName = /^\s*function[ \n\r\t]+\w/;
11866
11867
11868 var reThis = /\bthis\b/;
11869
11870
11871 var fnToString = Function.prototype.toString;
11872
11873
11874 function isBindable(func) {
11875 var result = !(support.funcNames ? func.name : support.funcDecomp);
11876
11877 if (!result) {
11878 var source = fnToString.call(func);
11879 if (!support.funcNames) {
11880 result = !reFuncName.test(source);
11881 }
11882 if (!result) {
11883 result = reThis.test(source) || isNative(func);
11884 baseSetData(func, result);
11885 }
11886 }
11887 return result;
11888 }
11889
11890 module.exports = isBindable;
11891
11892 },{"../lang/isNative":118,"../support":127,"./baseSetData":98}],106:[function(require,module,exports){
11893
11894 var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
11895
11896
11897 function isIndex(value, length) {
11898 value = +value;
11899 length = length == null ? MAX_SAFE_INTEGER : length;
11900 return value > -1 && value % 1 == 0 && value < length;
11901 }
11902
11903 module.exports = isIndex;
11904
11905 },{}],107:[function(require,module,exports){
11906 var isIndex = require('./isIndex'),
11907 isLength = require('./isLength'),
11908 isObject = require('../lang/isObject');
11909
11910
11911 function isIterateeCall(value, index, object) {
11912 if (!isObject(object)) {
11913 return false;
11914 }
11915 var type = typeof index;
11916 if (type == 'number') {
11917 var length = object.length,
11918 prereq = isLength(length) && isIndex(index, length);
11919 } else {
11920 prereq = type == 'string' && index in object;
11921 }
11922 if (prereq) {
11923 var other = object[index];
11924 return value === value ? (value === other) : (other !== other);
11925 }
11926 return false;
11927 }
11928
11929 module.exports = isIterateeCall;
11930
11931 },{"../lang/isObject":119,"./isIndex":106,"./isLength":108}],108:[function(require,module,exports){
11932
11933 var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
11934
11935
11936 function isLength(value) {
11937 return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
11938 }
11939
11940 module.exports = isLength;
11941
11942 },{}],109:[function(require,module,exports){
11943
11944 function isObjectLike(value) {
11945 return (value && typeof value == 'object') || false;
11946 }
11947
11948 module.exports = isObjectLike;
11949
11950 },{}],110:[function(require,module,exports){
11951 var isObject = require('../lang/isObject');
11952
11953
11954 function isStrictComparable(value) {
11955 return value === value && (value === 0 ? ((1 / value) > 0) : !isObject(value));
11956 }
11957
11958 module.exports = isStrictComparable;
11959
11960 },{"../lang/isObject":119}],111:[function(require,module,exports){
11961 (function (global){
11962 var isNative = require('../lang/isNative');
11963
11964
11965 var WeakMap = isNative(WeakMap = global.WeakMap) && WeakMap;
11966
11967
11968 var metaMap = WeakMap && new WeakMap;
11969
11970 module.exports = metaMap;
11971
11972 }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
11973 },{"../lang/isNative":118}],112:[function(require,module,exports){
11974 var isArguments = require('../lang/isArguments'),
11975 isArray = require('../lang/isArray'),
11976 isIndex = require('./isIndex'),
11977 isLength = require('./isLength'),
11978 keysIn = require('../object/keysIn'),
11979 support = require('../support');
11980
11981
11982 var objectProto = Object.prototype;
11983
11984
11985 var hasOwnProperty = objectProto.hasOwnProperty;
11986
11987
11988 function shimKeys(object) {
11989 var props = keysIn(object),
11990 propsLength = props.length,
11991 length = propsLength && object.length;
11992
11993 var allowIndexes = length && isLength(length) &&
11994 (isArray(object) || (support.nonEnumArgs && isArguments(object)));
11995
11996 var index = -1,
11997 result = [];
11998
11999 while (++index < propsLength) {
12000 var key = props[index];
12001 if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
12002 result.push(key);
12003 }
12004 }
12005 return result;
12006 }
12007
12008 module.exports = shimKeys;
12009
12010 },{"../lang/isArguments":114,"../lang/isArray":115,"../object/keysIn":125,"../support":127,"./isIndex":106,"./isLength":108}],113:[function(require,module,exports){
12011 var isObject = require('../lang/isObject');
12012
12013
12014 function toObject(value) {
12015 return isObject(value) ? value : Object(value);
12016 }
12017
12018 module.exports = toObject;
12019
12020 },{"../lang/isObject":119}],114:[function(require,module,exports){
12021 var isLength = require('../internal/isLength'),
12022 isObjectLike = require('../internal/isObjectLike');
12023
12024
12025 var argsTag = '[object Arguments]';
12026
12027
12028 var objectProto = Object.prototype;
12029
12030
12031 var objToString = objectProto.toString;
12032
12033
12034 function isArguments(value) {
12035 var length = isObjectLike(value) ? value.length : undefined;
12036 return (isLength(length) && objToString.call(value) == argsTag) || false;
12037 }
12038
12039 module.exports = isArguments;
12040
12041 },{"../internal/isLength":108,"../internal/isObjectLike":109}],115:[function(require,module,exports){
12042 var isLength = require('../internal/isLength'),
12043 isNative = require('./isNative'),
12044 isObjectLike = require('../internal/isObjectLike');
12045
12046
12047 var arrayTag = '[object Array]';
12048
12049
12050 var objectProto = Object.prototype;
12051
12052
12053 var objToString = objectProto.toString;
12054
12055
12056 var nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;
12057
12058
12059 var isArray = nativeIsArray || function(value) {
12060 return (isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag) || false;
12061 };
12062
12063 module.exports = isArray;
12064
12065 },{"../internal/isLength":108,"../internal/isObjectLike":109,"./isNative":118}],116:[function(require,module,exports){
12066 var isArguments = require('./isArguments'),
12067 isArray = require('./isArray'),
12068 isFunction = require('./isFunction'),
12069 isLength = require('../internal/isLength'),
12070 isObjectLike = require('../internal/isObjectLike'),
12071 isString = require('./isString'),
12072 keys = require('../object/keys');
12073
12074
12075 function isEmpty(value) {
12076 if (value == null) {
12077 return true;
12078 }
12079 var length = value.length;
12080 if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) ||
12081 (isObjectLike(value) && isFunction(value.splice)))) {
12082 return !length;
12083 }
12084 return !keys(value).length;
12085 }
12086
12087 module.exports = isEmpty;
12088
12089 },{"../internal/isLength":108,"../internal/isObjectLike":109,"../object/keys":124,"./isArguments":114,"./isArray":115,"./isFunction":117,"./isString":120}],117:[function(require,module,exports){
12090 (function (global){
12091 var baseIsFunction = require('../internal/baseIsFunction'),
12092 isNative = require('./isNative');
12093
12094
12095 var funcTag = '[object Function]';
12096
12097
12098 var objectProto = Object.prototype;
12099
12100
12101 var objToString = objectProto.toString;
12102
12103
12104 var Uint8Array = isNative(Uint8Array = global.Uint8Array) && Uint8Array;
12105
12106
12107 var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
12108 return objToString.call(value) == funcTag;
12109 };
12110
12111 module.exports = isFunction;
12112
12113 }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12114 },{"../internal/baseIsFunction":93,"./isNative":118}],118:[function(require,module,exports){
12115 var escapeRegExp = require('../string/escapeRegExp'),
12116 isObjectLike = require('../internal/isObjectLike');
12117
12118
12119 var funcTag = '[object Function]';
12120
12121
12122 var reHostCtor = /^\[object .+?Constructor\]$/;
12123
12124
12125 var objectProto = Object.prototype;
12126
12127
12128 var fnToString = Function.prototype.toString;
12129
12130
12131 var objToString = objectProto.toString;
12132
12133
12134 var reNative = RegExp('^' +
12135 escapeRegExp(objToString)
12136 .replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
12137 );
12138
12139
12140 function isNative(value) {
12141 if (value == null) {
12142 return false;
12143 }
12144 if (objToString.call(value) == funcTag) {
12145 return reNative.test(fnToString.call(value));
12146 }
12147 return (isObjectLike(value) && reHostCtor.test(value)) || false;
12148 }
12149
12150 module.exports = isNative;
12151
12152 },{"../internal/isObjectLike":109,"../string/escapeRegExp":126}],119:[function(require,module,exports){
12153
12154 function isObject(value) {
12155 var type = typeof value;
12156 return type == 'function' || (value && type == 'object') || false;
12157 }
12158
12159 module.exports = isObject;
12160
12161 },{}],120:[function(require,module,exports){
12162 var isObjectLike = require('../internal/isObjectLike');
12163
12164
12165 var stringTag = '[object String]';
12166
12167
12168 var objectProto = Object.prototype;
12169
12170
12171 var objToString = objectProto.toString;
12172
12173
12174 function isString(value) {
12175 return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag) || false;
12176 }
12177
12178 module.exports = isString;
12179
12180 },{"../internal/isObjectLike":109}],121:[function(require,module,exports){
12181 var isLength = require('../internal/isLength'),
12182 isObjectLike = require('../internal/isObjectLike');
12183
12184
12185 var argsTag = '[object Arguments]',
12186 arrayTag = '[object Array]',
12187 boolTag = '[object Boolean]',
12188 dateTag = '[object Date]',
12189 errorTag = '[object Error]',
12190 funcTag = '[object Function]',
12191 mapTag = '[object Map]',
12192 numberTag = '[object Number]',
12193 objectTag = '[object Object]',
12194 regexpTag = '[object RegExp]',
12195 setTag = '[object Set]',
12196 stringTag = '[object String]',
12197 weakMapTag = '[object WeakMap]';
12198
12199 var arrayBufferTag = '[object ArrayBuffer]',
12200 float32Tag = '[object Float32Array]',
12201 float64Tag = '[object Float64Array]',
12202 int8Tag = '[object Int8Array]',
12203 int16Tag = '[object Int16Array]',
12204 int32Tag = '[object Int32Array]',
12205 uint8Tag = '[object Uint8Array]',
12206 uint8ClampedTag = '[object Uint8ClampedArray]',
12207 uint16Tag = '[object Uint16Array]',
12208 uint32Tag = '[object Uint32Array]';
12209
12210
12211 var typedArrayTags = {};
12212 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
12213 typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
12214 typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
12215 typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
12216 typedArrayTags[uint32Tag] = true;
12217 typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
12218 typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
12219 typedArrayTags[dateTag] = typedArrayTags[errorTag] =
12220 typedArrayTags[funcTag] = typedArrayTags[mapTag] =
12221 typedArrayTags[numberTag] = typedArrayTags[objectTag] =
12222 typedArrayTags[regexpTag] = typedArrayTags[setTag] =
12223 typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
12224
12225
12226 var objectProto = Object.prototype;
12227
12228
12229 var objToString = objectProto.toString;
12230
12231
12232 function isTypedArray(value) {
12233 return (isObjectLike(value) && isLength(value.length) && typedArrayTags[objToString.call(value)]) || false;
12234 }
12235
12236 module.exports = isTypedArray;
12237
12238 },{"../internal/isLength":108,"../internal/isObjectLike":109}],122:[function(require,module,exports){
12239 var baseAssign = require('../internal/baseAssign'),
12240 createAssigner = require('../internal/createAssigner');
12241
12242
12243 var assign = createAssigner(baseAssign);
12244
12245 module.exports = assign;
12246
12247 },{"../internal/baseAssign":83,"../internal/createAssigner":101}],123:[function(require,module,exports){
12248 var baseCopy = require('../internal/baseCopy'),
12249 baseCreate = require('../internal/baseCreate'),
12250 isIterateeCall = require('../internal/isIterateeCall'),
12251 keys = require('./keys');
12252
12253
12254 function create(prototype, properties, guard) {
12255 var result = baseCreate(prototype);
12256 if (guard && isIterateeCall(prototype, properties, guard)) {
12257 properties = null;
12258 }
12259 return properties ? baseCopy(properties, result, keys(properties)) : result;
12260 }
12261
12262 module.exports = create;
12263
12264 },{"../internal/baseCopy":85,"../internal/baseCreate":86,"../internal/isIterateeCall":107,"./keys":124}],124:[function(require,module,exports){
12265 var isLength = require('../internal/isLength'),
12266 isNative = require('../lang/isNative'),
12267 isObject = require('../lang/isObject'),
12268 shimKeys = require('../internal/shimKeys');
12269
12270
12271 var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
12272
12273
12274 var keys = !nativeKeys ? shimKeys : function(object) {
12275 if (object) {
12276 var Ctor = object.constructor,
12277 length = object.length;
12278 }
12279 if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
12280 (typeof object != 'function' && (length && isLength(length)))) {
12281 return shimKeys(object);
12282 }
12283 return isObject(object) ? nativeKeys(object) : [];
12284 };
12285
12286 module.exports = keys;
12287
12288 },{"../internal/isLength":108,"../internal/shimKeys":112,"../lang/isNative":118,"../lang/isObject":119}],125:[function(require,module,exports){
12289 var isArguments = require('../lang/isArguments'),
12290 isArray = require('../lang/isArray'),
12291 isIndex = require('../internal/isIndex'),
12292 isLength = require('../internal/isLength'),
12293 isObject = require('../lang/isObject'),
12294 support = require('../support');
12295
12296
12297 var objectProto = Object.prototype;
12298
12299
12300 var hasOwnProperty = objectProto.hasOwnProperty;
12301
12302
12303 function keysIn(object) {
12304 if (object == null) {
12305 return [];
12306 }
12307 if (!isObject(object)) {
12308 object = Object(object);
12309 }
12310 var length = object.length;
12311 length = (length && isLength(length) &&
12312 (isArray(object) || (support.nonEnumArgs && isArguments(object))) && length) || 0;
12313
12314 var Ctor = object.constructor,
12315 index = -1,
12316 isProto = typeof Ctor == 'function' && Ctor.prototype === object,
12317 result = Array(length),
12318 skipIndexes = length > 0;
12319
12320 while (++index < length) {
12321 result[index] = (index + '');
12322 }
12323 for (var key in object) {
12324 if (!(skipIndexes && isIndex(key, length)) &&
12325 !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
12326 result.push(key);
12327 }
12328 }
12329 return result;
12330 }
12331
12332 module.exports = keysIn;
12333
12334 },{"../internal/isIndex":106,"../internal/isLength":108,"../lang/isArguments":114,"../lang/isArray":115,"../lang/isObject":119,"../support":127}],126:[function(require,module,exports){
12335 var baseToString = require('../internal/baseToString');
12336
12337
12338 var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
12339 reHasRegExpChars = RegExp(reRegExpChars.source);
12340
12341
12342 function escapeRegExp(string) {
12343 string = baseToString(string);
12344 return (string && reHasRegExpChars.test(string))
12345 ? string.replace(reRegExpChars, '\\$&')
12346 : string;
12347 }
12348
12349 module.exports = escapeRegExp;
12350
12351 },{"../internal/baseToString":99}],127:[function(require,module,exports){
12352 (function (global){
12353 var isNative = require('./lang/isNative');
12354
12355
12356 var reThis = /\bthis\b/;
12357
12358
12359 var objectProto = Object.prototype;
12360
12361
12362 var document = (document = global.window) && document.document;
12363
12364
12365 var propertyIsEnumerable = objectProto.propertyIsEnumerable;
12366
12367
12368 var support = {};
12369
12370 (function(x) {
12371
12372
12373 support.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });
12374
12375
12376 support.funcNames = typeof Function.name == 'string';
12377
12378
12379 try {
12380 support.dom = document.createDocumentFragment().nodeType === 11;
12381 } catch(e) {
12382 support.dom = false;
12383 }
12384
12385
12386 try {
12387 support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1);
12388 } catch(e) {
12389 support.nonEnumArgs = true;
12390 }
12391 }(0, 0));
12392
12393 module.exports = support;
12394
12395 }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12396 },{"./lang/isNative":118}],128:[function(require,module,exports){
12397
12398 function identity(value) {
12399 return value;
12400 }
12401
12402 module.exports = identity;
12403
12404 },{}],129:[function(require,module,exports){
12405 (function() {
12406 var XMLAttribute, create;
12407
12408 create = require('lodash/object/create');
12409
12410 module.exports = XMLAttribute = (function() {
12411 function XMLAttribute(parent, name, value) {
12412 this.stringify = parent.stringify;
12413 if (name == null) {
12414 throw new Error("Missing attribute name of element " + parent.name);
12415 }
12416 if (value == null) {
12417 throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name);
12418 }
12419 this.name = this.stringify.attName(name);
12420 this.value = this.stringify.attValue(value);
12421 }
12422
12423 XMLAttribute.prototype.clone = function() {
12424 return create(XMLAttribute.prototype, this);
12425 };
12426
12427 XMLAttribute.prototype.toString = function(options, level) {
12428 return ' ' + this.name + '="' + this.value + '"';
12429 };
12430
12431 return XMLAttribute;
12432
12433 })();
12434
12435 }).call(this);
12436
12437 },{"lodash/object/create":123}],130:[function(require,module,exports){
12438 (function() {
12439 var XMLBuilder, XMLDeclaration, XMLDocType, XMLElement, XMLStringifier;
12440
12441 XMLStringifier = require('./XMLStringifier');
12442
12443 XMLDeclaration = require('./XMLDeclaration');
12444
12445 XMLDocType = require('./XMLDocType');
12446
12447 XMLElement = require('./XMLElement');
12448
12449 module.exports = XMLBuilder = (function() {
12450 function XMLBuilder(name, options) {
12451 var root, temp;
12452 if (name == null) {
12453 throw new Error("Root element needs a name");
12454 }
12455 if (options == null) {
12456 options = {};
12457 }
12458 this.options = options;
12459 this.stringify = new XMLStringifier(options);
12460 temp = new XMLElement(this, 'doc');
12461 root = temp.element(name);
12462 root.isRoot = true;
12463 root.documentObject = this;
12464 this.rootObject = root;
12465 if (!options.headless) {
12466 root.declaration(options);
12467 if ((options.pubID != null) || (options.sysID != null)) {
12468 root.doctype(options);
12469 }
12470 }
12471 }
12472
12473 XMLBuilder.prototype.root = function() {
12474 return this.rootObject;
12475 };
12476
12477 XMLBuilder.prototype.end = function(options) {
12478 return this.toString(options);
12479 };
12480
12481 XMLBuilder.prototype.toString = function(options) {
12482 var indent, newline, offset, pretty, r, ref, ref1, ref2;
12483 pretty = (options != null ? options.pretty : void 0) || false;
12484 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12485 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12486 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12487 r = '';
12488 if (this.xmldec != null) {
12489 r += this.xmldec.toString(options);
12490 }
12491 if (this.doctype != null) {
12492 r += this.doctype.toString(options);
12493 }
12494 r += this.rootObject.toString(options);
12495 if (pretty && r.slice(-newline.length) === newline) {
12496 r = r.slice(0, -newline.length);
12497 }
12498 return r;
12499 };
12500
12501 return XMLBuilder;
12502
12503 })();
12504
12505 }).call(this);
12506
12507 },{"./XMLDeclaration":137,"./XMLDocType":138,"./XMLElement":139,"./XMLStringifier":143}],131:[function(require,module,exports){
12508 (function() {
12509 var XMLCData, XMLNode, create,
12510 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; },
12511 hasProp = {}.hasOwnProperty;
12512
12513 create = require('lodash/object/create');
12514
12515 XMLNode = require('./XMLNode');
12516
12517 module.exports = XMLCData = (function(superClass) {
12518 extend(XMLCData, superClass);
12519
12520 function XMLCData(parent, text) {
12521 XMLCData.__super__.constructor.call(this, parent);
12522 if (text == null) {
12523 throw new Error("Missing CDATA text");
12524 }
12525 this.text = this.stringify.cdata(text);
12526 }
12527
12528 XMLCData.prototype.clone = function() {
12529 return create(XMLCData.prototype, this);
12530 };
12531
12532 XMLCData.prototype.toString = function(options, level) {
12533 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12534 pretty = (options != null ? options.pretty : void 0) || false;
12535 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12536 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12537 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12538 level || (level = 0);
12539 space = new Array(level + offset + 1).join(indent);
12540 r = '';
12541 if (pretty) {
12542 r += space;
12543 }
12544 r += '<![CDATA[' + this.text + ']]>';
12545 if (pretty) {
12546 r += newline;
12547 }
12548 return r;
12549 };
12550
12551 return XMLCData;
12552
12553 })(XMLNode);
12554
12555 }).call(this);
12556
12557 },{"./XMLNode":140,"lodash/object/create":123}],132:[function(require,module,exports){
12558 (function() {
12559 var XMLComment, XMLNode, create,
12560 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; },
12561 hasProp = {}.hasOwnProperty;
12562
12563 create = require('lodash/object/create');
12564
12565 XMLNode = require('./XMLNode');
12566
12567 module.exports = XMLComment = (function(superClass) {
12568 extend(XMLComment, superClass);
12569
12570 function XMLComment(parent, text) {
12571 XMLComment.__super__.constructor.call(this, parent);
12572 if (text == null) {
12573 throw new Error("Missing comment text");
12574 }
12575 this.text = this.stringify.comment(text);
12576 }
12577
12578 XMLComment.prototype.clone = function() {
12579 return create(XMLComment.prototype, this);
12580 };
12581
12582 XMLComment.prototype.toString = function(options, level) {
12583 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12584 pretty = (options != null ? options.pretty : void 0) || false;
12585 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12586 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12587 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12588 level || (level = 0);
12589 space = new Array(level + offset + 1).join(indent);
12590 r = '';
12591 if (pretty) {
12592 r += space;
12593 }
12594 r += '<!-- ' + this.text + ' -->';
12595 if (pretty) {
12596 r += newline;
12597 }
12598 return r;
12599 };
12600
12601 return XMLComment;
12602
12603 })(XMLNode);
12604
12605 }).call(this);
12606
12607 },{"./XMLNode":140,"lodash/object/create":123}],133:[function(require,module,exports){
12608 (function() {
12609 var XMLDTDAttList, create;
12610
12611 create = require('lodash/object/create');
12612
12613 module.exports = XMLDTDAttList = (function() {
12614 function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
12615 this.stringify = parent.stringify;
12616 if (elementName == null) {
12617 throw new Error("Missing DTD element name");
12618 }
12619 if (attributeName == null) {
12620 throw new Error("Missing DTD attribute name");
12621 }
12622 if (!attributeType) {
12623 throw new Error("Missing DTD attribute type");
12624 }
12625 if (!defaultValueType) {
12626 throw new Error("Missing DTD attribute default");
12627 }
12628 if (defaultValueType.indexOf('#') !== 0) {
12629 defaultValueType = '#' + defaultValueType;
12630 }
12631 if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
12632 throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");
12633 }
12634 if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
12635 throw new Error("Default value only applies to #FIXED or #DEFAULT");
12636 }
12637 this.elementName = this.stringify.eleName(elementName);
12638 this.attributeName = this.stringify.attName(attributeName);
12639 this.attributeType = this.stringify.dtdAttType(attributeType);
12640 this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
12641 this.defaultValueType = defaultValueType;
12642 }
12643
12644 XMLDTDAttList.prototype.clone = function() {
12645 return create(XMLDTDAttList.prototype, this);
12646 };
12647
12648 XMLDTDAttList.prototype.toString = function(options, level) {
12649 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12650 pretty = (options != null ? options.pretty : void 0) || false;
12651 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12652 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12653 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12654 level || (level = 0);
12655 space = new Array(level + offset + 1).join(indent);
12656 r = '';
12657 if (pretty) {
12658 r += space;
12659 }
12660 r += '<!ATTLIST ' + this.elementName + ' ' + this.attributeName + ' ' + this.attributeType;
12661 if (this.defaultValueType !== '#DEFAULT') {
12662 r += ' ' + this.defaultValueType;
12663 }
12664 if (this.defaultValue) {
12665 r += ' "' + this.defaultValue + '"';
12666 }
12667 r += '>';
12668 if (pretty) {
12669 r += newline;
12670 }
12671 return r;
12672 };
12673
12674 return XMLDTDAttList;
12675
12676 })();
12677
12678 }).call(this);
12679
12680 },{"lodash/object/create":123}],134:[function(require,module,exports){
12681 (function() {
12682 var XMLDTDElement, create, isArray;
12683
12684 create = require('lodash/object/create');
12685
12686 isArray = require('lodash/lang/isArray');
12687
12688 module.exports = XMLDTDElement = (function() {
12689 function XMLDTDElement(parent, name, value) {
12690 this.stringify = parent.stringify;
12691 if (name == null) {
12692 throw new Error("Missing DTD element name");
12693 }
12694 if (!value) {
12695 value = '(#PCDATA)';
12696 }
12697 if (isArray(value)) {
12698 value = '(' + value.join(',') + ')';
12699 }
12700 this.name = this.stringify.eleName(name);
12701 this.value = this.stringify.dtdElementValue(value);
12702 }
12703
12704 XMLDTDElement.prototype.clone = function() {
12705 return create(XMLDTDElement.prototype, this);
12706 };
12707
12708 XMLDTDElement.prototype.toString = function(options, level) {
12709 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12710 pretty = (options != null ? options.pretty : void 0) || false;
12711 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12712 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12713 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12714 level || (level = 0);
12715 space = new Array(level + offset + 1).join(indent);
12716 r = '';
12717 if (pretty) {
12718 r += space;
12719 }
12720 r += '<!ELEMENT ' + this.name + ' ' + this.value + '>';
12721 if (pretty) {
12722 r += newline;
12723 }
12724 return r;
12725 };
12726
12727 return XMLDTDElement;
12728
12729 })();
12730
12731 }).call(this);
12732
12733 },{"lodash/lang/isArray":115,"lodash/object/create":123}],135:[function(require,module,exports){
12734 (function() {
12735 var XMLDTDEntity, create, isObject;
12736
12737 create = require('lodash/object/create');
12738
12739 isObject = require('lodash/lang/isObject');
12740
12741 module.exports = XMLDTDEntity = (function() {
12742 function XMLDTDEntity(parent, pe, name, value) {
12743 this.stringify = parent.stringify;
12744 if (name == null) {
12745 throw new Error("Missing entity name");
12746 }
12747 if (value == null) {
12748 throw new Error("Missing entity value");
12749 }
12750 this.pe = !!pe;
12751 this.name = this.stringify.eleName(name);
12752 if (!isObject(value)) {
12753 this.value = this.stringify.dtdEntityValue(value);
12754 } else {
12755 if (!value.pubID && !value.sysID) {
12756 throw new Error("Public and/or system identifiers are required for an external entity");
12757 }
12758 if (value.pubID && !value.sysID) {
12759 throw new Error("System identifier is required for a public external entity");
12760 }
12761 if (value.pubID != null) {
12762 this.pubID = this.stringify.dtdPubID(value.pubID);
12763 }
12764 if (value.sysID != null) {
12765 this.sysID = this.stringify.dtdSysID(value.sysID);
12766 }
12767 if (value.nData != null) {
12768 this.nData = this.stringify.dtdNData(value.nData);
12769 }
12770 if (this.pe && this.nData) {
12771 throw new Error("Notation declaration is not allowed in a parameter entity");
12772 }
12773 }
12774 }
12775
12776 XMLDTDEntity.prototype.clone = function() {
12777 return create(XMLDTDEntity.prototype, this);
12778 };
12779
12780 XMLDTDEntity.prototype.toString = function(options, level) {
12781 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12782 pretty = (options != null ? options.pretty : void 0) || false;
12783 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12784 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12785 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12786 level || (level = 0);
12787 space = new Array(level + offset + 1).join(indent);
12788 r = '';
12789 if (pretty) {
12790 r += space;
12791 }
12792 r += '<!ENTITY';
12793 if (this.pe) {
12794 r += ' %';
12795 }
12796 r += ' ' + this.name;
12797 if (this.value) {
12798 r += ' "' + this.value + '"';
12799 } else {
12800 if (this.pubID && this.sysID) {
12801 r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"';
12802 } else if (this.sysID) {
12803 r += ' SYSTEM "' + this.sysID + '"';
12804 }
12805 if (this.nData) {
12806 r += ' NDATA ' + this.nData;
12807 }
12808 }
12809 r += '>';
12810 if (pretty) {
12811 r += newline;
12812 }
12813 return r;
12814 };
12815
12816 return XMLDTDEntity;
12817
12818 })();
12819
12820 }).call(this);
12821
12822 },{"lodash/lang/isObject":119,"lodash/object/create":123}],136:[function(require,module,exports){
12823 (function() {
12824 var XMLDTDNotation, create;
12825
12826 create = require('lodash/object/create');
12827
12828 module.exports = XMLDTDNotation = (function() {
12829 function XMLDTDNotation(parent, name, value) {
12830 this.stringify = parent.stringify;
12831 if (name == null) {
12832 throw new Error("Missing notation name");
12833 }
12834 if (!value.pubID && !value.sysID) {
12835 throw new Error("Public or system identifiers are required for an external entity");
12836 }
12837 this.name = this.stringify.eleName(name);
12838 if (value.pubID != null) {
12839 this.pubID = this.stringify.dtdPubID(value.pubID);
12840 }
12841 if (value.sysID != null) {
12842 this.sysID = this.stringify.dtdSysID(value.sysID);
12843 }
12844 }
12845
12846 XMLDTDNotation.prototype.clone = function() {
12847 return create(XMLDTDNotation.prototype, this);
12848 };
12849
12850 XMLDTDNotation.prototype.toString = function(options, level) {
12851 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12852 pretty = (options != null ? options.pretty : void 0) || false;
12853 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12854 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12855 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12856 level || (level = 0);
12857 space = new Array(level + offset + 1).join(indent);
12858 r = '';
12859 if (pretty) {
12860 r += space;
12861 }
12862 r += '<!NOTATION ' + this.name;
12863 if (this.pubID && this.sysID) {
12864 r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"';
12865 } else if (this.pubID) {
12866 r += ' PUBLIC "' + this.pubID + '"';
12867 } else if (this.sysID) {
12868 r += ' SYSTEM "' + this.sysID + '"';
12869 }
12870 r += '>';
12871 if (pretty) {
12872 r += newline;
12873 }
12874 return r;
12875 };
12876
12877 return XMLDTDNotation;
12878
12879 })();
12880
12881 }).call(this);
12882
12883 },{"lodash/object/create":123}],137:[function(require,module,exports){
12884 (function() {
12885 var XMLDeclaration, XMLNode, create, isObject,
12886 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; },
12887 hasProp = {}.hasOwnProperty;
12888
12889 create = require('lodash/object/create');
12890
12891 isObject = require('lodash/lang/isObject');
12892
12893 XMLNode = require('./XMLNode');
12894
12895 module.exports = XMLDeclaration = (function(superClass) {
12896 extend(XMLDeclaration, superClass);
12897
12898 function XMLDeclaration(parent, version, encoding, standalone) {
12899 var ref;
12900 XMLDeclaration.__super__.constructor.call(this, parent);
12901 if (isObject(version)) {
12902 ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
12903 }
12904 if (!version) {
12905 version = '1.0';
12906 }
12907 if (version != null) {
12908 this.version = this.stringify.xmlVersion(version);
12909 }
12910 if (encoding != null) {
12911 this.encoding = this.stringify.xmlEncoding(encoding);
12912 }
12913 if (standalone != null) {
12914 this.standalone = this.stringify.xmlStandalone(standalone);
12915 }
12916 }
12917
12918 XMLDeclaration.prototype.clone = function() {
12919 return create(XMLDeclaration.prototype, this);
12920 };
12921
12922 XMLDeclaration.prototype.toString = function(options, level) {
12923 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
12924 pretty = (options != null ? options.pretty : void 0) || false;
12925 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
12926 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
12927 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
12928 level || (level = 0);
12929 space = new Array(level + offset + 1).join(indent);
12930 r = '';
12931 if (pretty) {
12932 r += space;
12933 }
12934 r += '<?xml';
12935 if (this.version != null) {
12936 r += ' version="' + this.version + '"';
12937 }
12938 if (this.encoding != null) {
12939 r += ' encoding="' + this.encoding + '"';
12940 }
12941 if (this.standalone != null) {
12942 r += ' standalone="' + this.standalone + '"';
12943 }
12944 r += '?>';
12945 if (pretty) {
12946 r += newline;
12947 }
12948 return r;
12949 };
12950
12951 return XMLDeclaration;
12952
12953 })(XMLNode);
12954
12955 }).call(this);
12956
12957 },{"./XMLNode":140,"lodash/lang/isObject":119,"lodash/object/create":123}],138:[function(require,module,exports){
12958 (function() {
12959 var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLProcessingInstruction, create, isObject;
12960
12961 create = require('lodash/object/create');
12962
12963 isObject = require('lodash/lang/isObject');
12964
12965 XMLCData = require('./XMLCData');
12966
12967 XMLComment = require('./XMLComment');
12968
12969 XMLDTDAttList = require('./XMLDTDAttList');
12970
12971 XMLDTDEntity = require('./XMLDTDEntity');
12972
12973 XMLDTDElement = require('./XMLDTDElement');
12974
12975 XMLDTDNotation = require('./XMLDTDNotation');
12976
12977 XMLProcessingInstruction = require('./XMLProcessingInstruction');
12978
12979 module.exports = XMLDocType = (function() {
12980 function XMLDocType(parent, pubID, sysID) {
12981 var ref, ref1;
12982 this.documentObject = parent;
12983 this.stringify = this.documentObject.stringify;
12984 this.children = [];
12985 if (isObject(pubID)) {
12986 ref = pubID, pubID = ref.pubID, sysID = ref.sysID;
12987 }
12988 if (sysID == null) {
12989 ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1];
12990 }
12991 if (pubID != null) {
12992 this.pubID = this.stringify.dtdPubID(pubID);
12993 }
12994 if (sysID != null) {
12995 this.sysID = this.stringify.dtdSysID(sysID);
12996 }
12997 }
12998
12999 XMLDocType.prototype.clone = function() {
13000 return create(XMLDocType.prototype, this);
13001 };
13002
13003 XMLDocType.prototype.element = function(name, value) {
13004 var child;
13005 child = new XMLDTDElement(this, name, value);
13006 this.children.push(child);
13007 return this;
13008 };
13009
13010 XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
13011 var child;
13012 child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
13013 this.children.push(child);
13014 return this;
13015 };
13016
13017 XMLDocType.prototype.entity = function(name, value) {
13018 var child;
13019 child = new XMLDTDEntity(this, false, name, value);
13020 this.children.push(child);
13021 return this;
13022 };
13023
13024 XMLDocType.prototype.pEntity = function(name, value) {
13025 var child;
13026 child = new XMLDTDEntity(this, true, name, value);
13027 this.children.push(child);
13028 return this;
13029 };
13030
13031 XMLDocType.prototype.notation = function(name, value) {
13032 var child;
13033 child = new XMLDTDNotation(this, name, value);
13034 this.children.push(child);
13035 return this;
13036 };
13037
13038 XMLDocType.prototype.cdata = function(value) {
13039 var child;
13040 child = new XMLCData(this, value);
13041 this.children.push(child);
13042 return this;
13043 };
13044
13045 XMLDocType.prototype.comment = function(value) {
13046 var child;
13047 child = new XMLComment(this, value);
13048 this.children.push(child);
13049 return this;
13050 };
13051
13052 XMLDocType.prototype.instruction = function(target, value) {
13053 var child;
13054 child = new XMLProcessingInstruction(this, target, value);
13055 this.children.push(child);
13056 return this;
13057 };
13058
13059 XMLDocType.prototype.root = function() {
13060 return this.documentObject.root();
13061 };
13062
13063 XMLDocType.prototype.document = function() {
13064 return this.documentObject;
13065 };
13066
13067 XMLDocType.prototype.toString = function(options, level) {
13068 var child, i, indent, len, newline, offset, pretty, r, ref, ref1, ref2, ref3, space;
13069 pretty = (options != null ? options.pretty : void 0) || false;
13070 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
13071 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
13072 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
13073 level || (level = 0);
13074 space = new Array(level + offset + 1).join(indent);
13075 r = '';
13076 if (pretty) {
13077 r += space;
13078 }
13079 r += '<!DOCTYPE ' + this.root().name;
13080 if (this.pubID && this.sysID) {
13081 r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"';
13082 } else if (this.sysID) {
13083 r += ' SYSTEM "' + this.sysID + '"';
13084 }
13085 if (this.children.length > 0) {
13086 r += ' [';
13087 if (pretty) {
13088 r += newline;
13089 }
13090 ref3 = this.children;
13091 for (i = 0, len = ref3.length; i < len; i++) {
13092 child = ref3[i];
13093 r += child.toString(options, level + 1);
13094 }
13095 r += ']';
13096 }
13097 r += '>';
13098 if (pretty) {
13099 r += newline;
13100 }
13101 return r;
13102 };
13103
13104 XMLDocType.prototype.ele = function(name, value) {
13105 return this.element(name, value);
13106 };
13107
13108 XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
13109 return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);
13110 };
13111
13112 XMLDocType.prototype.ent = function(name, value) {
13113 return this.entity(name, value);
13114 };
13115
13116 XMLDocType.prototype.pent = function(name, value) {
13117 return this.pEntity(name, value);
13118 };
13119
13120 XMLDocType.prototype.not = function(name, value) {
13121 return this.notation(name, value);
13122 };
13123
13124 XMLDocType.prototype.dat = function(value) {
13125 return this.cdata(value);
13126 };
13127
13128 XMLDocType.prototype.com = function(value) {
13129 return this.comment(value);
13130 };
13131
13132 XMLDocType.prototype.ins = function(target, value) {
13133 return this.instruction(target, value);
13134 };
13135
13136 XMLDocType.prototype.up = function() {
13137 return this.root();
13138 };
13139
13140 XMLDocType.prototype.doc = function() {
13141 return this.document();
13142 };
13143
13144 return XMLDocType;
13145
13146 })();
13147
13148 }).call(this);
13149
13150 },{"./XMLCData":131,"./XMLComment":132,"./XMLDTDAttList":133,"./XMLDTDElement":134,"./XMLDTDEntity":135,"./XMLDTDNotation":136,"./XMLProcessingInstruction":141,"lodash/lang/isObject":119,"lodash/object/create":123}],139:[function(require,module,exports){
13151 (function() {
13152 var XMLAttribute, XMLElement, XMLNode, XMLProcessingInstruction, create, every, isArray, isFunction, isObject,
13153 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; },
13154 hasProp = {}.hasOwnProperty;
13155
13156 create = require('lodash/object/create');
13157
13158 isObject = require('lodash/lang/isObject');
13159
13160 isArray = require('lodash/lang/isArray');
13161
13162 isFunction = require('lodash/lang/isFunction');
13163
13164 every = require('lodash/collection/every');
13165
13166 XMLNode = require('./XMLNode');
13167
13168 XMLAttribute = require('./XMLAttribute');
13169
13170 XMLProcessingInstruction = require('./XMLProcessingInstruction');
13171
13172 module.exports = XMLElement = (function(superClass) {
13173 extend(XMLElement, superClass);
13174
13175 function XMLElement(parent, name, attributes) {
13176 XMLElement.__super__.constructor.call(this, parent);
13177 if (name == null) {
13178 throw new Error("Missing element name");
13179 }
13180 this.name = this.stringify.eleName(name);
13181 this.children = [];
13182 this.instructions = [];
13183 this.attributes = {};
13184 if (attributes != null) {
13185 this.attribute(attributes);
13186 }
13187 }
13188
13189 XMLElement.prototype.clone = function() {
13190 var att, attName, clonedSelf, i, len, pi, ref, ref1;
13191 clonedSelf = create(XMLElement.prototype, this);
13192 if (clonedSelf.isRoot) {
13193 clonedSelf.documentObject = null;
13194 }
13195 clonedSelf.attributes = {};
13196 ref = this.attributes;
13197 for (attName in ref) {
13198 if (!hasProp.call(ref, attName)) continue;
13199 att = ref[attName];
13200 clonedSelf.attributes[attName] = att.clone();
13201 }
13202 clonedSelf.instructions = [];
13203 ref1 = this.instructions;
13204 for (i = 0, len = ref1.length; i < len; i++) {
13205 pi = ref1[i];
13206 clonedSelf.instructions.push(pi.clone());
13207 }
13208 clonedSelf.children = [];
13209 this.children.forEach(function(child) {
13210 var clonedChild;
13211 clonedChild = child.clone();
13212 clonedChild.parent = clonedSelf;
13213 return clonedSelf.children.push(clonedChild);
13214 });
13215 return clonedSelf;
13216 };
13217
13218 XMLElement.prototype.attribute = function(name, value) {
13219 var attName, attValue;
13220 if (name != null) {
13221 name = name.valueOf();
13222 }
13223 if (isObject(name)) {
13224 for (attName in name) {
13225 if (!hasProp.call(name, attName)) continue;
13226 attValue = name[attName];
13227 this.attribute(attName, attValue);
13228 }
13229 } else {
13230 if (isFunction(value)) {
13231 value = value.apply();
13232 }
13233 if (!this.options.skipNullAttributes || (value != null)) {
13234 this.attributes[name] = new XMLAttribute(this, name, value);
13235 }
13236 }
13237 return this;
13238 };
13239
13240 XMLElement.prototype.removeAttribute = function(name) {
13241 var attName, i, len;
13242 if (name == null) {
13243 throw new Error("Missing attribute name");
13244 }
13245 name = name.valueOf();
13246 if (isArray(name)) {
13247 for (i = 0, len = name.length; i < len; i++) {
13248 attName = name[i];
13249 delete this.attributes[attName];
13250 }
13251 } else {
13252 delete this.attributes[name];
13253 }
13254 return this;
13255 };
13256
13257 XMLElement.prototype.instruction = function(target, value) {
13258 var i, insTarget, insValue, instruction, len;
13259 if (target != null) {
13260 target = target.valueOf();
13261 }
13262 if (value != null) {
13263 value = value.valueOf();
13264 }
13265 if (isArray(target)) {
13266 for (i = 0, len = target.length; i < len; i++) {
13267 insTarget = target[i];
13268 this.instruction(insTarget);
13269 }
13270 } else if (isObject(target)) {
13271 for (insTarget in target) {
13272 if (!hasProp.call(target, insTarget)) continue;
13273 insValue = target[insTarget];
13274 this.instruction(insTarget, insValue);
13275 }
13276 } else {
13277 if (isFunction(value)) {
13278 value = value.apply();
13279 }
13280 instruction = new XMLProcessingInstruction(this, target, value);
13281 this.instructions.push(instruction);
13282 }
13283 return this;
13284 };
13285
13286 XMLElement.prototype.toString = function(options, level) {
13287 var att, child, i, indent, instruction, j, len, len1, name, newline, offset, pretty, r, ref, ref1, ref2, ref3, ref4, ref5, space;
13288 pretty = (options != null ? options.pretty : void 0) || false;
13289 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
13290 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
13291 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
13292 level || (level = 0);
13293 space = new Array(level + offset + 1).join(indent);
13294 r = '';
13295 ref3 = this.instructions;
13296 for (i = 0, len = ref3.length; i < len; i++) {
13297 instruction = ref3[i];
13298 r += instruction.toString(options, level + 1);
13299 }
13300 if (pretty) {
13301 r += space;
13302 }
13303 r += '<' + this.name;
13304 ref4 = this.attributes;
13305 for (name in ref4) {
13306 if (!hasProp.call(ref4, name)) continue;
13307 att = ref4[name];
13308 r += att.toString(options);
13309 }
13310 if (this.children.length === 0 || every(this.children, function(e) {
13311 return e.value === '';
13312 })) {
13313 r += '/>';
13314 if (pretty) {
13315 r += newline;
13316 }
13317 } else if (pretty && this.children.length === 1 && (this.children[0].value != null)) {
13318 r += '>';
13319 r += this.children[0].value;
13320 r += '</' + this.name + '>';
13321 r += newline;
13322 } else {
13323 r += '>';
13324 if (pretty) {
13325 r += newline;
13326 }
13327 ref5 = this.children;
13328 for (j = 0, len1 = ref5.length; j < len1; j++) {
13329 child = ref5[j];
13330 r += child.toString(options, level + 1);
13331 }
13332 if (pretty) {
13333 r += space;
13334 }
13335 r += '</' + this.name + '>';
13336 if (pretty) {
13337 r += newline;
13338 }
13339 }
13340 return r;
13341 };
13342
13343 XMLElement.prototype.att = function(name, value) {
13344 return this.attribute(name, value);
13345 };
13346
13347 XMLElement.prototype.ins = function(target, value) {
13348 return this.instruction(target, value);
13349 };
13350
13351 XMLElement.prototype.a = function(name, value) {
13352 return this.attribute(name, value);
13353 };
13354
13355 XMLElement.prototype.i = function(target, value) {
13356 return this.instruction(target, value);
13357 };
13358
13359 return XMLElement;
13360
13361 })(XMLNode);
13362
13363 }).call(this);
13364
13365 },{"./XMLAttribute":129,"./XMLNode":140,"./XMLProcessingInstruction":141,"lodash/collection/every":81,"lodash/lang/isArray":115,"lodash/lang/isFunction":117,"lodash/lang/isObject":119,"lodash/object/create":123}],140:[function(require,module,exports){
13366 (function() {
13367 var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLRaw, XMLText, isArray, isEmpty, isFunction, isObject,
13368 hasProp = {}.hasOwnProperty;
13369
13370 isObject = require('lodash/lang/isObject');
13371
13372 isArray = require('lodash/lang/isArray');
13373
13374 isFunction = require('lodash/lang/isFunction');
13375
13376 isEmpty = require('lodash/lang/isEmpty');
13377
13378 XMLElement = null;
13379
13380 XMLCData = null;
13381
13382 XMLComment = null;
13383
13384 XMLDeclaration = null;
13385
13386 XMLDocType = null;
13387
13388 XMLRaw = null;
13389
13390 XMLText = null;
13391
13392 module.exports = XMLNode = (function() {
13393 function XMLNode(parent) {
13394 this.parent = parent;
13395 this.options = this.parent.options;
13396 this.stringify = this.parent.stringify;
13397 if (XMLElement === null) {
13398 XMLElement = require('./XMLElement');
13399 XMLCData = require('./XMLCData');
13400 XMLComment = require('./XMLComment');
13401 XMLDeclaration = require('./XMLDeclaration');
13402 XMLDocType = require('./XMLDocType');
13403 XMLRaw = require('./XMLRaw');
13404 XMLText = require('./XMLText');
13405 }
13406 }
13407
13408 XMLNode.prototype.clone = function() {
13409 throw new Error("Cannot clone generic XMLNode");
13410 };
13411
13412 XMLNode.prototype.element = function(name, attributes, text) {
13413 var item, j, key, lastChild, len, ref, val;
13414 lastChild = null;
13415 if (attributes == null) {
13416 attributes = {};
13417 }
13418 attributes = attributes.valueOf();
13419 if (!isObject(attributes)) {
13420 ref = [attributes, text], text = ref[0], attributes = ref[1];
13421 }
13422 if (name != null) {
13423 name = name.valueOf();
13424 }
13425 if (isArray(name)) {
13426 for (j = 0, len = name.length; j < len; j++) {
13427 item = name[j];
13428 lastChild = this.element(item);
13429 }
13430 } else if (isFunction(name)) {
13431 lastChild = this.element(name.apply());
13432 } else if (isObject(name)) {
13433 for (key in name) {
13434 if (!hasProp.call(name, key)) continue;
13435 val = name[key];
13436 if (isFunction(val)) {
13437 val = val.apply();
13438 }
13439 if ((isObject(val)) && (isEmpty(val))) {
13440 val = null;
13441 }
13442 if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {
13443 lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);
13444 } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && key.indexOf(this.stringify.convertPIKey) === 0) {
13445 lastChild = this.instruction(key.substr(this.stringify.convertPIKey.length), val);
13446 } else if (isObject(val)) {
13447 if (!this.options.ignoreDecorators && this.stringify.convertListKey && key.indexOf(this.stringify.convertListKey) === 0 && isArray(val)) {
13448 lastChild = this.element(val);
13449 } else {
13450 lastChild = this.element(key);
13451 lastChild.element(val);
13452 }
13453 } else {
13454 lastChild = this.element(key, val);
13455 }
13456 }
13457 } else {
13458 if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {
13459 lastChild = this.text(text);
13460 } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {
13461 lastChild = this.cdata(text);
13462 } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {
13463 lastChild = this.comment(text);
13464 } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {
13465 lastChild = this.raw(text);
13466 } else {
13467 lastChild = this.node(name, attributes, text);
13468 }
13469 }
13470 if (lastChild == null) {
13471 throw new Error("Could not create any elements with: " + name);
13472 }
13473 return lastChild;
13474 };
13475
13476 XMLNode.prototype.insertBefore = function(name, attributes, text) {
13477 var child, i, removed;
13478 if (this.isRoot) {
13479 throw new Error("Cannot insert elements at root level");
13480 }
13481 i = this.parent.children.indexOf(this);
13482 removed = this.parent.children.splice(i);
13483 child = this.parent.element(name, attributes, text);
13484 Array.prototype.push.apply(this.parent.children, removed);
13485 return child;
13486 };
13487
13488 XMLNode.prototype.insertAfter = function(name, attributes, text) {
13489 var child, i, removed;
13490 if (this.isRoot) {
13491 throw new Error("Cannot insert elements at root level");
13492 }
13493 i = this.parent.children.indexOf(this);
13494 removed = this.parent.children.splice(i + 1);
13495 child = this.parent.element(name, attributes, text);
13496 Array.prototype.push.apply(this.parent.children, removed);
13497 return child;
13498 };
13499
13500 XMLNode.prototype.remove = function() {
13501 var i, ref;
13502 if (this.isRoot) {
13503 throw new Error("Cannot remove the root element");
13504 }
13505 i = this.parent.children.indexOf(this);
13506 [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref = [])), ref;
13507 return this.parent;
13508 };
13509
13510 XMLNode.prototype.node = function(name, attributes, text) {
13511 var child, ref;
13512 if (name != null) {
13513 name = name.valueOf();
13514 }
13515 if (attributes == null) {
13516 attributes = {};
13517 }
13518 attributes = attributes.valueOf();
13519 if (!isObject(attributes)) {
13520 ref = [attributes, text], text = ref[0], attributes = ref[1];
13521 }
13522 child = new XMLElement(this, name, attributes);
13523 if (text != null) {
13524 child.text(text);
13525 }
13526 this.children.push(child);
13527 return child;
13528 };
13529
13530 XMLNode.prototype.text = function(value) {
13531 var child;
13532 child = new XMLText(this, value);
13533 this.children.push(child);
13534 return this;
13535 };
13536
13537 XMLNode.prototype.cdata = function(value) {
13538 var child;
13539 child = new XMLCData(this, value);
13540 this.children.push(child);
13541 return this;
13542 };
13543
13544 XMLNode.prototype.comment = function(value) {
13545 var child;
13546 child = new XMLComment(this, value);
13547 this.children.push(child);
13548 return this;
13549 };
13550
13551 XMLNode.prototype.raw = function(value) {
13552 var child;
13553 child = new XMLRaw(this, value);
13554 this.children.push(child);
13555 return this;
13556 };
13557
13558 XMLNode.prototype.declaration = function(version, encoding, standalone) {
13559 var doc, xmldec;
13560 doc = this.document();
13561 xmldec = new XMLDeclaration(doc, version, encoding, standalone);
13562 doc.xmldec = xmldec;
13563 return doc.root();
13564 };
13565
13566 XMLNode.prototype.doctype = function(pubID, sysID) {
13567 var doc, doctype;
13568 doc = this.document();
13569 doctype = new XMLDocType(doc, pubID, sysID);
13570 doc.doctype = doctype;
13571 return doctype;
13572 };
13573
13574 XMLNode.prototype.up = function() {
13575 if (this.isRoot) {
13576 throw new Error("The root node has no parent. Use doc() if you need to get the document object.");
13577 }
13578 return this.parent;
13579 };
13580
13581 XMLNode.prototype.root = function() {
13582 var child;
13583 if (this.isRoot) {
13584 return this;
13585 }
13586 child = this.parent;
13587 while (!child.isRoot) {
13588 child = child.parent;
13589 }
13590 return child;
13591 };
13592
13593 XMLNode.prototype.document = function() {
13594 return this.root().documentObject;
13595 };
13596
13597 XMLNode.prototype.end = function(options) {
13598 return this.document().toString(options);
13599 };
13600
13601 XMLNode.prototype.prev = function() {
13602 var i;
13603 if (this.isRoot) {
13604 throw new Error("Root node has no siblings");
13605 }
13606 i = this.parent.children.indexOf(this);
13607 if (i < 1) {
13608 throw new Error("Already at the first node");
13609 }
13610 return this.parent.children[i - 1];
13611 };
13612
13613 XMLNode.prototype.next = function() {
13614 var i;
13615 if (this.isRoot) {
13616 throw new Error("Root node has no siblings");
13617 }
13618 i = this.parent.children.indexOf(this);
13619 if (i === -1 || i === this.parent.children.length - 1) {
13620 throw new Error("Already at the last node");
13621 }
13622 return this.parent.children[i + 1];
13623 };
13624
13625 XMLNode.prototype.importXMLBuilder = function(xmlbuilder) {
13626 var clonedRoot;
13627 clonedRoot = xmlbuilder.root().clone();
13628 clonedRoot.parent = this;
13629 clonedRoot.isRoot = false;
13630 this.children.push(clonedRoot);
13631 return this;
13632 };
13633
13634 XMLNode.prototype.ele = function(name, attributes, text) {
13635 return this.element(name, attributes, text);
13636 };
13637
13638 XMLNode.prototype.nod = function(name, attributes, text) {
13639 return this.node(name, attributes, text);
13640 };
13641
13642 XMLNode.prototype.txt = function(value) {
13643 return this.text(value);
13644 };
13645
13646 XMLNode.prototype.dat = function(value) {
13647 return this.cdata(value);
13648 };
13649
13650 XMLNode.prototype.com = function(value) {
13651 return this.comment(value);
13652 };
13653
13654 XMLNode.prototype.doc = function() {
13655 return this.document();
13656 };
13657
13658 XMLNode.prototype.dec = function(version, encoding, standalone) {
13659 return this.declaration(version, encoding, standalone);
13660 };
13661
13662 XMLNode.prototype.dtd = function(pubID, sysID) {
13663 return this.doctype(pubID, sysID);
13664 };
13665
13666 XMLNode.prototype.e = function(name, attributes, text) {
13667 return this.element(name, attributes, text);
13668 };
13669
13670 XMLNode.prototype.n = function(name, attributes, text) {
13671 return this.node(name, attributes, text);
13672 };
13673
13674 XMLNode.prototype.t = function(value) {
13675 return this.text(value);
13676 };
13677
13678 XMLNode.prototype.d = function(value) {
13679 return this.cdata(value);
13680 };
13681
13682 XMLNode.prototype.c = function(value) {
13683 return this.comment(value);
13684 };
13685
13686 XMLNode.prototype.r = function(value) {
13687 return this.raw(value);
13688 };
13689
13690 XMLNode.prototype.u = function() {
13691 return this.up();
13692 };
13693
13694 return XMLNode;
13695
13696 })();
13697
13698 }).call(this);
13699
13700 },{"./XMLCData":131,"./XMLComment":132,"./XMLDeclaration":137,"./XMLDocType":138,"./XMLElement":139,"./XMLRaw":142,"./XMLText":144,"lodash/lang/isArray":115,"lodash/lang/isEmpty":116,"lodash/lang/isFunction":117,"lodash/lang/isObject":119}],141:[function(require,module,exports){
13701 (function() {
13702 var XMLProcessingInstruction, create;
13703
13704 create = require('lodash/object/create');
13705
13706 module.exports = XMLProcessingInstruction = (function() {
13707 function XMLProcessingInstruction(parent, target, value) {
13708 this.stringify = parent.stringify;
13709 if (target == null) {
13710 throw new Error("Missing instruction target");
13711 }
13712 this.target = this.stringify.insTarget(target);
13713 if (value) {
13714 this.value = this.stringify.insValue(value);
13715 }
13716 }
13717
13718 XMLProcessingInstruction.prototype.clone = function() {
13719 return create(XMLProcessingInstruction.prototype, this);
13720 };
13721
13722 XMLProcessingInstruction.prototype.toString = function(options, level) {
13723 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
13724 pretty = (options != null ? options.pretty : void 0) || false;
13725 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
13726 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
13727 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
13728 level || (level = 0);
13729 space = new Array(level + offset + 1).join(indent);
13730 r = '';
13731 if (pretty) {
13732 r += space;
13733 }
13734 r += '<?';
13735 r += this.target;
13736 if (this.value) {
13737 r += ' ' + this.value;
13738 }
13739 r += '?>';
13740 if (pretty) {
13741 r += newline;
13742 }
13743 return r;
13744 };
13745
13746 return XMLProcessingInstruction;
13747
13748 })();
13749
13750 }).call(this);
13751
13752 },{"lodash/object/create":123}],142:[function(require,module,exports){
13753 (function() {
13754 var XMLNode, XMLRaw, create,
13755 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; },
13756 hasProp = {}.hasOwnProperty;
13757
13758 create = require('lodash/object/create');
13759
13760 XMLNode = require('./XMLNode');
13761
13762 module.exports = XMLRaw = (function(superClass) {
13763 extend(XMLRaw, superClass);
13764
13765 function XMLRaw(parent, text) {
13766 XMLRaw.__super__.constructor.call(this, parent);
13767 if (text == null) {
13768 throw new Error("Missing raw text");
13769 }
13770 this.value = this.stringify.raw(text);
13771 }
13772
13773 XMLRaw.prototype.clone = function() {
13774 return create(XMLRaw.prototype, this);
13775 };
13776
13777 XMLRaw.prototype.toString = function(options, level) {
13778 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
13779 pretty = (options != null ? options.pretty : void 0) || false;
13780 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
13781 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
13782 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
13783 level || (level = 0);
13784 space = new Array(level + offset + 1).join(indent);
13785 r = '';
13786 if (pretty) {
13787 r += space;
13788 }
13789 r += this.value;
13790 if (pretty) {
13791 r += newline;
13792 }
13793 return r;
13794 };
13795
13796 return XMLRaw;
13797
13798 })(XMLNode);
13799
13800 }).call(this);
13801
13802 },{"./XMLNode":140,"lodash/object/create":123}],143:[function(require,module,exports){
13803 (function() {
13804 var XMLStringifier,
13805 bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
13806 hasProp = {}.hasOwnProperty;
13807
13808 module.exports = XMLStringifier = (function() {
13809 function XMLStringifier(options) {
13810 this.assertLegalChar = bind(this.assertLegalChar, this);
13811 var key, ref, value;
13812 this.allowSurrogateChars = options != null ? options.allowSurrogateChars : void 0;
13813 ref = (options != null ? options.stringify : void 0) || {};
13814 for (key in ref) {
13815 if (!hasProp.call(ref, key)) continue;
13816 value = ref[key];
13817 this[key] = value;
13818 }
13819 }
13820
13821 XMLStringifier.prototype.eleName = function(val) {
13822 val = '' + val || '';
13823 return this.assertLegalChar(val);
13824 };
13825
13826 XMLStringifier.prototype.eleText = function(val) {
13827 val = '' + val || '';
13828 return this.assertLegalChar(this.elEscape(val));
13829 };
13830
13831 XMLStringifier.prototype.cdata = function(val) {
13832 val = '' + val || '';
13833 if (val.match(/]]>/)) {
13834 throw new Error("Invalid CDATA text: " + val);
13835 }
13836 return this.assertLegalChar(val);
13837 };
13838
13839 XMLStringifier.prototype.comment = function(val) {
13840 val = '' + val || '';
13841 if (val.match(/--/)) {
13842 throw new Error("Comment text cannot contain double-hypen: " + val);
13843 }
13844 return this.assertLegalChar(val);
13845 };
13846
13847 XMLStringifier.prototype.raw = function(val) {
13848 return '' + val || '';
13849 };
13850
13851 XMLStringifier.prototype.attName = function(val) {
13852 return '' + val || '';
13853 };
13854
13855 XMLStringifier.prototype.attValue = function(val) {
13856 val = '' + val || '';
13857 return this.attEscape(val);
13858 };
13859
13860 XMLStringifier.prototype.insTarget = function(val) {
13861 return '' + val || '';
13862 };
13863
13864 XMLStringifier.prototype.insValue = function(val) {
13865 val = '' + val || '';
13866 if (val.match(/\?>/)) {
13867 throw new Error("Invalid processing instruction value: " + val);
13868 }
13869 return val;
13870 };
13871
13872 XMLStringifier.prototype.xmlVersion = function(val) {
13873 val = '' + val || '';
13874 if (!val.match(/1\.[0-9]+/)) {
13875 throw new Error("Invalid version number: " + val);
13876 }
13877 return val;
13878 };
13879
13880 XMLStringifier.prototype.xmlEncoding = function(val) {
13881 val = '' + val || '';
13882 if (!val.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/)) {
13883 throw new Error("Invalid encoding: " + val);
13884 }
13885 return val;
13886 };
13887
13888 XMLStringifier.prototype.xmlStandalone = function(val) {
13889 if (val) {
13890 return "yes";
13891 } else {
13892 return "no";
13893 }
13894 };
13895
13896 XMLStringifier.prototype.dtdPubID = function(val) {
13897 return '' + val || '';
13898 };
13899
13900 XMLStringifier.prototype.dtdSysID = function(val) {
13901 return '' + val || '';
13902 };
13903
13904 XMLStringifier.prototype.dtdElementValue = function(val) {
13905 return '' + val || '';
13906 };
13907
13908 XMLStringifier.prototype.dtdAttType = function(val) {
13909 return '' + val || '';
13910 };
13911
13912 XMLStringifier.prototype.dtdAttDefault = function(val) {
13913 if (val != null) {
13914 return '' + val || '';
13915 } else {
13916 return val;
13917 }
13918 };
13919
13920 XMLStringifier.prototype.dtdEntityValue = function(val) {
13921 return '' + val || '';
13922 };
13923
13924 XMLStringifier.prototype.dtdNData = function(val) {
13925 return '' + val || '';
13926 };
13927
13928 XMLStringifier.prototype.convertAttKey = '@';
13929
13930 XMLStringifier.prototype.convertPIKey = '?';
13931
13932 XMLStringifier.prototype.convertTextKey = '#text';
13933
13934 XMLStringifier.prototype.convertCDataKey = '#cdata';
13935
13936 XMLStringifier.prototype.convertCommentKey = '#comment';
13937
13938 XMLStringifier.prototype.convertRawKey = '#raw';
13939
13940 XMLStringifier.prototype.convertListKey = '#list';
13941
13942 XMLStringifier.prototype.assertLegalChar = function(str) {
13943 var chars, chr;
13944 if (this.allowSurrogateChars) {
13945 chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/;
13946 } else {
13947 chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/;
13948 }
13949 chr = str.match(chars);
13950 if (chr) {
13951 throw new Error("Invalid character (" + chr + ") in string: " + str + " at index " + chr.index);
13952 }
13953 return str;
13954 };
13955
13956 XMLStringifier.prototype.elEscape = function(str) {
13957 return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\r/g, '&#xD;');
13958 };
13959
13960 XMLStringifier.prototype.attEscape = function(str) {
13961 return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/\t/g, '&#x9;').replace(/\n/g, '&#xA;').replace(/\r/g, '&#xD;');
13962 };
13963
13964 return XMLStringifier;
13965
13966 })();
13967
13968 }).call(this);
13969
13970 },{}],144:[function(require,module,exports){
13971 (function() {
13972 var XMLNode, XMLText, create,
13973 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; },
13974 hasProp = {}.hasOwnProperty;
13975
13976 create = require('lodash/object/create');
13977
13978 XMLNode = require('./XMLNode');
13979
13980 module.exports = XMLText = (function(superClass) {
13981 extend(XMLText, superClass);
13982
13983 function XMLText(parent, text) {
13984 XMLText.__super__.constructor.call(this, parent);
13985 if (text == null) {
13986 throw new Error("Missing element text");
13987 }
13988 this.value = this.stringify.eleText(text);
13989 }
13990
13991 XMLText.prototype.clone = function() {
13992 return create(XMLText.prototype, this);
13993 };
13994
13995 XMLText.prototype.toString = function(options, level) {
13996 var indent, newline, offset, pretty, r, ref, ref1, ref2, space;
13997 pretty = (options != null ? options.pretty : void 0) || false;
13998 indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' ';
13999 offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0;
14000 newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n';
14001 level || (level = 0);
14002 space = new Array(level + offset + 1).join(indent);
14003 r = '';
14004 if (pretty) {
14005 r += space;
14006 }
14007 r += this.value;
14008 if (pretty) {
14009 r += newline;
14010 }
14011 return r;
14012 };
14013
14014 return XMLText;
14015
14016 })(XMLNode);
14017
14018 }).call(this);
14019
14020 },{"./XMLNode":140,"lodash/object/create":123}],145:[function(require,module,exports){
14021 (function() {
14022 var XMLBuilder, assign;
14023
14024 assign = require('lodash/object/assign');
14025
14026 XMLBuilder = require('./XMLBuilder');
14027
14028 module.exports.create = function(name, xmldec, doctype, options) {
14029 options = assign({}, xmldec, doctype, options);
14030 return new XMLBuilder(name, options).root();
14031 };
14032
14033 }).call(this);
14034
14035 },{"./XMLBuilder":130,"lodash/object/assign":122}]},{},[1])
14036