From c8d10ddca8c706446bffa2cb6215e61a08446bfb Mon Sep 17 00:00:00 2001 From: Girish Mallenahally Date: Wed, 7 Apr 2021 15:04:37 -0500 Subject: [PATCH] Update to version v1.1.0 --- .gitignore | 9 + CHANGELOG.md | 7 + LICENSE.txt | 4 +- NOTICE.txt | 12 +- README.md | 82 +- ...d-speech-analytics-for-amazon-connect.yaml | 1312 --------- ...eech-analytics-for-amazon-connect.template | 2525 +++++++++++++++++ deployment/build-s3-dist.sh | 33 +- deployment/manifest-generator/app.js | 73 - deployment/manifest-generator/package.json | 11 - source/contact_init/index.js | 31 +- source/create_contact_flow/index.js | 32 +- source/helper/index.js | 32 +- .../lib/defaultbucketencryption-helper.js | 29 +- source/helper/lib/metrics-helper.js | 29 +- source/helper/lib/website-helper.js | 31 +- .../Dockerfile | 20 + .../build.gradle | 73 +- .../kvstranscribestreaming/AudioUtils.java | 5 +- .../KVSRecordingTask.java | 424 +++ .../KVSStreamTrackObject.java | 30 +- .../KVSTranscribeStreamingLambda.java | 2 +- .../kvstranscribestreaming/KVSUtils.java | 5 +- .../kvstranscribestreaming/MetricsUtil.java | 5 +- .../RecordingRequest.java | 155 + .../kvstranscribestreaming/SQSProcessor.java | 83 + .../TranscribedSegmentWriter.java | 7 +- .../TranscriptionRequest.java | 5 +- .../FileByteToAudioEventSubscription.java | 5 +- .../KVSByteToAudioEventSubscription.java | 5 +- .../StreamTranscriptionBehavior.java | 5 +- .../StreamTranscriptionBehaviorImpl.java | 5 +- .../TranscribeStreamingRetryClient.java | 8 +- source/kvs_trigger/index.js | 31 +- source/process_contact/index.js | 31 +- .../start_codebuild/lambda_start_codebuild.py | 51 + .../lambda_transcribing_fargate_trigger.py | 53 + source/update_contact_attributes/index.js | 18 + source/web_site/agentAssist.html | 4 +- source/web_site/js/aws-sdk-2.435.0.min.js | 10 - source/web_site/js/aws-sdk-2.597.0.min.js | 27 - .../ws_realtime_transcribe_Default/index.js | 31 +- .../ws_realtime_transcribe_OnConnect/index.js | 31 +- .../index.js | 31 +- .../lib/apigatewaymanagementapi-patch.js | 29 +- .../index.js | 31 +- .../ws_realtime_transcribe_OnMessage/index.js | 31 +- 47 files changed, 3749 insertions(+), 1754 deletions(-) create mode 100644 .gitignore delete mode 100644 deployment/AI-powered-speech-analytics-for-amazon-connect.yaml create mode 100644 deployment/ai-powered-speech-analytics-for-amazon-connect.template delete mode 100644 deployment/manifest-generator/app.js delete mode 100644 deployment/manifest-generator/package.json create mode 100755 source/kvs_transcribe_streaming_lambda/Dockerfile create mode 100755 source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSRecordingTask.java create mode 100755 source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/RecordingRequest.java create mode 100755 source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/SQSProcessor.java create mode 100644 source/start_codebuild/lambda_start_codebuild.py create mode 100644 source/transcribing_fargate_trigger/lambda_transcribing_fargate_trigger.py delete mode 100644 source/web_site/js/aws-sdk-2.435.0.min.js delete mode 100644 source/web_site/js/aws-sdk-2.597.0.min.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e21fa0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +build +*.iml +.gradle +.settings +bin +.classpath +.project +.DS_Store +source/start_codebuild/package/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index a17f1f5..fe1e519 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.1.0] - 2021-03-31 +### Added +- added AWS Fargate to the solution so that the transcription will occur throughout the call, but not only the first 15 minutes of the call which is a limitation if AWS Lambda function is used for processing the call audio for real-time transcribing because the Lambda has a 15 minute limitation and will stop transcribing if a call is longer than 15 minutes. +- added a new parameter called CreateFargateResources to the AWS CloudFormation template to conditionally launch AWS resources based on user input to create real-time transcripts of a contact. If the provided value is set to true, Fargate resources will be deployed or else if the value is false Lambda resources will be deployed +- added a new environment variable 'START_SELECTOR_TYPE' with default value of 'NOW' to kvs_transcribe_streaming_lambda +- added DeletionPolicy attribute and UpdateReplacePolicy attribute to createS3Bucket resource in CloudFormation template +- upgraded AWS services to a newer version ## [1.0.2] - 2020-03-16 ### Changed diff --git a/LICENSE.txt b/LICENSE.txt index f19aaa6..9585144 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,6 @@ -MIT No Attribution + +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: MIT-0 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software diff --git a/NOTICE.txt b/NOTICE.txt index c169a1c..efd5dec 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,5 +1,6 @@ AI Powered Speech Analytics for Amazon Connect -Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: MIT-0 ********************** THIRD PARTY COMPONENTS @@ -12,6 +13,8 @@ aws-java-sdk-kinesisvideo under the Apache License Version 2.0 aws-java-sdk-dynamodb under the Apache License Version 2.0 aws-lambda-java-core under the Apache License Version 2.0 aws-lambda-java-events under the Apache License Version 2.0 +aws-java-sdk-cloudwatch under the Apache License Version 2.0 +aws-java-sdk-sqs under the Apache License Version 2.0 amazon-kinesis-video-streams-parser-library under the Apache License Version 2.0 jquery.dataTables.min.js under the MIT license jquery under the JS Foundation @@ -23,4 +26,9 @@ ApacheCommonsLang under the Apache License Version 2.0 SLF4J under the JS Foundation slf4j-api under the MIT License slf4j-log4j12 under the MIT License -netty-nio-client under the Apache License Version 2.0 \ No newline at end of file +netty-nio-client under the Apache License Version 2.0 +commons-lang3 under the Apache License Version 2.0 +rxjava under the Apache License Version 2.0 +reactive-streams under the Public Domain (CC0) +json under the JSON License +jackson-databind under the Apache License Version 2.0 diff --git a/README.md b/README.md index 63438da..b2b9b56 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,33 @@ # AI Powered Speech Analytics for Amazon Connect -todo +The AI Powered Speech Analytics for Amazon Connect solution provides the combination of speech to text transcription, translation into preferred languages, and insights for agents and supervisors all in real-time. This enables agents to better understand customer needs and drive resolution using the insights the solution provides while they are still interacting with their customer. -## Running unit tests for customization -* Clone the repository, then make the desired code changes -* Next, run unit tests to make sure added customization passes the tests -``` -cd ./deployment -chmod +x ./run-unit-tests.sh \n -./run-unit-tests.sh \n -``` - -## Building distributable for customization -* Configure the bucket name of your target Amazon S3 distribution bucket -``` -export DIST_OUTPUT_BUCKET=my-bucket-name # bucket where customized code will reside -export SOLUTION_NAME=my-solution-name -export VERSION=my-version # version number for the customized code -``` -_Note:_ You would have to create an S3 bucket with the prefix 'my-bucket-name-'; aws_region is where you are testing the customized solution. Also, the assets in bucket should be publicly accessible. - -* Now build the distributable: -``` -chmod +x ./build-s3-dist.sh \n -./build-s3-dist.sh $DIST_OUTPUT_BUCKET $SOLUTION_NAME $VERSION \n -``` - -* Deploy the distributable to an Amazon S3 bucket in your account. _Note:_ you must have the AWS Command Line Interface installed. -``` -aws s3 cp ./dist/ s3://my-bucket-name-/$SOLUTION_NAME/$VERSION/ --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name \n +## OS/Python Environment Setup +```bash +sudo apt-get update +sudo apt-get install zip wget sed -y +sudo wget -qO- https://deb.nodesource.com/setup_8.x | bash +sudo apt-get -y install nodejs ``` -* Get the link of the solution template uploaded to your Amazon S3 bucket. -* Deploy the solution to your account by launching a new AWS CloudFormation stack using the link of the solution template in Amazon S3. - -*** - -## File Structure - -``` -|-deployment/ - |-build-s3-dist.sh [ shell script for packaging distribution assets ] - |-run-unit-tests.sh [ shell script for executing unit tests ] - |-solution.yaml [ solution CloudFormation deployment template ] -|-source/ - |-example-function-js [ Example microservice function in javascript ] - |- lib/ [ Example function libraries ] - |-example-function-py [ Example microservice function in python ] - +## Building Lambda Package +```bash +cd deployment +./build-s3-dist.sh source-bucket-base-name version ``` +source-bucket-base-name should be the base name for the S3 bucket location where the template will source the Lambda code from. +The template will append '-[region_name]' to this value. +version should be a version prefix for the S3 bucket to indicate different build versions. +For example: ./build-s3-dist.sh solutions v1.0.0 +The template will then expect the source code to be located in the solutions-[region_name]/ai-powered-speech-analytics-for-amazon-connect/v1.0.0/ bucket -Each microservice follows the structure of: - -``` -|-service-name/ - |-lib/ - |-[service module libraries and unit tests] - |-index.js [injection point for microservice] - |-package.json -``` +## CF template and Lambda function +Located in deployment/dist *** -Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - -Licensed under the Apache License Version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at - - http://www.apache.org/licenses/ +Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: MIT-0 -or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and limitations under the License. +Licensed under the the MIT-0 License. See the LICENSE file. +This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions and limitations under the License. \ No newline at end of file diff --git a/deployment/AI-powered-speech-analytics-for-amazon-connect.yaml b/deployment/AI-powered-speech-analytics-for-amazon-connect.yaml deleted file mode 100644 index 9e00593..0000000 --- a/deployment/AI-powered-speech-analytics-for-amazon-connect.yaml +++ /dev/null @@ -1,1312 +0,0 @@ -AWSTemplateFormatVersion: '2010-09-09' - -Description: > - "AI Powered Speach Analytics for Amazon Connect: - - Create the basic foundation for streaming customer audio from Amazon Connect by deploying: - - S3 Bucket for audio files, and the sample contact flow - - Dynamo DB tables: transcriptSegments and contactDetails - - A Lambda triggered on inbound contacts to store the initial contact details - - A Lambda to trigger and pass the stream details to the Java Lambda - - A Java Lambda to consume KVS and stream it to Amazon Transcribe, store the segments in DDB and upload the raw audio to S3 - - A Node.js Lambda triggered by S3 once WAV file is uploaded to store the concatenated transcript segments in the contact details table along with the S3 location of the audio file - - A Node.js Lambda triggered by CloudFormation to create a sample Amazon Connect contact flow, pre-populated with the Lambda ARNs and placed in the S3 bucket for you to import in to your Amazon Connect instance. - - (SO0054) %%VERSION%%" - -Mappings: - FunctionMap: - Configuration: - S3Bucket: "%%BUCKET_NAME%%" - S3Key: "AI-powered-speech-analytics-for-amazon-connect/%%VERSION%%/" - SolutionID: "SO0054" - Version: "%%VERSION%%" - Send: - AnonymousUsage: - Data: "Yes" - -Parameters: - S3BucketName: - Type: String - Default: "new-audio-bucket-name" - Description: > - Enter the (globally unique) name you would like to use for the Amazon S3 bucket where we will store the audio files, and the sample contact flow. - This template will fail to deploy if the bucket name you chose is currently in use. - AllowedPattern: '(?=^.{3,63}$)(?!^(\d+\.)+\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$)' - audioFilePrefix: - Type: String - Default: recordings/ - Description: The Amazon S3 prefix where the audio files will be saved (must end in "/") - rawAudioUploadPrefix: - Type: String - Default: audio-file-input/ - Description: > - The Amazon S3 prefix where raw/wav (audio/L16; mono; 8 kHz) audio recordings may be uploaded in the event you would like - process an audio file vs making a phone call and streaming from KVS. Mainly for testing, or for realtime transcription of audio files. This will only work with single channel files (mono). - S3BucketNameForWebSite: - Type: String - Default: "new-website-bucket-name" - Description: > - Enter the (globally unique) name you would like to use for the Amazon S3 bucket where we will store the website assets and the sample contact flow. - This template will fail to deploy if the bucket name you chose is currently in use. - AllowedPattern: '(?=^.{3,63}$)(?!^(\d+\.)+\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$)' - cloudFrontPriceClass: - Type: String - Default: PriceClass_100 - AllowedValues: - - PriceClass_100 - - PriceClass_200 - - PriceClass_All - ConstraintDescription: "Allowed Price Classes PriceClass_100 PriceClass_200 and PriceClass_All" - Description: Specify the CloudFront price class. See https://aws.amazon.com/cloudfront/pricing/ for a description of each price class. - instanceIdParam: - Type: String - AllowedPattern: '\w{8}-\w{4}-\w{4}-\w{4}-\w{12}' - ConstraintDescription: "Invalid Amazon Connect instance Id" - Description: Amazon Connect Instance ID (Ensure you it is entered accurately in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ). - instanceNameParam: - Type: String - ConstraintDescription: "Invalid Amazon Connect instance alias" - Description: Amazon Connect Instance Alias (Ensure you it is entered accurately as configured under Amazon Connect Service ). - -Metadata: - 'AWS::CloudFormation::Interface': - ParameterGroups: - - Label: - default: Amazon Connect Configuration - Parameters: - - instanceIdParam - - instanceNameParam - - Label: - default: Amazon S3 Configuration - Parameters: - - S3BucketNameForWebSite - - S3BucketName - - audioFilePrefix - - rawAudioUploadPrefix - - Label: - default: Amazon CloudFront Configuration - Parameters: - - cloudFrontPriceClass - ParameterLabels: - instanceIdParam: - default: Instance ID - instanceNameParam: - default: Instance Alias - S3BucketNameForWebSite: - default: Website Bucket Name - S3BucketName: - default: Call Audio Bucket Name - cloudFrontPriceClass: - default: Price Class - audioFilePrefix: - default: Audio File Prefix - rawAudioUploadPrefix: - default: Test Mono Audio Prefix - - -Outputs: - transcriptSegmentsDDBTable: - Description: The ARN of the DynamoDB table created to store segments of call transcripts (customer audio) - Value: !GetAtt transcriptSegmentsDDBTable.Arn - contactsDDBTable: - Description: The ARN of the DynamoDB table created to store contact details used in this solution - Value: !GetAtt contactDetailsDDBTable.Arn - GwIamRole: - Description: The IAM Role created for the API GW Lambda Functions in this template - Value: !Ref AIPoweredSpeechAnalyticsApiGwLambdaRole - initContactDetails: - Description: > - AWS Lambda Function that will be triggered when the call starts so that we have the initial contact details which can later add to when we have the transcript, and audio file location. - Value: !Ref initContactDetails - transcriptionTrigger: - Description: > - AWS Lambda Function to start (asynchronous) streaming transcription; it is expected to be called by the - Amazon Connect Contact Flow. - Value: !Ref kvsConsumerTrigger - transcriptionTriggerARN: - Description: ARN for the TranscriptionTriggerFunction - Value: !GetAtt kvsConsumerTrigger.Arn - CallTranscription: - Description: AWS Lambda Function to get audio from Kinesis Video Streams and use Amazon Transcribe to get text for the caller audio. Should be invoked by TranscriptionTrigger and write results to the transcriptSegments table. - Value: !Ref kvsTranscriber - wsrealtimetranscribeOnConnectOP: - Description: AWS Lambda Function gets called when a new connection is coming from a browser. - Value: !Ref wsrealtimetranscribeOnConnect - wsrealtimetranscribeDefaultOP: - Description: AWS Lambda Function that will be triggered when the new call is received by the agent. - Value: !Ref wsrealtimetranscribeDefault - wsrealtimetranscribeOnDDBInsertOP: - Description: AWS Lambda function gets called when a new row is inserted into the segment table - Value: !Ref wsrealtimetranscribeOnDDBInsert - wsrealtimetranscribeOnDisConnectOP: - Description: AWS Lambda function gets called when a websocket connection is dropped from browser - Value: !Ref wsrealtimetranscribeOnDisConnect - wsrealtimetranscribeOnMessageOP: - Description: AWS Lambda function gets called when a message comes from the websocket connection - Value: !Ref wsrealtimetranscribeOnMessage - webSocketConnectionsTableOP: - Description: The Arn of the DynamoDB table created to websocket connection information used in this solution - Value: !GetAtt webSocketConnectionsDDBTable.Arn - WebSocketURI: - Description: The WSS Protocol URI to connect to - Value: !Join - - '' - - - 'wss://' - - !Ref AIPoweredSpeechAnalyticsWS - - .execute-api. - - !Ref 'AWS::Region' - - .amazonaws.com/ - - !Ref Stage - createS3BucketOP: - Description: Bucket contains all the call recordings and sample contactflow - Value: !GetAtt [createS3Bucket, WebsiteURL] - createS3BucketSSLOP: - Description: Bucket contains all the call recordings and sample contactflow - Value: !Join ['', ['https://', !GetAtt [createS3Bucket, DomainName]]] - cloudfrontEndpoint: - Value: !Join - - '' - - - 'https://' - - !GetAtt [AIPSAnalyticsCloudFrontDistribution, DomainName] - - '/agentAssist.html' - Description: Endpoint for Cloudfront distribution - uuid: - Description: UUID for this deployment - Value: !GetAtt SolutionUuid.UUID - -Resources: - allowConnectToKvsConsumerTriggerLambda: - Type: 'AWS::Lambda::Permission' - Properties: - FunctionName: !Ref kvsConsumerTrigger - Action: 'lambda:InvokeFunction' - Principal: connect.amazonaws.com - SourceAccount: !Ref 'AWS::AccountId' - - allowConnectToInitContactDetailsLambda: - Type: 'AWS::Lambda::Permission' - Properties: - FunctionName: !Ref initContactDetails - Action: 'lambda:InvokeFunction' - Principal: connect.amazonaws.com - SourceAccount: !Ref 'AWS::AccountId' - - allowS3toProcessContactSummaryLambda: - Type: 'AWS::Lambda::Permission' - Properties: - FunctionName: !Ref processContactSummary - Action: 'lambda:InvokeFunction' - Principal: s3.amazonaws.com - SourceAccount: !Ref 'AWS::AccountId' - - createS3Bucket: - Type: 'AWS::S3::Bucket' - Properties: - BucketName: !Ref S3BucketName - NotificationConfiguration: - LambdaConfigurations: - - - Function: !GetAtt processContactSummary.Arn - Event: "s3:ObjectCreated:*" - Filter: - S3Key: - Rules: - - - Name: suffix - Value: wav - AccessControl: LogDeliveryWrite - LoggingConfiguration: - DestinationBucketName: !Ref S3BucketName - LogFilePrefix: 'logs/' - VersioningConfiguration: - Status: Enabled - PublicAccessBlockConfiguration: - BlockPublicAcls: True - BlockPublicPolicy: True - IgnorePublicAcls: True - RestrictPublicBuckets: True - BucketEncryption: - ServerSideEncryptionConfiguration: - - ServerSideEncryptionByDefault: - SSEAlgorithm: AES256 - CorsConfiguration: - CorsRules: - - AllowedOrigins: - - '*' - AllowedHeaders: - - '*' - AllowedMethods: - - PUT - - HEAD - MaxAge: '3000' - - s3BucketPolicy: - Type: AWS::S3::BucketPolicy - DependsOn: - - createS3Bucket - Properties: - Bucket: !Ref createS3Bucket - PolicyDocument: - Statement: - - Action: - - "s3:GetObject" - Effect: "Deny" - Principal: "*" - Resource: - !Sub ${createS3Bucket.Arn}/CCP/* - - createWebSiteS3Bucket: - Type: 'AWS::S3::Bucket' - DependsOn: - - createS3Bucket - Properties: - BucketName: !Ref S3BucketNameForWebSite - LoggingConfiguration: - DestinationBucketName: !Ref S3BucketName - LogFilePrefix: 'logs/' - PublicAccessBlockConfiguration: - BlockPublicAcls: True - BlockPublicPolicy: True - IgnorePublicAcls: True - RestrictPublicBuckets: True - WebsiteConfiguration: - IndexDocument: agentAssist.html - ErrorDocument: error.html - BucketEncryption: - ServerSideEncryptionConfiguration: - - ServerSideEncryptionByDefault: - SSEAlgorithm: AES256 - - s3WebsiteBucketPolicy: - Type: AWS::S3::BucketPolicy - DependsOn: - - createWebSiteS3Bucket - - AIPSAnalyticsCloudFrontDistributionAccessIdentity - Properties: - Bucket: !Ref createWebSiteS3Bucket - PolicyDocument: - Statement: - - - Action: - - "s3:GetObject" - Effect: "Allow" - Principal: - CanonicalUser: - Fn::GetAtt: [ AIPSAnalyticsCloudFrontDistributionAccessIdentity , S3CanonicalUserId ] - Resource: - !Sub ${createWebSiteS3Bucket.Arn}/CCP/* - - transcriptSegmentsDDBTable: - Type: AWS::DynamoDB::Table - Properties: - AttributeDefinitions: - - - AttributeName: "ContactId" - AttributeType: "S" - - - AttributeName: "StartTime" - AttributeType: "N" - KeySchema: - - - AttributeName: "ContactId" - KeyType: "HASH" - - - AttributeName: "StartTime" - KeyType: "RANGE" - # assuming 5 concurrent calls - ProvisionedThroughput: - ReadCapacityUnits: - 5 - WriteCapacityUnits: - 5 - PointInTimeRecoverySpecification: - PointInTimeRecoveryEnabled: True - SSESpecification: - SSEEnabled: True - TimeToLiveSpecification: - AttributeName: "ExpiresAfter" - Enabled: True - StreamSpecification: - StreamViewType: NEW_AND_OLD_IMAGES - - transcriptSegmentsToCustomerDDBTable: - Type: AWS::DynamoDB::Table - Properties: - AttributeDefinitions: - - - AttributeName: "ContactId" - AttributeType: "S" - - - AttributeName: "StartTime" - AttributeType: "N" - KeySchema: - - - AttributeName: "ContactId" - KeyType: "HASH" - - - AttributeName: "StartTime" - KeyType: "RANGE" - # assuming 5 concurrent calls - ProvisionedThroughput: - ReadCapacityUnits: - 5 - WriteCapacityUnits: - 5 - PointInTimeRecoverySpecification: - PointInTimeRecoveryEnabled: True - SSESpecification: - SSEEnabled: True - TimeToLiveSpecification: - AttributeName: "ExpiresAfter" - Enabled: True - StreamSpecification: - StreamViewType: NEW_AND_OLD_IMAGES - - contactDetailsDDBTable: - Type: AWS::DynamoDB::Table - Properties: - AttributeDefinitions: - - - AttributeName: "contactId" - AttributeType: "S" - KeySchema: - - - AttributeName: "contactId" - KeyType: "HASH" - # assuming 5 concurrent calls - ProvisionedThroughput: - ReadCapacityUnits: - 5 - WriteCapacityUnits: - 5 - PointInTimeRecoverySpecification: - PointInTimeRecoveryEnabled: True - SSESpecification: - SSEEnabled: True - - AIPoweredSpeechAnalyticsKvsTranscribeRole: - Type: "AWS::IAM::Role" - Metadata: - cfn_nag: - rules_to_suppress: - - id: F3 - reason: transcribe:* do not support resource-level permissions and kinesisvideo streams are dynamically created and therefore cannot be specificed directly - - id: W11 - reason: transcribe:* do not support resource-level permissions and kinesisvideo streams are dynamically created and therefore cannot be specificed directly - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: kvs-streaming-transcribe-policy - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "dynamodb:Query" - - "dynamodb:Scan" - - "dynamodb:PutItem" - - "dynamodb:UpdateItem" - - "dynamodb:GetRecords" - - "dynamodb:GetShardIterator" - - "dynamodb:DescribeStream" - - "dynamodb:ListStreams" - Resource: - - !Sub ${transcriptSegmentsDDBTable.Arn} - - !Sub ${transcriptSegmentsToCustomerDDBTable.Arn} - - - Effect: "Allow" - Action: - - "s3:PutObject" - - "s3:GetObject" - - "s3:PutObjectAcl" - Resource: - - !Sub ${createS3Bucket.Arn}/* - - - Effect: "Allow" - Action: - - "transcribe:DeleteTranscriptionJob" - - "transcribe:GetTranscriptionJob" - - "transcribe:GetVocabulary" - - "transcribe:ListTranscriptionJobs" - - "transcribe:ListVocabularies" - - "transcribe:StartStreamTranscription" - - "transcribe:StartTranscriptionJob" - Resource: "*" - - - Effect: "Allow" - Action: - - "kinesisvideo:Describe*" - - "kinesisvideo:Get*" - - "kinesisvideo:List*" - Resource: "*" - - AIPoweredSpeechAnalyticsKvsTriggerRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: kvs-streaming-trigger-policy - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "lambda:InvokeFunction" - - "lambda:InvokeAsync" - Resource: - - !GetAtt kvsTranscriber.Arn - - AIPoweredSpeechAnalyticsProcessContactRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: process-contact-policy - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "dynamodb:Query" - Resource: - - !Sub ${transcriptSegmentsDDBTable.Arn} - - !Sub ${transcriptSegmentsToCustomerDDBTable.Arn} - - - Effect: "Allow" - Action: - - "dynamodb:Update" - - "dynamodb:UpdateItem" - Resource: - - !Sub ${contactDetailsDDBTable.Arn} - - AIPoweredSpeechAnalyticsContactFlowCreatorRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: contact-flow-creator-policy - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "s3:PutObject" - Resource: - - !Sub ${createS3Bucket.Arn}/* - - AIPoweredSpeechAnalyticsApiGwLambdaRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: apigw-lambda-policy - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "dynamodb:DeleteItem" - - "dynamodb:GetRecords" - - "dynamodb:GetShardIterator" - - "dynamodb:PutItem" - - "dynamodb:Scan" - Resource: - - !Sub ${webSocketConnectionsDDBTable.Arn} - - - Effect: "Allow" - Action: - - "dynamodb:DescribeStream" - - "dynamodb:GetRecords" - - "dynamodb:GetShardIterator" - - "dynamodb:ListStreams" - Resource: - - !Sub ${transcriptSegmentsDDBTable.Arn}/* - - - Effect: "Allow" - Action: - - "execute-api:Invoke" - - "execute-api:InvalidateCache" - - "execute-api:ManageConnections" - Resource: - !Sub "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${AIPoweredSpeechAnalyticsWS}*" - - AIPoweredSpeechAnalyticsConnectUserStsRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - AWS: - !Join - - '' - - - 'arn:' - - !Ref 'AWS::Partition' - - ':iam::' - - !Ref 'AWS::AccountId' - - ':' - - 'root' - Action: - - "sts:AssumeRole" - Path: "/" - - AIPoweredSpeechAnalyticsConnectUserStsPolicy: - Type: 'AWS::IAM::Policy' - Metadata: - cfn_nag: - rules_to_suppress: - - id: W12 - reason: comprehend, translate, and connect do not support resource-level permissions - Properties: - PolicyName: !Sub ${AWS::StackName}-UserStsPolicy - Roles: - - !Ref AIPoweredSpeechAnalyticsConnectUserStsRole - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - "comprehend:ListEntityRecognizers" - - "comprehend:DetectSentiment" - - "comprehend:DetectEntities" - - "comprehend:ListDocumentClassifiers" - - "comprehend:DetectSyntax" - - "comprehend:DetectKeyPhrases" - - "comprehend:DetectDominantLanguage" - Resource: "*" - - - Effect: "Allow" - Action: - - "translate:TranslateText" - Resource: "*" - - - Effect: "Allow" - Action: - - "s3:PutObject" - Resource: - - !Sub ${createS3Bucket.Arn}/* - - - Effect: "Allow" - Action: - - "connect:UpdateContactAttributes" - Resource: "*" - - - Effect: "Allow" - Action: - - "execute-api:Invoke" - - "execute-api:InvalidateCache" - - "execute-api:ManageConnections" - Resource: - !Join - - '' - - - 'arn:' - - !Ref 'AWS::Partition' - - ':execute-api:' - - !Ref 'AWS::Region' - - ':' - - !Ref 'AWS::AccountId' - - ':' - - !Ref AIPoweredSpeechAnalyticsWS - - '*' - - AIPoweredSpeechAnalyticsSTSTokenLambdaIAMRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: connect-aipsas-ststoken - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "dynamodb:UpdateItem" - Resource: - - !Sub ${contactDetailsDDBTable.Arn} - - Effect: "Allow" - Action: - - 'sts:AssumeRole' - Resource: - - !GetAtt AIPoweredSpeechAnalyticsConnectUserStsRole.Arn - - kvsTranscriber: - Type: "AWS::Lambda::Function" - Properties: - Description: > - Process audio from Kinesis Video Stream and use Amazon Transcribe to get text - for the caller audio. Will be invoked by the kvsConsumerTrigger Lambda, writes results to the - transcriptSegmentsDDBTable, and uploads the audio file to S3. - - Handler: "com.amazonaws.kvstranscribestreaming.KVSTranscribeStreamingLambda::handleRequest" - Role: !GetAtt AIPoweredSpeechAnalyticsKvsTranscribeRole.Arn - Runtime: java8 - MemorySize: 512 - # maximum timeout is 15 minutes today - Timeout: 900 - Environment: - Variables: - # JAVA_TOOL_OPTIONS: "-Djavax.net.ssl.trustStore=lib/InternalAndExternalTrustStore.jks -Djavax.net.ssl.trustStorePassword=amazon" - APP_REGION: !Ref "AWS::Region" - TRANSCRIBE_REGION: !Ref "AWS::Region" - RECORDINGS_BUCKET_NAME: !Ref S3BucketName - RECORDINGS_KEY_PREFIX: !Ref audioFilePrefix - INPUT_KEY_PREFIX: !Ref rawAudioUploadPrefix - TABLE_CALLER_TRANSCRIPT: !Ref transcriptSegmentsDDBTable - TABLE_CALLER_TRANSCRIPT_TO_CUSTOMER: !Ref transcriptSegmentsToCustomerDDBTable - RECORDINGS_PUBLIC_READ_ACL: "FALSE" - CONSOLE_LOG_TRANSCRIPT_FLAG: "TRUE" - LOGGING_LEVEL: "FINE" - SAVE_PARTIAL_TRANSCRIPTS: "TRUE" - - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'kvs_transcribe_streaming_lambda.zip']] - - kvsConsumerTrigger: - Type: "AWS::Lambda::Function" - Properties: - Description: > - AWS Lambda Function to start (asynchronous) streaming transcription; it is expected to be called by the - Amazon Connect Contact Flow. - Handler: "index.handler" - Role: !GetAtt AIPoweredSpeechAnalyticsKvsTriggerRole.Arn - Runtime: "nodejs10.x" - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - transcriptionFunction: !Ref kvsTranscriber - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'kvs_trigger.zip']] - - initContactDetails: - Type: "AWS::Lambda::Function" - Properties: - Description: > - AWS Lambda Function that will be triggered when the call starts so that we have the initial contact details which can later add to when we have the transcript, and audio file location. - Handler: "index.handler" - Role: !GetAtt AIPoweredSpeechAnalyticsSTSTokenLambdaIAMRole.Arn - Runtime: "nodejs10.x" - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - table_name: !Ref contactDetailsDDBTable - assume_role: !GetAtt AIPoweredSpeechAnalyticsConnectUserStsRole.Arn - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'contact_init.zip']] - - processContactSummary: - Type: "AWS::Lambda::Function" - Properties: - Description: > - AWS Lambda Function that will be triggered when the wav call recording file is placed in S3. This function will collect all the transcript segments, and the audio file location and update the contact db. - Handler: "index.handler" - Role: !GetAtt AIPoweredSpeechAnalyticsProcessContactRole.Arn - Runtime: "nodejs10.x" - MemorySize: 256 - Timeout: 120 - Environment: - Variables: - contact_table_name: !Ref contactDetailsDDBTable - transcript_seg_table_name: !Ref transcriptSegmentsDDBTable - transcript_seg_to_customer_table_name: !Ref transcriptSegmentsToCustomerDDBTable - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'process_contact.zip']] - - contactFlowCreator: - Type: "AWS::Lambda::Function" - Properties: - Description: > - AWS Lambda Function that will create the initial sample contact flow and upload it to the S3 bucket - Handler: "index.handler" - Role: !GetAtt AIPoweredSpeechAnalyticsContactFlowCreatorRole.Arn - Runtime: "nodejs10.x" - MemorySize: 256 - Timeout: 120 - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'create_contact_flow.zip']] - - invokeContactFlowCreator: - Type: Custom::CreateKVSContactFlow - Properties: - ServiceToken: - !GetAtt contactFlowCreator.Arn - bucketName: - !Ref createS3Bucket - contactInitFunction: - !GetAtt initContactDetails.Arn - kvsTriggerFunction: - !GetAtt kvsConsumerTrigger.Arn - - #DynamoDB Table to maintain connections and contactId information - webSocketConnectionsDDBTable: - Type: 'AWS::DynamoDB::Table' - Properties: - AttributeDefinitions: - - AttributeName: connectionId - AttributeType: S - KeySchema: - - AttributeName: connectionId - KeyType: HASH - ProvisionedThroughput: - ReadCapacityUnits: 5 - WriteCapacityUnits: 5 - PointInTimeRecoverySpecification: - PointInTimeRecoveryEnabled: true - SSESpecification: - SSEEnabled: true - TimeToLiveSpecification: - AttributeName: ExpiresAfter - Enabled: true - - #Beggining of Websocket API - AIPoweredSpeechAnalyticsWS: - Type: 'AWS::ApiGatewayV2::Api' - Properties: - Name: AIPoweredSpeechAnalyticsWS - ProtocolType: WEBSOCKET - RouteSelectionExpression: $request.body.action - - ConnectRoute: - Type: 'AWS::ApiGatewayV2::Route' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - RouteKey: $connect - AuthorizationType: AWS_IAM - OperationName: ConnectRoute - Target: !Join - - / - - - integrations - - !Ref ConnectInteg - - ConnectInteg: - Type: 'AWS::ApiGatewayV2::Integration' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - Description: Connect Integration - IntegrationType: AWS_PROXY - IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeOnConnect.Arn}/invocations - - DisconnectRoute: - Type: 'AWS::ApiGatewayV2::Route' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - RouteKey: $disconnect - OperationName: DisconnectRoute - Target: !Join - - / - - - integrations - - !Ref DisconnectInteg - - DisconnectInteg: - Type: 'AWS::ApiGatewayV2::Integration' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - Description: Disconnect Integration - IntegrationType: AWS_PROXY - IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeOnDisConnect.Arn}/invocations - - SendRoute: - Type: 'AWS::ApiGatewayV2::Route' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - RouteKey: sendmessage - OperationName: SendRoute - Target: !Join - - / - - - integrations - - !Ref SendInteg - - SendInteg: - Type: 'AWS::ApiGatewayV2::Integration' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - Description: Send Integration - IntegrationType: AWS_PROXY - IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeOnMessage.Arn}/invocations - - NewCallRoute: - Type: 'AWS::ApiGatewayV2::Route' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - RouteKey: newcall - OperationName: NewCallRoute - Target: !Join - - / - - - integrations - - !Ref NewCallInteg - - NewCallInteg: - Type: 'AWS::ApiGatewayV2::Integration' - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - Description: New Call Integration - IntegrationType: AWS_PROXY - IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeDefault.Arn}/invocations - - Deployment: - Type: 'AWS::ApiGatewayV2::Deployment' - DependsOn: - - ConnectRoute - - SendRoute - - DisconnectRoute - - NewCallRoute - Properties: - ApiId: !Ref AIPoweredSpeechAnalyticsWS - - Stage: - Type: 'AWS::ApiGatewayV2::Stage' - Properties: - StageName: Prod - Description: Prod Stage - DeploymentId: !Ref Deployment - ApiId: !Ref AIPoweredSpeechAnalyticsWS - - wsrealtimetranscribeOnConnect: - Type: 'AWS::Lambda::Function' - Properties: - Description: AWS Lambda Function that will be triggered when the browser initiates the websocket connection. - Handler: index.handler - Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn - Runtime: nodejs10.x - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - TABLE_NAME: !Ref webSocketConnectionsDDBTable - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnConnect.zip']] - - wsrealtimetranscribeOnConnectPermission: - Type: 'AWS::Lambda::Permission' - DependsOn: - - AIPoweredSpeechAnalyticsWS - - wsrealtimetranscribeOnConnect - Properties: - Action: 'lambda:InvokeFunction' - FunctionName: !Ref wsrealtimetranscribeOnConnect - Principal: apigateway.amazonaws.com - - wsrealtimetranscribeOnDisConnect: - Type: 'AWS::Lambda::Function' - Properties: - Description: AWS Lambda Function that will be triggered when the browser disconnect the websocket connection. - Handler: index.handler - Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn - Runtime: nodejs10.x - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - TABLE_NAME: !Ref webSocketConnectionsDDBTable - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnDisconnect.zip']] - - wsrealtimetranscribeOnDisConnectPermission: - Type: 'AWS::Lambda::Permission' - DependsOn: - - AIPoweredSpeechAnalyticsWS - - wsrealtimetranscribeOnDisConnect - Properties: - Action: 'lambda:InvokeFunction' - FunctionName: !Ref wsrealtimetranscribeOnDisConnect - Principal: apigateway.amazonaws.com - - wsrealtimetranscribeOnMessage: - Type: 'AWS::Lambda::Function' - Properties: - Description: AWS Lambda Function that will be triggered when a message arrives from websocket. - Handler: index.handler - Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn - Runtime: nodejs10.x - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - TABLE_NAME: !Ref webSocketConnectionsDDBTable - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnMessage.zip']] - - wsrealtimetranscribeOnMessagePermission: - Type: 'AWS::Lambda::Permission' - DependsOn: - - AIPoweredSpeechAnalyticsWS - - wsrealtimetranscribeOnMessage - Properties: - Action: 'lambda:InvokeFunction' - FunctionName: !Ref wsrealtimetranscribeOnMessage - Principal: apigateway.amazonaws.com - - wsrealtimetranscribeDefault: - Type: 'AWS::Lambda::Function' - Properties: - Description: AWS Lambda Function that will be triggered when no action is mapped to the websocket. - Handler: index.handler - Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn - Runtime: nodejs10.x - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - TABLE_NAME: !Ref webSocketConnectionsDDBTable - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_Default.zip']] - - wsrealtimetranscribeDefaultPermission: - Type: 'AWS::Lambda::Permission' - DependsOn: - - AIPoweredSpeechAnalyticsWS - - wsrealtimetranscribeDefault - Properties: - Action: 'lambda:InvokeFunction' - FunctionName: !Ref wsrealtimetranscribeDefault - Principal: apigateway.amazonaws.com - - wsrealtimetranscribeOnDDBInsert: - Type: 'AWS::Lambda::Function' - DependsOn: - - transcriptSegmentsDDBTable - Properties: - Description: AWS Lambda Function that will be triggered when transcribe segments are written into the dynamodb. - Handler: index.handler - Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn - Runtime: nodejs10.x - MemorySize: 128 - Timeout: 30 - Environment: - Variables: - TABLE_NAME: !Ref webSocketConnectionsDDBTable - DOMAIN_NAME: !Join - - '' - - - !Ref AIPoweredSpeechAnalyticsWS - - .execute-api. - - !Ref 'AWS::Region' - - .amazonaws.com - STAGE_NAME: !Ref Stage - - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnDDBInsert.zip']] - - transcribeSegmentsDDBTrigger: - Type: AWS::Lambda::EventSourceMapping - DependsOn: - - transcriptSegmentsDDBTable - - AIPoweredSpeechAnalyticsApiGwLambdaRole - - wsrealtimetranscribeOnDDBInsert - Properties: - BatchSize: 1 - Enabled: True - EventSourceArn: - Fn::GetAtt: [ transcriptSegmentsDDBTable, StreamArn ] - FunctionName: !GetAtt wsrealtimetranscribeOnDDBInsert.Arn - StartingPosition: LATEST - - AIPoweredSpeechAnalyticsLambdaCRHIAMRole: - Type: "AWS::IAM::Role" - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Principal: - Service: - - "lambda.amazonaws.com" - Action: - - "sts:AssumeRole" - Path: "/" - Policies: - - - PolicyName: connect-kvs-s3-for-aipsas - PolicyDocument: - Version: "2012-10-17" - Statement: - - - Effect: "Allow" - Action: - - 'logs:CreateLogGroup' - - 'logs:CreateLogStream' - - 'logs:PutLogEvents' - Resource: - - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" - - - Effect: "Allow" - Action: - - "s3:PutObject" - - "s3:GetObject" - - "s3:PutObjectAcl" - Resource: - - !Sub ${createWebSiteS3Bucket.Arn}/* - - - Effect: "Allow" - Action: - - "s3:GetObject" - Resource: - - !Join - - '' - - - 'arn:' - - !Ref 'AWS::Partition' - - ':s3:::' - - !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - - '/*' - - CustomResourceHelper: - Type: AWS::Lambda::Function - Properties: - Code: - S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - S3Key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'custom-resource-helper.zip']] - Description: Solution Accelerator for Web Analytics - Function to deploy web pages. - Handler: index.handler - MemorySize: 256 - Role: !GetAtt AIPoweredSpeechAnalyticsLambdaCRHIAMRole.Arn - Runtime: nodejs10.x - Timeout: 300 - - SolutionAnonymousMetric: - Type: "Custom::LoadLambda" - Properties: - ServiceToken: - Fn::GetAtt: - - "CustomResourceHelper" - - "Arn" - Region: - - Ref: "AWS::Region" - solutionId: !FindInMap ["FunctionMap", "Configuration", "SolutionID"] - UUID: !GetAtt SolutionUuid.UUID - version: "1" - anonymousData: !FindInMap ["Send", "AnonymousUsage", "Data"] - customAction: "sendMetric" - - SolutionUuid: - Type: "Custom::LoadLambda" - Properties: - ServiceToken: - Fn::GetAtt: - - "CustomResourceHelper" - - "Arn" - Region: - - Ref: "AWS::Region" - customAction: "createUuid" - - ConfigureWebsite: - Type: Custom::LoadLambda - DependsOn: - - createS3Bucket - - AIPoweredSpeechAnalyticsWS - Properties: - ServiceToken: !GetAtt CustomResourceHelper.Arn - Region: !Ref AWS::Region - customAction: configureWebsite - sourceS3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] - sourceS3key: !Join ["", [!FindInMap [FunctionMap, Configuration, S3Key], 'web_site']] - destS3Bucket: !Ref createWebSiteS3Bucket - destS3KeyPrefix: CCP - transcriptS3KeyBucket: !Ref S3BucketName - instanceId: !Ref instanceIdParam - instanceName: !Ref instanceNameParam - UUID: !GetAtt SolutionUuid.UUID - data: !FindInMap [Send, AnonymousUsage, Data] - solutionId: !FindInMap [FunctionMap, Configuration, SolutionID] - version: !FindInMap [FunctionMap, Configuration, Version] - webSocketHost: - !Join - - '' - - - 'wss://' - - !Ref AIPoweredSpeechAnalyticsWS - - .execute-api. - - !Ref 'AWS::Region' - - .amazonaws.com/ - - !Ref Stage - - AIPSAnalyticsCloudFrontDistributionAccessIdentity: - Type: AWS::CloudFront::CloudFrontOriginAccessIdentity - Properties: - CloudFrontOriginAccessIdentityConfig: - Comment: 'CloudFront OAI for AI Powered Speech Analytics' - - AIPSAnalyticsCloudFrontDistribution: - Type: AWS::CloudFront::Distribution - DependsOn: - - CustomResourceHelper - - createWebSiteS3Bucket - - createS3Bucket - Properties: - DistributionConfig: - Origins: - - DomainName: - !Join - - '' - - - !Ref S3BucketNameForWebSite - - .s3.amazonaws.com - Id: !Ref S3BucketNameForWebSite - OriginPath: '/CCP' - S3OriginConfig: - OriginAccessIdentity: - !Join - - '' - - - 'origin-access-identity/cloudfront/' - - !Ref AIPSAnalyticsCloudFrontDistributionAccessIdentity - Enabled: 'true' - Logging: - Bucket: !GetAtt createS3Bucket.DomainName - Prefix: 'logs/' - IncludeCookies: 'true' - Comment: CloudFront for AI Powered Speech Analytics - DefaultRootObject: agentAssist.html - DefaultCacheBehavior: - AllowedMethods: - - DELETE - - GET - - HEAD - - OPTIONS - - PATCH - - POST - - PUT - TargetOriginId: !Ref S3BucketNameForWebSite - ForwardedValues: - QueryString: true - Cookies: - Forward: all - ViewerProtocolPolicy: redirect-to-https - PriceClass: !Ref cloudFrontPriceClass - Restrictions: - GeoRestriction: - RestrictionType: whitelist - Locations: - - US - - JP - - AU - - FR diff --git a/deployment/ai-powered-speech-analytics-for-amazon-connect.template b/deployment/ai-powered-speech-analytics-for-amazon-connect.template new file mode 100644 index 0000000..df8014c --- /dev/null +++ b/deployment/ai-powered-speech-analytics-for-amazon-connect.template @@ -0,0 +1,2525 @@ +AWSTemplateFormatVersion: '2010-09-09' + +Description: > + "(SO0054) AI Powered Speach Analytics for Amazon Connect Version %%VERSION%% : + - Create the basic foundation for streaming customer audio from Amazon Connect by deploying: + - S3 Bucket for audio files, and the sample contact flow + - Dynamo DB tables: transcriptSegments and contactDetails + - A Lambda triggered on inbound contacts to store the initial contact details + - A Lambda to trigger and pass the stream details to the Java Lambda + - A Java Lambda to consume KVS and stream it to Amazon Transcribe, store the segments in DDB and upload the raw audio to S3 + - A Node.js Lambda triggered by S3 once WAV file is uploaded to store the concatenated transcript segments in the contact details table along with the S3 location of the audio file + - A Node.js Lambda triggered by CloudFormation to create a sample Amazon Connect contact flow, pre-populated with the Lambda ARNs and placed in the S3 bucket for you to import in to your Amazon Connect instance. + - AWS Fargate task for transcribing call audio to text" + +Mappings: + FunctionMap: + Configuration: + S3Bucket: "%%BUCKET_NAME%%" + S3Key: "ai-powered-speech-analytics-for-amazon-connect/%%VERSION%%" + SolutionID: "SO0054" + Version: "%%VERSION%%" + Send: + AnonymousUsage: + Data: "Yes" + +Parameters: + S3BucketName: + Type: String + Default: "new-audio-bucket-name" + Description: > + Enter the (globally unique) name you would like to use for the Amazon S3 bucket where we will store the audio files, and the sample contact flow. + This template will fail to deploy if the bucket name you chose is currently in use. + AllowedPattern: '(?=^.{3,63}$)(?!^(\d+\.)+\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$)' + audioFilePrefix: + Type: String + Default: recordings/ + Description: The Amazon S3 prefix where the audio files will be saved (must end in "/") + rawAudioUploadPrefix: + Type: String + Default: audio-file-input/ + Description: > + The Amazon S3 prefix where raw/wav (audio/L16; mono; 8 kHz) audio recordings may be uploaded in the event you would like + process an audio file vs making a phone call and streaming from KVS. Mainly for testing, or for realtime transcription of audio files. This will only work with single channel files (mono). + S3BucketNameForWebSite: + Type: String + Default: "new-website-bucket-name" + Description: > + Enter the (globally unique) name you would like to use for the Amazon S3 bucket where we will store the website assets and the sample contact flow. + This template will fail to deploy if the bucket name you chose is currently in use. + AllowedPattern: '(?=^.{3,63}$)(?!^(\d+\.)+\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$)' + cloudFrontPriceClass: + Type: String + Default: PriceClass_100 + AllowedValues: + - PriceClass_100 + - PriceClass_200 + - PriceClass_All + ConstraintDescription: "Allowed Price Classes PriceClass_100 PriceClass_200 and PriceClass_All" + Description: Specify the CloudFront price class. See https://aws.amazon.com/cloudfront/pricing/ for a description of each price class. + instanceIdParam: + Type: String + AllowedPattern: '\w{8}-\w{4}-\w{4}-\w{4}-\w{12}' + ConstraintDescription: "Invalid Amazon Connect instance Id" + Description: Amazon Connect Instance ID (Ensure you it is entered accurately in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ). + instanceNameParam: + Type: String + ConstraintDescription: "Invalid Amazon Connect instance alias" + Description: Amazon Connect Instance Alias (Ensure you it is entered accurately as configured under Amazon Connect Service ). + computeType: + Type: String + Default: Lambda + AllowedValues: [Lambda, Fargate] + Description: Specify whether to use AWS Fargate or AWS Lambda for transcribing call audio to text. The solution, by default, uses an AWS Lambda function to transcribe call audio consumed from Kinesis Video Streams. Please note that Lambda has a maximum run time of 15 minutes per invocation whereas Fargate has no such limits and can run as long as the call is connected. +Conditions: + ShouldCreateFargateResources: + !Equals [Fargate, !Ref computeType] + ShouldCreateLambdaResource: + !Equals [Lambda, !Ref computeType] + +Metadata: + 'AWS::CloudFormation::Interface': + ParameterGroups: + - Label: + default: Amazon Connect Configuration + Parameters: + - instanceIdParam + - instanceNameParam + - Label: + default: Amazon S3 Configuration + Parameters: + - S3BucketNameForWebSite + - S3BucketName + - audioFilePrefix + - rawAudioUploadPrefix + - Label: + default: Amazon CloudFront Configuration + Parameters: + - cloudFrontPriceClass + - Label: + default: Amazon Compute Configuration + Parameters: + - computeType + ParameterLabels: + instanceIdParam: + default: Instance ID + instanceNameParam: + default: Instance Alias + S3BucketNameForWebSite: + default: Website Bucket Name + S3BucketName: + default: Call Audio Bucket Name + cloudFrontPriceClass: + default: Price Class + audioFilePrefix: + default: Audio File Prefix + rawAudioUploadPrefix: + default: Test Mono Audio Prefix + computeType: + default: Compute Type + +Outputs: + transcriptSegmentsDDBTable: + Description: The ARN of the DynamoDB table created to store segments of call transcripts (customer audio) + Value: !GetAtt transcriptSegmentsDDBTable.Arn + contactsDDBTable: + Description: The ARN of the DynamoDB table created to store contact details used in this solution + Value: !GetAtt contactDetailsDDBTable.Arn + GwIamRole: + Description: The IAM Role created for the API GW Lambda Functions in this template + Value: !Ref AIPoweredSpeechAnalyticsApiGwLambdaRole + initContactDetails: + Description: > + AWS Lambda Function that will be triggered when the call starts so that we have the initial contact details which can later add to when we have the transcript, and audio file location. + Value: !Ref initContactDetails + transcriptionTrigger: + Description: > + AWS Lambda Function to start (asynchronous) streaming transcription; it is expected to be called by the + Amazon Connect Contact Flow. + Value: !Ref kvsConsumerTrigger + Condition: ShouldCreateLambdaResource + transcriptionTriggerARN: + Description: ARN for the TranscriptionTriggerFunction + Value: !GetAtt kvsConsumerTrigger.Arn + Condition: ShouldCreateLambdaResource + CallTranscription: + Description: AWS Lambda Function to get audio from Kinesis Video Streams and use Amazon Transcribe to get text for the caller audio. Should be invoked by TranscriptionTrigger and write results to the transcriptSegments table. + Value: !Ref kvsTranscriber + Condition: ShouldCreateLambdaResource + wsrealtimetranscribeOnConnectOP: + Description: AWS Lambda Function gets called when a new connection is coming from a browser. + Value: !Ref wsrealtimetranscribeOnConnect + wsrealtimetranscribeDefaultOP: + Description: AWS Lambda Function that will be triggered when the new call is received by the agent. + Value: !Ref wsrealtimetranscribeDefault + wsrealtimetranscribeOnDDBInsertOP: + Description: AWS Lambda function gets called when a new row is inserted into the segment table + Value: !Ref wsrealtimetranscribeOnDDBInsert + wsrealtimetranscribeOnDisConnectOP: + Description: AWS Lambda function gets called when a websocket connection is dropped from browser + Value: !Ref wsrealtimetranscribeOnDisConnect + wsrealtimetranscribeOnMessageOP: + Description: AWS Lambda function gets called when a message comes from the websocket connection + Value: !Ref wsrealtimetranscribeOnMessage + webSocketConnectionsTableOP: + Description: The Arn of the DynamoDB table created to websocket connection information used in this solution + Value: !GetAtt webSocketConnectionsDDBTable.Arn + WebSocketURI: + Description: The WSS Protocol URI to connect to + Value: !Join + - '' + - - 'wss://' + - !Ref AIPoweredSpeechAnalyticsWS + - .execute-api. + - !Ref 'AWS::Region' + - .amazonaws.com/ + - !Ref Stage + createS3BucketOP: + Description: Bucket contains all the call recordings and sample contactflow + Value: !GetAtt [createS3Bucket, WebsiteURL] + createS3BucketSSLOP: + Description: Bucket contains all the call recordings and sample contactflow + Value: !Join ['', ['https://', !GetAtt [createS3Bucket, DomainName]]] + cloudfrontEndpoint: + Value: !Join + - '' + - - 'https://' + - !GetAtt [AIPSAnalyticsCloudFrontDistribution, DomainName] + - '/agentAssist.html' + Description: Endpoint for Cloudfront distribution + transcribingFargateTrigger: + Description: > + AWS Lambda Function triggered by the Agent whisper contact flow to send an Amazon SQS Message with the stream details; it is expected to be called by the + Amazon Connect Contact Flow. + Value: !Ref transcribingFargateTrigger + Condition: ShouldCreateFargateResources + transcribingFargateTriggerARN: + Description: ARN for the transcribingFargateTrigger Function + Value: !GetAtt transcribingFargateTrigger.Arn + Condition: ShouldCreateFargateResources + uuid: + Description: UUID for this deployment + Value: !GetAtt SolutionUuid.UUID + +Resources: + allowConnectToKvsConsumerTriggerLambda: + Type: 'AWS::Lambda::Permission' + Condition: ShouldCreateLambdaResource + Properties: + FunctionName: !Ref kvsConsumerTrigger + Action: 'lambda:InvokeFunction' + Principal: connect.amazonaws.com + SourceAccount: !Ref 'AWS::AccountId' + + allowConnectToInitContactDetailsLambda: + Type: 'AWS::Lambda::Permission' + Properties: + FunctionName: !Ref initContactDetails + Action: 'lambda:InvokeFunction' + Principal: connect.amazonaws.com + SourceAccount: !Ref 'AWS::AccountId' + + allowS3toProcessContactSummaryLambda: + Type: 'AWS::Lambda::Permission' + Properties: + FunctionName: !Ref processContactSummary + Action: 'lambda:InvokeFunction' + Principal: s3.amazonaws.com + SourceAccount: !Ref 'AWS::AccountId' + + createS3Bucket: + Type: 'AWS::S3::Bucket' + Properties: + BucketName: !Ref S3BucketName + NotificationConfiguration: + LambdaConfigurations: + - + Function: !GetAtt processContactSummary.Arn + Event: "s3:ObjectCreated:*" + Filter: + S3Key: + Rules: + - + Name: suffix + Value: wav + AccessControl: LogDeliveryWrite + LoggingConfiguration: + DestinationBucketName: !Ref S3BucketName + LogFilePrefix: 'logs/' + VersioningConfiguration: + Status: Enabled + PublicAccessBlockConfiguration: + BlockPublicAcls: True + BlockPublicPolicy: True + IgnorePublicAcls: True + RestrictPublicBuckets: True + BucketEncryption: + ServerSideEncryptionConfiguration: + - ServerSideEncryptionByDefault: + SSEAlgorithm: AES256 + CorsConfiguration: + CorsRules: + - AllowedOrigins: + - 'https://*.cloudfront.net' + AllowedHeaders: + - '*' + AllowedMethods: + - PUT + - HEAD + MaxAge: '3000' + + s3BucketPolicy: + Type: AWS::S3::BucketPolicy + DependsOn: + - createS3Bucket + Properties: + Bucket: !Ref createS3Bucket + PolicyDocument: + Statement: + - Action: + - "s3:GetObject" + Effect: "Deny" + Principal: "*" + Resource: + !Sub ${createS3Bucket.Arn}/CCP/* + - Action: 's3:*' + Resource: + !Sub ${createS3Bucket.Arn}/CCP/* + Effect: Deny + Condition: + Bool: + 'aws:SecureTransport': false + Principal: '*' + - Action: 's3:*' + Resource: + !Sub ${createS3Bucket.Arn}/CCP/* + Effect: Deny + Condition: + Bool: + 'aws:SecureTransport': false + Principal: '*' + + createWebSiteS3Bucket: + Type: 'AWS::S3::Bucket' + UpdateReplacePolicy: Retain + DeletionPolicy: Retain + DependsOn: + - createS3Bucket + Properties: + BucketName: !Ref S3BucketNameForWebSite + LoggingConfiguration: + DestinationBucketName: !Ref S3BucketName + LogFilePrefix: 'logs/' + PublicAccessBlockConfiguration: + BlockPublicAcls: True + BlockPublicPolicy: True + IgnorePublicAcls: True + RestrictPublicBuckets: True + WebsiteConfiguration: + IndexDocument: agentAssist.html + ErrorDocument: error.html + BucketEncryption: + ServerSideEncryptionConfiguration: + - ServerSideEncryptionByDefault: + SSEAlgorithm: AES256 + + s3WebsiteBucketPolicy: + Type: AWS::S3::BucketPolicy + DependsOn: + - createWebSiteS3Bucket + - AIPSAnalyticsCloudFrontDistributionAccessIdentity + Properties: + Bucket: !Ref createWebSiteS3Bucket + PolicyDocument: + Statement: + - + Action: + - "s3:GetObject" + Effect: "Allow" + Principal: + CanonicalUser: + Fn::GetAtt: [ AIPSAnalyticsCloudFrontDistributionAccessIdentity , S3CanonicalUserId ] + Resource: + !Sub ${createWebSiteS3Bucket.Arn}/CCP/* + - Action: 's3:*' + Resource: + !Sub ${createWebSiteS3Bucket.Arn}/CCP/* + Effect: Deny + Condition: + Bool: + 'aws:SecureTransport': false + Principal: '*' + - Action: 's3:*' + Resource: + !Sub ${createWebSiteS3Bucket.Arn}/CCP/* + Effect: Deny + Condition: + Bool: + 'aws:SecureTransport': false + Principal: '*' + + transcriptSegmentsDDBTable: + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - + AttributeName: "ContactId" + AttributeType: "S" + - + AttributeName: "StartTime" + AttributeType: "N" + KeySchema: + - + AttributeName: "ContactId" + KeyType: "HASH" + - + AttributeName: "StartTime" + KeyType: "RANGE" + # assuming 5 concurrent calls + ProvisionedThroughput: + ReadCapacityUnits: + 5 + WriteCapacityUnits: + 5 + PointInTimeRecoverySpecification: + PointInTimeRecoveryEnabled: True + SSESpecification: + SSEEnabled: True + TimeToLiveSpecification: + AttributeName: "ExpiresAfter" + Enabled: True + StreamSpecification: + StreamViewType: NEW_AND_OLD_IMAGES + Metadata: + cfn_nag: + rules_to_suppress: + - id: W73 + reason: "Billing mode needs to be determined by customer." + + transcriptSegmentsToCustomerDDBTable: + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - + AttributeName: "ContactId" + AttributeType: "S" + - + AttributeName: "StartTime" + AttributeType: "N" + KeySchema: + - + AttributeName: "ContactId" + KeyType: "HASH" + - + AttributeName: "StartTime" + KeyType: "RANGE" + # assuming 5 concurrent calls + ProvisionedThroughput: + ReadCapacityUnits: + 5 + WriteCapacityUnits: + 5 + PointInTimeRecoverySpecification: + PointInTimeRecoveryEnabled: True + SSESpecification: + SSEEnabled: True + TimeToLiveSpecification: + AttributeName: "ExpiresAfter" + Enabled: True + StreamSpecification: + StreamViewType: NEW_AND_OLD_IMAGES + Metadata: + cfn_nag: + rules_to_suppress: + - id: W73 + reason: "Billing mode needs to be determined by customer." + + contactDetailsDDBTable: + Type: AWS::DynamoDB::Table + Properties: + AttributeDefinitions: + - + AttributeName: "contactId" + AttributeType: "S" + KeySchema: + - + AttributeName: "contactId" + KeyType: "HASH" + # assuming 5 concurrent calls + ProvisionedThroughput: + ReadCapacityUnits: + 5 + WriteCapacityUnits: + 5 + PointInTimeRecoverySpecification: + PointInTimeRecoveryEnabled: True + SSESpecification: + SSEEnabled: True + Metadata: + cfn_nag: + rules_to_suppress: + - id: W73 + reason: "Billing mode needs to be determined by customer." + + AIPoweredSpeechAnalyticsKvsTranscribeRole: + Type: "AWS::IAM::Role" + Condition: ShouldCreateLambdaResource + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: kvs-streaming-transcribe-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "dynamodb:Query" + - "dynamodb:Scan" + - "dynamodb:PutItem" + - "dynamodb:UpdateItem" + - "dynamodb:GetRecords" + - "dynamodb:GetShardIterator" + - "dynamodb:DescribeStream" + - "dynamodb:ListStreams" + Resource: + - !Sub ${transcriptSegmentsDDBTable.Arn} + - !Sub ${transcriptSegmentsToCustomerDDBTable.Arn} + - + Effect: "Allow" + Action: + - "s3:PutObject" + - "s3:GetObject" + - "s3:PutObjectAcl" + Resource: + - !Sub ${createS3Bucket.Arn}/* + - + Effect: "Allow" + Action: + - "transcribe:DeleteTranscriptionJob" + - "transcribe:GetTranscriptionJob" + - "transcribe:GetVocabulary" + - "transcribe:ListTranscriptionJobs" + - "transcribe:ListVocabularies" + - "transcribe:StartStreamTranscription" + - "transcribe:StartTranscriptionJob" + Resource: "*" + - + Effect: "Allow" + Action: + - "kinesisvideo:Describe*" + - "kinesisvideo:Get*" + - "kinesisvideo:List*" + Resource: "*" + Metadata: + cfn_nag: + rules_to_suppress: + - id: F3 + reason: transcribe do not support resource-level permissions and kinesisvideo streams are dynamically created and therefore cannot be specificed directly + - id: W11 + reason: transcribe do not support resource-level permissions and kinesisvideo streams are dynamically created and therefore cannot be specificed directly + + AIPoweredSpeechAnalyticsKvsTriggerRole: + Type: "AWS::IAM::Role" + Condition: ShouldCreateLambdaResource + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: kvs-streaming-trigger-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "lambda:InvokeFunction" + - "lambda:InvokeAsync" + Resource: + - !GetAtt kvsTranscriber.Arn + + AIPoweredSpeechAnalyticsProcessContactRole: + Type: "AWS::IAM::Role" + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: process-contact-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "dynamodb:Query" + Resource: + - !Sub ${transcriptSegmentsDDBTable.Arn} + - !Sub ${transcriptSegmentsToCustomerDDBTable.Arn} + - + Effect: "Allow" + Action: + - "dynamodb:Update" + - "dynamodb:UpdateItem" + Resource: + - !Sub ${contactDetailsDDBTable.Arn} + + AIPoweredSpeechAnalyticsContactFlowCreatorRole: + Type: "AWS::IAM::Role" + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: contact-flow-creator-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "s3:PutObject" + Resource: + - !Sub ${createS3Bucket.Arn}/* + + AIPoweredSpeechAnalyticsApiGwLambdaRole: + Type: "AWS::IAM::Role" + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: apigw-lambda-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "dynamodb:DeleteItem" + - "dynamodb:GetRecords" + - "dynamodb:GetShardIterator" + - "dynamodb:PutItem" + - "dynamodb:Scan" + Resource: + - !Sub ${webSocketConnectionsDDBTable.Arn} + - + Effect: "Allow" + Action: + - "dynamodb:DescribeStream" + - "dynamodb:GetRecords" + - "dynamodb:GetShardIterator" + - "dynamodb:ListStreams" + Resource: + - !Sub ${transcriptSegmentsDDBTable.Arn}/* + - + Effect: "Allow" + Action: + - "execute-api:Invoke" + - "execute-api:InvalidateCache" + - "execute-api:ManageConnections" + Resource: + !Sub "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${AIPoweredSpeechAnalyticsWS}*" + + AIPoweredSpeechAnalyticsConnectUserStsRole: + Type: "AWS::IAM::Role" + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + AWS: + !Join + - '' + - - 'arn:' + - !Ref 'AWS::Partition' + - ':iam::' + - !Ref 'AWS::AccountId' + - ':' + - 'root' + Action: + - "sts:AssumeRole" + Path: "/" + + AIPoweredSpeechAnalyticsConnectUserStsPolicy: + Type: 'AWS::IAM::Policy' + Properties: + PolicyName: !Sub ${AWS::StackName}-UserStsPolicy + Roles: + - !Ref AIPoweredSpeechAnalyticsConnectUserStsRole + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - "comprehend:ListEntityRecognizers" + - "comprehend:DetectSentiment" + - "comprehend:DetectEntities" + - "comprehend:ListDocumentClassifiers" + - "comprehend:DetectSyntax" + - "comprehend:DetectKeyPhrases" + - "comprehend:DetectDominantLanguage" + Resource: "*" + - + Effect: "Allow" + Action: + - "translate:TranslateText" + Resource: "*" + - + Effect: "Allow" + Action: + - "s3:PutObject" + Resource: + - !Sub ${createS3Bucket.Arn}/* + - + Effect: "Allow" + Action: + - "connect:UpdateContactAttributes" + Resource: "*" + - + Effect: "Allow" + Action: + - "execute-api:Invoke" + - "execute-api:InvalidateCache" + - "execute-api:ManageConnections" + Resource: + !Join + - '' + - - 'arn:' + - !Ref 'AWS::Partition' + - ':execute-api:' + - !Ref 'AWS::Region' + - ':' + - !Ref 'AWS::AccountId' + - ':' + - !Ref AIPoweredSpeechAnalyticsWS + - '*' + Metadata: + cfn_nag: + rules_to_suppress: + - id: W12 + reason: comprehend, translate, and connect do not support resource-level permissions + + AIPoweredSpeechAnalyticsSTSTokenLambdaIAMRole: + Type: "AWS::IAM::Role" + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: connect-aipsas-ststoken + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "dynamodb:UpdateItem" + Resource: + - !Sub ${contactDetailsDDBTable.Arn} + - Effect: "Allow" + Action: + - 'sts:AssumeRole' + Resource: + - !GetAtt AIPoweredSpeechAnalyticsConnectUserStsRole.Arn + + kvsTranscriber: + Type: "AWS::Lambda::Function" + Condition: ShouldCreateLambdaResource + Properties: + Description: > + Process audio from Kinesis Video Stream and use Amazon Transcribe to get text + for the caller audio. Will be invoked by the kvsConsumerTrigger Lambda, writes results to the + transcriptSegmentsDDBTable, and uploads the audio file to S3. + + Handler: "com.amazonaws.kvstranscribestreaming.KVSTranscribeStreamingLambda::handleRequest" + Role: !GetAtt AIPoweredSpeechAnalyticsKvsTranscribeRole.Arn + Runtime: java8 + MemorySize: 512 + # maximum timeout is 15 minutes today + Timeout: 900 + Environment: + Variables: + # JAVA_TOOL_OPTIONS: "-Djavax.net.ssl.trustStore=lib/InternalAndExternalTrustStore.jks -Djavax.net.ssl.trustStorePassword=amazon" + APP_REGION: !Ref "AWS::Region" + TRANSCRIBE_REGION: !Ref "AWS::Region" + RECORDINGS_BUCKET_NAME: !Ref S3BucketName + RECORDINGS_KEY_PREFIX: !Ref audioFilePrefix + INPUT_KEY_PREFIX: !Ref rawAudioUploadPrefix + TABLE_CALLER_TRANSCRIPT: !Ref transcriptSegmentsDDBTable + TABLE_CALLER_TRANSCRIPT_TO_CUSTOMER: !Ref transcriptSegmentsToCustomerDDBTable + RECORDINGS_PUBLIC_READ_ACL: "FALSE" + START_SELECTOR_TYPE: "NOW" + CONSOLE_LOG_TRANSCRIPT_FLAG: "TRUE" + LOGGING_LEVEL: "FINE" + SAVE_PARTIAL_TRANSCRIPTS: "TRUE" + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'kvs_transcribe_streaming_lambda.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + kvsConsumerTrigger: + Type: "AWS::Lambda::Function" + Condition: ShouldCreateLambdaResource + Properties: + Description: > + AWS Lambda Function to start (asynchronous) streaming transcription; it is expected to be called by the + Amazon Connect Contact Flow. + Handler: "index.handler" + Role: !GetAtt AIPoweredSpeechAnalyticsKvsTriggerRole.Arn + Runtime: "nodejs14.x" + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + transcriptionFunction: !Ref kvsTranscriber + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'kvs_trigger.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + initContactDetails: + Type: "AWS::Lambda::Function" + Properties: + Description: > + AWS Lambda Function that will be triggered when the call starts so that we have the initial contact details which can later add to when we have the transcript, and audio file location. + Handler: "index.handler" + Role: !GetAtt AIPoweredSpeechAnalyticsSTSTokenLambdaIAMRole.Arn + Runtime: "nodejs14.x" + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + table_name: !Ref contactDetailsDDBTable + assume_role: !GetAtt AIPoweredSpeechAnalyticsConnectUserStsRole.Arn + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'contact_init.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + processContactSummary: + Type: "AWS::Lambda::Function" + Properties: + Description: > + AWS Lambda Function that will be triggered when the wav call recording file is placed in S3. This function will collect all the transcript segments, and the audio file location and update the contact db. + Handler: "index.handler" + Role: !GetAtt AIPoweredSpeechAnalyticsProcessContactRole.Arn + Runtime: "nodejs14.x" + MemorySize: 256 + Timeout: 120 + Environment: + Variables: + contact_table_name: !Ref contactDetailsDDBTable + transcript_seg_table_name: !Ref transcriptSegmentsDDBTable + transcript_seg_to_customer_table_name: !Ref transcriptSegmentsToCustomerDDBTable + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'process_contact.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + #DynamoDB Table to maintain connections and contactId information + webSocketConnectionsDDBTable: + Type: 'AWS::DynamoDB::Table' + Properties: + AttributeDefinitions: + - AttributeName: connectionId + AttributeType: S + KeySchema: + - AttributeName: connectionId + KeyType: HASH + ProvisionedThroughput: + ReadCapacityUnits: 5 + WriteCapacityUnits: 5 + PointInTimeRecoverySpecification: + PointInTimeRecoveryEnabled: true + SSESpecification: + SSEEnabled: true + TimeToLiveSpecification: + AttributeName: ExpiresAfter + Enabled: true + Metadata: + cfn_nag: + rules_to_suppress: + - id: W73 + reason: "Billing mode needs to be determined by customer." + + #Beggining of Websocket API + AIPoweredSpeechAnalyticsWS: + Type: 'AWS::ApiGatewayV2::Api' + Properties: + Name: AIPoweredSpeechAnalyticsWS + ProtocolType: WEBSOCKET + RouteSelectionExpression: $request.body.action + + ConnectRoute: + Type: 'AWS::ApiGatewayV2::Route' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + RouteKey: $connect + AuthorizationType: AWS_IAM + OperationName: ConnectRoute + Target: !Join + - / + - - integrations + - !Ref ConnectInteg + + ConnectInteg: + Type: 'AWS::ApiGatewayV2::Integration' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + Description: Connect Integration + IntegrationType: AWS_PROXY + IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeOnConnect.Arn}/invocations + + DisconnectRoute: + Type: 'AWS::ApiGatewayV2::Route' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + RouteKey: $disconnect + OperationName: DisconnectRoute + Target: !Join + - / + - - integrations + - !Ref DisconnectInteg + + DisconnectInteg: + Type: 'AWS::ApiGatewayV2::Integration' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + Description: Disconnect Integration + IntegrationType: AWS_PROXY + IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeOnDisConnect.Arn}/invocations + + SendRoute: + Type: 'AWS::ApiGatewayV2::Route' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + RouteKey: sendmessage + OperationName: SendRoute + Target: !Join + - / + - - integrations + - !Ref SendInteg + + SendInteg: + Type: 'AWS::ApiGatewayV2::Integration' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + Description: Send Integration + IntegrationType: AWS_PROXY + IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeOnMessage.Arn}/invocations + + NewCallRoute: + Type: 'AWS::ApiGatewayV2::Route' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + RouteKey: newcall + OperationName: NewCallRoute + Target: !Join + - / + - - integrations + - !Ref NewCallInteg + + NewCallInteg: + Type: 'AWS::ApiGatewayV2::Integration' + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + Description: New Call Integration + IntegrationType: AWS_PROXY + IntegrationUri: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${wsrealtimetranscribeDefault.Arn}/invocations + + Deployment: + Type: 'AWS::ApiGatewayV2::Deployment' + DependsOn: + - ConnectRoute + - SendRoute + - DisconnectRoute + - NewCallRoute + Properties: + ApiId: !Ref AIPoweredSpeechAnalyticsWS + + Stage: + Type: 'AWS::ApiGatewayV2::Stage' + Properties: + StageName: Prod + Description: Prod Stage + DeploymentId: !Ref Deployment + ApiId: !Ref AIPoweredSpeechAnalyticsWS + AccessLogSettings: + DestinationArn: !GetAtt ApiAccessLogGroup.Arn + Format: >- + {"requestId": "$context.requestId", "caller": "$context.identity.caller", "requestTime": "$context.requestTime", "httpMethod": "$context.httpMethod", "resourcePath": "$context.resourcePath", "status": "$context.status", "responseLength": "$context.responseLength", "integrationLatency": "$context.integrationLatency"}" + Metadata: + cfn_nag: + rules_to_suppress: + - id: W46 + reason: Access Log Setting is applied + + ApiGwIamRole: + Type: AWS::IAM::Role + Properties: + Path: / + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: + - apigateway.amazonaws.com + Action: sts:AssumeRole + ManagedPolicyArns: + - "arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" + + ApiGwAccountConfig: + Type: "AWS::ApiGateway::Account" + Properties: + CloudWatchRoleArn: !GetAtt "ApiGwIamRole.Arn" + + ApiAccessLogGroup: + Type: AWS::Logs::LogGroup + Properties: + RetentionInDays: 3653 + Metadata: + cfn_nag: + rules_to_suppress: + - id: W84 + reason: By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys). + + wsrealtimetranscribeOnConnect: + Type: 'AWS::Lambda::Function' + Properties: + Description: AWS Lambda Function that will be triggered when the browser initiates the websocket connection. + Handler: index.handler + Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn + Runtime: nodejs14.x + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + TABLE_NAME: !Ref webSocketConnectionsDDBTable + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnConnect.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + wsrealtimetranscribeOnConnectPermission: + Type: 'AWS::Lambda::Permission' + DependsOn: + - AIPoweredSpeechAnalyticsWS + - wsrealtimetranscribeOnConnect + Properties: + Action: 'lambda:InvokeFunction' + FunctionName: !Ref wsrealtimetranscribeOnConnect + Principal: apigateway.amazonaws.com + + wsrealtimetranscribeOnDisConnect: + Type: 'AWS::Lambda::Function' + Properties: + Description: AWS Lambda Function that will be triggered when the browser disconnect the websocket connection. + Handler: index.handler + Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn + Runtime: nodejs14.x + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + TABLE_NAME: !Ref webSocketConnectionsDDBTable + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnDisconnect.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + wsrealtimetranscribeOnDisConnectPermission: + Type: 'AWS::Lambda::Permission' + DependsOn: + - AIPoweredSpeechAnalyticsWS + - wsrealtimetranscribeOnDisConnect + Properties: + Action: 'lambda:InvokeFunction' + FunctionName: !Ref wsrealtimetranscribeOnDisConnect + Principal: apigateway.amazonaws.com + + wsrealtimetranscribeOnMessage: + Type: 'AWS::Lambda::Function' + Properties: + Description: AWS Lambda Function that will be triggered when a message arrives from websocket. + Handler: index.handler + Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn + Runtime: nodejs14.x + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + TABLE_NAME: !Ref webSocketConnectionsDDBTable + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnMessage.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + wsrealtimetranscribeOnMessagePermission: + Type: 'AWS::Lambda::Permission' + DependsOn: + - AIPoweredSpeechAnalyticsWS + - wsrealtimetranscribeOnMessage + Properties: + Action: 'lambda:InvokeFunction' + FunctionName: !Ref wsrealtimetranscribeOnMessage + Principal: apigateway.amazonaws.com + + wsrealtimetranscribeDefault: + Type: 'AWS::Lambda::Function' + Properties: + Description: AWS Lambda Function that will be triggered when no action is mapped to the websocket. + Handler: index.handler + Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn + Runtime: nodejs14.x + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + TABLE_NAME: !Ref webSocketConnectionsDDBTable + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_Default.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + wsrealtimetranscribeDefaultPermission: + Type: 'AWS::Lambda::Permission' + DependsOn: + - AIPoweredSpeechAnalyticsWS + - wsrealtimetranscribeDefault + Properties: + Action: 'lambda:InvokeFunction' + FunctionName: !Ref wsrealtimetranscribeDefault + Principal: apigateway.amazonaws.com + + wsrealtimetranscribeOnDDBInsert: + Type: 'AWS::Lambda::Function' + DependsOn: + - transcriptSegmentsDDBTable + Properties: + Description: AWS Lambda Function that will be triggered when transcribe segments are written into the dynamodb. + Handler: index.handler + Role: !GetAtt AIPoweredSpeechAnalyticsApiGwLambdaRole.Arn + Runtime: nodejs14.x + MemorySize: 128 + Timeout: 30 + Environment: + Variables: + TABLE_NAME: !Ref webSocketConnectionsDDBTable + DOMAIN_NAME: !Join + - '' + - - !Ref AIPoweredSpeechAnalyticsWS + - .execute-api. + - !Ref 'AWS::Region' + - .amazonaws.com + STAGE_NAME: !Ref Stage + + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'ws_realtime_transcribe_OnDDBInsert.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + transcribeSegmentsDDBTrigger: + Type: AWS::Lambda::EventSourceMapping + DependsOn: + - transcriptSegmentsDDBTable + - AIPoweredSpeechAnalyticsApiGwLambdaRole + - wsrealtimetranscribeOnDDBInsert + Properties: + BatchSize: 1 + Enabled: True + EventSourceArn: + Fn::GetAtt: [ transcriptSegmentsDDBTable, StreamArn ] + FunctionName: !GetAtt wsrealtimetranscribeOnDDBInsert.Arn + StartingPosition: LATEST + + AIPoweredSpeechAnalyticsLambdaCRHIAMRole: + Type: "AWS::IAM::Role" + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: connect-kvs-s3-for-aipsas + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: "Allow" + Action: + - "s3:PutObject" + - "s3:GetObject" + - "s3:PutObjectAcl" + Resource: + - !Sub ${createWebSiteS3Bucket.Arn}/* + - + Effect: "Allow" + Action: + - "s3:GetObject" + Resource: + - !Join + - '' + - - 'arn:' + - !Ref 'AWS::Partition' + - ':s3:::' + - !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + - '/*' + + CustomResourceHelper: + Type: AWS::Lambda::Function + Properties: + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'custom-resource-helper.zip']] + Description: Solution Accelerator for Web Analytics - Function to deploy web pages. + Handler: index.handler + MemorySize: 256 + Role: !GetAtt AIPoweredSpeechAnalyticsLambdaCRHIAMRole.Arn + Runtime: nodejs14.x + Timeout: 300 + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + SolutionAnonymousMetric: + Type: "Custom::LoadLambda" + Properties: + ServiceToken: + Fn::GetAtt: + - "CustomResourceHelper" + - "Arn" + Region: + - Ref: "AWS::Region" + solutionId: !FindInMap ["FunctionMap", "Configuration", "SolutionID"] + UUID: !GetAtt SolutionUuid.UUID + version: "1" + anonymousData: !FindInMap ["Send", "AnonymousUsage", "Data"] + customAction: "sendMetric" + + SolutionUuid: + Type: "Custom::LoadLambda" + Properties: + ServiceToken: + Fn::GetAtt: + - "CustomResourceHelper" + - "Arn" + Region: + - Ref: "AWS::Region" + customAction: "createUuid" + + ConfigureWebsite: + Type: Custom::LoadLambda + DependsOn: + - createS3Bucket + - AIPoweredSpeechAnalyticsWS + Properties: + ServiceToken: !GetAtt CustomResourceHelper.Arn + Region: !Ref AWS::Region + customAction: configureWebsite + sourceS3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + sourceS3key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'web_site']] + destS3Bucket: !Ref createWebSiteS3Bucket + destS3KeyPrefix: CCP + transcriptS3KeyBucket: !Ref S3BucketName + instanceId: !Ref instanceIdParam + instanceName: !Ref instanceNameParam + UUID: !GetAtt SolutionUuid.UUID + data: !FindInMap [Send, AnonymousUsage, Data] + solutionId: !FindInMap [FunctionMap, Configuration, SolutionID] + version: !FindInMap [FunctionMap, Configuration, Version] + webSocketHost: + !Join + - '' + - - 'wss://' + - !Ref AIPoweredSpeechAnalyticsWS + - .execute-api. + - !Ref 'AWS::Region' + - .amazonaws.com/ + - !Ref Stage + + AIPSAnalyticsCloudFrontDistributionAccessIdentity: + Type: AWS::CloudFront::CloudFrontOriginAccessIdentity + Properties: + CloudFrontOriginAccessIdentityConfig: + Comment: 'CloudFront OAI for AI Powered Speech Analytics' + + AIPSAnalyticsCloudFrontDistribution: + Type: AWS::CloudFront::Distribution + DependsOn: + - CustomResourceHelper + - createWebSiteS3Bucket + - createS3Bucket + Properties: + DistributionConfig: + Origins: + - DomainName: + !Join + - '' + - - !Ref S3BucketNameForWebSite + - .s3.amazonaws.com + Id: !Ref S3BucketNameForWebSite + OriginPath: '/CCP' + S3OriginConfig: + OriginAccessIdentity: + !Join + - '' + - - 'origin-access-identity/cloudfront/' + - !Ref AIPSAnalyticsCloudFrontDistributionAccessIdentity + Enabled: 'true' + Logging: + Bucket: !GetAtt createS3Bucket.DomainName + Prefix: 'logs/' + IncludeCookies: 'true' + Comment: CloudFront for AI Powered Speech Analytics + DefaultRootObject: agentAssist.html + DefaultCacheBehavior: + AllowedMethods: + - DELETE + - GET + - HEAD + - OPTIONS + - PATCH + - POST + - PUT + TargetOriginId: !Ref S3BucketNameForWebSite + ForwardedValues: + QueryString: true + Cookies: + Forward: all + ViewerProtocolPolicy: redirect-to-https + PriceClass: !Ref cloudFrontPriceClass + Restrictions: + GeoRestriction: + RestrictionType: whitelist + Locations: + - US + - JP + - AU + - FR + Metadata: + cfn_nag: + rules_to_suppress: + - id: W70 + reason: This is using Cloudfront default TLS, can be changed by customer if needed. + +# Fargate Resources + transcriberECRRepository: + Type: AWS::ECR::Repository + Condition: ShouldCreateFargateResources + Properties: + ImageScanningConfiguration: + ScanOnPush: "true" + RepositoryPolicyText: + Version: "2012-10-17" + Statement: + - + Sid: "Allow Amazon ECR read access to the users of this AWS account" + Effect: Allow + Principal: + AWS: + - !Sub ${AWS::AccountId} + Action: + - "ecr:GetDownloadUrlForLayer" + - "ecr:BatchGetImage" + - "ecr:BatchCheckLayerAvailability" + + transcriberCodeBuildServiceRole: + Type: AWS::IAM::Role + Condition: ShouldCreateFargateResources + Properties: + Path: / + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Action: sts:AssumeRole + Effect: Allow + Principal: + Service: codebuild.amazonaws.com + Policies: + - PolicyName: ecs-service + PolicyDocument: + Version: 2012-10-17 + Statement: + - Resource: + - !Join + - '' + - - 'arn:' + - !Ref 'AWS::Partition' + - ':s3:::' + - !Join ["/", [!Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]], !FindInMap [FunctionMap, Configuration, S3Key]]] + - '/*' + Effect: Allow + Action: + - s3:GetObject + - s3:GetObjectVersion + - s3:GetBucketAcl + - s3:GetBucketLocation + - s3:PutObject + - s3:ListObjects + - s3:ListBucket + - Resource: + - !Sub 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/*' + - !Sub 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/*:*' + Effect: Allow + Action: + - logs:CreateLogGroup + - logs:CreateLogStream + - logs:PutLogEvents + - Resource: + Fn::Join: + - '' + - - !Sub 'arn:aws:ecr:${AWS::Region}:${AWS::AccountId}:repository/' + - !Ref transcriberECRRepository + Effect: Allow + Action: + - ecr:DescribeImages + - ecr:ListImages + - ecr:PutImage + - ecr:BatchCheckLayerAvailability + - ecr:BatchGetImage + - ecr:CompleteLayerUpload + - ecr:GetDownloadUrlForLayer + - ecr:GetRepositoryPolicy + - ecr:InitiateLayerUpload + - ecr:UploadLayerPart + - Resource: "*" + Effect: Allow + Action: + - ecr:GetAuthorizationToken + Metadata: + cfn_nag: + rules_to_suppress: + - id: W11 + reason: ECR do not support resource-level permissions for GetAuthorizationToken and therefore cannot be specificed directly. + + transcriberCodeBuildProject: + Type: AWS::CodeBuild::Project + Condition: ShouldCreateFargateResources + Properties: + Description: "ProjectName" + ServiceRole: !Ref transcriberCodeBuildServiceRole + EncryptionKey: alias/aws/s3 + Artifacts: + Type: no_artifacts + Source: + Location: + Fn::Join: + - "/" + - - !Join ["/", [!Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]], !FindInMap [FunctionMap, Configuration, S3Key]]] + - kvs_transcribe_streaming_fargate.zip + Type: "S3" + BuildSpec: | + version: 0.2 + phases: + install: + runtime-versions: + docker: 18 + commands: + - apt-get -y update + - apt-get -y install jq + pre_build: + commands: + - echo "Starting docker daemon..." + - echo ${SOURCE_CODE_LOCATION} + - echo `ls -altr` + - echo `pwd` + - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2& + - timeout 15 sh -c "until docker info; do echo .; sleep 1; done" + - echo "Logging into Amazon ECR..." + - $(aws ecr get-login --no-include-email --region ${AWS_DEFAULT_REGION}) + build: + commands: + - echo Build started on `date` + - docker build -t "${REPOSITORY_URI}:latest" -f kvs_transcribe_streaming_lambda/Dockerfile . + - printf '{"RepositoryUri":"%s","ProjectName":"%s","ArtifactBucket":"%s"}' $REPOSITORY_URI $PROJECT_NAME $ARTIFACT_BUCKET > build.json + post_build: + commands: + - echo Build completed on `date` + - echo "Pushing Docker image to ECR" + - docker push "${REPOSITORY_URI}:latest" + artifacts: + files: + - build.json + Environment: + ComputeType: "BUILD_GENERAL1_SMALL" + Image: "aws/codebuild/standard:4.0" + Type: "LINUX_CONTAINER" + PrivilegedMode: True + EnvironmentVariables: + - Name: AWS_DEFAULT_REGION + Value: !Ref AWS::Region + - Name: AWS_ACCOUNT_ID + Value: !Ref 'AWS::AccountId' + - Name: REPOSITORY_URI + Value: !Sub ${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${transcriberECRRepository} + - Name: SOURCE_CODE_LOCATION + Value: !Join ["/", [!Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]], !FindInMap [FunctionMap, Configuration, S3Key]]] + TimeoutInMinutes: 10 + + LambdaCodeBuildStartBuildExecutionRole: + Type: AWS::IAM::Role + Condition: ShouldCreateFargateResources + DependsOn: + - transcriberCodeBuildProject + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: + - lambda.amazonaws.com + Action: + - sts:AssumeRole + Path: "/" + Policies: + - PolicyName: root + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: + - codebuild:StartBuild + Resource: !GetAtt transcriberCodeBuildProject.Arn + - Effect: Allow + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - Effect: Allow + Resource: + - !Sub 'arn:aws:ecr:${AWS::Region}:${AWS::AccountId}:repository/${transcriberECRRepository}' + Action: + - ecr:DescribeImages + - ecr:ListImages + - ecr:BatchGetImage + - ecr:BatchDeleteImage + + CodeBuildRun: + Type: Custom::CodeBuildRun + Condition: ShouldCreateFargateResources + Properties: + ServiceToken: !GetAtt LambdaCodeBuildStartBuild.Arn + BuildProjectName: !Ref transcriberCodeBuildProject + ECRRepository: !Ref transcriberECRRepository + + LambdaCodeBuildStartBuild: + Type: AWS::Lambda::Function + Condition: ShouldCreateFargateResources + Properties: + Role: !GetAtt LambdaCodeBuildStartBuildExecutionRole.Arn + Runtime: python3.8 + Timeout: 300 + MemorySize: 128 + Handler: lambda_start_codebuild.lambda_handler + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'lambda_start_codebuild.zip']] + Description: This AWS Lambda Function kicks off a code build job. + DependsOn: + - transcriberCodeBuildProject + - LambdaCodeBuildStartBuildExecutionRole + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + transcribingQueue: + Type: AWS::SQS::Queue + Properties: + KmsMasterKeyId: alias/aws/sqs + Condition: ShouldCreateFargateResources + + transcribingFargateTriggerServiceRole: + Type: AWS::IAM::Role + Condition: ShouldCreateFargateResources + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Principal: + Service: + - "lambda.amazonaws.com" + Action: + - "sts:AssumeRole" + Path: "/" + Policies: + - + PolicyName: !Sub ${AWS::StackName}-transcribingFargateTriggerServiceRoleDefaultPolicy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: + - !Sub "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - + Effect: Allow + Action: + - sqs:SendMessage + - sqs:GetQueueAttributes + - sqs:GetQueueUrl + Resource: + Fn::GetAtt: + - transcribingQueue + - Arn + + transcribingFargateTrigger: + Type: AWS::Lambda::Function + Condition: ShouldCreateFargateResources + Properties: + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'lambda_transcribing_fargate_trigger.zip']] + Description: This Lambda triggered by the Agent whisper contact flow sends an Amazon SQS Message with the stream details for an inbound contact. + Handler: lambda_transcribing_fargate_trigger.lambda_handler + Role: + Fn::GetAtt: + - transcribingFargateTriggerServiceRole + - Arn + Runtime: python3.8 + Environment: + Variables: + QUEUE_URL: + Ref: transcribingQueue + TracingConfig: + Mode: Active + DependsOn: + - transcribingFargateTriggerServiceRole + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + allowConnectToTranscribingFargateTriggerLambda: + Type: 'AWS::Lambda::Permission' + Condition: ShouldCreateFargateResources + Properties: + FunctionName: !Ref transcribingFargateTrigger + Action: 'lambda:InvokeFunction' + Principal: connect.amazonaws.com + SourceAccount: !Ref 'AWS::AccountId' + + transcribingVPC: + Type: AWS::EC2::VPC + Condition: ShouldCreateFargateResources + Properties: + CidrBlock: 10.0.0.0/16 + EnableDnsHostnames: true + EnableDnsSupport: true + InstanceTenancy: default + + VPCFlowLogsLogGroup: + Type: AWS::Logs::LogGroup + Condition: ShouldCreateFargateResources + Properties: + RetentionInDays: 3653 + Metadata: + cfn_nag: + rules_to_suppress: + - id: W84 + reason: By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys). + VPCFlowLogsRole: + Type: AWS::IAM::Role + Condition: ShouldCreateFargateResources + Metadata: + cfn_nag: + rules_to_suppress: + - id: W11 + reason: "Allow Resource * for CloudWatch Logs API since the resources are customer defined." + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: + - vpc-flow-logs.amazonaws.com + Action: + - sts:AssumeRole + Path: / + Policies: + - PolicyName: LogRolePolicy + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: + - logs:CreateLogGroup + - logs:CreateLogStream + - logs:DescribeLogGroups + - logs:DescribeLogStreams + - logs:PutLogEvents + Resource: '*' + VPCFlowLog: + Type: AWS::EC2::FlowLog + Condition: ShouldCreateFargateResources + Properties: + DeliverLogsPermissionArn: !GetAtt 'VPCFlowLogsRole.Arn' + LogGroupName: !Ref 'VPCFlowLogsLogGroup' + ResourceId: !Ref 'transcribingVPC' + ResourceType: VPC + TrafficType: ALL + DependsOn: + - transcribingVPC + - VPCFlowLogsLogGroup + transcribingVPCPublicSubnet1Subnet: + Type: AWS::EC2::Subnet + Condition: ShouldCreateFargateResources + Properties: + CidrBlock: 10.0.0.0/18 + VpcId: + Ref: transcribingVPC + AvailabilityZone: + Fn::Select: + - 0 + - Fn::GetAZs: "" + MapPublicIpOnLaunch: true + Metadata: + cfn_nag: + rules_to_suppress: + - id: W33 + reason: Public IP on launch is needed by the solution + DependsOn: + - transcribingVPC + + transcribingVPCPublicSubnet1RouteTable: + Type: AWS::EC2::RouteTable + Condition: ShouldCreateFargateResources + Properties: + VpcId: + Ref: transcribingVPC + DependsOn: + - transcribingVPC + + transcribingVPCPublicSubnet1RouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPublicSubnet1RouteTable + SubnetId: + Ref: transcribingVPCPublicSubnet1Subnet + + transcribingVPCPublicSubnet1DefaultRoute: + Type: AWS::EC2::Route + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPublicSubnet1RouteTable + DestinationCidrBlock: 0.0.0.0/0 + GatewayId: + Ref: transcribingVPCIGW + DependsOn: + - transcribingVPCVPCGW + + transcribingVPCPublicSubnet: + Type: AWS::EC2::EIP + Condition: ShouldCreateFargateResources + Properties: + Domain: vpc + + transcribingVPCPublicSubnet1NATGateway: + Type: AWS::EC2::NatGateway + Condition: ShouldCreateFargateResources + Properties: + AllocationId: + Fn::GetAtt: + - transcribingVPCPublicSubnet + - AllocationId + SubnetId: + Ref: transcribingVPCPublicSubnet1Subnet + + transcribingVPCPublicSubnet2Subnet: + Type: AWS::EC2::Subnet + Condition: ShouldCreateFargateResources + Properties: + CidrBlock: 10.0.64.0/18 + VpcId: + Ref: transcribingVPC + AvailabilityZone: + Fn::Select: + - 1 + - Fn::GetAZs: "" + MapPublicIpOnLaunch: true + Metadata: + cfn_nag: + rules_to_suppress: + - id: W33 + reason: Public IP on launch is needed by the solution + + transcribingVPCPublicSubnet2RouteTable: + Type: AWS::EC2::RouteTable + Condition: ShouldCreateFargateResources + Properties: + VpcId: + Ref: transcribingVPC + + transcribingVPCPublicSubnet2RouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPublicSubnet2RouteTable + SubnetId: + Ref: transcribingVPCPublicSubnet2Subnet + + transcribingVPCPublicSubnet2DefaultRoute: + Type: AWS::EC2::Route + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPublicSubnet2RouteTable + DestinationCidrBlock: 0.0.0.0/0 + GatewayId: + Ref: transcribingVPCIGW + DependsOn: + - transcribingVPCVPCGW + + transcribingVPCPublicSubnet2: + Type: AWS::EC2::EIP + Condition: ShouldCreateFargateResources + Properties: + Domain: vpc + + transcribingVPCPublicSubnet2NATGateway: + Type: AWS::EC2::NatGateway + Condition: ShouldCreateFargateResources + Properties: + AllocationId: + Fn::GetAtt: + - transcribingVPCPublicSubnet2 + - AllocationId + SubnetId: + Ref: transcribingVPCPublicSubnet2Subnet + + transcribingVPCPrivateSubnet1Subnet: + Type: AWS::EC2::Subnet + Condition: ShouldCreateFargateResources + Properties: + CidrBlock: 10.0.128.0/18 + VpcId: + Ref: transcribingVPC + AvailabilityZone: + Fn::Select: + - 0 + - Fn::GetAZs: "" + MapPublicIpOnLaunch: false + + transcribingVPCPrivateSubnet1RouteTable: + Type: AWS::EC2::RouteTable + Condition: ShouldCreateFargateResources + Properties: + VpcId: + Ref: transcribingVPC + + transcribingVPCPrivateSubnet1RouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPrivateSubnet1RouteTable + SubnetId: + Ref: transcribingVPCPrivateSubnet1Subnet + + transcribingVPCPrivateSubnet1DefaultRoute: + Type: AWS::EC2::Route + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPrivateSubnet1RouteTable + DestinationCidrBlock: 0.0.0.0/0 + NatGatewayId: + Ref: transcribingVPCPublicSubnet1NATGateway + + transcribingVPCPrivateSubnet2Subnet: + Type: AWS::EC2::Subnet + Condition: ShouldCreateFargateResources + Properties: + CidrBlock: 10.0.192.0/18 + VpcId: + Ref: transcribingVPC + AvailabilityZone: + Fn::Select: + - 1 + - Fn::GetAZs: "" + MapPublicIpOnLaunch: false + + transcribingVPCPrivateSubnet2RouteTable: + Type: AWS::EC2::RouteTable + Condition: ShouldCreateFargateResources + Properties: + VpcId: + Ref: transcribingVPC + + transcribingVPCPrivateSubnet2RouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPrivateSubnet2RouteTable + SubnetId: + Ref: transcribingVPCPrivateSubnet2Subnet + + transcribingVPCPrivateSubnet2DefaultRoute: + Type: AWS::EC2::Route + Condition: ShouldCreateFargateResources + Properties: + RouteTableId: + Ref: transcribingVPCPrivateSubnet2RouteTable + DestinationCidrBlock: 0.0.0.0/0 + NatGatewayId: + Ref: transcribingVPCPublicSubnet2NATGateway + + transcribingVPCIGW: + Type: AWS::EC2::InternetGateway + Condition: ShouldCreateFargateResources + + transcribingVPCVPCGW: + Type: AWS::EC2::VPCGatewayAttachment + Condition: ShouldCreateFargateResources + Properties: + VpcId: + Ref: transcribingVPC + InternetGatewayId: + Ref: transcribingVPCIGW + + transcribingCluster: + Type: AWS::ECS::Cluster + Condition: ShouldCreateFargateResources + Properties: + ClusterSettings: + - Name: containerInsights + Value: enabled + + transcriberPoolQueueProcessingTaskDefTaskRole: + Type: AWS::IAM::Role + Condition: ShouldCreateFargateResources + Properties: + AssumeRolePolicyDocument: + Statement: + - Action: sts:AssumeRole + Effect: Allow + Principal: + Service: ecs-tasks.amazonaws.com + Version: "2012-10-17" + + transcriberPoolQueueProcessingTaskDefTaskRoleDefaultPolicy: + Type: AWS::IAM::Policy + Condition: ShouldCreateFargateResources + Properties: + PolicyDocument: + Statement: + - Action: + - sqs:ReceiveMessage + - sqs:ChangeMessageVisibility + - sqs:GetQueueUrl + - sqs:DeleteMessage + - sqs:GetQueueAttributes + Effect: Allow + Resource: + Fn::GetAtt: + - transcribingQueue + - Arn + - Action: + - s3:GetObject* + - s3:GetBucket* + - s3:List* + - s3:DeleteObject* + - s3:PutObject* + - s3:Abort* + Effect: Allow + Resource: + - Fn::GetAtt: + - createS3Bucket + - Arn + - Fn::Join: + - "" + - - Fn::GetAtt: + - createS3Bucket + - Arn + - /* + - Action: + - dynamodb:BatchGetItem + - dynamodb:GetRecords + - dynamodb:GetShardIterator + - dynamodb:Query + - dynamodb:GetItem + - dynamodb:Scan + - dynamodb:BatchWriteItem + - dynamodb:PutItem + - dynamodb:UpdateItem + - dynamodb:DeleteItem + Effect: Allow + Resource: + - Fn::GetAtt: + - transcriptSegmentsDDBTable + - Arn + - Fn::GetAtt: + - transcriptSegmentsToCustomerDDBTable + - Arn + - Action: + - transcribe:DeleteTranscriptionJob + - transcribe:GetTranscriptionJob + - transcribe:GetVocabulary + - transcribe:ListTranscriptionJobs + - transcribe:ListVocabularies + - transcribe:StartStreamTranscription + - transcribe:StartTranscriptionJob + Effect: Allow + Resource: "*" + - + Action: + - "kinesisvideo:Describe*" + - "kinesisvideo:Get*" + - "kinesisvideo:List*" + Effect: "Allow" + Resource: "*" + - Action: + - logs:CreateLogStream + - logs:PutLogEvents + Effect: Allow + Resource: + Fn::GetAtt: + - transcriberPoolQueueProcessingTaskDefxraydaemonLogGroup + - Arn + Version: "2012-10-17" + PolicyName: !Sub ${AWS::StackName}-transcriberPoolQueueProcessingTaskDefTaskRoleDefaultPolicy + Roles: + - Ref: transcriberPoolQueueProcessingTaskDefTaskRole + Metadata: + cfn_nag: + rules_to_suppress: + - id: W12 + reason: comprehend, translate, and connect do not support resource-level permissions. + + transcriberPoolQueueProcessingTaskDef: + Type: AWS::ECS::TaskDefinition + Condition: ShouldCreateFargateResources + Properties: + ContainerDefinitions: + - + Environment: + - Name: MAX_THREADS + Value: "30" + - Name: APP_REGION + Value: !Ref AWS::Region + - Name: RECORDINGS_BUCKET_NAME + Value: + Ref: S3BucketName + - Name: RECORDINGS_KEY_PREFIX + Value: + Ref: audioFilePrefix + - Name: RECORDINGS_PUBLIC_READ_ACL + Value: "FALSE" + - Name: START_SELECTOR_TYPE + Value: "NOW" + - Name: TRANSCRIBE_REGION + Value: !Ref AWS::Region + - Name: AWS_REGION + Value: !Ref AWS::Region + - Name: INPUT_KEY_PREFIX + Value: !Ref rawAudioUploadPrefix + - Name: CONSOLE_LOG_TRANSCRIPT_FLAG + Value: "TRUE" + - Name: LOGGING_LEVEL + Value: FINE + - Name: TABLE_CALLER_TRANSCRIPT + Value: + Ref: transcriptSegmentsDDBTable + - Name: TABLE_CALLER_TRANSCRIPT_TO_CUSTOMER + Value: + Ref: transcriptSegmentsToCustomerDDBTable + - Name: SAVE_PARTIAL_TRANSCRIPTS + Value: "TRUE" + - Name: QUEUE_NAME + Value: + Fn::GetAtt: + - transcribingQueue + - QueueName + Essential: true + Image: !Sub ${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${transcriberECRRepository}:latest + LogConfiguration: + LogDriver: awslogs + Options: + awslogs-group: + Ref: transcriberPoolQueueProcessingTaskDefQueueProcessingContainerLogGroup + awslogs-stream-prefix: transcriberPool + awslogs-region: + Ref: AWS::Region + Name: QueueProcessingContainer + - Cpu: 32 + Essential: false + Image: amazon/aws-xray-daemon + LogConfiguration: + LogDriver: awslogs + Options: + awslogs-group: + Ref: transcriberPoolQueueProcessingTaskDefxraydaemonLogGroup + awslogs-stream-prefix: xrayLog + awslogs-region: + Ref: AWS::Region + MemoryReservation: 256 + Name: xray-daemon + PortMappings: + - ContainerPort: 2000 + Protocol: udp + Cpu: "1024" + ExecutionRoleArn: + Fn::GetAtt: + - transcriberPoolQueueProcessingTaskDefExecutionRole + - Arn + Family: !Sub ${AWS::StackName}transcriberPoolQueueProcessingTaskDef + Memory: "4096" + NetworkMode: awsvpc + RequiresCompatibilities: + - FARGATE + TaskRoleArn: + Fn::GetAtt: + - transcriberPoolQueueProcessingTaskDefTaskRole + - Arn + + transcriberPoolQueueProcessingTaskDefQueueProcessingContainerLogGroup: + Type: AWS::Logs::LogGroup + Condition: ShouldCreateFargateResources + UpdateReplacePolicy: Retain + DeletionPolicy: Retain + Properties: + RetentionInDays: 3653 + Metadata: + cfn_nag: + rules_to_suppress: + - id: W84 + reason: By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys). + + transcriberPoolQueueProcessingTaskDefExecutionRole: + Type: AWS::IAM::Role + Condition: ShouldCreateFargateResources + Properties: + AssumeRolePolicyDocument: + Statement: + - Action: sts:AssumeRole + Effect: Allow + Principal: + Service: ecs-tasks.amazonaws.com + Version: "2012-10-17" + + transcriberPoolQueueProcessingTaskDefExecutionRoleDefaultPolicy: + Type: AWS::IAM::Policy + Condition: ShouldCreateFargateResources + Properties: + PolicyDocument: + Statement: + - Action: + - ecr:BatchCheckLayerAvailability + - ecr:GetDownloadUrlForLayer + - ecr:BatchGetImage + Effect: Allow + Resource: + Fn::GetAtt: + - transcriberECRRepository + - Arn + - Action: ecr:GetAuthorizationToken + Effect: Allow + Resource: "*" + - Action: + - logs:CreateLogStream + - logs:PutLogEvents + Effect: Allow + Resource: + Fn::GetAtt: + - transcriberPoolQueueProcessingTaskDefQueueProcessingContainerLogGroup + - Arn + - Action: + - logs:CreateLogStream + - logs:PutLogEvents + Effect: Allow + Resource: + Fn::GetAtt: + - transcriberPoolQueueProcessingTaskDefxraydaemonLogGroup + - Arn + Version: "2012-10-17" + PolicyName: !Sub ${AWS::StackName}-transcriberPoolQueueProcessingTaskDefExecutionRoleDefaultPolicy + Roles: + - Ref: transcriberPoolQueueProcessingTaskDefExecutionRole + Metadata: + cfn_nag: + rules_to_suppress: + - id: W12 + reason: comprehend, translate, and connect do not support resource-level permissions. + + transcriberPoolQueueProcessingTaskDefxraydaemonLogGroup: + Type: AWS::Logs::LogGroup + Condition: ShouldCreateFargateResources + UpdateReplacePolicy: Retain + DeletionPolicy: Retain + Properties: + RetentionInDays: 3653 + Metadata: + cfn_nag: + rules_to_suppress: + - id: W84 + reason: By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys). + + transcriberPoolQueueProcessingFargateService: + Type: AWS::ECS::Service + Condition: ShouldCreateFargateResources + Properties: + Cluster: + Ref: transcribingCluster + DeploymentConfiguration: + MaximumPercent: 200 + MinimumHealthyPercent: 50 + DesiredCount: 1 + EnableECSManagedTags: false + LaunchType: FARGATE + NetworkConfiguration: + AwsvpcConfiguration: + AssignPublicIp: DISABLED + SecurityGroups: + - Fn::GetAtt: + - transcriberPoolQueueProcessingFargateServiceSecurityGroup + - GroupId + Subnets: + - Ref: transcribingVPCPrivateSubnet1Subnet + - Ref: transcribingVPCPrivateSubnet2Subnet + TaskDefinition: + Ref: transcriberPoolQueueProcessingTaskDef + + transcriberPoolQueueProcessingFargateServiceSecurityGroup: + Type: AWS::EC2::SecurityGroup + Condition: ShouldCreateFargateResources + Properties: + GroupDescription: !Sub ${AWS::StackName}/transcriberPool/QueueProcessingFargateService/SecurityGroup + SecurityGroupEgress: + - CidrIp: 0.0.0.0/0 + Description: Allow all outbound traffic by default + IpProtocol: "-1" + VpcId: + Ref: transcribingVPC + Metadata: + cfn_nag: + rules_to_suppress: + - id: W40 + reason: IpProtocol set to -1 to specify all protocols. + - id: W5 + reason: Egress open to the world is expected. Customer can use VPC endpoints to privately connect the VPC to supported AWS services. + + transcriberPoolQueueProcessingFargateServiceTaskCountTarget: + Type: AWS::ApplicationAutoScaling::ScalableTarget + Condition: ShouldCreateFargateResources + Properties: + MaxCapacity: 5 + MinCapacity: 1 + ResourceId: + Fn::Join: + - "" + - - service/ + - Ref: transcribingCluster + - / + - Fn::GetAtt: + - transcriberPoolQueueProcessingFargateService + - Name + RoleARN: + Fn::Join: + - "" + - - "arn:" + - Ref: AWS::Partition + - ":iam::" + - Ref: AWS::AccountId + - :role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService + ScalableDimension: ecs:service:DesiredCount + ServiceNamespace: ecs + + transcriberPoolQueueProcessingFargateServiceTaskCountTargetCpuScaling: + Type: AWS::ApplicationAutoScaling::ScalingPolicy + Condition: ShouldCreateFargateResources + Properties: + PolicyName: !Sub ${AWS::StackName}transcriberPoolQueueProcessingFargateServiceTaskCountTargetCpuScaling + PolicyType: TargetTrackingScaling + ScalingTargetId: + Ref: transcriberPoolQueueProcessingFargateServiceTaskCountTarget + TargetTrackingScalingPolicyConfiguration: + PredefinedMetricSpecification: + PredefinedMetricType: ECSServiceAverageCPUUtilization + TargetValue: 50 + + transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerPolicy: + Type: AWS::ApplicationAutoScaling::ScalingPolicy + Condition: ShouldCreateFargateResources + Properties: + PolicyName: !Sub ${AWS::StackName}transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerPolicy + PolicyType: StepScaling + ScalingTargetId: + Ref: transcriberPoolQueueProcessingFargateServiceTaskCountTarget + StepScalingPolicyConfiguration: + AdjustmentType: ChangeInCapacity + MetricAggregationType: Maximum + StepAdjustments: + - MetricIntervalUpperBound: 0 + ScalingAdjustment: -1 + + transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerAlarm: + Type: AWS::CloudWatch::Alarm + Condition: ShouldCreateFargateResources + Properties: + ComparisonOperator: LessThanOrEqualToThreshold + EvaluationPeriods: 1 + AlarmActions: + - Ref: transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingLowerPolicy + AlarmDescription: Lower threshold scaling alarm + Dimensions: + - Name: QueueName + Value: + Fn::GetAtt: + - transcribingQueue + - QueueName + MetricName: ApproximateNumberOfMessagesVisible + Namespace: AWS/SQS + Period: 300 + Statistic: Maximum + Threshold: 0 + + transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperPolicy: + Type: AWS::ApplicationAutoScaling::ScalingPolicy + Condition: ShouldCreateFargateResources + Properties: + PolicyName: !Sub ${AWS::StackName}transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperPolicy + PolicyType: StepScaling + ScalingTargetId: + Ref: transcriberPoolQueueProcessingFargateServiceTaskCountTarget + StepScalingPolicyConfiguration: + AdjustmentType: ChangeInCapacity + MetricAggregationType: Maximum + StepAdjustments: + - MetricIntervalLowerBound: 0 + MetricIntervalUpperBound: 400 + ScalingAdjustment: 1 + - MetricIntervalLowerBound: 400 + ScalingAdjustment: 5 + + transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperAlarm: + Type: AWS::CloudWatch::Alarm + Condition: ShouldCreateFargateResources + Properties: + ComparisonOperator: GreaterThanOrEqualToThreshold + EvaluationPeriods: 1 + AlarmActions: + - Ref: transcriberPoolQueueProcessingFargateServiceTaskCountTargetQueueMessagesVisibleScalingUpperPolicy + AlarmDescription: Upper threshold scaling alarm + Dimensions: + - Name: QueueName + Value: + Fn::GetAtt: + - transcribingQueue + - QueueName + MetricName: ApproximateNumberOfMessagesVisible + Namespace: AWS/SQS + Period: 300 + Statistic: Maximum + Threshold: 100 + + contactFlowCreator: + Type: "AWS::Lambda::Function" + Properties: + Description: > + AWS Lambda Function that will create the initial sample contact flow and upload it to the S3 bucket + Handler: "index.handler" + Role: !GetAtt AIPoweredSpeechAnalyticsContactFlowCreatorRole.Arn + Runtime: "nodejs14.x" + MemorySize: 256 + Timeout: 120 + Code: + S3Bucket: !Join ["-", [!FindInMap [FunctionMap, Configuration, S3Bucket], Ref: "AWS::Region"]] + S3Key: !Join ["/", [!FindInMap [FunctionMap, Configuration, S3Key], 'create_contact_flow.zip']] + Metadata: + cfn_nag: + rules_to_suppress: + - id: W89 + reason: Customer can use VPC if desired + + invokeContactFlowCreator: + Type: Custom::CreateKVSContactFlow + Properties: + ServiceToken: + !GetAtt contactFlowCreator.Arn + bucketName: + !Ref createS3Bucket + contactInitFunction: + !GetAtt initContactDetails.Arn + kvsTriggerFunction: + !If [ ShouldCreateLambdaResource, !GetAtt kvsConsumerTrigger.Arn, !GetAtt transcribingFargateTrigger.Arn ] \ No newline at end of file diff --git a/deployment/build-s3-dist.sh b/deployment/build-s3-dist.sh index 20bce1c..eaf8750 100755 --- a/deployment/build-s3-dist.sh +++ b/deployment/build-s3-dist.sh @@ -67,7 +67,33 @@ replace="s/%%VERSION%%/$3/g" echo "sed -i '' -e $replace $template_dist_dir/*.template" sed -i '' -e $replace $template_dist_dir/*.template -## TODO: +# Archive and copy kvs_transcribe_streaming_lambda directory to $source_dir +echo "Archiving kvs_transcribe_streaming_lambda directory" +cd $source_dir/../source +zip -r kvs_transcribe_streaming_fargate.zip kvs_transcribe_streaming_lambda +cp kvs_transcribe_streaming_fargate.zip $build_dist_dir/kvs_transcribe_streaming_fargate.zip +rm -rf kvs_transcribe_streaming_fargate.zip +cd $source_dir + +# Archive and copy transcribing_fargate_trigger lambda function to $source_dir +echo "Archiving transcribing_fargate_trigger lambda function" +cd $source_dir/../source/transcribing_fargate_trigger +zip lambda_transcribing_fargate_trigger.zip lambda_transcribing_fargate_trigger.py +cp lambda_transcribing_fargate_trigger.zip $build_dist_dir/lambda_transcribing_fargate_trigger.zip +rm -rf lambda_transcribing_fargate_trigger.zip +cd $source_dir + +# Archive and copy start_codebuild lambda function to $source_dir +echo "Archiving start_codebuild lambda function" +cd $source_dir/../source/start_codebuild +pip install --target ./package cfnresponse +zip -r lambda_start_codebuild.zip ./package/ +zip -g lambda_start_codebuild.zip lambda_start_codebuild.py +zip lambda_start_codebuild.zip lambda_start_codebuild.py +cp lambda_start_codebuild.zip $build_dist_dir/lambda_start_codebuild.zip +rm -rf lambda_start_codebuild.zip +cd $source_dir + # Build node.js CFN Lambda custom resource helper function echo "Building CFN custom resource helper Lambda function" cd $source_dir/../source/helper @@ -227,11 +253,6 @@ rm -rf node_modules # Done, so go back to deployment_dir cd $source_dir -# Build kvs_transcribe_streaming_lambda function to $source_dir -cd $source_dir/../source/kvs_transcribe_streaming_lambda -gradle build -cp ./build/distributions/kvs_transcribe_streaming_lambda.zip $build_dist_dir/ - # Copy website files to $build_dist_dir echo "Copying web site content to $source_dir" cp -r $source_dir/../source/web_site $build_dist_dir/ diff --git a/deployment/manifest-generator/app.js b/deployment/manifest-generator/app.js deleted file mode 100644 index ae25818..0000000 --- a/deployment/manifest-generator/app.js +++ /dev/null @@ -1,73 +0,0 @@ -/********************************************************************************************************************* - * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * * - * Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance * - * with the License. A copy of the License is located at * - * * - * http://aws.amazon.com/asl/ * - * * - * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * - * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * - * and limitations under the License. * - *********************************************************************************************************************/ - -/** - * @author Solution Builders - */ - -'use strict'; - -const fs = require('fs'); -const path = require('path'); - -let getFileList = function(path) { - let fileInfo; - let filesFound; - let fileList = []; - - filesFound = fs.readdirSync(path); - for (let i = 0; i < filesFound.length; i++) { - fileInfo = fs.lstatSync([path, filesFound[i]].join('/')); - if (fileInfo.isFile()) { - fileList.push(filesFound[i]); - } - - if (fileInfo.isDirectory()) { - console.log([path, filesFound[i]].join('/')); - } - } - - return fileList; -}; - -// List all files in a directory in Node.js recursively in a synchronous fashion -let walkSync = function(dir, filelist) { - // let filelist = []; //getFileList('./temp/site'); - let files = fs.readdirSync(dir); - filelist = filelist || []; - files.forEach(function(file) { - if (fs.statSync(path.join(dir, file)).isDirectory()) { - filelist = walkSync(path.join(dir, file), filelist); - } else { - filelist.push(path.join(dir, file)); - } - }); - - return filelist; -}; - -let _filelist = []; -let _manifest = { - files: [] -}; -walkSync('../regional-s3-assets/web_site', _filelist); - -for (let i = 0; i < _filelist.length; i++) { - _manifest.files.push(_filelist[i].replace('../regional-s3-assets/web_site/', '')); -}; - -console.log(_manifest); -fs.writeFile('../regional-s3-assets/web-site-manifest.json', JSON.stringify(_manifest, null, 4), (err) => { - if (err) throw err; - console.log('The file has been saved!'); -}); diff --git a/deployment/manifest-generator/package.json b/deployment/manifest-generator/package.json deleted file mode 100644 index 1c63310..0000000 --- a/deployment/manifest-generator/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "manifest-generator", - "version": "0.0.0", - "private": true, - "description": "Helper utility to create web site manifest for deployment", - "main": "app.js", - "author": { - "name": "aws-solutions-builder" - }, - "dependencies": {} -} diff --git a/source/contact_init/index.js b/source/contact_init/index.js index 9fb2790..9cb91b2 100644 --- a/source/contact_init/index.js +++ b/source/contact_init/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ var AWS = require("aws-sdk"); var docClient = new AWS.DynamoDB.DocumentClient(); diff --git a/source/create_contact_flow/index.js b/source/create_contact_flow/index.js index 534dd6e..4271881 100644 --- a/source/create_contact_flow/index.js +++ b/source/create_contact_flow/index.js @@ -1,17 +1,21 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + 'use strict'; function createContactFlow(properties, callback) { diff --git a/source/helper/index.js b/source/helper/index.js index 621991a..3bd081c 100644 --- a/source/helper/index.js +++ b/source/helper/index.js @@ -1,17 +1,21 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + 'use strict'; console.log('Loading function'); diff --git a/source/helper/lib/defaultbucketencryption-helper.js b/source/helper/lib/defaultbucketencryption-helper.js index ea34e4b..ea373a0 100644 --- a/source/helper/lib/defaultbucketencryption-helper.js +++ b/source/helper/lib/defaultbucketencryption-helper.js @@ -1,15 +1,20 @@ -/********************************************************************************************************************* - * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * * - * Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance * - * with the License. A copy of the License is located at * - * * - * http://aws.amazon.com/asl/ * - * * - * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * - * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * - * and limitations under the License. * - *********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ /** * @author Solution Builders diff --git a/source/helper/lib/metrics-helper.js b/source/helper/lib/metrics-helper.js index 42ae543..62344d5 100644 --- a/source/helper/lib/metrics-helper.js +++ b/source/helper/lib/metrics-helper.js @@ -1,15 +1,20 @@ -/********************************************************************************************************************* - * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * * - * Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance * - * with the License. A copy of the License is located at * - * * - * http://aws.amazon.com/asl/ * - * * - * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * - * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * - * and limitations under the License. * - *********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ /** * @author Solution Builders diff --git a/source/helper/lib/website-helper.js b/source/helper/lib/website-helper.js index 3d5be14..cb875a7 100644 --- a/source/helper/lib/website-helper.js +++ b/source/helper/lib/website-helper.js @@ -1,15 +1,20 @@ -/********************************************************************************************************************* - * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * * - * Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance * - * with the License. A copy of the License is located at * - * * - * http://aws.amazon.com/asl/ * - * * - * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * - * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * - * and limitations under the License. * - *********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ /** * @author Solution Builders @@ -20,7 +25,7 @@ let AWS = require('aws-sdk'); let s3 = new AWS.S3(); const fs = require('fs'); -var _downloadKey = 'AI-powered-speech-analytics-for-amazon-connect/${version}/web-site-manifest.json'; +var _downloadKey = 'ai-powered-speech-analytics-for-amazon-connect/${version}/web-site-manifest.json'; const _downloadLocation = '/tmp/web-site-manifest.json'; /** diff --git a/source/kvs_transcribe_streaming_lambda/Dockerfile b/source/kvs_transcribe_streaming_lambda/Dockerfile new file mode 100755 index 0000000..c3f9cf4 --- /dev/null +++ b/source/kvs_transcribe_streaming_lambda/Dockerfile @@ -0,0 +1,20 @@ +# Install dependencies and build jar + +FROM gradle:jdk11 as build + +RUN pwd +RUN ls -altr + +WORKDIR /build +COPY kvs_transcribe_streaming_lambda/src /build/src +COPY kvs_transcribe_streaming_lambda/build.gradle . +RUN gradle buildFargate --no-daemon + + +FROM amazoncorretto:11 + +WORKDIR /app + +COPY --from=build /build/build/libs/build.jar /app/kvsrecord.jar + +ENTRYPOINT ["java", "-jar", "/app/kvsrecord.jar"] \ No newline at end of file diff --git a/source/kvs_transcribe_streaming_lambda/build.gradle b/source/kvs_transcribe_streaming_lambda/build.gradle index af92a40..b8b07fc 100644 --- a/source/kvs_transcribe_streaming_lambda/build.gradle +++ b/source/kvs_transcribe_streaming_lambda/build.gradle @@ -1,32 +1,40 @@ -apply plugin: 'java' +task common { + apply plugin: 'java' -repositories { - mavenCentral() -} + repositories { + mavenCentral() + } -dependencies { - compile fileTree(dir: 'jars', include: '*.jar') - compile group: 'io.reactivex.rxjava2', name: 'rxjava', version: '2.2.2' - compile( - 'software.amazon.awssdk:transcribestreaming:2.5.41', - - 'com.amazonaws:aws-java-sdk-dynamodb:1.11.475', - 'com.amazonaws:aws-java-sdk-kinesisvideo:1.11.475', - 'com.amazonaws:aws-lambda-java-core:1.2.0', - 'com.amazonaws:aws-lambda-java-events:1.2.0', - 'com.amazonaws:aws-java-sdk-cloudwatch:1.11.480', - 'org.slf4j:slf4j-api:1.7.24', - 'org.slf4j:slf4j-log4j12:1.7.24', - - // need this for our async clients - 'software.amazon.awssdk:netty-nio-client:2.2.0', - - // need this for logging - 'org.apache.commons:commons-lang3:3.6' - ) + dependencies { + compile fileTree(dir: 'jars', include: '*.jar') + compile group: 'io.reactivex.rxjava2', name: 'rxjava', version: '2.2.2' + compile group: 'org.reactivestreams', name: 'reactive-streams', version: '1.0.3' + compile group: 'org.json', name: 'json', version: '20190722' + compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.10.0.pr3' + compile group: 'com.amazonaws', name: 'amazon-kinesis-video-streams-parser-library', version: '1.0.15' + + compile( + 'software.amazon.awssdk:transcribestreaming:2.16.29', + 'com.amazonaws:aws-java-sdk-dynamodb:1.11.986', + 'com.amazonaws:aws-java-sdk-kinesisvideo:1.11.986', + 'com.amazonaws:aws-lambda-java-core:1.2.1', + 'com.amazonaws:aws-lambda-java-events:3.8.0', + 'com.amazonaws:aws-java-sdk-cloudwatch:1.11.986', + 'com.amazonaws:aws-java-sdk-sqs:1.11.986', + 'org.slf4j:slf4j-api:1.7.24', + 'org.slf4j:slf4j-log4j12:1.7.24', + + // need this for our async clients + 'software.amazon.awssdk:netty-nio-client:2.16.29', + + // need this for logging + 'org.apache.commons:commons-lang3:3.6', + ) + } } -task buildZip(type: Zip) { +//Lambda Project +task buildZip(type: Zip, dependsOn: common) { from compileJava from processResources @@ -35,4 +43,19 @@ task buildZip(type: Zip) { } } +//Fargate Project +task buildFargate(type: Jar, dependsOn: common) { + from compileJava + from processResources + manifest { + attributes 'Implementation-Title': 'Fargate Task Launchpoint', + 'Main-Class': 'com.amazonaws.kvstranscribestreaming.SQSProcessor' + } + from { + (configurations.runtime).collect { + it.isDirectory() ? it : zipTree(it) + } + } +} + build.dependsOn buildZip diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/AudioUtils.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/AudioUtils.java index d99652d..8876244 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/AudioUtils.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/AudioUtils.java @@ -26,14 +26,15 @@ /** * Utility class to download/upload audio files from/to S3 * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSRecordingTask.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSRecordingTask.java new file mode 100755 index 0000000..6b2f3da --- /dev/null +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSRecordingTask.java @@ -0,0 +1,424 @@ +package com.amazonaws.kvstranscribestreaming; + +import com.amazonaws.auth.AWSCredentialsProvider; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; +import com.amazonaws.kinesisvideo.parser.ebml.InputStreamParserByteSource; +import com.amazonaws.kinesisvideo.parser.mkv.StreamingMkvReader; +import com.amazonaws.kinesisvideo.parser.utilities.FragmentMetadata; +import com.amazonaws.kinesisvideo.parser.utilities.FragmentMetadataVisitor; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; +import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; +import com.amazonaws.services.dynamodbv2.document.DynamoDB; +import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.RequestHandler; +import com.amazonaws.transcribestreaming.FileByteToAudioEventSubscription; +import com.amazonaws.transcribestreaming.KVSByteToAudioEventSubscription; +import com.amazonaws.transcribestreaming.StreamTranscriptionBehaviorImpl; +import com.amazonaws.transcribestreaming.TranscribeStreamingRetryClient; +import org.reactivestreams.Publisher; +import org.reactivestreams.Subscriber; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; +import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.services.transcribestreaming.model.AudioStream; +import software.amazon.awssdk.services.transcribestreaming.model.LanguageCode; +import software.amazon.awssdk.services.transcribestreaming.model.MediaEncoding; +import software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionRequest; + + +import java.io.*; +import java.nio.ByteBuffer; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +import java.util.Optional; +import java.util.Date; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +/** + * Demonstrate Amazon Connect's real-time transcription feature using AWS Kinesis Video Streams and AWS Transcribe. + * The data flow is : + *

+ * Amazon Connect => AWS KVS => AWS Transcribe => AWS DynamoDB + * + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +public class KVSRecordingTask { + + private static final Regions REGION = Regions.fromName(System.getenv("AWS_REGION")); + private static final Regions TRANSCRIBE_REGION = Regions.fromName(System.getenv("TRANSCRIBE_REGION")); + private static final String TRANSCRIBE_ENDPOINT = "https://transcribestreaming." + TRANSCRIBE_REGION.getName() + ".amazonaws.com"; + + private static final String RECORDINGS_BUCKET_NAME = System.getenv("RECORDINGS_BUCKET_NAME"); + private static final String RECORDINGS_KEY_PREFIX = System.getenv("RECORDINGS_KEY_PREFIX"); + private static final String INPUT_KEY_PREFIX = System.getenv("INPUT_KEY_PREFIX"); + private static final boolean CONSOLE_LOG_TRANSCRIPT_FLAG = Boolean.parseBoolean(System.getenv("CONSOLE_LOG_TRANSCRIPT_FLAG")); + + private static final boolean RECORDINGS_PUBLIC_READ_ACL = Boolean.parseBoolean(System.getenv("RECORDINGS_PUBLIC_READ_ACL")); + private static final String START_SELECTOR_TYPE = System.getenv("START_SELECTOR_TYPE"); + + private static final String TABLE_CALLER_TRANSCRIPT = System.getenv("TABLE_CALLER_TRANSCRIPT"); + private static final String TABLE_CALLER_TRANSCRIPT_TO_CUSTOMER = System.getenv("TABLE_CALLER_TRANSCRIPT_TO_CUSTOMER"); + + private static final Logger logger = LoggerFactory.getLogger(KVSRecordingTask.class); + public static final MetricsUtil metricsUtil = new MetricsUtil(AmazonCloudWatchClientBuilder.defaultClient()); + private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); + + // SegmentWriter saves Transcription segments to DynamoDB + private TranscribedSegmentWriter fromCustomerSegmentWriter = null; + private TranscribedSegmentWriter toCustomerSegmentWriter = null; + + /** + * Fargate Task + * + * @param request + * @return + */ + public String handleRequest(RecordingRequest request) throws Exception { + logger.info("received request : " + request.toString()); + + try { + + // validate the request + request.validate(); + + // create a SegmentWriter to be able to save off transcription results + AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard(); + builder.setRegion(REGION.getName()); + fromCustomerSegmentWriter = new TranscribedSegmentWriter(request.getConnectContactId(), new DynamoDB(builder.build()), + CONSOLE_LOG_TRANSCRIPT_FLAG); + toCustomerSegmentWriter = new TranscribedSegmentWriter(request.getConnectContactId(), new DynamoDB(builder.build()), + CONSOLE_LOG_TRANSCRIPT_FLAG); + + // stream audio from the KVS to Transcribe + startKVSToTranscribeStreaming(request.getStreamARN(), request.getStartFragmentNum(), request.getConnectContactId(), + request.isTranscriptionEnabled(), request.getLanguageCode(), request.getSaveCallRecording(), + request.isStreamAudioFromCustomer(), request.isStreamAudioToCustomer()); + return ""; + } catch (Exception e) { + logger.error("KVS to Transcribe Streaming failed with: ", e); + return "{ \"result\": \"Failed\" }"; + } + } + + /** + * Starts streaming between KVS and Transcribe + * The transcript segments are continuously saved to the Dynamo DB table + * At end of the streaming session, the raw audio is saved as an s3 object + * + * @param streamARN + * @param startFragmentNum + * @param contactId + * @param languageCode + * @throws Exception + */ + private void startKVSToTranscribeStreaming(String streamARN, String startFragmentNum, String contactId, boolean transcribeEnabled, + Optional < String > languageCode, Optional < Boolean > saveCallRecording, + boolean isStreamAudioFromCustomerEnabled, boolean isStreamAudioToCustomerEnabled) throws Exception { + String streamName = streamARN.substring(streamARN.indexOf("/") + 1, streamARN.lastIndexOf("/")); + + KVSStreamTrackObject kvsStreamTrackObjectFromCustomer = null; + KVSStreamTrackObject kvsStreamTrackObjectToCustomer = null; + + if (isStreamAudioFromCustomerEnabled) { + kvsStreamTrackObjectFromCustomer = getKVSStreamTrackObject(streamName, startFragmentNum, KVSUtils.TrackName.AUDIO_FROM_CUSTOMER.getName(), contactId); + } + if (isStreamAudioToCustomerEnabled) { + kvsStreamTrackObjectToCustomer = getKVSStreamTrackObject(streamName, startFragmentNum, KVSUtils.TrackName.AUDIO_TO_CUSTOMER.getName(), contactId); + } + + boolean isKVSTimedOut = startStreaming(transcribeEnabled, kvsStreamTrackObjectFromCustomer, kvsStreamTrackObjectToCustomer, + languageCode, contactId, isStreamAudioFromCustomerEnabled, isStreamAudioToCustomerEnabled, streamName, saveCallRecording); + + while (isKVSTimedOut) { + if (isStreamAudioFromCustomerEnabled) { + Optional < FragmentMetadata > fragmentMetadata = kvsStreamTrackObjectFromCustomer.getFragmentVisitor().getCurrentFragmentMetadata(); + String fragmentNumber = fragmentMetadata.get().getFragmentNumberString(); + getKVSStreamTrackObjectAfterTimedOut(streamName, fragmentNumber, kvsStreamTrackObjectFromCustomer); + } + if (isStreamAudioToCustomerEnabled) { + Optional < FragmentMetadata > fragmentMetadata = kvsStreamTrackObjectToCustomer.getFragmentVisitor().getCurrentFragmentMetadata(); + String fragmentNumber = fragmentMetadata.get().getFragmentNumberString(); + getKVSStreamTrackObjectAfterTimedOut(streamName, fragmentNumber, kvsStreamTrackObjectToCustomer); + } + isKVSTimedOut = startStreaming(transcribeEnabled, kvsStreamTrackObjectFromCustomer, kvsStreamTrackObjectToCustomer, + languageCode, contactId, isStreamAudioFromCustomerEnabled, isStreamAudioToCustomerEnabled, streamName, saveCallRecording); + } + } + + + private boolean startStreaming(boolean transcribeEnabled, KVSStreamTrackObject kvsStreamTrackObjectFromCustomer, + KVSStreamTrackObject kvsStreamTrackObjectToCustomer, Optional < String > languageCode, + String contactId, boolean isStreamAudioFromCustomerEnabled, boolean isStreamAudioToCustomerEnabled, + String streamName, Optional < Boolean > saveCallRecording) throws Exception { + + boolean isKVSTimedOut = false; + + if (transcribeEnabled) { + try (TranscribeStreamingRetryClient client = new TranscribeStreamingRetryClient(getTranscribeCredentials(), + TRANSCRIBE_ENDPOINT, TRANSCRIBE_REGION, metricsUtil)) { + + logger.info("Calling Transcribe service.."); + CompletableFuture < Void > fromCustomerResult = null; + CompletableFuture < Void > toCustomerResult = null; + + if (kvsStreamTrackObjectFromCustomer != null) { + fromCustomerResult = getStartStreamingTranscriptionFuture(kvsStreamTrackObjectFromCustomer, + languageCode, contactId, client, fromCustomerSegmentWriter, TABLE_CALLER_TRANSCRIPT, KVSUtils.TrackName.AUDIO_FROM_CUSTOMER.getName()); + } + + if (kvsStreamTrackObjectToCustomer != null) { + toCustomerResult = getStartStreamingTranscriptionFuture(kvsStreamTrackObjectToCustomer, + languageCode, contactId, client, toCustomerSegmentWriter, TABLE_CALLER_TRANSCRIPT_TO_CUSTOMER, KVSUtils.TrackName.AUDIO_TO_CUSTOMER.getName()); + } + + // Synchronous wait for stream to close, and close client connection + // Timeout of 42 minutes because the Max connection duration of Amazon Kinesis Video Streams is 45 mins. The backend closes the connection after this time. The SDK rotates the token and establishes a new connection within this time. + + if (null != fromCustomerResult) { + fromCustomerResult.get(2520, TimeUnit.SECONDS); + } + + if (null != toCustomerResult) { + toCustomerResult.get(2520, TimeUnit.SECONDS); + } + + } catch (TimeoutException e) { + logger.info("Timing out KVS to Transcribe Streaming after 42 minutes"); + isKVSTimedOut = true; + } catch (Exception e) { + logger.error("Error during streaming: ", e); + throw e; + + } finally { + if (kvsStreamTrackObjectFromCustomer != null && !isKVSTimedOut) { + closeFileAndUploadRawAudio(kvsStreamTrackObjectFromCustomer, contactId, saveCallRecording); + } + if (kvsStreamTrackObjectToCustomer != null && !isKVSTimedOut) { + closeFileAndUploadRawAudio(kvsStreamTrackObjectToCustomer, contactId, saveCallRecording); + } + } + } else { + try { + logger.info("Saving audio bytes to location"); + + //Write audio bytes from the KVS stream to the temporary file + if (kvsStreamTrackObjectFromCustomer != null) { + writeAudioBytesToKvsStream(kvsStreamTrackObjectFromCustomer, contactId); + } + if (kvsStreamTrackObjectToCustomer != null) { + writeAudioBytesToKvsStream(kvsStreamTrackObjectToCustomer, contactId); + } + } finally { + if (kvsStreamTrackObjectFromCustomer != null) { + closeFileAndUploadRawAudio(kvsStreamTrackObjectFromCustomer, contactId, saveCallRecording); + } + if (kvsStreamTrackObjectToCustomer != null) { + closeFileAndUploadRawAudio(kvsStreamTrackObjectToCustomer, contactId, saveCallRecording); + } + } + } + return isKVSTimedOut; + } + + +/** + * Closes the FileOutputStream and uploads the Raw audio file to S3 + * + * @param kvsStreamTrackObject + * @param saveCallRecording should the call recording be uploaded to S3? + * @throws IOException + */ +private void closeFileAndUploadRawAudio(KVSStreamTrackObject kvsStreamTrackObject, String contactId, Optional < Boolean > saveCallRecording) throws IOException { + + kvsStreamTrackObject.getInputStream().close(); + kvsStreamTrackObject.getOutputStream().close(); + + //Upload the Raw Audio file to S3 + if ((saveCallRecording.isPresent() ? saveCallRecording.get() : false) && (new File(kvsStreamTrackObject.getSaveAudioFilePath().toString()).length() > 0)) { + logger.info("Uploading file "); + AudioUtils.uploadRawAudio(REGION, RECORDINGS_BUCKET_NAME, RECORDINGS_KEY_PREFIX, kvsStreamTrackObject.getSaveAudioFilePath().toString(), contactId, RECORDINGS_PUBLIC_READ_ACL, + getAWSCredentials()); + } else { + logger.info("Skipping upload to S3. saveCallRecording was disabled or audio file has 0 bytes: " + kvsStreamTrackObject.getSaveAudioFilePath().toString()); + } + +} + +/** + * Create all objects necessary for KVS streaming from each track + * + * @param streamName + * @param startFragmentNum + * @param trackName + * @param contactId + * @return + * @throws FileNotFoundException + */ +private KVSStreamTrackObject getKVSStreamTrackObject(String streamName, String startFragmentNum, String trackName, + String contactId) throws FileNotFoundException { + InputStream kvsInputStream = KVSUtils.getInputStreamFromKVS(streamName, REGION, startFragmentNum, getAWSCredentials(), START_SELECTOR_TYPE); + StreamingMkvReader streamingMkvReader = StreamingMkvReader.createDefault(new InputStreamParserByteSource(kvsInputStream)); + + KVSContactTagProcessor tagProcessor = new KVSContactTagProcessor(contactId); + FragmentMetadataVisitor fragmentVisitor = FragmentMetadataVisitor.create(Optional.of(tagProcessor)); + + String fileName = String.format("%s_%s_%s.raw", contactId, DATE_FORMAT.format(new Date()), trackName); + Path saveAudioFilePath = Paths.get("/tmp", fileName); + FileOutputStream fileOutputStream = new FileOutputStream(saveAudioFilePath.toString()); + + return new KVSStreamTrackObject(kvsInputStream, streamingMkvReader, tagProcessor, fragmentVisitor, saveAudioFilePath, fileOutputStream, trackName); +} + +private KVSStreamTrackObject getKVSStreamTrackObjectAfterTimedOut(String streamName, String startFragmentNum, KVSStreamTrackObject kvsStreamTrackObject) throws FileNotFoundException { + InputStream kvsInputStream = KVSUtils.getInputStreamFromKVS(streamName, REGION, startFragmentNum, getAWSCredentials(), START_SELECTOR_TYPE); + StreamingMkvReader streamingMkvReader = StreamingMkvReader.createDefault(new InputStreamParserByteSource(kvsInputStream)); + kvsStreamTrackObject.setInputStream(kvsInputStream); + kvsStreamTrackObject.setStreamingMkvReader(streamingMkvReader); + return kvsStreamTrackObject; +} + +private CompletableFuture < Void > getStartStreamingTranscriptionFuture(KVSStreamTrackObject kvsStreamTrackObject, Optional < String > languageCode, + String contactId, TranscribeStreamingRetryClient client, + TranscribedSegmentWriter transcribedSegmentWriter, + String tableName, String channel) { + return client.startStreamTranscription( + // since we're definitely working with telephony audio, we know that's 8 kHz + getRequest(8000, languageCode), + new KVSAudioStreamPublisher( + kvsStreamTrackObject.getStreamingMkvReader(), + contactId, + kvsStreamTrackObject.getOutputStream(), + kvsStreamTrackObject.getTagProcessor(), + kvsStreamTrackObject.getFragmentVisitor(), + kvsStreamTrackObject.getTrackName()), + new StreamTranscriptionBehaviorImpl(transcribedSegmentWriter, tableName), + channel + ); +} + +/** + * Write the kvs stream to the output buffer + * + * @param kvsStreamTrackObject + * @param contactId + * @throws Exception + */ +private void writeAudioBytesToKvsStream(KVSStreamTrackObject kvsStreamTrackObject, String contactId) throws Exception { + + ByteBuffer audioBuffer = KVSUtils.getByteBufferFromStream(kvsStreamTrackObject.getStreamingMkvReader(), + kvsStreamTrackObject.getFragmentVisitor(), kvsStreamTrackObject.getTagProcessor(), contactId, kvsStreamTrackObject.getTrackName()); + + while (audioBuffer.remaining() > 0) { + byte[] audioBytes = new byte[audioBuffer.remaining()]; + audioBuffer.get(audioBytes); + kvsStreamTrackObject.getOutputStream().write(audioBytes); + audioBuffer = KVSUtils.getByteBufferFromStream(kvsStreamTrackObject.getStreamingMkvReader(), + kvsStreamTrackObject.getFragmentVisitor(), kvsStreamTrackObject.getTagProcessor(), contactId, kvsStreamTrackObject.getTrackName()); + } +} + +/** + * @return AWS credentials to be used to connect to s3 (for fetching and uploading audio) and KVS + */ +private static AWSCredentialsProvider getAWSCredentials() { + return DefaultAWSCredentialsProviderChain.getInstance(); +} + +/** + * @return AWS credentials to be used to connect to Transcribe service. This example uses the default credentials + * provider, which looks for environment variables (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY) or a credentials + * file on the system running this program. + */ +private static AwsCredentialsProvider getTranscribeCredentials() { + return DefaultCredentialsProvider.create(); +} + +/** + * Build StartStreamTranscriptionRequestObject containing required parameters to open a streaming transcription + * request, such as audio sample rate and language spoken in audio + * + * @param mediaSampleRateHertz sample rate of the audio to be streamed to the service in Hertz + * @param languageCode the language code to be used for Transcription (optional; see https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters ) + * @return StartStreamTranscriptionRequest to be used to open a stream to transcription service + */ +private static StartStreamTranscriptionRequest getRequest(Integer mediaSampleRateHertz, Optional < String > languageCode) { + + return StartStreamTranscriptionRequest.builder() + .languageCode(languageCode.isPresent() ? languageCode.get() : LanguageCode.EN_US.toString()) + .mediaEncoding(MediaEncoding.PCM) + .mediaSampleRateHertz(mediaSampleRateHertz) + .build(); +} + + +/** + * KVSAudioStreamPublisher implements audio stream publisher. + * It emits audio events from a KVS stream asynchronously in a separate thread + */ +private static class KVSAudioStreamPublisher implements Publisher < AudioStream > { + private final StreamingMkvReader streamingMkvReader; + private String contactId; + private OutputStream outputStream; + private KVSContactTagProcessor tagProcessor; + private FragmentMetadataVisitor fragmentVisitor; + private String track; + + private KVSAudioStreamPublisher(StreamingMkvReader streamingMkvReader, String contactId, OutputStream outputStream, + KVSContactTagProcessor tagProcessor, FragmentMetadataVisitor fragmentVisitor, + String track) { + this.streamingMkvReader = streamingMkvReader; + this.contactId = contactId; + this.outputStream = outputStream; + this.tagProcessor = tagProcessor; + this.fragmentVisitor = fragmentVisitor; + this.track = track; + } + + @Override + public void subscribe(Subscriber s) { + s.onSubscribe(new KVSByteToAudioEventSubscription(s, streamingMkvReader, contactId, outputStream, tagProcessor, fragmentVisitor, track)); + } +} + +/** + * FileAudioStreamPublisher implements audio stream publisher. + * It emits audio events from a File InputStream asynchronously in a separate thread + */ +private static class FileAudioStreamPublisher implements Publisher < AudioStream > { + + private final InputStream inputStream; + + private FileAudioStreamPublisher(InputStream inputStream) { + this.inputStream = inputStream; + } + + @Override + public void subscribe(Subscriber s) { + s.onSubscribe(new FileByteToAudioEventSubscription(s, inputStream)); + + } +} +} \ No newline at end of file diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSStreamTrackObject.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSStreamTrackObject.java index c7ffbf9..cc755d1 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSStreamTrackObject.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSStreamTrackObject.java @@ -1,12 +1,12 @@ package com.amazonaws.kvstranscribestreaming; - + import com.amazonaws.kinesisvideo.parser.mkv.StreamingMkvReader; import com.amazonaws.kinesisvideo.parser.utilities.FragmentMetadataVisitor; - + import java.io.FileOutputStream; import java.io.InputStream; import java.nio.file.Path; - + public class KVSStreamTrackObject { private InputStream inputStream; private StreamingMkvReader streamingMkvReader; @@ -15,7 +15,7 @@ public class KVSStreamTrackObject { private Path saveAudioFilePath; private FileOutputStream outputStream; private String trackName; - + public KVSStreamTrackObject(InputStream inputStream, StreamingMkvReader streamingMkvReader, KVSContactTagProcessor tagProcessor, FragmentMetadataVisitor fragmentVisitor, Path saveAudioFilePath, FileOutputStream outputStream, String trackName) { @@ -27,31 +27,39 @@ public KVSStreamTrackObject(InputStream inputStream, StreamingMkvReader streamin this.outputStream = outputStream; this.trackName = trackName; } - + public InputStream getInputStream() { return inputStream; } - + public StreamingMkvReader getStreamingMkvReader() { return streamingMkvReader; } - + + public void setStreamingMkvReader(StreamingMkvReader streamingMkvReader){ + this.streamingMkvReader = streamingMkvReader; + } + public KVSContactTagProcessor getTagProcessor() { return tagProcessor; } - + public FragmentMetadataVisitor getFragmentVisitor() { return fragmentVisitor; } - + public Path getSaveAudioFilePath() { return saveAudioFilePath; } - + public FileOutputStream getOutputStream() { return outputStream; } - + + public void setInputStream(InputStream inputStream) { + this.inputStream = inputStream; + } + public String getTrackName() { return trackName; } diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingLambda.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingLambda.java index 39f6815..ed00dc6 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingLambda.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingLambda.java @@ -429,4 +429,4 @@ public void subscribe(Subscriber s) { s.onSubscribe(new FileByteToAudioEventSubscription(s, inputStream)); } } -} +} \ No newline at end of file diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSUtils.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSUtils.java index b5008e9..c9882f4 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSUtils.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSUtils.java @@ -35,14 +35,15 @@ /** * Utility class to interact with KVS streams * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/MetricsUtil.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/MetricsUtil.java index fc99069..ed1d6b6 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/MetricsUtil.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/MetricsUtil.java @@ -9,14 +9,15 @@ import java.util.Date; /* - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/RecordingRequest.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/RecordingRequest.java new file mode 100755 index 0000000..82b9a89 --- /dev/null +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/RecordingRequest.java @@ -0,0 +1,155 @@ +package com.amazonaws.kvstranscribestreaming; + +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +import java.util.Optional; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import software.amazon.awssdk.services.transcribestreaming.model.LanguageCode; + +public class RecordingRequest { + + String streamARN = null; + String inputFileName = null; + String startFragmentNum = null; + String connectContactId = null; + Optional languageCode = Optional.empty(); + boolean transcriptionEnabled = false; + Optional saveCallRecording = Optional.empty(); + boolean streamAudioFromCustomer = true; + boolean streamAudioToCustomer = true; + + public String getStreamARN() { + + return this.streamARN; + } + + public void setStreamARN(String streamARN) { + + this.streamARN = streamARN; + } + + public String getInputFileName() { + + return this.inputFileName; + } + + public void setInputFileName(String inputFileName) { + + this.inputFileName = inputFileName; + } + + public String getStartFragmentNum() { + + return this.startFragmentNum; + } + + public void setStartFragmentNum(String startFragmentNum) { + + this.startFragmentNum = startFragmentNum; + } + + public String getConnectContactId() { + + return this.connectContactId; + } + + public void setConnectContactId(String connectContactId) { + + this.connectContactId = connectContactId; + } + + public Optional getLanguageCode() { + + return this.languageCode; + } + + public void setLanguageCode(String languageCode) { + + if ((languageCode != null) && (languageCode.length() > 0)) { + + this.languageCode = Optional.of(languageCode); + } + } + + public void setTranscriptionEnabled(boolean enabled) { + transcriptionEnabled = enabled; + } + + public boolean isTranscriptionEnabled() { + return transcriptionEnabled; + } + + public void setStreamAudioFromCustomer(boolean enabled) { + streamAudioFromCustomer = enabled; + } + + public boolean isStreamAudioFromCustomer() { + return streamAudioFromCustomer; + } + + public void setStreamAudioToCustomer(boolean enabled) { + streamAudioToCustomer = enabled; + } + + public boolean isStreamAudioToCustomer() { + return streamAudioToCustomer; + } + + public void setSaveCallRecording(boolean shouldSaveCallRecording) { + + saveCallRecording = Optional.of(shouldSaveCallRecording); + } + + public Optional getSaveCallRecording() { + return saveCallRecording; + } + + public boolean isSaveCallRecordingEnabled() { + + return (saveCallRecording.isPresent() ? saveCallRecording.get() : false); + } + + public String toString() { + + return String.format("streamARN=%s, startFragmentNum=%s, connectContactId=%s, languageCode=%s, transcriptionEnabled=%s, saveCallRecording=%s, streamAudioFromCustomer=%s, streamAudioToCustomer=%s", + getStreamARN(), getStartFragmentNum(), getConnectContactId(), getLanguageCode(), isTranscriptionEnabled(), isSaveCallRecordingEnabled(), isStreamAudioFromCustomer(), isStreamAudioToCustomer()); + } + + public void validate() throws IllegalArgumentException { + + // complain if both are provided + if ((getStreamARN() != null) && (getInputFileName() != null)) + throw new IllegalArgumentException("At most one of streamARN or inputFileName must be provided"); + // complain if none are provided + if ((getStreamARN() == null) && (getInputFileName() == null)) + throw new IllegalArgumentException("One of streamARN or inputFileName must be provided"); + + // language code is optional; if provided, it should be one of the values accepted by + // https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters + if (languageCode.isPresent()) { + if (!LanguageCode.knownValues().contains(LanguageCode.fromValue(languageCode.get()))) { + throw new IllegalArgumentException("Incorrect language code"); + } + } + } + +} \ No newline at end of file diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/SQSProcessor.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/SQSProcessor.java new file mode 100755 index 0000000..afe663a --- /dev/null +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/SQSProcessor.java @@ -0,0 +1,83 @@ +package com.amazonaws.kvstranscribestreaming; + +import com.amazonaws.services.cloudwatch.AmazonCloudWatch; +import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; +import com.amazonaws.services.sqs.AmazonSQS; +import com.amazonaws.services.sqs.AmazonSQSClientBuilder; +import com.amazonaws.services.sqs.model.Message; +import com.amazonaws.services.sqs.model.ReceiveMessageRequest; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + + +public class SQSProcessor { + private static final Logger logger = LoggerFactory.getLogger(SQSProcessor.class); + private static final String QUEUE_NAME = System.getenv("QUEUE_NAME"); + private static final int MAX_THREADS = Integer.parseInt(System.getenv("MAX_THREADS")); + + private static class RecordingThread implements Runnable { + private String message; + private static final Logger logger = LoggerFactory.getLogger(RecordingThread.class); + private ObjectMapper mapper = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + private final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); + + public RecordingThread(String message) { + this.message = message; + } + + public void run() { + KVSRecordingTask task = new KVSRecordingTask(); + try { + RecordingRequest request = mapper.readValue(this.message, RecordingRequest.class); + logger.info("Got a request"); + task.handleRequest(request); + } catch (IOException e ) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void main(String ... args) { + ThreadPoolExecutor threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(MAX_THREADS); + + /* Print a status every 10 seconds */ + ScheduledExecutorService statusThread = Executors.newSingleThreadScheduledExecutor(); + statusThread.scheduleAtFixedRate(() -> { + String status = String.format("Active Threads: %d", threadPool.getActiveCount()); + logger.info(status); + }, 1, 10, TimeUnit.SECONDS); + + + AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); + String queueUrl = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl(); + + int active = 0; + while(true) { + active = threadPool.getActiveCount(); + if (active == MAX_THREADS) { + Thread.yield(); + continue; + } + ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl) + .withWaitTimeSeconds(20) + .withMaxNumberOfMessages(10); + List messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); + for (Message message : messages) { + threadPool.execute(new RecordingThread(message.getBody())); + sqs.deleteMessage(queueUrl, message.getReceiptHandle()); + } + } + } +} \ No newline at end of file diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscribedSegmentWriter.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscribedSegmentWriter.java index 5808e97..3442ef5 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscribedSegmentWriter.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscribedSegmentWriter.java @@ -13,16 +13,15 @@ import java.util.List; /** - * TranscribedSegmentWriter writes the transcript segments to DynamoDB - * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscriptionRequest.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscriptionRequest.java index f4e92d4..df01c21 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscriptionRequest.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/TranscriptionRequest.java @@ -1,14 +1,15 @@ package com.amazonaws.kvstranscribestreaming; /* - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/FileByteToAudioEventSubscription.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/FileByteToAudioEventSubscription.java index edf28a3..a7a385e 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/FileByteToAudioEventSubscription.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/FileByteToAudioEventSubscription.java @@ -16,14 +16,15 @@ /** * This Subscription converts audio bytes read from a File InputStream into AudioEvents * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/KVSByteToAudioEventSubscription.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/KVSByteToAudioEventSubscription.java index 168c172..2e49951 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/KVSByteToAudioEventSubscription.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/KVSByteToAudioEventSubscription.java @@ -24,14 +24,15 @@ * that can be sent to the Transcribe service. It implements a simple demand system that will read chunks of bytes * from a KVS stream using the KVS parser library * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehavior.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehavior.java index 64c0a10..3d8ddfe 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehavior.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehavior.java @@ -7,14 +7,15 @@ * Defines how a stream response should be handled. * You should build a class implementing this interface to define the behavior. * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehaviorImpl.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehaviorImpl.java index 7c86243..5bfb5fe 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehaviorImpl.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/StreamTranscriptionBehaviorImpl.java @@ -10,14 +10,15 @@ /** * Implementation of StreamTranscriptionBehavior to define how a stream response is handled. * - *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/TranscribeStreamingRetryClient.java b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/TranscribeStreamingRetryClient.java index 82c8f9b..4c8505e 100644 --- a/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/TranscribeStreamingRetryClient.java +++ b/source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/transcribestreaming/TranscribeStreamingRetryClient.java @@ -25,15 +25,15 @@ * Build a client wrapper around the Amazon Transcribe client to retry * on an exception that can be retried. * - *

- * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - *

+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. - *

+ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT diff --git a/source/kvs_trigger/index.js b/source/kvs_trigger/index.js index b57fd2e..13150c3 100644 --- a/source/kvs_trigger/index.js +++ b/source/kvs_trigger/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ 'use strict'; const AWS = require('aws-sdk'); diff --git a/source/process_contact/index.js b/source/process_contact/index.js index ed5ab43..663a248 100644 --- a/source/process_contact/index.js +++ b/source/process_contact/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ 'use strict'; diff --git a/source/start_codebuild/lambda_start_codebuild.py b/source/start_codebuild/lambda_start_codebuild.py new file mode 100644 index 0000000..66d3d6a --- /dev/null +++ b/source/start_codebuild/lambda_start_codebuild.py @@ -0,0 +1,51 @@ +'''* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *''' + +import json +import boto3 +from package import cfnresponse +from botocore.exceptions import ClientError +import logging + +def lambda_handler(event, context): + logging.basicConfig(level = logging.INFO) + logger = logging.getLogger() + logger.info(json.dumps(event, default=str)) + account_id = context.invoked_function_arn.split(":")[4] + if event['RequestType'] in ['Create', 'Update']: + try: + codebuild = boto3.client('codebuild') + response = codebuild.start_build(projectName = event['ResourceProperties']['BuildProjectName']) + cfnresponse.send(event, context, cfnresponse.SUCCESS, {"BuildStatus": response['build']['buildStatus']}) + except ClientError as codebuild_error: + cfnresponse.send(event, context, cfnresponse.FAILED, {"Reason": str(codebuild_error)}) + raise + elif event['RequestType'] in ['Delete']: + try: + ecr = boto3.client('ecr') + resources = event['ResourceProperties'] + repository = resources['ECRRepository'] + response = ecr.list_images(repositoryName=repository) + latestImageList = [image for image in response['imageIds'] if image['imageTag'] == 'latest'] + ecr.batch_delete_image(repositoryName=repository, imageIds=latestImageList) + cfnresponse.send(event, context, cfnresponse.SUCCESS, {}) + except ClientError as ecr_error: + cfnresponse.send(event, context, cfnresponse.FAILED, {"Reason": str(ecr_error)}) + raise + else: + cfnresponse.send(event, context, cfnresponse.FAILED, {"Reason": "Unknown RequestType %s" % event['RequestType']}) \ No newline at end of file diff --git a/source/transcribing_fargate_trigger/lambda_transcribing_fargate_trigger.py b/source/transcribing_fargate_trigger/lambda_transcribing_fargate_trigger.py new file mode 100644 index 0000000..fd67c92 --- /dev/null +++ b/source/transcribing_fargate_trigger/lambda_transcribing_fargate_trigger.py @@ -0,0 +1,53 @@ +'''* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *''' + +import json +import os +import boto3 + +QUEUE_URL = os.getenv("QUEUE_URL") + +def lambda_handler(event, context): + # Log the received event + print("Received event: " + json.dumps(event, indent=2)) + sqs = boto3.resource('sqs').Queue(QUEUE_URL) + transcriptionEnabled = True if event['Details']['ContactData']['Attributes']['transcribeCall'] == "true" else False + saveCallRecording = False if event['Details']['ContactData']['Attributes']['saveCallRecording'] == "false" else True + languageCode = "es-US" if event['Details']['ContactData']['Attributes']['languageCode'] == "es-US" else "en-US" + streamAudioFromCustomer = True + streamAudioToCustomer = True + for dest in event['Details']['ContactData']['Attributes']: + if 'streamAudioFromCustomer' in dest: + streamAudioFromCustomer = False if event['Details']['ContactData']['Attributes']['streamAudioFromCustomer'] == "false" else True + if 'streamAudioToCustomer' in dest: + streamAudioToCustomer = False if event['Details']['ContactData']['Attributes']['streamAudioToCustomer'] == "false" else True + + payload = { + 'streamARN': event['Details']['ContactData']['MediaStreams']['Customer']['Audio']['StreamARN'], + 'startFragmentNum': event['Details']['ContactData']['MediaStreams']['Customer']['Audio']['StartFragmentNumber'], + 'connectContactId': event['Details']['ContactData']['ContactId'], + 'transcriptionEnabled': transcriptionEnabled, + 'saveCallRecording': saveCallRecording, + 'languageCode': languageCode, + 'streamAudioFromCustomer': streamAudioFromCustomer, + 'streamAudioToCustomer': streamAudioToCustomer + } + sqs.send_message(MessageBody=json.dumps(payload)) + return { + 'lambdaSuccess': 'Success' + } diff --git a/source/update_contact_attributes/index.js b/source/update_contact_attributes/index.js index a3f8f6e..dec80b3 100755 --- a/source/update_contact_attributes/index.js +++ b/source/update_contact_attributes/index.js @@ -1,3 +1,21 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + 'use strict'; const AWS = require('aws-sdk'); diff --git a/source/web_site/agentAssist.html b/source/web_site/agentAssist.html index 2676f52..62d0885 100755 --- a/source/web_site/agentAssist.html +++ b/source/web_site/agentAssist.html @@ -384,7 +384,7 @@ - +

@@ -933,7 +933,7 @@ } args = { message: err ? text : data.TranslatedText, - contentType: "text/plain" + type: "text/plain" }; agentChatSession.sendMessage(args); $('#tableDescription').hide(); diff --git a/source/web_site/js/aws-sdk-2.435.0.min.js b/source/web_site/js/aws-sdk-2.435.0.min.js deleted file mode 100644 index 6c8c788..0000000 --- a/source/web_site/js/aws-sdk-2.435.0.min.js +++ /dev/null @@ -1,10 +0,0 @@ -_xamzrequire=function(){function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var h=r[s]={exports:{}};t[s][0].call(h.exports,function(e){return i(t[s][1][e]||e)},h,h.exports,e,t,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s0||n?o.toString():""},t.exports=n},{"../util":117,"./xml-node":122,"./xml-text":123}],123:[function(e,t,r){function n(e){this.value=e}var i=e("./escape-element").escapeElement;n.prototype.toString=function(){return i(""+this.value)},t.exports={XmlText:n}},{"./escape-element":121}],121:[function(e,t,r){function n(e){return e.replace(/&/g,"&").replace(//g,">")}t.exports={escapeElement:n}},{}],122:[function(e,t,r){function n(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e("./escape-attribute").escapeAttribute;n.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},n.prototype.addChildNode=function(e){return this.children.push(e),this},n.prototype.removeAttribute=function(e){return delete this.attributes[e],this},n.prototype.toString=function(){for(var e=Boolean(this.children.length),t="<"+this.name,r=this.attributes,n=0,o=Object.keys(r);n"+this.children.map(function(e){return e.toString()}).join("")+"":"/>"},t.exports={XmlNode:n}},{"./escape-attribute":120}],120:[function(e,t,r){function n(e){return e.replace(/&/g,"&").replace(/'/g,"'").replace(//g,">").replace(/"/g,""")}t.exports={escapeAttribute:n}},{}],109:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),n.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return n.Signers.V2;case"v3":return n.Signers.V3;case"s3v4":case"v4":return n.Signers.V4;case"s3":return n.Signers.S3;case"v3https":return n.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":38,"./presign":108,"./s3":110,"./v2":111,"./v3":112,"./v3https":113,"./v4":114}],114:[function(e,t,r){var n=e("../core"),i=e("./v4_credentials"),o=n.util.inherit;n.Signers.V4=o(n.Signers.RequestSigner,{constructor:function(e,t,r){n.Signers.RequestSigner.call(this,e),this.serviceName=t,r=r||{},this.signatureCache="boolean"!=typeof r.signatureCache||r.signatureCache,this.operation=r.operation,this.signatureVersion=r.signatureVersion},algorithm:"AWS4-HMAC-SHA256",addAuthorization:function(e,t){var r=n.util.date.iso8601(t).replace(/[:\-]|\.\d{3}/g,"");this.isPresigned()?this.updateForPresigned(e,r):this.addHeaders(e,r),this.request.headers.Authorization=this.authorization(e,r)},addHeaders:function(e,t){this.request.headers["X-Amz-Date"]=t,e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken)},updateForPresigned:function(e,t){var r=this.credentialString(t),i={"X-Amz-Date":t,"X-Amz-Algorithm":this.algorithm,"X-Amz-Credential":e.accessKeyId+"/"+r,"X-Amz-Expires":this.request.headers["presigned-expires"],"X-Amz-SignedHeaders":this.signedHeaders()};e.sessionToken&&(i["X-Amz-Security-Token"]=e.sessionToken),this.request.headers["Content-Type"]&&(i["Content-Type"]=this.request.headers["Content-Type"]),this.request.headers["Content-MD5"]&&(i["Content-MD5"]=this.request.headers["Content-MD5"]),this.request.headers["Cache-Control"]&&(i["Cache-Control"]=this.request.headers["Cache-Control"]),n.util.each.call(this,this.request.headers,function(e,t){if("presigned-expires"!==e&&this.isSignableHeader(e)){var r=e.toLowerCase();0===r.indexOf("x-amz-meta-")?i[r]=t:0===r.indexOf("x-amz-")&&(i[e]=t)}});var o=this.request.path.indexOf("?")>=0?"&":"?";this.request.path+=o+n.util.queryParamsToString(i)},authorization:function(e,t){var r=[],n=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+n),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return n.util.crypto.hmac(r,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&"s3v4"!==this.signatureVersion&&(t=n.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];n.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),f},emptyCache:function(){i={},o=[]}}},{"../core":38}],113:[function(e,t,r){var n=e("../core"),i=n.util.inherit;e("./v3"),n.Signers.V3Https=i(n.Signers.V3,{authorization:function(e){return"AWS3-HTTPS AWSAccessKeyId="+e.accessKeyId+",Algorithm=HmacSHA256,Signature="+this.signature(e)},stringToSign:function(){return this.request.headers["X-Amz-Date"]}}),t.exports=n.Signers.V3Https},{"../core":38,"./v3":112}],112:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.V3=i(n.Signers.RequestSigner,{addAuthorization:function(e,t){var r=n.util.date.rfc822(t);this.request.headers["X-Amz-Date"]=r,e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken),this.request.headers["X-Amzn-Authorization"]=this.authorization(e,r)},authorization:function(e){return"AWS3 AWSAccessKeyId="+e.accessKeyId+",Algorithm=HmacSHA256,SignedHeaders="+this.signedHeaders()+",Signature="+this.signature(e)},signedHeaders:function(){var e=[];return n.util.arrayEach(this.headersToSign(),function(t){e.push(t.toLowerCase())}),e.sort().join(";")},canonicalHeaders:function(){var e=this.request.headers,t=[];return n.util.arrayEach(this.headersToSign(),function(r){t.push(r.toLowerCase().trim()+":"+String(e[r]).trim())}),t.sort().join("\n")+"\n"},headersToSign:function(){var e=[];return n.util.each(this.request.headers,function(t){("Host"===t||"Content-Encoding"===t||t.match(/^X-Amz/i))&&e.push(t)}),e},signature:function(e){return n.util.crypto.hmac(e.secretAccessKey,this.stringToSign(),"base64")},stringToSign:function(){var e=[];return e.push(this.request.method),e.push("/"),e.push(""),e.push(this.canonicalHeaders()),e.push(this.request.body),n.util.crypto.sha256(e.join("\n"))}}),t.exports=n.Signers.V3},{"../core":38}],111:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.V2=i(n.Signers.RequestSigner,{addAuthorization:function(e,t){t||(t=n.util.date.getDate());var r=this.request;r.params.Timestamp=n.util.date.iso8601(t),r.params.SignatureVersion="2",r.params.SignatureMethod="HmacSHA256",r.params.AWSAccessKeyId=e.accessKeyId,e.sessionToken&&(r.params.SecurityToken=e.sessionToken),delete r.params.Signature,r.params.Signature=this.signature(e),r.body=n.util.queryParamsToString(r.params),r.headers["Content-Length"]=r.body.length},signature:function(e){return n.util.crypto.hmac(e.secretAccessKey,this.stringToSign(),"base64")},stringToSign:function(){var e=[];return e.push(this.request.method),e.push(this.request.endpoint.host.toLowerCase()),e.push(this.request.pathname()),e.push(n.util.queryParamsToString(this.request.params)),e.join("\n")}}),t.exports=n.Signers.V2},{"../core":38}],110:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.S3=i(n.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=n.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];n.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()604800){throw o.util.error(new Error,{code:"InvalidExpiryTime",message:"Presigning does not support expiry time greater than a week with SigV4 signing.",retryable:!1})}e.httpRequest.headers[a]=t}else{if(r!==o.Signers.S3)throw o.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var n=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(n)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=o.util.urlParse(e.httpRequest.path),n={};r.search&&(n=o.util.queryStringParse(r.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),n.AWSAccessKeyId=i[0],n.Signature=i[1],o.util.each(e.httpRequest.headers,function(e,t){e===a&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete n[e],e=e.toLowerCase()),n[e]=t}),delete e.httpRequest.headers[a],delete n.Authorization,delete n.Host;else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var s=i.join(" "),u=s.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];n["X-Amz-Signature"]=u,delete n.Expires}t.pathname=r.pathname,t.search=o.util.queryParamsToString(n)}var o=e("../core"),s=o.util.inherit,a="presigned-expires";o.Signers.Presign=s({sign:function(e,t,r){if(e.httpRequest.headers[a]=t||3600,e.on("build",n),e.on("sign",i),e.removeListener("afterBuild",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",o.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,o.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=o.Signers.Presign},{"../core":38}],89:[function(e,t,r){(function(r){var n=e("./core"),i=e("./model/api"),o=e("./region_config"),s=n.util.inherit,a=0;n.Service=s({constructor:function(e){if(!this.loadServiceClass)throw n.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var r=n.util.copy(e),i=new t(e);return Object.defineProperty(i,"_originalConfig",{get:function(){return r},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=n.config[this.serviceIdentifier];if(this.config=new n.Config(n.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),n.SequentialExecutor.call(this),n.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||n.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener("PUBLISH_API_CALL","apiCall",function(e){r.nextTick(function(){i.eventHandler(e)})}),this.addNamedListener("PUBLISH_API_ATTEMPT","apiCallAttempt",function(e){r.nextTick(function(){i.eventHandler(e)})})}},validateService:function(){},loadServiceClass:function(e){var t=e;if(n.util.isEmpty(this.api)){if(t.apiConfig)return n.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new n.Config(n.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&n.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?n.util.isType(e,Date)&&(e=n.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if("function"!=typeof e)throw new Error("Invalid callback type '"+typeof e+"' provided in customizeRequests");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,r){if("function"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=n.util.copy(t),n.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var o=new n.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),r&&o.send(r),o},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var n=this.makeRequest(e,t).toUnauthenticated();return r?n.send(r):n},waitFor:function(e,t,r){return new n.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[n.events,n.EventListeners.Core,this.serviceInterface(),n.EventListeners.CorePost],r=0;r299?(i.code&&(r.FinalAwsException=i.code),i.message&&(r.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(r.FinalSdkException=i.code||i.name),i.message&&(r.FinalSdkExceptionMessage=i.message))}return r},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],r={Type:"ApiCallAttempt",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},n=e.response;return n.httpResponse.statusCode&&(r.HttpStatusCode=n.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(r.AccessKey=e.service.config.credentials.accessKeyId),n.httpResponse.headers?(e.httpRequest.headers["x-amz-security-token"]&&(r.SessionToken=e.httpRequest.headers["x-amz-security-token"]),n.httpResponse.headers["x-amzn-requestid"]&&(r.XAmznRequestId=n.httpResponse.headers["x-amzn-requestid"]),n.httpResponse.headers["x-amz-request-id"]&&(r.XAmzRequestId=n.httpResponse.headers["x-amz-request-id"]),n.httpResponse.headers["x-amz-id-2"]&&(r.XAmzId2=n.httpResponse.headers["x-amz-id-2"]),r):r},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),r=e.response,n=r.error;return r.httpResponse.statusCode>299?(n.code&&(t.AwsException=n.code),n.message&&(t.AwsExceptionMessage=n.message)):((n.code||n.name)&&(t.SdkException=n.code||n.name),n.message&&(t.SdkExceptionMessage=n.message)),t},attachMonitoringEmitter:function(e){var t,r,i,o,s,a,u=0,c=this;e.on("validate",function(){o=n.util.realClock.now(),a=Date.now()},!0),e.on("sign",function(){r=n.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,u++},!0),e.on("validateResponse",function(){i=Math.round(n.util.realClock.now()-r)}),e.addNamedListener("API_CALL_ATTEMPT","success",function(){var r=c.apiAttemptEvent(e);r.Timestamp=t,r.AttemptLatency=i>=0?i:0,r.Region=s,c.emit("apiCallAttempt",[r])}),e.addNamedListener("API_CALL_ATTEMPT_RETRY","retry",function(){var o=c.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(n.util.realClock.now()-r),o.AttemptLatency=i>=0?i:0,o.Region=s,c.emit("apiCallAttempt",[o])}),e.addNamedListener("API_CALL","complete",function(){var t=c.apiCallEvent(e);if(t.AttemptCount=u,!(t.AttemptCount<=0)){t.Timestamp=a;var r=Math.round(n.util.realClock.now()-o);t.Latency=r>=0?r:0;var i=e.response;"number"==typeof i.retryCount&&"number"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),c.emit("apiCall",[t])}})},setupRequestListeners:function(e){},getSignerClass:function(e){var t,r=null,i="";if(e){r=(e.service.api.operations||{})[e.operation]||null,i=r?r.authtype:""}return t=this.config.signatureVersion?this.config.signatureVersion:"v4"===i||"v4-unsigned-body"===i?"v4":this.api.signatureVersion,n.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case"ec2":case"query":return n.EventListeners.Query;case"json":return n.EventListeners.Json;case"rest-json":return n.EventListeners.RestJson;case"rest-xml":return n.EventListeners.RestXml}if(this.api.protocol)throw new Error("Invalid service `protocol' "+this.api.protocol+" in API config")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e){return n.util.calculateRetryDelay(e,this.config.retryDelayOptions)},retryableError:function(e){return!!this.timeoutError(e)||(!!this.networkingError(e)||(!!this.expiredCredentialsError(e)||(!!this.throttledError(e)||e.statusCode>=500)))},networkingError:function(e){return"NetworkingError"===e.code},timeoutError:function(e){return"TimeoutError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e4},throttledError:function(e){switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":case"RequestThrottledException":case"TooManyRequestsException":case"TransactionInProgressException":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new n.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw n.util.error(i,"No pagination configuration for "+e)}return null}return r}}),n.util.update(n.Service,{defineMethods:function(e){n.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){"none"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){n.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=s(n.Service,r||{});if("string"==typeof e){n.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,n.Service.defineMethods(i);if(n.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&n.util.clientSideMonitoring){var a=n.util.clientSideMonitoring.Publisher,u=n.util.clientSideMonitoring.configProvider,c=u();this.prototype.publisher=new a(c),c.enabled&&(n.Service._clientSideMonitoring=!0)}return n.SequentialExecutor.call(i.prototype),n.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r=0){u=!0;var c=0}var h=function(){u&&c!==a?i.emit("error",n.util.error(new Error("Stream content length mismatch. Received "+c+" of "+a+" bytes."),{code:"StreamContentLengthMismatch"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit("end")},l=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(u){var p=new e.PassThrough;p._write=function(t){return t&&t.length&&(c+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},p.on("end",h),i.on("error",function(e){u=!1,l.unpipe(p),p.emit("end"),p.end()}),l.pipe(p).pipe(i,{end:!1})}else l.pipe(i);else u&&l.on("data",function(e){e&&e.length&&(c+=e.length)}),l.on("data",function(e){i.emit("data",e)}),l.on("end",h);l.on("error",function(e){u=!1,i.emit("error",e)})}}),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener("validate",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",n.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent("promise"),new e(function(e,r){t.on("complete",function(t){t.error?r(t.error):e(Object.defineProperty(t.data||{},"$response",{value:t}))}),t.runTo()})}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this,e("_process"))},{"./core":38,"./state_machine":116,_process:9,jmespath:8}],116:[function(e,t,r){function n(e,t){this.currentState=t||null,this.states=e||{}}n.prototype.runTo=function(e,t,r,n){"function"==typeof e&&(n=r,r=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(r||i,n,function(n){if(n){if(!o.fail)return t?t.call(r,n):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(r):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(r,n):null;i.runTo(e,t,r,n)})},n.prototype.addState=function(e,t,r,n){return"function"==typeof t?(n=t,t=null,r=null):"function"==typeof r&&(n=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:n},this},t.exports=n},{}],71:[function(e,t,r){var n=e("./core");n.ParamValidator=n.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,r){if(this.errors=[],this.validateMember(e,t||{},r||"params"),this.errors.length>1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,n.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(n.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var n,i=0;e.required&&i= 1, but found "'+t+'" for '+r)},validatePattern:function(e,t,r){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail("PatternMatchError",'Provided value "'+t+'" does not match regex pattern /'+e.pattern+"/ for "+r))},validateRange:function(e,t,r,n){this.validation.min&&void 0!==e.min&&t= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+n+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var o=!1,s=0;s=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();i.util.computeSha256(o,function(r,n){r?t(r):(e.httpRequest.headers["X-Amz-Content-Sha256"]=n,t())})}else t()}}),e("SET_CONTENT_LENGTH","afterBuild",function(e){var t=n(e);if(void 0===e.httpRequest.headers["Content-Length"])try{var r=i.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=r}catch(e){if(-1===t.indexOf("unsigned-body"))throw e;return}}),e("SET_HTTP_HOST","afterBuild",function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host}),e("RESTART","restart",function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new i.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(e){e?t(e):s()}):s()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r,n){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=n,r.httpResponse.headers=t,r.httpResponse.body=new i.util.Buffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var o=t.date||t.Date,s=r.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(i.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],n={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[n,t])}t.httpResponse.buffers.push(new i.util.Buffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=i.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e("FINALIZE_ERROR","retry",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e("INVALIDATE_CREDENTIALS","retry",function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e("EXPIRED_SIGNATURE","retry",function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e("CLOCK_SKEWED","retry",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)}),e("REDIRECT","retry",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new i.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var n=this.listeners(e),i=n.length;return this.callListeners(n,t,r),i>0},callListeners:function(e,t,r,i){function o(i){if(i&&(a=n.util.error(a||new Error,i),s._haltHandlersOnError))return r.call(s,a);s.callListeners(e,t,r,a)}for(var s=this,a=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(s,t.concat([o]));try{u.apply(s,t)}catch(e){a=n.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void r.call(s,a)}r.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),n.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),n.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r,n){return this[e]=r,this.addListener(t,r,n),this},addNamedAsyncListener:function(e,t,r,n){return r._isAsync=!0,this.addNamedListener(e,t,r,n)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),n.SequentialExecutor.prototype.addListener=n.SequentialExecutor.prototype.on,t.exports=n.SequentialExecutor},{"./core":38}],78:[function(e,t,r){function n(e){var t=e.service.api.operations[e.operation].input,r=new a.XML.Builder,n=e.params,i=t.payload;if(i){var o=t.members[i];if(void 0===(n=n[i]))return;if("structure"===o.type){var s=o.name;e.httpRequest.body=r.toXML(n,o,s,!0)}else e.httpRequest.body=n}else e.httpRequest.body=r.toXML(n,t,t.name||t.shape||u.string.upperFirst(e.operation)+"Request")}function i(e){c.buildRequest(e),["GET","HEAD"].indexOf(e.httpRequest.method)<0&&n(e)}function o(e){c.extractError(e);var t;try{t=(new a.XML.Parser).parse(e.httpResponse.body.toString())}catch(r){t={Code:e.httpResponse.statusCode,Message:e.httpResponse.statusMessage}}t.Errors&&(t=t.Errors),t.Error&&(t=t.Error),t.Code?e.error=u.error(new Error,{code:t.Code,message:t.Message}):e.error=u.error(new Error,{code:e.httpResponse.statusCode,message:null})}function s(e){c.extractData(e);var t,r=e.request,n=e.httpResponse.body,i=r.service.api.operations[r.operation],o=i.output,s=(i.hasEventOutput,o.payload);if(s){var h=o.members[s];h.isEventStream?(t=new a.XML.Parser,e.data[s]=u.createEventStream(2===a.HttpClient.streamsApiVersion?e.httpResponse.stream:e.httpResponse.body,t,h)):"structure"===h.type?(t=new a.XML.Parser,e.data[s]=t.parse(n.toString(),h)):"binary"===h.type||h.isStreaming?e.data[s]=n:e.data[s]=h.toType(n)}else if(n.length>0){t=new a.XML.Parser;var l=t.parse(n.toString(),o);u.update(e.data,l)}}var a=e("../core"),u=e("../util"),c=e("./rest");t.exports={buildRequest:i,extractError:o,extractData:s}},{"../core":38,"../util":117,"./rest":76}],77:[function(e,t,r){function n(e){var t=new l,r=e.service.api.operations[e.operation].input;if(r.payload){var n={},o=r.members[r.payload];if(void 0===(n=e.params[r.payload]))return;"structure"===o.type?(e.httpRequest.body=t.build(n,o),i(e)):(e.httpRequest.body=n,("binary"===o.type||o.isStreaming)&&i(e,!0))}else{var s=t.build(e.params,r);"{}"===s&&"GET"===e.httpRequest.method||(e.httpRequest.body=s),i(e)}}function i(e,t){var r=e.service.api.operations[e.operation];r.input;if(!e.httpRequest.headers["Content-Type"]){var n=t?"binary/octet-stream":"application/json";e.httpRequest.headers["Content-Type"]=n}}function o(e){c.buildRequest(e),["HEAD","DELETE"].indexOf(e.httpRequest.method)<0&&n(e)}function s(e){h.extractError(e)}function a(e){c.extractData(e);var t,r=e.request,n=r.service.api.operations[r.operation],i=r.service.api.operations[r.operation].output||{};n.hasEventOutput;if(i.payload){var o=i.members[i.payload],s=e.httpResponse.body;if(o.isEventStream)t=new p,e.data[payload]=u.createEventStream(2===AWS.HttpClient.streamsApiVersion?e.httpResponse.stream:s,t,o);else if("structure"===o.type||"list"===o.type){var t=new p;e.data[i.payload]=t.parse(s,o)}else"binary"===o.type||o.isStreaming?e.data[i.payload]=s:e.data[i.payload]=o.toType(s)}else{var a=e.data;h.extractData(e),e.data=u.merge(a,e.data)}}var u=e("../util"),c=e("./rest"),h=e("./json"),l=e("../json/builder"),p=e("../json/parser");t.exports={buildRequest:o,extractError:s,extractData:a}},{"../json/builder":63,"../json/parser":64,"../util":117,"./json":74,"./rest":76}],76:[function(e,t,r){function n(e){e.httpRequest.method=e.service.api.operations[e.operation].httpMethod}function i(e,t,r,n){var i=[e,t].join("/");i=i.replace(/\/+/g,"/");var o={},s=!1;if(h.each(r.members,function(e,t){var r=n[e];if(null!==r&&void 0!==r)if("uri"===t.location){var a=new RegExp("\\{"+t.name+"(\\+)?\\}");i=i.replace(a,function(e,t){return(t?h.uriEscapePath:h.uriEscape)(String(r))})}else"querystring"===t.location&&(s=!0,"list"===t.type?o[t.name]=r.map(function(e){return h.uriEscape(t.member.toWireFormat(e).toString())}):"map"===t.type?h.each(r,function(e,t){Array.isArray(t)?o[e]=t.map(function(e){return h.uriEscape(String(e))}):o[e]=h.uriEscape(String(t))}):o[t.name]=h.uriEscape(t.toWireFormat(r).toString()))}),s){i+=i.indexOf("?")>=0?"&":"?";var a=[];h.arrayEach(Object.keys(o).sort(),function(e){Array.isArray(o[e])||(o[e]=[o[e]]);for(var t=0;t-1?t||"":t,this.isJsonValue?JSON.parse(t):t&&"function"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function p(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function f(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function d(){o.apply(this,arguments),this.toType=y.base64.decode,this.toWireFormat=y.base64.encode}function m(){d.apply(this,arguments)}function v(){o.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null===e||void 0===e?null:"true"===e}}var g=e("./collection"),y=e("../util");o.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},o.types={structure:a,list:u,map:c,boolean:v,timestamp:h,float:p,integer:f,string:l,base64:m,binary:d},o.resolve=function(e,t){if(e.shape){var r=t.api.shapes[e.shape];if(!r)throw new Error("Cannot find shape reference: "+e.shape);return r}return null},o.create=function(e,t,r){if(e.isShape)return e;var n=o.resolve(e,t);if(n){var i=Object.keys(e);t.documentation||(i=i.filter(function(e){return!e.match(/documentation/)}));var s=function(){n.constructor.call(this,e,t,r)};return s.prototype=n,new s}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,r);throw new Error("Unrecognized shape type: "+a)},o.shapes={StructureShape:a,ListShape:u,MapShape:c,StringShape:l,BooleanShape:v,Base64Shape:m},t.exports=o},{"../util":117,"./collection":66}],66:[function(e,t,r){function n(e,t,r,n){o(this,n(e),function(){return r(e,t)})}function i(e,t,r,i,o){i=i||String;var s=this;for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n.call(s,a,e[a],r,i),o&&o(a,e[a]))}var o=e("../util").memoizedProperty;t.exports=i},{"../util":117}],74:[function(e,t,r){function n(e){var t=e.httpRequest,r=e.service.api,n=r.targetPrefix+"."+r.operations[e.operation].name,i=r.jsonVersion||"1.0",o=r.operations[e.operation].input,s=new a;1===i&&(i="1.0"),t.body=s.build(e.params||{},o),t.headers["Content-Type"]="application/x-amz-json-"+i,t.headers["X-Amz-Target"]=n,c(e)}function i(e){var t={},r=e.httpResponse;if(t.code=r.headers["x-amzn-errortype"]||"UnknownError","string"==typeof t.code&&(t.code=t.code.split(":")[0]),r.body.length>0)try{var n=JSON.parse(r.body.toString());(n.__type||n.code)&&(t.code=(n.__type||n.code).split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=n.message||n.Message||null}catch(n){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=s.error(new Error,t)}function o(e){var t=e.httpResponse.body.toString()||"{}";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],n=r.output||{},i=new u;e.data=i.parse(t,n)}}var s=e("../util"),a=e("../json/builder"),u=e("../json/parser"),c=e("./helpers").populateHostPrefix;t.exports={buildRequest:n,extractError:i,extractData:o}},{"../json/builder":63,"../json/parser":64,"../util":117,"./helpers":73}],73:[function(e,t,r){function n(e){if(!e.service.config.hostPrefixEnabled)return e;var t=e.service.api.operations[e.operation];if(i(e))return e;if(t.endpoint&&t.endpoint.hostPrefix){var r=t.endpoint.hostPrefix,n=o(r,e.params,t.input);s(e.httpRequest.endpoint,n),a(e.httpRequest.endpoint.hostname)}return e}function i(e){var t=e.service.api,r=t.operations[e.operation],n=t.endpointOperation&&t.endpointOperation===u.string.lowerFirst(r.name);return"NULL"!==r.endpointDiscoveryRequired||!0===n}function o(e,t,r){return u.each(r.members,function(r,n){if(!0===n.hostLabel){if("string"!=typeof t[r]||""===t[r])throw u.error(new Error,{message:"Parameter "+r+" should be a non-empty string.",code:"InvalidParameter"});var i=new RegExp("\\{"+r+"\\}","g");e=e.replace(i,t[r])}}),e}function s(e,t){e.host&&(e.host=t+e.host),e.hostname&&(e.hostname=t+e.hostname)}function a(e){var t=e.split("."),r=/^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$/;u.arrayEach(t,function(e){if(!e.length||e.length<1||e.length>63)throw u.error(new Error,{code:"ValidationError",message:"Hostname label length should be between 1 to 63 characters, inclusive."});if(!r.test(e))throw c.util.error(new Error,{code:"ValidationError",message:e+" is not hostname compatible."})})}var u=e("../util"),c=e("../core");t.exports={populateHostPrefix:n}},{"../core":38,"../util":117}],64:[function(e,t,r){function n(){}function i(e,t){if(t&&void 0!==e)switch(t.type){case"structure":return o(e,t);case"map":return a(e,t);case"list":return s(e,t);default:return u(e,t)}}function o(e,t){if(null!=e){var r={},n=t.members;return c.each(n,function(t,n){var o=n.isLocationName?n.name:t;if(Object.prototype.hasOwnProperty.call(e,o)){var s=e[o],a=i(s,n);void 0!==a&&(r[t]=a)}}),r}}function s(e,t){if(null!=e){var r=[];return c.arrayEach(e,function(e){var n=i(e,t.member);void 0===n?r.push(null):r.push(n)}),r}}function a(e,t){if(null!=e){var r={};return c.each(e,function(e,n){var o=i(n,t.value);r[e]=void 0===o?null:o}),r}}function u(e,t){return t.toType(e)}var c=e("../util");n.prototype.parse=function(e,t){return i(JSON.parse(e),t)},t.exports=n},{"../util":117}],63:[function(e,t,r){function n(){}function i(e,t){if(t&&void 0!==e&&null!==e)switch(t.type){case"structure":return o(e,t);case"map":return a(e,t);case"list":return s(e,t);default:return u(e,t)}}function o(e,t){var r={};return c.each(e,function(e,n){var o=t.members[e];if(o){if("body"!==o.location)return;var s=o.isLocationName?o.name:e,a=i(n,o);void 0!==a&&(r[s]=a)}}),r}function s(e,t){var r=[];return c.arrayEach(e,function(e){var n=i(e,t.member);void 0!==n&&r.push(n)}),r}function a(e,t){var r={};return c.each(e,function(e,n){var o=i(n,t.value);void 0!==o&&(r[e]=o)}),r}function u(e,t){return t.toWireFormat(e)}var c=e("../util");n.prototype.build=function(e,t){return JSON.stringify(i(e,t))},t.exports=n},{"../util":117}],46:[function(e,t,r){(function(r){function n(e){var t=e.service,r=t.api||{},n={};return t.config.region&&(n.region=t.config.region),r.serviceId&&(n.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(n.accessKeyId=t.config.credentials.accessKeyId),n}function i(e,t,r){r&&void 0!==t&&null!==t&&"structure"===r.type&&r.required&&r.required.length>0&&m.arrayEach(r.required,function(n){var o=r.members[n];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:n;e[s]=String(t[n])}else i(e,t[n],o)})}function o(e,t){var r={};return i(r,e.params,t),r}function s(e){var t=e.service,r=t.api,i=r.operations?r.operations[e.operation]:void 0,s=i?i.input:void 0,a=o(e,s),c=n(e);Object.keys(a).length>0&&(c=m.update(c,a),i&&(c.operation=i.name));var h=d.endpointCache.get(c);if(!h||1!==h.length||""!==h[0].Address)if(h&&h.length>0)e.httpRequest.updateEndpoint(h[0].Address);else{var l=t.makeRequest(r.endpointOperation,{Operation:i.name,Identifiers:a});u(l),l.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),l.removeListener("retry",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:1}]),l.send(function(e,t){t&&t.Endpoints?d.endpointCache.put(c,t.Endpoints):e&&d.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:1}])})}}function a(e,t){var r=e.service,i=r.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,c=o(e,a),h=n(e);Object.keys(c).length>0&&(h=m.update(h,c),s&&(h.operation=s.name));var l=d.EndpointCache.getKeyString(h),p=d.endpointCache.get(l);if(p&&1===p.length&&""===p[0].Address)return g[l]||(g[l]=[]),void g[l].push({request:e,callback:t});if(p&&p.length>0)e.httpRequest.updateEndpoint(p[0].Address),t();else{var f=r.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:c});f.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),u(f),d.endpointCache.put(l,[{Address:"",CachePeriodInMinutes:60}]),f.send(function(r,n){if(r){var i={code:"EndpointDiscoveryException",message:"Request cannot be fulfilled without specifying an endpoint",retryable:!1};if(e.response.error=m.error(r,i),d.endpointCache.remove(h),g[l]){var o=g[l];m.arrayEach(o,function(e){e.request.response.error=m.error(r,i),e.callback()}),delete g[l]}}else if(n&&(d.endpointCache.put(l,n.Endpoints),e.httpRequest.updateEndpoint(n.Endpoints[0].Address),g[l])){var o=g[l];m.arrayEach(o,function(e){e.request.httpRequest.updateEndpoint(n.Endpoints[0].Address),e.callback()}),delete g[l]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=r)}function c(e){var t=e.error,r=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===r.statusCode)){var i=e.request,s=i.service.api.operations||{},a=s[i.operation]?s[i.operation].input:void 0,u=o(i,a),c=n(i);Object.keys(u).length>0&&(c=m.update(c,u),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function h(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw m.error(new Error,{code:"ConfigurationException",message:"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true."});var t=d.config[e.serviceIdentifier]||{};return Boolean(d.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function l(e){return["false","0"].indexOf(e)>=0}function p(e){if(!0===(e.service||{}).config.endpointDiscoveryEnabled)return!0;if(m.isBrowser())return!1;for(var t=0;t=e.length)return t.push(null);var i=r+n;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,n=0,i=null;for(t=0;t>>8^t[255&(r^e.readUInt8(n))]}return(-1^r)>>>0},hmac:function(e,t,r,n){return r||(r="binary"),"buffer"===r&&(r=void 0),n||(n="sha256"),"string"==typeof t&&(t=new o.Buffer(t)),o.crypto.lib.createHmac(n,e).update(t).digest(r)},md5:function(e,t,r){return o.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return o.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,n){var i=o.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=new o.Buffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),n&&"object"==typeof t&&"function"==typeof t.on&&!a)t.on("data",function(e){i.update(e)}),t.on("error",function(e){n(e)}),t.on("end",function(){n(null,i.digest(r))});else{if(!n||!s||a||"undefined"==typeof FileReader){o.isBrowser()&&"object"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var u=i.update(t).digest(r);return n&&n(null,u),u}var c=0,h=new FileReader;h.onerror=function(){n(new Error("Failed to read data."))},h.onload=function(){var e=new o.Buffer(new Uint8Array(h.result));i.update(e),c+=e.length,h._continueReading()},h._continueReading=function(){if(c>=t.size)return void n(null,i.digest(r));var e=c+524288;e>t.size&&(e=t.size),h.readAsArrayBuffer(s.call(t,c,e))},h._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var r=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t&&(r=!0),Array.isArray(e)||(e=[e]);for(var n=0;n=500||429===n});i&&s.retryable&&(s.retryAfter=i),u(s)}})},u)};i.util.defer(c)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,n=t.service.api.operations[r].output||{};n.payload&&e.data[n.payload]&&(e.data[n.payload]=e.data[n.payload].toString())},defer:function(e){"object"==typeof r&&"function"==typeof r.nextTick?r.nextTick(e):"function"==typeof n?n(e):setTimeout(e,0)},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE",imdsDisabledEnv:"AWS_EC2_METADATA_DISABLED"};t.exports=o}).call(this,e("_process"),e("timers").setImmediate)},{"../apis/metadata.json":26,"./core":38,_process:9,fs:2,timers:17,uuid:21}],37:[function(e,t,r){var n=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var i;n.Config=n.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),n.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:i.credentials)}function r(e,t){return new n.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var i=this;i.credentials?"function"==typeof i.credentials.get?function(){i.credentials.get(function(e){e&&(e=r("Could not load credentials from "+i.credentials.constructor.name,e)),t(e)})}():function(){var e=null;i.credentials.accessKeyId&&i.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}():i.credentialProvider?i.credentialProvider.resolve(function(e,n){e&&(e=r("Could not load credentials from any providers",e)),i.credentials=n,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),n.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||n.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(n.util.readFileSync(e)),r=new n.FileSystemCredentials(e),i=new n.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){n.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]="function"==typeof r?r.call(this):r):"httpOptions"===e&&this[e]?this[e]=n.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:!1,endpointCacheSize:1e3,hostPrefixEnabled:!0},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=n.util.copy(e),e.credentials=new n.Credentials(e)),e},setPromisesDependency:function(e){i=e,null===e&&"function"==typeof Promise&&(i=Promise);var t=[n.Request,n.Credentials,n.CredentialProviderChain];n.S3&&n.S3.ManagedUpload&&t.push(n.S3.ManagedUpload),n.util.addPromises(t,i)},getPromisesDependency:function(){return i}}),n.config=new n.Config},{"./core":38,"./credentials":39,"./credentials/credential_provider_chain":42}],42:[function(e,t,r){var n=e("../core");n.CredentialProviderChain=n.util.inherit(n.Credentials,{constructor:function(e){this.providers=e||n.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,s){if(!e&&s||i===o.length)return n.util.arrayEach(r.resolveCallbacks,function(t){t(e,s)}),void(r.resolveCallbacks.length=0);var a=o[i++];s="function"==typeof a?a.call():a,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}var r=this;if(0===r.providers.length)return e(new Error("No providers")),r;if(1===r.resolveCallbacks.push(e)){var i=0,o=r.providers.slice(0);t()}return r}}),n.CredentialProviderChain.defaultProviders=[],n.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=n.util.promisifyMethod("resolve",e)},n.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},n.util.addPromises(n.CredentialProviderChain)},{"../core":38}],39:[function(e,t,r){var n=e("./core");n.Credentials=n.util.inherit({constructor:function(){if(n.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=n.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){n.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):n.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),n.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=n.util.promisifyMethod("get",e),this.prototype.refreshPromise=n.util.promisifyMethod("refresh",e)},n.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},n.util.addPromises(n.Credentials)},{"./core":38}],27:[function(e,t,r){function n(e,t){if(!n.services.hasOwnProperty(e))throw new Error("InvalidService: Failed to load api for "+e);return n.services[e][t]}n.services={},t.exports=n},{}],26:[function(e,t,r){t.exports={acm:{name:"ACM",cors:!0},apigateway:{name:"APIGateway",cors:!0},applicationautoscaling:{prefix:"application-autoscaling",name:"ApplicationAutoScaling",cors:!0},appstream:{name:"AppStream"},autoscaling:{name:"AutoScaling",cors:!0},batch:{name:"Batch"},budgets:{name:"Budgets"},clouddirectory:{name:"CloudDirectory",versions:["2016-05-10*"]},cloudformation:{name:"CloudFormation",cors:!0},cloudfront:{name:"CloudFront",versions:["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","2016-08-01*","2016-08-20*","2016-09-07*","2016-09-29*","2016-11-25*","2017-03-25*","2017-10-30*","2018-06-18*"],cors:!0},cloudhsm:{name:"CloudHSM",cors:!0},cloudsearch:{name:"CloudSearch"},cloudsearchdomain:{name:"CloudSearchDomain"},cloudtrail:{name:"CloudTrail",cors:!0},cloudwatch:{prefix:"monitoring",name:"CloudWatch",cors:!0},cloudwatchevents:{prefix:"events",name:"CloudWatchEvents",versions:["2014-02-03*"],cors:!0},cloudwatchlogs:{prefix:"logs",name:"CloudWatchLogs",cors:!0},codebuild:{name:"CodeBuild",cors:!0},codecommit:{name:"CodeCommit",cors:!0},codedeploy:{name:"CodeDeploy",cors:!0},codepipeline:{name:"CodePipeline",cors:!0},cognitoidentity:{prefix:"cognito-identity",name:"CognitoIdentity",cors:!0},cognitoidentityserviceprovider:{prefix:"cognito-idp",name:"CognitoIdentityServiceProvider",cors:!0},cognitosync:{prefix:"cognito-sync",name:"CognitoSync",cors:!0},configservice:{prefix:"config",name:"ConfigService",cors:!0},cur:{name:"CUR",cors:!0},datapipeline:{name:"DataPipeline"},devicefarm:{name:"DeviceFarm",cors:!0},directconnect:{name:"DirectConnect",cors:!0},directoryservice:{prefix:"ds",name:"DirectoryService"},discovery:{name:"Discovery"},dms:{name:"DMS"},dynamodb:{name:"DynamoDB",cors:!0},dynamodbstreams:{prefix:"streams.dynamodb",name:"DynamoDBStreams",cors:!0},ec2:{name:"EC2",versions:["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*","2016-04-01*","2016-09-15*"],cors:!0},ecr:{name:"ECR",cors:!0},ecs:{name:"ECS",cors:!0},efs:{prefix:"elasticfilesystem",name:"EFS",cors:!0},elasticache:{name:"ElastiCache",versions:["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],cors:!0},elasticbeanstalk:{name:"ElasticBeanstalk",cors:!0},elb:{prefix:"elasticloadbalancing",name:"ELB",cors:!0},elbv2:{prefix:"elasticloadbalancingv2",name:"ELBv2",cors:!0},emr:{prefix:"elasticmapreduce",name:"EMR",cors:!0},es:{name:"ES"},elastictranscoder:{name:"ElasticTranscoder",cors:!0},firehose:{name:"Firehose",cors:!0},gamelift:{name:"GameLift",cors:!0},glacier:{name:"Glacier"},health:{name:"Health"},iam:{name:"IAM",cors:!0},importexport:{name:"ImportExport"},inspector:{name:"Inspector",versions:["2015-08-18*"],cors:!0},iot:{name:"Iot",cors:!0},iotdata:{prefix:"iot-data",name:"IotData",cors:!0},kinesis:{name:"Kinesis",cors:!0},kinesisanalytics:{name:"KinesisAnalytics"},kms:{name:"KMS",cors:!0},lambda:{name:"Lambda",cors:!0},lexruntime:{prefix:"runtime.lex",name:"LexRuntime",cors:!0},lightsail:{name:"Lightsail"},machinelearning:{name:"MachineLearning",cors:!0},marketplacecommerceanalytics:{name:"MarketplaceCommerceAnalytics",cors:!0},marketplacemetering:{prefix:"meteringmarketplace",name:"MarketplaceMetering"},mturk:{prefix:"mturk-requester",name:"MTurk",cors:!0},mobileanalytics:{name:"MobileAnalytics",cors:!0},opsworks:{name:"OpsWorks",cors:!0},opsworkscm:{name:"OpsWorksCM"},organizations:{name:"Organizations"},pinpoint:{name:"Pinpoint"},polly:{name:"Polly",cors:!0},rds:{name:"RDS",versions:["2014-09-01*"],cors:!0},redshift:{name:"Redshift",cors:!0},rekognition:{name:"Rekognition",cors:!0},resourcegroupstaggingapi:{name:"ResourceGroupsTaggingAPI"},route53:{name:"Route53",cors:!0},route53domains:{name:"Route53Domains",cors:!0},s3:{name:"S3",dualstackAvailable:!0,cors:!0},s3control:{name:"S3Control",dualstackAvailable:!0},servicecatalog:{name:"ServiceCatalog",cors:!0},ses:{prefix:"email",name:"SES",cors:!0},shield:{name:"Shield"},simpledb:{prefix:"sdb",name:"SimpleDB"},sms:{name:"SMS"},snowball:{name:"Snowball"},sns:{name:"SNS",cors:!0},sqs:{name:"SQS",cors:!0},ssm:{name:"SSM",cors:!0},storagegateway:{name:"StorageGateway",cors:!0},stepfunctions:{prefix:"states",name:"StepFunctions"},sts:{name:"STS",cors:!0},support:{name:"Support"},swf:{name:"SWF"},xray:{name:"XRay"},waf:{name:"WAF",cors:!0},wafregional:{prefix:"waf-regional",name:"WAFRegional"},workdocs:{name:"WorkDocs",cors:!0},workspaces:{name:"WorkSpaces"},codestar:{name:"CodeStar"},lexmodelbuildingservice:{prefix:"lex-models",name:"LexModelBuildingService",cors:!0},marketplaceentitlementservice:{prefix:"entitlement.marketplace",name:"MarketplaceEntitlementService"},athena:{name:"Athena"},greengrass:{name:"Greengrass"},dax:{name:"DAX"},migrationhub:{prefix:"AWSMigrationHub",name:"MigrationHub"},cloudhsmv2:{name:"CloudHSMV2"},glue:{name:"Glue"},mobile:{name:"Mobile"},pricing:{name:"Pricing",cors:!0},costexplorer:{prefix:"ce",name:"CostExplorer"},mediaconvert:{name:"MediaConvert"},medialive:{name:"MediaLive"},mediapackage:{name:"MediaPackage"},mediastore:{name:"MediaStore"},mediastoredata:{prefix:"mediastore-data",name:"MediaStoreData",cors:!0},appsync:{name:"AppSync"},guardduty:{name:"GuardDuty"},mq:{name:"MQ"},comprehend:{name:"Comprehend",cors:!0},iotjobsdataplane:{prefix:"iot-jobs-data",name:"IoTJobsDataPlane"},kinesisvideoarchivedmedia:{prefix:"kinesis-video-archived-media",name:"KinesisVideoArchivedMedia",cors:!0},kinesisvideomedia:{prefix:"kinesis-video-media",name:"KinesisVideoMedia",cors:!0},kinesisvideo:{name:"KinesisVideo",cors:!0},sagemakerruntime:{prefix:"runtime.sagemaker",name:"SageMakerRuntime"},sagemaker:{name:"SageMaker"},translate:{name:"Translate",cors:!0},resourcegroups:{prefix:"resource-groups",name:"ResourceGroups",cors:!0},alexaforbusiness:{name:"AlexaForBusiness"},cloud9:{name:"Cloud9"},serverlessapplicationrepository:{prefix:"serverlessrepo",name:"ServerlessApplicationRepository"},servicediscovery:{name:"ServiceDiscovery"},workmail:{name:"WorkMail"},autoscalingplans:{prefix:"autoscaling-plans",name:"AutoScalingPlans"},transcribeservice:{prefix:"transcribe",name:"TranscribeService"},connect:{name:"Connect"},acmpca:{prefix:"acm-pca",name:"ACMPCA"},fms:{name:"FMS"},secretsmanager:{name:"SecretsManager",cors:!0},iotanalytics:{name:"IoTAnalytics"},iot1clickdevicesservice:{prefix:"iot1click-devices",name:"IoT1ClickDevicesService"},iot1clickprojects:{prefix:"iot1click-projects",name:"IoT1ClickProjects"},pi:{name:"PI"},neptune:{name:"Neptune"},mediatailor:{name:"MediaTailor"},eks:{name:"EKS"},macie:{name:"Macie"},dlm:{name:"DLM"},signer:{name:"Signer"},chime:{name:"Chime"},pinpointemail:{prefix:"pinpoint-email",name:"PinpointEmail"},ram:{name:"RAM"},route53resolver:{name:"Route53Resolver"},pinpointsmsvoice:{prefix:"sms-voice",name:"PinpointSMSVoice"},quicksight:{name:"QuickSight"},rdsdataservice:{prefix:"rds-data",name:"RDSDataService"},amplify:{name:"Amplify"},datasync:{name:"DataSync"},robomaker:{name:"RoboMaker"},transfer:{name:"Transfer"},globalaccelerator:{name:"GlobalAccelerator"},comprehendmedical:{name:"ComprehendMedical",cors:!0},kinesisanalyticsv2:{name:"KinesisAnalyticsV2"},mediaconnect:{name:"MediaConnect"},fsx:{name:"FSx"},securityhub:{name:"SecurityHub"},appmesh:{name:"AppMesh",versions:["2018-10-01*"]},licensemanager:{prefix:"license-manager",name:"LicenseManager"},kafka:{name:"Kafka"},apigatewaymanagementapi:{name:"ApiGatewayManagementApi"},apigatewayv2:{name:"ApiGatewayV2"},docdb:{name:"DocDB"},backup:{name:"Backup"},worklink:{name:"WorkLink"},textract:{name:"Textract"}}},{}],21:[function(e,t,r){var n=e("./v1"),i=e("./v4"),o=i;o.v1=n,o.v4=i,t.exports=o},{"./v1":24,"./v4":25}],25:[function(e,t,r){function n(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[n+a]=s[a];return t||o(s)}var i=e("./lib/rng"),o=e("./lib/bytesToUuid");t.exports=n},{"./lib/bytesToUuid":22,"./lib/rng":23}],24:[function(e,t,r){function n(e,t,r){var n=t&&r||0,h=t||[];e=e||{};var l=e.node||i,p=void 0!==e.clockseq?e.clockseq:o;if(null==l||null==p){var f=s();null==l&&(l=i=[1|f[0],f[1],f[2],f[3],f[4],f[5]]),null==p&&(p=o=16383&(f[6]<<8|f[7]))}var d=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=d-u+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(p=p+1&16383),(v<0||d>u)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=d,c=m,o=p,d+=122192928e5;var g=(1e4*(268435455&d)+m)%4294967296;h[n++]=g>>>24&255,h[n++]=g>>>16&255,h[n++]=g>>>8&255,h[n++]=255&g;var y=d/4294967296*1e4&268435455;h[n++]=y>>>8&255,h[n++]=255&y,h[n++]=y>>>24&15|16,h[n++]=y>>>16&255,h[n++]=p>>>8|128,h[n++]=255&p;for(var b=0;b<6;++b)h[n+b]=l[b];return t||a(h)}var i,o,s=e("./lib/rng"),a=e("./lib/bytesToUuid"),u=0,c=0;t.exports=n},{"./lib/bytesToUuid":22,"./lib/rng":23}],23:[function(e,t,r){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var i=new Uint8Array(16);t.exports=function(){return n(i),i}}else{var o=new Array(16);t.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),o[t]=e>>>((3&t)<<3)&255;return o}}},{}],22:[function(e,t,r){function n(e,t){var r=t||0,n=i;return[n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")}for(var i=[],o=0;o<256;++o)i[o]=(o+256).toString(16).substr(1);t.exports=n},{}],20:[function(e,t,r){(function(t,n){function i(e,t){var n={seen:[],stylize:s};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(t)?n.showHidden=t:t&&r._extend(n,t),E(n.showHidden)&&(n.showHidden=!1),E(n.depth)&&(n.depth=2),E(n.colors)&&(n.colors=!1),E(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=o),u(n,e,n.depth)}function o(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function s(e,t){return e}function a(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,n){if(e.customInspect&&t&&R(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),m=a(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),x(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return h(t);if(0===s.length){if(R(t)){var v=t.name?": "+t.name:"";return e.stylize("[Function"+v+"]","special")}if(_(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(C(t))return e.stylize(Date.prototype.toString.call(t),"date");if(x(t))return h(t)}var g="",y=!1,w=["{","}"];if(d(t)&&(y=!0,w=["[","]"]),R(t)){g=" [Function"+(t.name?": "+t.name:"")+"]"}if(_(t)&&(g=" "+RegExp.prototype.toString.call(t)),C(t)&&(g=" "+Date.prototype.toUTCString.call(t)),x(t)&&(g=" "+h(t)),0===s.length&&(!y||0==t.length))return w[0]+g+w[1];if(n<0)return _(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return E=y?l(e,t,n,m,s):s.map(function(r){return p(e,t,n,m,r,y)}),e.seen.pop(),f(E,g,w)}function c(e,t){if(E(t))return e.stylize("undefined","undefined");if(b(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return y(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function h(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,r,n,i){for(var o=[],s=0,a=t.length;s-1&&(a=o?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n"))):a=e.stylize("[Circular]","special")),E(s)){if(o&&i.match(/^\d+$/))return a;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function f(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return"number"==typeof e}function b(e){return"string"==typeof e}function w(e){return"symbol"==typeof e}function E(e){return void 0===e}function _(e){return S(e)&&"[object RegExp]"===T(e)}function S(e){return"object"==typeof e&&null!==e}function C(e){return S(e)&&"[object Date]"===T(e)}function x(e){return S(e)&&("[object Error]"===T(e)||e instanceof Error)}function R(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function T(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}function I(){var e=new Date,t=[k(e.getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":");return[e.getDate(),U[e.getMonth()],t].join(" ")}function L(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;r.format=function(e){if(!b(e)){for(var t=[],r=0;r=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),a=n[r];r=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r.setImmediate="function"==typeof t?t:function(e){var t=c++,n=!(arguments.length<2)&&a.call(arguments,1);return u[t]=!0,o(function(){u[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))}),t},r.clearImmediate="function"==typeof n?n:function(e){delete u[e]}}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":9,timers:17}],9:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function s(e){if(p===clearTimeout)return clearTimeout(e);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){v&&d&&(v=!1,d.length?m=d.concat(m):g=-1,m.length&&u())}function u(){if(!v){var e=o(a);v=!0;for(var t=m.length;t;){for(d=m,m=[];++g1)for(var r=1;r="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function u(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function h(){}function l(e){this.runtime=e}function p(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[g]}]},avg:{_func:this._functionAvg,_signature:[{types:[S]}]},ceil:{_func:this._functionCeil,_signature:[{types:[g]}]},contains:{_func:this._functionContains,_signature:[{types:[b,w]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[g]}]},length:{_func:this._functionLength,_signature:[{types:[b,w,E]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[w]}]},max:{_func:this._functionMax,_signature:[{types:[S,C]}]},merge:{_func:this._functionMerge,_signature:[{types:[E],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[w]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[S]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[S,C]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[w]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[E]}]},values:{_func:this._functionValues,_signature:[{types:[E]}]},sort:{_func:this._functionSort,_signature:[{types:[C,S]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[w]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[C]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,w]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new h).parse(e)}function d(e){return(new c).tokenize(e)}function m(e,t){var r=new h,n=new p,i=new l(n);n._interpreter=i;var o=r.parse(t);return i.search(o,e)}var v;v="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var g=0,y=1,b=2,w=3,E=4,_=6,S=8,C=9,x={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},R={"<":!0,">":!0,"=":!0,"!":!0},A={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,n,i;this._current"===r?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===r&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,n=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={};T.EOF=0,T.UnquotedIdentifier=0,T.QuotedIdentifier=0,T.Rbracket=0,T.Rparen=0,T.Comma=0,T.Rbrace=0,T.Number=0,T.Current=0,T.Expref=0,T.Pipe=1,T.Or=2,T.And=3,T.EQ=5,T.GT=5,T.LT=5,T.GTE=5,T.LTE=5,T.NE=5,T.Flatten=9,T.Star=20,T.Filter=21,T.Dot=40,T.Not=45,T.Lbrace=50,T.Lbracket=55,T.Lparen=60,h.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw n.name="ParserError",n}return t},_loadTokens:function(e){var t=new c,r=t.tokenize(e);r.push({type:"EOF",value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw n.name="ParserError",n}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,r,n,i=[],o=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),o.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),r=this.expression(0),n={type:"KeyValuePair",name:t,value:r},i.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:i}}},l.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,u,c,h,l,p,f,d,m;switch(e.type){case"Field":return null===s?null:r(s)?(p=s[e.name],void 0===p?null:p):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mw;m+=E)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(d=[],m=0;m<_.length;m++)null!==(u=this.visit(e.children[1],_[m]))&&d.push(u);return d;case"ValueProjection":if(_=this.visit(e.children[0],s),!r(_))return null;d=[];var S=o(_);for(m=0;ml;break;case"GTE":c=h>=l;break;case"LT":c=h=e&&(t=r<0?e-1:e),t}},p.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var n;if(r[r.length-1].variadic){if(t.length=0;n--)r+=t[n];return r}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,n=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===g)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;n0){if(this._getTypeName(e[0][0])===g)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;na?1:ss&&(s=r,t=i[a]);return t},_functionMinBy:function(e){for(var t,r,n=e[1],i=e[0],o=this.createKeyFunction(n,[g,b]),s=1/0,a=0;a=this.HEADERS_RECEIVED&&!l&&(u.statusCode=h.status,u.headers=s.parseHeaders(h.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers,h.statusText),l=!0),this.readyState===this.DONE&&s.finishRequest(h,u)},!1),h.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),h.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),h.addEventListener("timeout",function(){o(n.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),h.addEventListener("error",function(){o(n.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),h.addEventListener("abort",function(){o(n.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))},!1),r(u),h.open(e.method,c,!1!==t.xhrAsync),n.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&h.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(h.timeout=t.timeout),t.xhrWithCredentials&&(h.withCredentials=!0);try{h.responseType="arraybuffer"}catch(e){}try{e.body?h.send(e.body):h.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;h.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return n.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],n=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=n)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var i=e.response;r=new n.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1&&0===++e[t];t--);}var o=e("../core").util,s=e("./to-buffer").toBuffer;n.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+" is too large (or, if negative, too small) to represent as an Int64");for(var t=new Uint8Array(8),r=7,o=Math.abs(Math.round(e));r>-1&&o>0;r--,o/=256)t[r]=o;return e<0&&i(t),new n(t)},n.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString("hex"),16)*(t?-1:1)},n.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:n}},{"../core":38,"./to-buffer":59}],59:[function(e,t,r){function n(e,t){return"function"==typeof i.from&&i.from!==Uint8Array.from?i.from(e,t):new i(e,t)}var i=e("../core").util.Buffer;t.exports={toBuffer:n}},{"../core":38}],54:[function(e,t,r){function n(e){for(var t=[],r=0;ra)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;r>0;)this.buffer[this.bufferLength++]=e[t++],r--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%64>=56){for(var o=this.bufferLength;o<64;o++)r.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(var o=this.bufferLength;o<56;o++)r.setUint8(o,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var s=new i(32),o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},n.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],h=r[6],l=r[7],p=0;p<64;p++){if(p<16)this.temp[p]=(255&t[4*p])<<24|(255&t[4*p+1])<<16|(255&t[4*p+2])<<8|255&t[4*p+3];else{var f=this.temp[p-2],d=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[p-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[p]=(d+this.temp[p-7]|0)+(m+this.temp[p-16]|0)}var v=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&h)|0)+(l+(s[p]+this.temp[p]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&i^n&o^i&o)|0;l=h,h=c,c=u,u=a+v|0,a=o,o=i,i=n,n=v+g|0}r[0]+=n,r[1]+=i,r[2]+=o,r[3]+=a,r[4]+=u,r[5]+=c,r[6]+=h,r[7]+=l}},{"./browserHashUtils":30,"buffer/":3}],33:[function(e,t,r){function n(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e("buffer/").Buffer,o=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=e.length;this.totalLength+=8*t;for(var r=0;r14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var r=new i(20),n=new DataView(r.buffer);return n.setUint32(0,this.h0,!1),n.setUint32(4,this.h1,!1),n.setUint32(8,this.h2,!1),n.setUint32(12,this.h3,!1),n.setUint32(16,this.h4,!1),e?r.toString(e):r},n.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var r,n,i=this.h0,o=this.h1,s=this.h2,a=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=a^o&(s^a),n=1518500249):e<40?(r=o^s^a,n=1859775393):e<60?(r=o&s|a&(o|s),n=2400959708):(r=o^s^a,n=3395469782);var c=(i<<5|i>>>27)+r+u+n+(0|this.block[e]);u=a,a=s,s=o<<30|o>>>2,o=i,i=c}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+u|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{"./browserHashUtils":30,"buffer/":3}],32:[function(e,t,r){function n(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(l)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,r,n,i,o){return((t=(t+e&4294967295)+(n+o&4294967295)&4294967295)<>>32-i)+r&4294967295}function o(e,t,r,n,o,s,a){return i(t&r|~t&n,e,t,o,s,a)}function s(e,t,r,n,o,s,a){return i(t&n|r&~n,e,t,o,s,a)}function a(e,t,r,n,o,s,a){return i(t^r^n,e,t,o,s,a)}function u(e,t,r,n,o,s,a){return i(r^(t|~n),e,t,o,s,a)}var c=e("./browserHashUtils"),h=e("buffer/").Buffer,l=64;t.exports=n,n.BLOCK_SIZE=l,n.prototype.update=function(e){if(c.isEmptyData(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=c.convertToBuffer(e),r=0,n=t.byteLength;for(this.bytesHashed+=n;n>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),n--,this.bufferLength===l&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,n=t.bufferLength,i=t.bytesHashed,o=8*i;if(r.setUint8(this.bufferLength++,128),n%l>=l-8){for(var s=this.bufferLength;s>>0,!0),r.setUint32(l-4,Math.floor(o/4294967296),!0),this.hashBuffer(),this.finished=!0}for(var a=new DataView(new ArrayBuffer(16)),s=0;s<4;s++)a.setUint32(4*s,this.state[s],!0);var u=new h(a.buffer,a.byteOffset,a.byteLength);return e?u.toString(e):u},n.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],c=r[2],h=r[3];n=o(n,i,c,h,t.getUint32(0,!0),7,3614090360),h=o(h,n,i,c,t.getUint32(4,!0),12,3905402710),c=o(c,h,n,i,t.getUint32(8,!0),17,606105819),i=o(i,c,h,n,t.getUint32(12,!0),22,3250441966),n=o(n,i,c,h,t.getUint32(16,!0),7,4118548399),h=o(h,n,i,c,t.getUint32(20,!0),12,1200080426),c=o(c,h,n,i,t.getUint32(24,!0),17,2821735955),i=o(i,c,h,n,t.getUint32(28,!0),22,4249261313),n=o(n,i,c,h,t.getUint32(32,!0),7,1770035416),h=o(h,n,i,c,t.getUint32(36,!0),12,2336552879),c=o(c,h,n,i,t.getUint32(40,!0),17,4294925233),i=o(i,c,h,n,t.getUint32(44,!0),22,2304563134),n=o(n,i,c,h,t.getUint32(48,!0),7,1804603682),h=o(h,n,i,c,t.getUint32(52,!0),12,4254626195),c=o(c,h,n,i,t.getUint32(56,!0),17,2792965006),i=o(i,c,h,n,t.getUint32(60,!0),22,1236535329),n=s(n,i,c,h,t.getUint32(4,!0),5,4129170786),h=s(h,n,i,c,t.getUint32(24,!0),9,3225465664),c=s(c,h,n,i,t.getUint32(44,!0),14,643717713),i=s(i,c,h,n,t.getUint32(0,!0),20,3921069994),n=s(n,i,c,h,t.getUint32(20,!0),5,3593408605),h=s(h,n,i,c,t.getUint32(40,!0),9,38016083),c=s(c,h,n,i,t.getUint32(60,!0),14,3634488961),i=s(i,c,h,n,t.getUint32(16,!0),20,3889429448),n=s(n,i,c,h,t.getUint32(36,!0),5,568446438),h=s(h,n,i,c,t.getUint32(56,!0),9,3275163606),c=s(c,h,n,i,t.getUint32(12,!0),14,4107603335),i=s(i,c,h,n,t.getUint32(32,!0),20,1163531501),n=s(n,i,c,h,t.getUint32(52,!0),5,2850285829),h=s(h,n,i,c,t.getUint32(8,!0),9,4243563512),c=s(c,h,n,i,t.getUint32(28,!0),14,1735328473),i=s(i,c,h,n,t.getUint32(48,!0),20,2368359562),n=a(n,i,c,h,t.getUint32(20,!0),4,4294588738),h=a(h,n,i,c,t.getUint32(32,!0),11,2272392833),c=a(c,h,n,i,t.getUint32(44,!0),16,1839030562),i=a(i,c,h,n,t.getUint32(56,!0),23,4259657740),n=a(n,i,c,h,t.getUint32(4,!0),4,2763975236),h=a(h,n,i,c,t.getUint32(16,!0),11,1272893353),c=a(c,h,n,i,t.getUint32(28,!0),16,4139469664),i=a(i,c,h,n,t.getUint32(40,!0),23,3200236656),n=a(n,i,c,h,t.getUint32(52,!0),4,681279174),h=a(h,n,i,c,t.getUint32(0,!0),11,3936430074),c=a(c,h,n,i,t.getUint32(12,!0),16,3572445317),i=a(i,c,h,n,t.getUint32(24,!0),23,76029189),n=a(n,i,c,h,t.getUint32(36,!0),4,3654602809),h=a(h,n,i,c,t.getUint32(48,!0),11,3873151461),c=a(c,h,n,i,t.getUint32(60,!0),16,530742520),i=a(i,c,h,n,t.getUint32(8,!0),23,3299628645),n=u(n,i,c,h,t.getUint32(0,!0),6,4096336452),h=u(h,n,i,c,t.getUint32(28,!0),10,1126891415),c=u(c,h,n,i,t.getUint32(56,!0),15,2878612391),i=u(i,c,h,n,t.getUint32(20,!0),21,4237533241),n=u(n,i,c,h,t.getUint32(48,!0),6,1700485571),h=u(h,n,i,c,t.getUint32(12,!0),10,2399980690),c=u(c,h,n,i,t.getUint32(40,!0),15,4293915773),i=u(i,c,h,n,t.getUint32(4,!0),21,2240044497),n=u(n,i,c,h,t.getUint32(32,!0),6,1873313359),h=u(h,n,i,c,t.getUint32(60,!0),10,4264355552),c=u(c,h,n,i,t.getUint32(24,!0),15,2734768916),i=u(i,c,h,n,t.getUint32(52,!0),21,1309151649),n=u(n,i,c,h,t.getUint32(16,!0),6,4149444226),h=u(h,n,i,c,t.getUint32(44,!0),10,3174756917),c=u(c,h,n,i,t.getUint32(8,!0),15,718787259),i=u(i,c,h,n,t.getUint32(36,!0),21,3951481745),r[0]=n+r[0]&4294967295,r[1]=i+r[1]&4294967295,r[2]=c+r[2]&4294967295,r[3]=h+r[3]&4294967295}},{"./browserHashUtils":30,"buffer/":3}],31:[function(e,t,r){function n(e,t){this.hash=new e,this.outer=new e;var r=i(e,t),n=new Uint8Array(e.BLOCK_SIZE);n.set(r);for(var o=0;oe.BLOCK_SIZE){var n=new e;n.update(r),r=n.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(r),i}var o=e("./browserHashUtils");t.exports=n,n.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},n.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":30}],30:[function(e,t,r){function n(e){return"string"==typeof e?0===e.length:0===e.byteLength}function i(e){return"string"==typeof e&&(e=new o(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}var o=e("buffer/").Buffer;"undefined"!=typeof ArrayBuffer&&void 0===ArrayBuffer.isView&&(ArrayBuffer.isView=function(e){return s.indexOf(Object.prototype.toString.call(e))>-1});var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object DataView]"];t.exports={isEmptyData:n,convertToBuffer:i}},{"buffer/":3}],18:[function(e,t,r){function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,r){if(e&&c(e)&&e instanceof n)return e;var i=new n;return i.parse(e,t,r),i}function o(e){return u(e)&&(e=i(e)),e instanceof n?e.format():n.prototype.format.call(e)}function s(e,t){return i(e,!1,!0).resolve(t)}function a(e,t){return e?i(e,!1,!0).resolveObject(t):t}function u(e){return"string"==typeof e}function c(e){return"object"==typeof e&&null!==e}function h(e){return null===e}function l(e){return null==e}var p=e("punycode");r.parse=i,r.resolve=s,r.resolveObject=a,r.format=o,r.Url=n;var f=/^([a-z0-9.+-]+:)/i,d=/:[0-9]*$/,m=["<",">",'"',"`"," ","\r","\n","\t"],v=["{","}","|","\\","^","`"].concat(m),g=["'"].concat(v),y=["%","/","?",";","#"].concat(g),b=["/","?","#"],w=/^[a-z0-9A-Z_-]{0,63}$/,E=/^([a-z0-9A-Z_-]{0,63})(.*)$/,_={javascript:!0,"javascript:":!0},S={javascript:!0,"javascript:":!0},C={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},x=e("querystring");n.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var i=f.exec(n);if(i){i=i[0];var o=i.toLowerCase();this.protocol=o,n=n.substr(i.length)}if(r||i||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||i&&S[i]||(n=n.substr(2),this.slashes=!0)}if(!S[i]&&(s||i&&!C[i])){for(var a=-1,c=0;c127?T+="x":T+=A[k];if(!T.match(w)){var L=v.slice(0,c),P=v.slice(c+1),q=A.match(E);q&&(L.push(q[1]),P.unshift(q[2])),P.length&&(n="/"+P.join(".")+n),this.hostname=L.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var O=this.hostname.split("."),U=[],c=0;c0)&&r.host.split("@");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return r.search=e.search,r.query=e.query,h(r.pathname)&&h(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!d.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var g=d.slice(-1)[0],y=(r.host||e.host)&&("."===g||".."===g)||""===g,b=0,w=d.length;w>=0;w--)g=d[w],"."==g?d.splice(w,1):".."===g?(d.splice(w,1),b++):b&&(d.splice(w,1),b--);if(!p&&!f)for(;b--;b)d.unshift("..");!p||""===d[0]||d[0]&&"/"===d[0].charAt(0)||d.unshift(""),y&&"/"!==d.join("/").substr(-1)&&d.push("");var E=""===d[0]||d[0]&&"/"===d[0].charAt(0);if(m){r.hostname=r.host=E?"":d.length?d.shift():"";var v=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return p=p||r.host&&d.length,p&&!E&&d.unshift(""),d.length?r.pathname=d.join("/"):(r.pathname=null,r.path=null),h(r.pathname)&&h(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:10,querystring:13}],16:[function(e,t,r){arguments[4][13][0].apply(r,arguments)},{"./decode":14,"./encode":15,dup:13}],15:[function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,r,i){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):""}},{}],14:[function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,i){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var a=1e3;i&&"number"==typeof i.maxKeys&&(a=i.maxKeys);var u=e.length;a>0&&u>a&&(u=a);for(var c=0;c=0?(h=d.substr(0,m),l=d.substr(m+1)):(h=d,l=""),p=decodeURIComponent(h),f=decodeURIComponent(l),n(o,p)?Array.isArray(o[p])?o[p].push(f):o[p]=[o[p],f]:o[p]=f}return o}},{}],13:[function(e,t,r){"use strict";r.decode=r.parse=e("./decode"),r.encode=r.stringify=e("./encode")},{"./decode":11,"./encode":12}],12:[function(e,t,r){"use strict";function n(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n0&&c>u&&(c=u);for(var h=0;h=0?(l=m.substr(0,v),p=m.substr(v+1)):(l=m,p=""),f=decodeURIComponent(l),d=decodeURIComponent(p),n(s,f)?i(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],10:[function(e,t,r){(function(e){!function(n){function i(e){throw RangeError(q[e])}function o(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function s(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(P,"."),n+o(e.split("."),t).join(".")}function a(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=N(e>>>10&1023|55296),e=56320|1023&e),t+=N(e)}).join("")}function c(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:_}function h(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function l(e,t,r){var n=0;for(e=r?U(e/R):e>>1,e+=U(e/t);e>O*C>>1;n+=_)e=U(e/O);return U(n+(O+1)*e/(e+x))}function p(e){var t,r,n,o,s,a,h,p,f,d,m=[],v=e.length,g=0,y=T,b=A;for(r=e.lastIndexOf(k),r<0&&(r=0),n=0;n=128&&i("not-basic"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=v&&i("invalid-input"),p=c(e.charCodeAt(o++)),(p>=_||p>U((E-g)/a))&&i("overflow"),g+=p*a,f=h<=b?S:h>=b+C?C:h-b,!(pU(E/d)&&i("overflow"),a*=d;t=m.length+1,b=l(g-s,t,0==s),U(g/t)>E-y&&i("overflow"),y+=U(g/t),g%=t,m.splice(g++,0,y)}return u(m)}function f(e){var t,r,n,o,s,u,c,p,f,d,m,v,g,y,b,w=[];for(e=a(e),v=e.length,t=T,r=0,s=A,u=0;u=t&&mU((E-r)/g)&&i("overflow"),r+=(c-t)*g,t=c,u=0;uE&&i("overflow"),m==t){for(p=r,f=_;d=f<=s?S:f>=s+C?C:f-s,!(p= 0x80 (not a basic code point)","invalid-input":"Invalid input"},O=_-S,U=Math.floor,N=String.fromCharCode;if(b={version:"1.3.2",ucs2:{decode:a,encode:u},decode:p,encode:f,toASCII:m,toUnicode:d},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return b});else if(v&&g)if(t.exports==v)g.exports=b;else for(w in b)b.hasOwnProperty(w)&&(v[w]=b[w]);else n.punycode=b}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function o(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,r,n,o,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(r=this._events[e],a(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),r.apply(this,o)}else if(s(r))for(o=Array.prototype.slice.call(arguments,1),c=r.slice(),n=c.length,u=0;u0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,o,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(r)){for(a=o;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],3:[function(e,t,r){(function(t,n){"use strict";function i(){return n.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),n.alloc(+e)}function v(e,t){if(n.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return W(e).length;default:if(i)return V(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return T(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return L(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,i,o){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=n.from(t,i)),n.isBuffer(t))return 0===t.length?-1:w(e,t,r,i,o);if("number"==typeof t)return t&=255,n.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,i,o);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}var c;if(i){var h=-1;for(c=r;ca&&(r=a-u),c=r;c>=0;c--){for(var l=!0,p=0;pi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:o>223?3:o>191?2:1;if(i+a<=r){var u,c,h,l;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128==(192&u)&&(l=(31&o)<<6|63&u)>127&&(s=l);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(l=(15&o)<<12|(63&u)<<6|63&c)>2047&&(l<55296||l>57343)&&(s=l);break;case 4:u=e[i+1],c=e[i+2],h=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&h)&&(l=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&h)>65535&&l<1114112&&(s=l)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return k(n)}function k(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,r,i,o,s){if(!n.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,n,i){return i||M(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,r,n,23,4),r+4}function B(e,t,r,n,i){return i||M(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,r,n,52,8),r+8}function H(e){if(e=F(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function F(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function z(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(e){for(var t=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function W(e){return J.toByteArray(H(e))}function Y(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function G(e){return e!==e}var J=e("base64-js"),Z=e("ieee754"),$=e("isarray");r.Buffer=n,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,n.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),r.kMaxLength=i(),n.poolSize=8192,n._augment=function(e){return e.__proto__=n.prototype,e},n.from=function(e,t,r){return s(null,e,t,r)},n.TYPED_ARRAY_SUPPORT&&(n.prototype.__proto__=Uint8Array.prototype,n.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&n[Symbol.species]===n&&Object.defineProperty(n,Symbol.species,{value:null,configurable:!0})),n.alloc=function(e,t,r){return u(null,e,t,r)},n.allocUnsafe=function(e){return c(null,e)},n.allocUnsafeSlow=function(e){return c(null,e)},n.isBuffer=function(e){return!(null==e||!e._isBuffer)},n.compare=function(e,t){if(!n.isBuffer(e)||!n.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,i=t.length,o=0,s=Math.min(r,i);o0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},n.prototype.compare=function(e,t,r,i,o){if(!n.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),t<0||r>e.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&t>=r)return 0;if(i>=o)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,i>>>=0,o>>>=0,this===e)return 0;for(var s=o-i,a=r-t,u=Math.min(s,a),c=this.slice(i,o),h=e.slice(t,r),l=0;li)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return E(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return C(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;n.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)n+=this[e+--t]*i;return n},n.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},n.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},n.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},n.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},n.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},n.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,o=0;++o=i&&(n-=Math.pow(2,8*t)),n},n.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},n.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},n.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},n.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},n.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!0,23,4)},n.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!1,23,4)},n.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!0,52,8)},n.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!1,52,8)},n.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){U(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},n.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,255,0),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},n.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},n.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},n.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},n.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},n.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);U(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},n.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);U(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},n.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,127,-128),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},n.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},n.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},n.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},n.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},n.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},n.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},n.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},n.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},n.prototype.copy=function(e,t,r,i){if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else if(s<1e3||!n.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s>1,h=-7,l=r?i-1:0,p=r?-1:1,f=e[t+l];for(l+=p,o=f&(1<<-h)-1,f>>=-h,h+=a;h>0;o=256*o+e[t+l],l+=p,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+e[t+l],l+=p,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=c}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=h):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+l>=1?p/u:p*Math.pow(2,1-l),t*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(t*u-1)*Math.pow(2,i),s+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=d,a/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=d,s/=256,c-=8);e[r+f-d]|=128*m}},{}],1:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e){var t=n(e),r=t[0],i=t[1];return 3*(r+i)/4-i}function o(e,t,r){return 3*(t+r)/4-r}function s(e){for(var t,r=n(e),i=r[0],s=r[1],a=new p(o(e,i,s)),u=0,c=s>0?i-4:i,h=0;h>16&255,a[u++]=t>>8&255,a[u++]=255&t;return 2===s&&(t=l[e.charCodeAt(h)]<<2|l[e.charCodeAt(h+1)]>>4,a[u++]=255&t),1===s&&(t=l[e.charCodeAt(h)]<<10|l[e.charCodeAt(h+1)]<<4|l[e.charCodeAt(h+2)]>>2,a[u++]=t>>8&255,a[u++]=255&t),a}function a(e){return h[e>>18&63]+h[e>>12&63]+h[e>>6&63]+h[63&e]}function u(e,t,r){for(var n,i=[],o=t;os?s:o+16383));return 1===n?(t=e[r-1],i.push(h[t>>2]+h[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(h[t>>10]+h[t>>4&63]+h[t<<2&63]+"=")),i.join("")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=c;for(var h=[],l=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,m=f.length;d `0`",state:"success"}]}}};AWS.apiLoader.services.cloudwatchevents={},AWS.CloudWatchEvents=AWS.Service.defineService("cloudwatchevents",["2015-10-07"]);AWS.apiLoader.services.cloudwatchevents["2015-10-07"]={version:"2.0",metadata:{apiVersion:"2015-10-07",endpointPrefix:"events",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon CloudWatch Events",serviceId:"CloudWatch Events",signatureVersion:"v4",targetPrefix:"AWSEvents",uid:"events-2015-10-07"},operations:{DeleteRule:{input:{type:"structure",required:["Name"],members:{Name:{},Force:{type:"boolean"}}}},DescribeEventBus:{input:{type:"structure",members:{}},output:{type:"structure",members:{Name:{},Arn:{},Policy:{}}}},DescribeRule:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},Arn:{},EventPattern:{},ScheduleExpression:{},State:{},Description:{},RoleArn:{},ManagedBy:{}}}},DisableRule:{input:{type:"structure",required:["Name"],members:{Name:{}}}},EnableRule:{input:{type:"structure",required:["Name"],members:{Name:{}}}},ListRuleNamesByTarget:{input:{type:"structure",required:["TargetArn"],members:{TargetArn:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{RuleNames:{type:"list",member:{}},NextToken:{}}}},ListRules:{input:{type:"structure",members:{NamePrefix:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Rules:{type:"list",member:{type:"structure",members:{Name:{},Arn:{},EventPattern:{},State:{},Description:{},ScheduleExpression:{},RoleArn:{},ManagedBy:{}}}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{}}},output:{type:"structure",members:{Tags:{shape:"Sv"}}}},ListTargetsByRule:{input:{type:"structure",required:["Rule"],members:{Rule:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Targets:{shape:"S11"},NextToken:{}}}},PutEvents:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{type:"structure",members:{Time:{type:"timestamp"},Source:{},Resources:{type:"list",member:{}},DetailType:{},Detail:{}}}}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},Entries:{type:"list",member:{type:"structure",members:{EventId:{},ErrorCode:{},ErrorMessage:{}}}}}}},PutPermission:{input:{type:"structure",required:["Action","Principal","StatementId"],members:{Action:{},Principal:{},StatementId:{},Condition:{type:"structure",required:["Type","Key","Value"],members:{Type:{},Key:{},Value:{}}}}}},PutRule:{input:{type:"structure",required:["Name"],members:{Name:{},ScheduleExpression:{},EventPattern:{},State:{},Description:{},RoleArn:{},Tags:{shape:"Sv"}}},output:{type:"structure",members:{RuleArn:{}}}},PutTargets:{input:{type:"structure",required:["Rule","Targets"],members:{Rule:{},Targets:{shape:"S11"}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},FailedEntries:{type:"list",member:{type:"structure",members:{TargetId:{},ErrorCode:{},ErrorMessage:{}}}}}}},RemovePermission:{input:{type:"structure",required:["StatementId"],members:{StatementId:{}}}},RemoveTargets:{input:{type:"structure",required:["Rule","Ids"],members:{Rule:{},Ids:{type:"list",member:{}},Force:{type:"boolean"}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},FailedEntries:{type:"list",member:{type:"structure",members:{TargetId:{},ErrorCode:{},ErrorMessage:{}}}}}}},TagResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sv"}}},output:{type:"structure",members:{}}},TestEventPattern:{input:{type:"structure",required:["EventPattern","Event"],members:{EventPattern:{},Event:{}}},output:{type:"structure",members:{Result:{type:"boolean"}}}},UntagResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}}},shapes:{Sv:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S11:{type:"list",member:{type:"structure",required:["Id","Arn"],members:{Id:{},Arn:{},RoleArn:{},Input:{},InputPath:{},InputTransformer:{type:"structure",required:["InputTemplate"],members:{InputPathsMap:{type:"map",key:{},value:{}},InputTemplate:{}}},KinesisParameters:{type:"structure",required:["PartitionKeyPath"],members:{PartitionKeyPath:{}}},RunCommandParameters:{type:"structure",required:["RunCommandTargets"],members:{RunCommandTargets:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}}}},EcsParameters:{type:"structure",required:["TaskDefinitionArn"],members:{TaskDefinitionArn:{},TaskCount:{type:"integer"},LaunchType:{},NetworkConfiguration:{type:"structure",members:{awsvpcConfiguration:{type:"structure",required:["Subnets"],members:{Subnets:{shape:"S1n"},SecurityGroups:{shape:"S1n"},AssignPublicIp:{}}}}},PlatformVersion:{},Group:{}}},BatchParameters:{type:"structure",required:["JobDefinition","JobName"],members:{JobDefinition:{},JobName:{},ArrayProperties:{type:"structure",members:{Size:{type:"integer"}}},RetryStrategy:{type:"structure",members:{Attempts:{type:"integer"}}}}},SqsParameters:{type:"structure",members:{MessageGroupId:{}}}}}},S1n:{type:"list",member:{}}},paginators:{}};AWS.apiLoader.services.cloudwatchlogs={},AWS.CloudWatchLogs=AWS.Service.defineService("cloudwatchlogs",["2014-03-28"]);AWS.apiLoader.services.cloudwatchlogs["2014-03-28"]={version:"2.0",metadata:{apiVersion:"2014-03-28",endpointPrefix:"logs",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon CloudWatch Logs",serviceId:"CloudWatch Logs",signatureVersion:"v4",targetPrefix:"Logs_20140328",uid:"logs-2014-03-28"},operations:{AssociateKmsKey:{input:{type:"structure",required:["logGroupName","kmsKeyId"],members:{logGroupName:{},kmsKeyId:{}}}},CancelExportTask:{input:{type:"structure",required:["taskId"],members:{taskId:{}}}},CreateExportTask:{input:{type:"structure",required:["logGroupName","from","to","destination"],members:{taskName:{},logGroupName:{},logStreamNamePrefix:{},from:{type:"long"},to:{type:"long"},destination:{},destinationPrefix:{}}},output:{type:"structure",members:{taskId:{}}}},CreateLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},kmsKeyId:{},tags:{shape:"Se"}}}},CreateLogStream:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{}}}},DeleteDestination:{input:{type:"structure",required:["destinationName"],members:{destinationName:{}}}},DeleteLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}}},DeleteLogStream:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{}}}},DeleteMetricFilter:{input:{type:"structure",required:["logGroupName","filterName"],members:{logGroupName:{},filterName:{}}}},DeleteResourcePolicy:{input:{type:"structure",members:{policyName:{}}}},DeleteRetentionPolicy:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}}},DeleteSubscriptionFilter:{input:{type:"structure",required:["logGroupName","filterName"],members:{logGroupName:{},filterName:{}}}},DescribeDestinations:{input:{type:"structure",members:{DestinationNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{destinations:{type:"list",member:{shape:"Sx"}},nextToken:{}}}},DescribeExportTasks:{input:{type:"structure",members:{taskId:{},statusCode:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{exportTasks:{type:"list",member:{type:"structure",members:{taskId:{},taskName:{},logGroupName:{},from:{type:"long"},to:{type:"long"},destination:{},destinationPrefix:{},status:{type:"structure",members:{code:{},message:{}}},executionInfo:{type:"structure",members:{creationTime:{type:"long"},completionTime:{type:"long"}}}}}},nextToken:{}}}},DescribeLogGroups:{input:{type:"structure",members:{logGroupNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{logGroups:{type:"list",member:{type:"structure",members:{logGroupName:{},creationTime:{type:"long"},retentionInDays:{type:"integer"},metricFilterCount:{type:"integer"},arn:{},storedBytes:{type:"long"},kmsKeyId:{}}}},nextToken:{}}}},DescribeLogStreams:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},logStreamNamePrefix:{},orderBy:{},descending:{type:"boolean"},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{logStreams:{type:"list",member:{type:"structure",members:{logStreamName:{},creationTime:{type:"long"},firstEventTimestamp:{type:"long"},lastEventTimestamp:{type:"long"},lastIngestionTime:{type:"long"},uploadSequenceToken:{},arn:{},storedBytes:{type:"long"}}}},nextToken:{}}}},DescribeMetricFilters:{input:{type:"structure",members:{logGroupName:{},filterNamePrefix:{},nextToken:{},limit:{type:"integer"},metricName:{},metricNamespace:{}}},output:{type:"structure",members:{metricFilters:{type:"list",member:{type:"structure",members:{filterName:{},filterPattern:{},metricTransformations:{shape:"S1v"},creationTime:{type:"long"},logGroupName:{}}}},nextToken:{}}}},DescribeQueries:{input:{type:"structure",members:{logGroupName:{},status:{},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{queries:{type:"list",member:{type:"structure",members:{queryId:{},queryString:{},status:{},createTime:{type:"long"},logGroupName:{}}}},nextToken:{}}}},DescribeResourcePolicies:{input:{type:"structure",members:{nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{resourcePolicies:{type:"list",member:{shape:"S2a"}},nextToken:{}}}},DescribeSubscriptionFilters:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},filterNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{subscriptionFilters:{type:"list",member:{type:"structure",members:{filterName:{},logGroupName:{},filterPattern:{},destinationArn:{},roleArn:{},distribution:{},creationTime:{type:"long"}}}},nextToken:{}}}},DisassociateKmsKey:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}}},FilterLogEvents:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},logStreamNames:{type:"list",member:{}},logStreamNamePrefix:{},startTime:{type:"long"},endTime:{type:"long"},filterPattern:{},nextToken:{},limit:{type:"integer"},interleaved:{type:"boolean"}}},output:{type:"structure",members:{events:{type:"list",member:{type:"structure",members:{logStreamName:{},timestamp:{type:"long"},message:{},ingestionTime:{type:"long"},eventId:{}}}},searchedLogStreams:{type:"list",member:{type:"structure",members:{logStreamName:{},searchedCompletely:{type:"boolean"}}}},nextToken:{}}}},GetLogEvents:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{},startTime:{type:"long"},endTime:{type:"long"},nextToken:{},limit:{type:"integer"},startFromHead:{type:"boolean"}}},output:{type:"structure",members:{events:{type:"list",member:{type:"structure",members:{timestamp:{type:"long"},message:{},ingestionTime:{type:"long"}}}},nextForwardToken:{},nextBackwardToken:{}}}},GetLogGroupFields:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},time:{type:"long"}}},output:{type:"structure",members:{logGroupFields:{type:"list",member:{type:"structure",members:{name:{},percent:{type:"integer"}}}}}}},GetLogRecord:{input:{type:"structure",required:["logRecordPointer"],members:{logRecordPointer:{}}},output:{type:"structure",members:{logRecord:{type:"map",key:{},value:{}}}}},GetQueryResults:{input:{type:"structure",required:["queryId"],members:{queryId:{}}},output:{type:"structure",members:{results:{type:"list",member:{type:"list",member:{type:"structure",members:{field:{},value:{}}}}},statistics:{type:"structure",members:{recordsMatched:{type:"double"},recordsScanned:{type:"double"},bytesScanned:{type:"double"}}},status:{}}}},ListTagsLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}},output:{type:"structure",members:{tags:{shape:"Se"}}}},PutDestination:{input:{type:"structure",required:["destinationName","targetArn","roleArn"],members:{destinationName:{},targetArn:{},roleArn:{}}},output:{type:"structure",members:{destination:{shape:"Sx"}}}},PutDestinationPolicy:{input:{type:"structure",required:["destinationName","accessPolicy"],members:{destinationName:{},accessPolicy:{}}}},PutLogEvents:{input:{type:"structure",required:["logGroupName","logStreamName","logEvents"],members:{logGroupName:{},logStreamName:{},logEvents:{type:"list",member:{type:"structure",required:["timestamp","message"],members:{timestamp:{type:"long"},message:{}}}},sequenceToken:{}}},output:{type:"structure",members:{nextSequenceToken:{},rejectedLogEventsInfo:{type:"structure",members:{tooNewLogEventStartIndex:{type:"integer"},tooOldLogEventEndIndex:{type:"integer"},expiredLogEventEndIndex:{type:"integer"}}}}}},PutMetricFilter:{input:{type:"structure",required:["logGroupName","filterName","filterPattern","metricTransformations"],members:{logGroupName:{},filterName:{},filterPattern:{},metricTransformations:{shape:"S1v"}}}},PutResourcePolicy:{input:{type:"structure",members:{policyName:{},policyDocument:{}}},output:{type:"structure",members:{resourcePolicy:{shape:"S2a"}}}},PutRetentionPolicy:{input:{type:"structure",required:["logGroupName","retentionInDays"],members:{logGroupName:{},retentionInDays:{type:"integer"}}}},PutSubscriptionFilter:{input:{type:"structure",required:["logGroupName","filterName","filterPattern","destinationArn"],members:{logGroupName:{},filterName:{},filterPattern:{},destinationArn:{},roleArn:{},distribution:{}}}},StartQuery:{input:{type:"structure",required:["logGroupName","startTime","endTime","queryString"],members:{logGroupName:{},startTime:{type:"long"},endTime:{type:"long"},queryString:{},limit:{type:"integer"}}},output:{type:"structure",members:{queryId:{}}}},StopQuery:{input:{type:"structure",required:["queryId"],members:{queryId:{}}},output:{type:"structure",members:{success:{type:"boolean"}}}},TagLogGroup:{input:{type:"structure",required:["logGroupName","tags"],members:{logGroupName:{},tags:{shape:"Se"}}}},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:{}}}}}}}},UntagLogGroup:{input:{type:"structure",required:["logGroupName","tags"],members:{logGroupName:{},tags:{type:"list",member:{}}}}}},shapes:{Se:{type:"map",key:{},value:{}},Sx:{type:"structure",members:{destinationName:{},targetArn:{},roleArn:{},accessPolicy:{},arn:{},creationTime:{type:"long"}}},S1v:{type:"list",member:{type:"structure",required:["metricName","metricNamespace","metricValue"],members:{metricName:{},metricNamespace:{},metricValue:{},defaultValue:{type:"double"}}}},S2a:{type:"structure",members:{policyName:{},policyDocument:{},lastUpdatedTime:{type:"long"}}}},paginators:{DescribeDestinations:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"destinations"},DescribeLogGroups:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"logGroups"},DescribeLogStreams:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"logStreams"},DescribeMetricFilters:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"metricFilters"},DescribeSubscriptionFilters:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"subscriptionFilters"},FilterLogEvents:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:["events","searchedLogStreams"]},GetLogEvents:{input_token:"nextToken",limit_key:"limit",output_token:"nextForwardToken",result_key:"events"}}};AWS.apiLoader.services.cognitoidentityserviceprovider={},AWS.CognitoIdentityServiceProvider=AWS.Service.defineService("cognitoidentityserviceprovider",["2016-04-18"]);AWS.apiLoader.services.cognitoidentityserviceprovider["2016-04-18"]={version:"2.0",metadata:{apiVersion:"2016-04-18",endpointPrefix:"cognito-idp",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Cognito Identity Provider",serviceId:"Cognito Identity Provider",signatureVersion:"v4",targetPrefix:"AWSCognitoIdentityProviderService",uid:"cognito-idp-2016-04-18"},operations:{AddCustomAttributes:{input:{type:"structure",required:["UserPoolId","CustomAttributes"],members:{UserPoolId:{},CustomAttributes:{type:"list",member:{shape:"S4"}}}},output:{type:"structure",members:{}}},AdminAddUserToGroup:{input:{type:"structure",required:["UserPoolId","Username","GroupName"],members:{UserPoolId:{},Username:{shape:"Sd"},GroupName:{}}}},AdminConfirmSignUp:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AdminCreateUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributes:{shape:"Si"},ValidationData:{shape:"Si"},TemporaryPassword:{shape:"Sm"},ForceAliasCreation:{type:"boolean"},MessageAction:{},DesiredDeliveryMediums:{type:"list",member:{}}}},output:{type:"structure",members:{User:{shape:"Ss"}}}},AdminDeleteUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}}},AdminDeleteUserAttributes:{input:{type:"structure",required:["UserPoolId","Username","UserAttributeNames"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributeNames:{shape:"Sz"}}},output:{type:"structure",members:{}}},AdminDisableProviderForUser:{input:{type:"structure",required:["UserPoolId","User"],members:{UserPoolId:{},User:{shape:"S12"}}},output:{type:"structure",members:{}}},AdminDisableUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AdminEnableUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AdminForgetDevice:{input:{type:"structure",required:["UserPoolId","Username","DeviceKey"],members:{UserPoolId:{},Username:{shape:"Sd"},DeviceKey:{}}}},AdminGetDevice:{input:{type:"structure",required:["DeviceKey","UserPoolId","Username"],members:{DeviceKey:{},UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",required:["Device"],members:{Device:{shape:"S1d"}}}},AdminGetUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",required:["Username"],members:{Username:{shape:"Sd"},UserAttributes:{shape:"Si"},UserCreateDate:{type:"timestamp"},UserLastModifiedDate:{type:"timestamp"},Enabled:{type:"boolean"},UserStatus:{},MFAOptions:{shape:"Sv"},PreferredMfaSetting:{},UserMFASettingList:{shape:"S1g"}}}},AdminInitiateAuth:{input:{type:"structure",required:["UserPoolId","ClientId","AuthFlow"],members:{UserPoolId:{},ClientId:{shape:"S1i"},AuthFlow:{},AuthParameters:{shape:"S1k"},ClientMetadata:{shape:"S1l"},AnalyticsMetadata:{shape:"S1m"},ContextData:{shape:"S1n"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},AdminLinkProviderForUser:{input:{type:"structure",required:["UserPoolId","DestinationUser","SourceUser"],members:{UserPoolId:{},DestinationUser:{shape:"S12"},SourceUser:{shape:"S12"}}},output:{type:"structure",members:{}}},AdminListDevices:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},Limit:{type:"integer"},PaginationToken:{}}},output:{type:"structure",members:{Devices:{shape:"S24"},PaginationToken:{}}}},AdminListGroupsForUser:{input:{type:"structure",required:["Username","UserPoolId"],members:{Username:{shape:"Sd"},UserPoolId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Groups:{shape:"S28"},NextToken:{}}}},AdminListUserAuthEvents:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AuthEvents:{type:"list",member:{type:"structure",members:{EventId:{},EventType:{},CreationDate:{type:"timestamp"},EventResponse:{},EventRisk:{type:"structure",members:{RiskDecision:{},RiskLevel:{}}},ChallengeResponses:{type:"list",member:{type:"structure",members:{ChallengeName:{},ChallengeResponse:{}}}},EventContextData:{type:"structure",members:{IpAddress:{},DeviceName:{},Timezone:{},City:{},Country:{}}},EventFeedback:{type:"structure",required:["FeedbackValue","Provider"],members:{FeedbackValue:{},Provider:{},FeedbackDate:{type:"timestamp"}}}}}},NextToken:{}}}},AdminRemoveUserFromGroup:{input:{type:"structure",required:["UserPoolId","Username","GroupName"],members:{UserPoolId:{},Username:{shape:"Sd"},GroupName:{}}}},AdminResetUserPassword:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AdminRespondToAuthChallenge:{input:{type:"structure",required:["UserPoolId","ClientId","ChallengeName"],members:{UserPoolId:{},ClientId:{shape:"S1i"},ChallengeName:{},ChallengeResponses:{shape:"S2x"},Session:{},AnalyticsMetadata:{shape:"S1m"},ContextData:{shape:"S1n"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},AdminSetUserMFAPreference:{input:{type:"structure",required:["Username","UserPoolId"],members:{SMSMfaSettings:{shape:"S30"},SoftwareTokenMfaSettings:{shape:"S31"},Username:{shape:"Sd"},UserPoolId:{}}},output:{type:"structure",members:{}}},AdminSetUserSettings:{input:{type:"structure",required:["UserPoolId","Username","MFAOptions"],members:{UserPoolId:{},Username:{shape:"Sd"},MFAOptions:{shape:"Sv"}}},output:{type:"structure",members:{}}},AdminUpdateAuthEventFeedback:{input:{type:"structure",required:["UserPoolId","Username","EventId","FeedbackValue"],members:{UserPoolId:{},Username:{shape:"Sd"},EventId:{},FeedbackValue:{}}},output:{type:"structure",members:{}}},AdminUpdateDeviceStatus:{input:{type:"structure",required:["UserPoolId","Username","DeviceKey"],members:{UserPoolId:{},Username:{shape:"Sd"},DeviceKey:{},DeviceRememberedStatus:{}}},output:{type:"structure",members:{}}},AdminUpdateUserAttributes:{input:{type:"structure",required:["UserPoolId","Username","UserAttributes"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributes:{shape:"Si"}}},output:{type:"structure",members:{}}},AdminUserGlobalSignOut:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AssociateSoftwareToken:{input:{type:"structure",members:{AccessToken:{shape:"S1v"},Session:{}}},output:{type:"structure",members:{SecretCode:{type:"string",sensitive:!0},Session:{}}}},ChangePassword:{input:{type:"structure",required:["PreviousPassword","ProposedPassword","AccessToken"],members:{PreviousPassword:{shape:"Sm"},ProposedPassword:{shape:"Sm"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}},authtype:"none"},ConfirmDevice:{input:{type:"structure",required:["AccessToken","DeviceKey"],members:{AccessToken:{shape:"S1v"},DeviceKey:{},DeviceSecretVerifierConfig:{type:"structure",members:{PasswordVerifier:{},Salt:{}}},DeviceName:{}}},output:{type:"structure",members:{UserConfirmationNecessary:{type:"boolean"}}}},ConfirmForgotPassword:{input:{type:"structure",required:["ClientId","Username","ConfirmationCode","Password"],members:{ClientId:{shape:"S1i"},SecretHash:{shape:"S3p"},Username:{shape:"Sd"},ConfirmationCode:{},Password:{shape:"Sm"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3r"}}},output:{type:"structure",members:{}},authtype:"none"},ConfirmSignUp:{input:{type:"structure",required:["ClientId","Username","ConfirmationCode"],members:{ClientId:{shape:"S1i"},SecretHash:{shape:"S3p"},Username:{shape:"Sd"},ConfirmationCode:{},ForceAliasCreation:{type:"boolean"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3r"}}},output:{type:"structure",members:{}},authtype:"none"},CreateGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{},Description:{},RoleArn:{},Precedence:{type:"integer"}}},output:{type:"structure",members:{Group:{shape:"S29"}}}},CreateIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName","ProviderType","ProviderDetails"],members:{UserPoolId:{},ProviderName:{},ProviderType:{},ProviderDetails:{shape:"S40"},AttributeMapping:{shape:"S41"},IdpIdentifiers:{shape:"S43"}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S46"}}}},CreateResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier","Name"],members:{UserPoolId:{},Identifier:{},Name:{},Scopes:{shape:"S4a"}}},output:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"S4f"}}}},CreateUserImportJob:{input:{type:"structure",required:["JobName","UserPoolId","CloudWatchLogsRoleArn"],members:{JobName:{},UserPoolId:{},CloudWatchLogsRoleArn:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4j"}}}},CreateUserPool:{input:{type:"structure",required:["PoolName"],members:{PoolName:{},Policies:{shape:"S4r"},LambdaConfig:{shape:"S4u"},AutoVerifiedAttributes:{shape:"S4v"},AliasAttributes:{shape:"S4x"},UsernameAttributes:{shape:"S4z"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},VerificationMessageTemplate:{shape:"S54"},SmsAuthenticationMessage:{},MfaConfiguration:{},DeviceConfiguration:{shape:"S59"},EmailConfiguration:{shape:"S5a"},SmsConfiguration:{shape:"S5c"},UserPoolTags:{shape:"S5d"},AdminCreateUserConfig:{shape:"S5g"},Schema:{shape:"S5j"},UserPoolAddOns:{shape:"S5k"}}},output:{type:"structure",members:{UserPool:{shape:"S5n"}}}},CreateUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientName"],members:{UserPoolId:{},ClientName:{},GenerateSecret:{type:"boolean"},RefreshTokenValidity:{type:"integer"},ReadAttributes:{shape:"S5u"},WriteAttributes:{shape:"S5u"},ExplicitAuthFlows:{shape:"S5w"},SupportedIdentityProviders:{shape:"S5y"},CallbackURLs:{shape:"S5z"},LogoutURLs:{shape:"S61"},DefaultRedirectURI:{},AllowedOAuthFlows:{shape:"S62"},AllowedOAuthScopes:{shape:"S64"},AllowedOAuthFlowsUserPoolClient:{type:"boolean"},AnalyticsConfiguration:{shape:"S66"}}},output:{type:"structure",members:{UserPoolClient:{shape:"S69"}}}},CreateUserPoolDomain:{input:{type:"structure",required:["Domain","UserPoolId"],members:{Domain:{},UserPoolId:{},CustomDomainConfig:{shape:"S6c"}}},output:{type:"structure",members:{CloudFrontDomain:{}}}},DeleteGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{}}}},DeleteIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{},ProviderName:{}}}},DeleteResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier"],members:{UserPoolId:{},Identifier:{}}}},DeleteUser:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"}}},authtype:"none"},DeleteUserAttributes:{input:{type:"structure",required:["UserAttributeNames","AccessToken"],members:{UserAttributeNames:{shape:"Sz"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}},authtype:"none"},DeleteUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}}},DeleteUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S1i"}}}},DeleteUserPoolDomain:{input:{type:"structure",required:["Domain","UserPoolId"],members:{Domain:{},UserPoolId:{}}},output:{type:"structure",members:{}}},DescribeIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{},ProviderName:{}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S46"}}}},DescribeResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier"],members:{UserPoolId:{},Identifier:{}}},output:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"S4f"}}}},DescribeRiskConfiguration:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1i"}}},output:{type:"structure",required:["RiskConfiguration"],members:{RiskConfiguration:{shape:"S6u"}}}},DescribeUserImportJob:{input:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{},JobId:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4j"}}}},DescribeUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{UserPool:{shape:"S5n"}}}},DescribeUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S1i"}}},output:{type:"structure",members:{UserPoolClient:{shape:"S69"}}}},DescribeUserPoolDomain:{input:{type:"structure",required:["Domain"],members:{Domain:{}}},output:{type:"structure",members:{DomainDescription:{type:"structure",members:{UserPoolId:{},AWSAccountId:{},Domain:{},S3Bucket:{},CloudFrontDistribution:{},Version:{},Status:{},CustomDomainConfig:{shape:"S6c"}}}}}},ForgetDevice:{input:{type:"structure",required:["DeviceKey"],members:{AccessToken:{shape:"S1v"},DeviceKey:{}}}},ForgotPassword:{input:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"S1i"},SecretHash:{shape:"S3p"},UserContextData:{shape:"S3r"},Username:{shape:"Sd"},AnalyticsMetadata:{shape:"S1m"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S7s"}}},authtype:"none"},GetCSVHeader:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{UserPoolId:{},CSVHeader:{type:"list",member:{}}}}},GetDevice:{input:{type:"structure",required:["DeviceKey"],members:{DeviceKey:{},AccessToken:{shape:"S1v"}}},output:{type:"structure",required:["Device"],members:{Device:{shape:"S1d"}}}},GetGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{}}},output:{type:"structure",members:{Group:{shape:"S29"}}}},GetIdentityProviderByIdentifier:{input:{type:"structure",required:["UserPoolId","IdpIdentifier"],members:{UserPoolId:{},IdpIdentifier:{}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S46"}}}},GetSigningCertificate:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{Certificate:{}}}},GetUICustomization:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1i"}}},output:{type:"structure",required:["UICustomization"],members:{UICustomization:{shape:"S86"}}}},GetUser:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"}}},output:{type:"structure",required:["Username","UserAttributes"],members:{Username:{shape:"Sd"},UserAttributes:{shape:"Si"},MFAOptions:{shape:"Sv"},PreferredMfaSetting:{},UserMFASettingList:{shape:"S1g"}}},authtype:"none"},GetUserAttributeVerificationCode:{input:{type:"structure",required:["AccessToken","AttributeName"],members:{AccessToken:{shape:"S1v"},AttributeName:{}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S7s"}}},authtype:"none"},GetUserPoolMfaConfig:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{SmsMfaConfiguration:{shape:"S8g"},SoftwareTokenMfaConfiguration:{shape:"S8h"},MfaConfiguration:{}}}},GlobalSignOut:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}}},InitiateAuth:{input:{type:"structure",required:["AuthFlow","ClientId"],members:{AuthFlow:{},AuthParameters:{shape:"S1k"},ClientMetadata:{shape:"S1l"},ClientId:{shape:"S1i"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3r"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},ListDevices:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"},Limit:{type:"integer"},PaginationToken:{}}},output:{type:"structure",members:{Devices:{shape:"S24"},PaginationToken:{}}}},ListGroups:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Groups:{shape:"S28"},NextToken:{}}}},ListIdentityProviders:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["Providers"],members:{Providers:{type:"list",member:{type:"structure",members:{ProviderName:{},ProviderType:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}}},NextToken:{}}}},ListResourceServers:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["ResourceServers"],members:{ResourceServers:{type:"list",member:{shape:"S4f"}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{Tags:{shape:"S5d"}}}},ListUserImportJobs:{input:{type:"structure",required:["UserPoolId","MaxResults"],members:{UserPoolId:{},MaxResults:{type:"integer"},PaginationToken:{}}},output:{type:"structure",members:{UserImportJobs:{type:"list",member:{shape:"S4j"}},PaginationToken:{}}}},ListUserPoolClients:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{UserPoolClients:{type:"list",member:{type:"structure",members:{ClientId:{shape:"S1i"},UserPoolId:{},ClientName:{}}}},NextToken:{}}}},ListUserPools:{input:{type:"structure",required:["MaxResults"],members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{UserPools:{type:"list",member:{type:"structure",members:{Id:{},Name:{},LambdaConfig:{shape:"S4u"},Status:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}}},NextToken:{}}}},ListUsers:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},AttributesToGet:{type:"list",member:{}},Limit:{type:"integer"},PaginationToken:{},Filter:{}}},output:{type:"structure",members:{Users:{shape:"S9j"},PaginationToken:{}}}},ListUsersInGroup:{input:{type:"structure",required:["UserPoolId","GroupName"],members:{UserPoolId:{},GroupName:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Users:{shape:"S9j"},NextToken:{}}}},ResendConfirmationCode:{input:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"S1i"},SecretHash:{shape:"S3p"},UserContextData:{shape:"S3r"},Username:{shape:"Sd"},AnalyticsMetadata:{shape:"S1m"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S7s"}}},authtype:"none"},RespondToAuthChallenge:{input:{type:"structure",required:["ClientId","ChallengeName"],members:{ClientId:{shape:"S1i"},ChallengeName:{},Session:{},ChallengeResponses:{shape:"S2x"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3r"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},SetRiskConfiguration:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1i"},CompromisedCredentialsRiskConfiguration:{shape:"S6v"},AccountTakeoverRiskConfiguration:{shape:"S70"},RiskExceptionConfiguration:{shape:"S79"}}},output:{type:"structure",required:["RiskConfiguration"],members:{RiskConfiguration:{shape:"S6u"}}}},SetUICustomization:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1i"},CSS:{},ImageFile:{type:"blob"}}},output:{type:"structure",required:["UICustomization"],members:{UICustomization:{shape:"S86"}}}},SetUserMFAPreference:{input:{type:"structure",required:["AccessToken"],members:{SMSMfaSettings:{shape:"S30"},SoftwareTokenMfaSettings:{shape:"S31"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}}},SetUserPoolMfaConfig:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},SmsMfaConfiguration:{shape:"S8g"},SoftwareTokenMfaConfiguration:{shape:"S8h"},MfaConfiguration:{}}},output:{type:"structure",members:{SmsMfaConfiguration:{shape:"S8g"},SoftwareTokenMfaConfiguration:{shape:"S8h"},MfaConfiguration:{}}}},SetUserSettings:{input:{type:"structure",required:["AccessToken","MFAOptions"],members:{AccessToken:{shape:"S1v"},MFAOptions:{shape:"Sv"}}},output:{type:"structure",members:{}},authtype:"none"},SignUp:{input:{type:"structure",required:["ClientId","Username","Password"],members:{ClientId:{shape:"S1i"},SecretHash:{shape:"S3p"},Username:{shape:"Sd"},Password:{shape:"Sm"},UserAttributes:{shape:"Si"},ValidationData:{shape:"Si"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3r"}}},output:{type:"structure",required:["UserConfirmed","UserSub"],members:{UserConfirmed:{type:"boolean"},CodeDeliveryDetails:{shape:"S7s"},UserSub:{}}},authtype:"none"},StartUserImportJob:{input:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{},JobId:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4j"}}}},StopUserImportJob:{input:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{},JobId:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4j"}}}},TagResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},Tags:{shape:"S5d"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateAuthEventFeedback:{input:{type:"structure",required:["UserPoolId","Username","EventId","FeedbackToken","FeedbackValue"],members:{UserPoolId:{},Username:{shape:"Sd"},EventId:{},FeedbackToken:{shape:"S1v"},FeedbackValue:{}}},output:{type:"structure",members:{}}},UpdateDeviceStatus:{input:{type:"structure",required:["AccessToken","DeviceKey"],members:{AccessToken:{shape:"S1v"},DeviceKey:{},DeviceRememberedStatus:{}}},output:{type:"structure",members:{}}},UpdateGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{},Description:{},RoleArn:{},Precedence:{type:"integer"}}},output:{type:"structure",members:{Group:{shape:"S29"}}}},UpdateIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{},ProviderName:{},ProviderDetails:{shape:"S40"},AttributeMapping:{shape:"S41"},IdpIdentifiers:{shape:"S43"}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S46"}}}},UpdateResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier","Name"],members:{UserPoolId:{},Identifier:{},Name:{},Scopes:{shape:"S4a"}}},output:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"S4f"}}}},UpdateUserAttributes:{input:{type:"structure",required:["UserAttributes","AccessToken"],members:{UserAttributes:{shape:"Si"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{CodeDeliveryDetailsList:{type:"list",member:{shape:"S7s"}}}},authtype:"none"},UpdateUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},Policies:{shape:"S4r"},LambdaConfig:{shape:"S4u"},AutoVerifiedAttributes:{shape:"S4v"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},VerificationMessageTemplate:{shape:"S54"},SmsAuthenticationMessage:{},MfaConfiguration:{},DeviceConfiguration:{shape:"S59"},EmailConfiguration:{shape:"S5a"},SmsConfiguration:{shape:"S5c"},UserPoolTags:{shape:"S5d"},AdminCreateUserConfig:{shape:"S5g"},UserPoolAddOns:{shape:"S5k"}}},output:{type:"structure",members:{}}},UpdateUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S1i"},ClientName:{},RefreshTokenValidity:{type:"integer"},ReadAttributes:{shape:"S5u"},WriteAttributes:{shape:"S5u"},ExplicitAuthFlows:{shape:"S5w"},SupportedIdentityProviders:{shape:"S5y"},CallbackURLs:{shape:"S5z"},LogoutURLs:{shape:"S61"},DefaultRedirectURI:{},AllowedOAuthFlows:{shape:"S62"},AllowedOAuthScopes:{shape:"S64"},AllowedOAuthFlowsUserPoolClient:{type:"boolean"},AnalyticsConfiguration:{shape:"S66"}}},output:{type:"structure",members:{UserPoolClient:{shape:"S69"}}}},UpdateUserPoolDomain:{input:{type:"structure",required:["Domain","UserPoolId","CustomDomainConfig"],members:{Domain:{},UserPoolId:{},CustomDomainConfig:{shape:"S6c"}}},output:{type:"structure",members:{CloudFrontDomain:{}}}},VerifySoftwareToken:{input:{type:"structure",required:["UserCode"],members:{AccessToken:{shape:"S1v"},Session:{},UserCode:{},FriendlyDeviceName:{}}},output:{type:"structure",members:{Status:{},Session:{}}}},VerifyUserAttribute:{input:{type:"structure",required:["AccessToken","AttributeName","Code"],members:{AccessToken:{shape:"S1v"},AttributeName:{},Code:{}}},output:{type:"structure",members:{}},authtype:"none"}},shapes:{S4:{type:"structure",members:{Name:{},AttributeDataType:{},DeveloperOnlyAttribute:{type:"boolean"},Mutable:{type:"boolean"},Required:{type:"boolean"},NumberAttributeConstraints:{type:"structure",members:{MinValue:{},MaxValue:{}}},StringAttributeConstraints:{type:"structure",members:{MinLength:{},MaxLength:{}}}}},Sd:{type:"string",sensitive:!0},Si:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},Value:{type:"string",sensitive:!0}}}},Sm:{type:"string",sensitive:!0},Ss:{type:"structure",members:{Username:{shape:"Sd"},Attributes:{shape:"Si"},UserCreateDate:{type:"timestamp"},UserLastModifiedDate:{type:"timestamp"},Enabled:{type:"boolean"},UserStatus:{},MFAOptions:{shape:"Sv"}}},Sv:{type:"list",member:{type:"structure",members:{DeliveryMedium:{},AttributeName:{}}}},Sz:{type:"list",member:{}},S12:{type:"structure",members:{ProviderName:{},ProviderAttributeName:{},ProviderAttributeValue:{}}},S1d:{type:"structure",members:{DeviceKey:{},DeviceAttributes:{shape:"Si"},DeviceCreateDate:{type:"timestamp"},DeviceLastModifiedDate:{type:"timestamp"},DeviceLastAuthenticatedDate:{type:"timestamp"}}},S1g:{type:"list",member:{}},S1i:{type:"string",sensitive:!0},S1k:{type:"map",key:{},value:{}},S1l:{type:"map",key:{},value:{}},S1m:{type:"structure",members:{AnalyticsEndpointId:{}}},S1n:{type:"structure",required:["IpAddress","ServerName","ServerPath","HttpHeaders"],members:{IpAddress:{},ServerName:{},ServerPath:{},HttpHeaders:{type:"list",member:{type:"structure",members:{headerName:{},headerValue:{}}}},EncodedData:{}}},S1t:{type:"map",key:{},value:{}},S1u:{type:"structure",members:{AccessToken:{shape:"S1v"},ExpiresIn:{type:"integer"},TokenType:{},RefreshToken:{shape:"S1v"},IdToken:{shape:"S1v"},NewDeviceMetadata:{type:"structure",members:{DeviceKey:{},DeviceGroupKey:{}}}}},S1v:{type:"string",sensitive:!0},S24:{type:"list",member:{shape:"S1d"}},S28:{type:"list",member:{shape:"S29"}},S29:{type:"structure",members:{GroupName:{},UserPoolId:{},Description:{},RoleArn:{},Precedence:{type:"integer"},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S2x:{type:"map",key:{},value:{}},S30:{type:"structure",members:{Enabled:{type:"boolean"},PreferredMfa:{type:"boolean"}}},S31:{type:"structure",members:{Enabled:{type:"boolean"},PreferredMfa:{type:"boolean"}}},S3p:{type:"string",sensitive:!0},S3r:{type:"structure",members:{EncodedData:{}}},S40:{type:"map",key:{},value:{}},S41:{type:"map",key:{},value:{}},S43:{type:"list",member:{}},S46:{type:"structure",members:{UserPoolId:{},ProviderName:{},ProviderType:{},ProviderDetails:{shape:"S40"},AttributeMapping:{shape:"S41"},IdpIdentifiers:{shape:"S43"},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S4a:{type:"list",member:{type:"structure",required:["ScopeName","ScopeDescription"],members:{ScopeName:{},ScopeDescription:{}}}},S4f:{type:"structure",members:{UserPoolId:{},Identifier:{},Name:{},Scopes:{shape:"S4a"}}},S4j:{type:"structure",members:{JobName:{},JobId:{},UserPoolId:{},PreSignedUrl:{},CreationDate:{type:"timestamp"},StartDate:{type:"timestamp"},CompletionDate:{type:"timestamp"},Status:{},CloudWatchLogsRoleArn:{},ImportedUsers:{type:"long"},SkippedUsers:{type:"long"},FailedUsers:{type:"long"},CompletionMessage:{}}},S4r:{type:"structure",members:{PasswordPolicy:{type:"structure",members:{MinimumLength:{type:"integer"},RequireUppercase:{type:"boolean"},RequireLowercase:{type:"boolean"},RequireNumbers:{type:"boolean"},RequireSymbols:{type:"boolean"}}}}},S4u:{type:"structure",members:{PreSignUp:{},CustomMessage:{},PostConfirmation:{},PreAuthentication:{},PostAuthentication:{},DefineAuthChallenge:{},CreateAuthChallenge:{},VerifyAuthChallengeResponse:{},PreTokenGeneration:{},UserMigration:{}}},S4v:{type:"list",member:{}},S4x:{type:"list",member:{}},S4z:{type:"list",member:{}},S54:{type:"structure",members:{SmsMessage:{},EmailMessage:{},EmailSubject:{},EmailMessageByLink:{},EmailSubjectByLink:{},DefaultEmailOption:{}}},S59:{type:"structure",members:{ChallengeRequiredOnNewDevice:{type:"boolean"},DeviceOnlyRememberedOnUserPrompt:{type:"boolean"}}},S5a:{type:"structure",members:{SourceArn:{},ReplyToEmailAddress:{}}},S5c:{type:"structure",required:["SnsCallerArn"],members:{SnsCallerArn:{},ExternalId:{}}},S5d:{type:"map",key:{},value:{}},S5g:{type:"structure",members:{AllowAdminCreateUserOnly:{type:"boolean"},UnusedAccountValidityDays:{type:"integer"},InviteMessageTemplate:{type:"structure",members:{SMSMessage:{},EmailMessage:{},EmailSubject:{}}}}},S5j:{type:"list",member:{shape:"S4"}},S5k:{type:"structure",required:["AdvancedSecurityMode"],members:{AdvancedSecurityMode:{}}},S5n:{type:"structure",members:{Id:{},Name:{},Policies:{shape:"S4r"},LambdaConfig:{shape:"S4u"},Status:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"},SchemaAttributes:{shape:"S5j"},AutoVerifiedAttributes:{shape:"S4v"},AliasAttributes:{shape:"S4x"},UsernameAttributes:{shape:"S4z"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},VerificationMessageTemplate:{shape:"S54"},SmsAuthenticationMessage:{},MfaConfiguration:{},DeviceConfiguration:{shape:"S59"},EstimatedNumberOfUsers:{type:"integer"},EmailConfiguration:{shape:"S5a"},SmsConfiguration:{shape:"S5c"},UserPoolTags:{shape:"S5d"},SmsConfigurationFailure:{},EmailConfigurationFailure:{},Domain:{},CustomDomain:{},AdminCreateUserConfig:{shape:"S5g"},UserPoolAddOns:{shape:"S5k"},Arn:{}}},S5u:{type:"list",member:{}},S5w:{type:"list",member:{}},S5y:{type:"list",member:{}},S5z:{type:"list",member:{}},S61:{type:"list",member:{}},S62:{type:"list",member:{}},S64:{type:"list",member:{}},S66:{type:"structure",required:["ApplicationId","RoleArn","ExternalId"],members:{ApplicationId:{},RoleArn:{},ExternalId:{},UserDataShared:{type:"boolean"}}},S69:{type:"structure",members:{UserPoolId:{},ClientName:{},ClientId:{shape:"S1i"},ClientSecret:{type:"string",sensitive:!0},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"},RefreshTokenValidity:{type:"integer"},ReadAttributes:{shape:"S5u"},WriteAttributes:{shape:"S5u"},ExplicitAuthFlows:{shape:"S5w"},SupportedIdentityProviders:{shape:"S5y"},CallbackURLs:{shape:"S5z"},LogoutURLs:{shape:"S61"},DefaultRedirectURI:{},AllowedOAuthFlows:{shape:"S62"},AllowedOAuthScopes:{shape:"S64"},AllowedOAuthFlowsUserPoolClient:{type:"boolean"},AnalyticsConfiguration:{shape:"S66"}}},S6c:{type:"structure",required:["CertificateArn"],members:{CertificateArn:{}}},S6u:{type:"structure",members:{UserPoolId:{},ClientId:{shape:"S1i"},CompromisedCredentialsRiskConfiguration:{shape:"S6v"},AccountTakeoverRiskConfiguration:{shape:"S70"},RiskExceptionConfiguration:{shape:"S79"},LastModifiedDate:{type:"timestamp"}}},S6v:{type:"structure",required:["Actions"], -members:{EventFilter:{type:"list",member:{}},Actions:{type:"structure",required:["EventAction"],members:{EventAction:{}}}}},S70:{type:"structure",required:["Actions"],members:{NotifyConfiguration:{type:"structure",required:["SourceArn"],members:{From:{},ReplyTo:{},SourceArn:{},BlockEmail:{shape:"S72"},NoActionEmail:{shape:"S72"},MfaEmail:{shape:"S72"}}},Actions:{type:"structure",members:{LowAction:{shape:"S76"},MediumAction:{shape:"S76"},HighAction:{shape:"S76"}}}}},S72:{type:"structure",required:["Subject"],members:{Subject:{},HtmlBody:{},TextBody:{}}},S76:{type:"structure",required:["Notify","EventAction"],members:{Notify:{type:"boolean"},EventAction:{}}},S79:{type:"structure",members:{BlockedIPRangeList:{type:"list",member:{}},SkippedIPRangeList:{type:"list",member:{}}}},S7s:{type:"structure",members:{Destination:{},DeliveryMedium:{},AttributeName:{}}},S86:{type:"structure",members:{UserPoolId:{},ClientId:{shape:"S1i"},ImageUrl:{},CSS:{},CSSVersion:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S8g:{type:"structure",members:{SmsAuthenticationMessage:{},SmsConfiguration:{shape:"S5c"}}},S8h:{type:"structure",members:{Enabled:{type:"boolean"}}},S9j:{type:"list",member:{shape:"Ss"}}},paginators:{}};AWS.apiLoader.services.cognitosync={},AWS.CognitoSync=AWS.Service.defineService("cognitosync",["2014-06-30"]);AWS.apiLoader.services.cognitosync["2014-06-30"]={version:"2.0",metadata:{apiVersion:"2014-06-30",endpointPrefix:"cognito-sync",jsonVersion:"1.1",serviceFullName:"Amazon Cognito Sync",serviceId:"Cognito Sync",signatureVersion:"v4",protocol:"rest-json",uid:"cognito-sync-2014-06-30"},operations:{BulkPublish:{http:{requestUri:"/identitypools/{IdentityPoolId}/bulkpublish",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{}}}},DeleteDataset:{http:{method:"DELETE",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"}}},output:{type:"structure",members:{Dataset:{shape:"S8"}}}},DescribeDataset:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"}}},output:{type:"structure",members:{Dataset:{shape:"S8"}}}},DescribeIdentityPoolUsage:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolUsage:{shape:"Sg"}}}},DescribeIdentityUsage:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"}}},output:{type:"structure",members:{IdentityUsage:{type:"structure",members:{IdentityId:{},IdentityPoolId:{},LastModifiedDate:{type:"timestamp"},DatasetCount:{type:"integer"},DataStorage:{type:"long"}}}}}},GetBulkPublishDetails:{http:{requestUri:"/identitypools/{IdentityPoolId}/getBulkPublishDetails",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{},BulkPublishStartTime:{type:"timestamp"},BulkPublishCompleteTime:{type:"timestamp"},BulkPublishStatus:{},FailureMessage:{}}}},GetCognitoEvents:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/events",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{Events:{shape:"Sq"}}}},GetIdentityPoolConfiguration:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/configuration",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}}},ListDatasets:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets",responseCode:200},input:{type:"structure",required:["IdentityId","IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{Datasets:{type:"list",member:{shape:"S8"}},Count:{type:"integer"},NextToken:{}}}},ListIdentityPoolUsage:{http:{method:"GET",requestUri:"/identitypools",responseCode:200},input:{type:"structure",members:{NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{IdentityPoolUsages:{type:"list",member:{shape:"Sg"}},MaxResults:{type:"integer"},Count:{type:"integer"},NextToken:{}}}},ListRecords:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},LastSyncCount:{location:"querystring",locationName:"lastSyncCount",type:"long"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"},SyncSessionToken:{location:"querystring",locationName:"syncSessionToken"}}},output:{type:"structure",members:{Records:{shape:"S1c"},NextToken:{},Count:{type:"integer"},DatasetSyncCount:{type:"long"},LastModifiedBy:{},MergedDatasetNames:{type:"list",member:{}},DatasetExists:{type:"boolean"},DatasetDeletedAfterRequestedSyncCount:{type:"boolean"},SyncSessionToken:{}}}},RegisterDevice:{http:{requestUri:"/identitypools/{IdentityPoolId}/identity/{IdentityId}/device",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","Platform","Token"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},Platform:{},Token:{}}},output:{type:"structure",members:{DeviceId:{}}}},SetCognitoEvents:{http:{requestUri:"/identitypools/{IdentityPoolId}/events",responseCode:200},input:{type:"structure",required:["IdentityPoolId","Events"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},Events:{shape:"Sq"}}}},SetIdentityPoolConfiguration:{http:{requestUri:"/identitypools/{IdentityPoolId}/configuration",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}},output:{type:"structure",members:{IdentityPoolId:{},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}}},SubscribeToDataset:{http:{requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","DeviceId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{location:"uri",locationName:"DeviceId"}}},output:{type:"structure",members:{}}},UnsubscribeFromDataset:{http:{method:"DELETE",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","DeviceId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{location:"uri",locationName:"DeviceId"}}},output:{type:"structure",members:{}}},UpdateRecords:{http:{requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","SyncSessionToken"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{},RecordPatches:{type:"list",member:{type:"structure",required:["Op","Key","SyncCount"],members:{Op:{},Key:{},Value:{},SyncCount:{type:"long"},DeviceLastModifiedDate:{type:"timestamp"}}}},SyncSessionToken:{},ClientContext:{location:"header",locationName:"x-amz-Client-Context"}}},output:{type:"structure",members:{Records:{shape:"S1c"}}}}},shapes:{S8:{type:"structure",members:{IdentityId:{},DatasetName:{},CreationDate:{type:"timestamp"},LastModifiedDate:{type:"timestamp"},LastModifiedBy:{},DataStorage:{type:"long"},NumRecords:{type:"long"}}},Sg:{type:"structure",members:{IdentityPoolId:{},SyncSessionsCount:{type:"long"},DataStorage:{type:"long"},LastModifiedDate:{type:"timestamp"}}},Sq:{type:"map",key:{},value:{}},Sv:{type:"structure",members:{ApplicationArns:{type:"list",member:{}},RoleArn:{}}},Sz:{type:"structure",members:{StreamName:{},RoleArn:{},StreamingStatus:{}}},S1c:{type:"list",member:{type:"structure",members:{Key:{},Value:{},SyncCount:{type:"long"},LastModifiedDate:{type:"timestamp"},LastModifiedBy:{},DeviceLastModifiedDate:{type:"timestamp"}}}}},examples:{}};AWS.apiLoader.services.configservice={},AWS.ConfigService=AWS.Service.defineService("configservice",["2014-11-12"]);AWS.apiLoader.services.configservice["2014-11-12"]={version:"2.0",metadata:{apiVersion:"2014-11-12",endpointPrefix:"config",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Config Service",serviceFullName:"AWS Config",serviceId:"Config Service",signatureVersion:"v4",targetPrefix:"StarlingDoveService",uid:"config-2014-11-12"},operations:{BatchGetAggregateResourceConfig:{input:{type:"structure",required:["ConfigurationAggregatorName","ResourceIdentifiers"],members:{ConfigurationAggregatorName:{},ResourceIdentifiers:{type:"list",member:{shape:"S4"}}}},output:{type:"structure",members:{BaseConfigurationItems:{shape:"Sb"},UnprocessedResourceIdentifiers:{type:"list",member:{shape:"S4"}}}}},BatchGetResourceConfig:{input:{type:"structure",required:["resourceKeys"],members:{resourceKeys:{shape:"Sq"}}},output:{type:"structure",members:{baseConfigurationItems:{shape:"Sb"},unprocessedResourceKeys:{shape:"Sq"}}}},DeleteAggregationAuthorization:{input:{type:"structure",required:["AuthorizedAccountId","AuthorizedAwsRegion"],members:{AuthorizedAccountId:{},AuthorizedAwsRegion:{}}}},DeleteConfigRule:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{}}}},DeleteConfigurationAggregator:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{}}}},DeleteConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}}},DeleteDeliveryChannel:{input:{type:"structure",required:["DeliveryChannelName"],members:{DeliveryChannelName:{}}}},DeleteEvaluationResults:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{}}},output:{type:"structure",members:{}}},DeletePendingAggregationRequest:{input:{type:"structure",required:["RequesterAccountId","RequesterAwsRegion"],members:{RequesterAccountId:{},RequesterAwsRegion:{}}}},DeleteRemediationConfiguration:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ResourceType:{}}},output:{type:"structure",members:{}}},DeleteRetentionConfiguration:{input:{type:"structure",required:["RetentionConfigurationName"],members:{RetentionConfigurationName:{}}}},DeliverConfigSnapshot:{input:{type:"structure",required:["deliveryChannelName"],members:{deliveryChannelName:{}}},output:{type:"structure",members:{configSnapshotId:{}}}},DescribeAggregateComplianceByConfigRules:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},Filters:{type:"structure",members:{ConfigRuleName:{},ComplianceType:{},AccountId:{},AwsRegion:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AggregateComplianceByConfigRules:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},Compliance:{shape:"S1k"},AccountId:{},AwsRegion:{}}}},NextToken:{}}}},DescribeAggregationAuthorizations:{input:{type:"structure",members:{Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AggregationAuthorizations:{type:"list",member:{shape:"S1s"}},NextToken:{}}}},DescribeComplianceByConfigRule:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S1v"},ComplianceTypes:{shape:"S1w"},NextToken:{}}},output:{type:"structure",members:{ComplianceByConfigRules:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},Compliance:{shape:"S1k"}}}},NextToken:{}}}},DescribeComplianceByResource:{input:{type:"structure",members:{ResourceType:{},ResourceId:{},ComplianceTypes:{shape:"S1w"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ComplianceByResources:{type:"list",member:{type:"structure",members:{ResourceType:{},ResourceId:{},Compliance:{shape:"S1k"}}}},NextToken:{}}}},DescribeConfigRuleEvaluationStatus:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S1v"},NextToken:{},Limit:{type:"integer"}}},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"}}}},NextToken:{}}}},DescribeConfigRules:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S1v"},NextToken:{}}},output:{type:"structure",members:{ConfigRules:{type:"list",member:{shape:"S2e"}},NextToken:{}}}},DescribeConfigurationAggregatorSourcesStatus:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},UpdateStatus:{type:"list",member:{}},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{AggregatedSourceStatusList:{type:"list",member:{type:"structure",members:{SourceId:{},SourceType:{},AwsRegion:{},LastUpdateStatus:{},LastUpdateTime:{type:"timestamp"},LastErrorCode:{},LastErrorMessage:{}}}},NextToken:{}}}},DescribeConfigurationAggregators:{input:{type:"structure",members:{ConfigurationAggregatorNames:{type:"list",member:{}},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ConfigurationAggregators:{type:"list",member:{shape:"S33"}},NextToken:{}}}},DescribeConfigurationRecorderStatus:{input:{type:"structure",members:{ConfigurationRecorderNames:{shape:"S3b"}}},output:{type:"structure",members:{ConfigurationRecordersStatus:{type:"list",member:{type:"structure",members:{name:{},lastStartTime:{type:"timestamp"},lastStopTime:{type:"timestamp"},recording:{type:"boolean"},lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastStatusChangeTime:{type:"timestamp"}}}}}}},DescribeConfigurationRecorders:{input:{type:"structure",members:{ConfigurationRecorderNames:{shape:"S3b"}}},output:{type:"structure",members:{ConfigurationRecorders:{type:"list",member:{shape:"S3j"}}}}},DescribeDeliveryChannelStatus:{input:{type:"structure",members:{DeliveryChannelNames:{shape:"S3p"}}},output:{type:"structure",members:{DeliveryChannelsStatus:{type:"list",member:{type:"structure",members:{name:{},configSnapshotDeliveryInfo:{shape:"S3t"},configHistoryDeliveryInfo:{shape:"S3t"},configStreamDeliveryInfo:{type:"structure",members:{lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastStatusChangeTime:{type:"timestamp"}}}}}}}}},DescribeDeliveryChannels:{input:{type:"structure",members:{DeliveryChannelNames:{shape:"S3p"}}},output:{type:"structure",members:{DeliveryChannels:{type:"list",member:{shape:"S3z"}}}}},DescribePendingAggregationRequests:{input:{type:"structure",members:{Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{PendingAggregationRequests:{type:"list",member:{type:"structure",members:{RequesterAccountId:{},RequesterAwsRegion:{}}}},NextToken:{}}}},DescribeRemediationConfigurations:{input:{type:"structure",required:["ConfigRuleNames"],members:{ConfigRuleNames:{shape:"S1v"}}},output:{type:"structure",members:{RemediationConfigurations:{shape:"S48"}}}},DescribeRemediationExecutionStatus:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ResourceKeys:{shape:"Sq"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{RemediationExecutionStatuses:{type:"list",member:{type:"structure",members:{ResourceKey:{shape:"Sr"},State:{},StepDetails:{type:"list",member:{type:"structure",members:{Name:{},State:{},ErrorMessage:{},StartTime:{type:"timestamp"},StopTime:{type:"timestamp"}}}},InvocationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeRetentionConfigurations:{input:{type:"structure",members:{RetentionConfigurationNames:{type:"list",member:{}},NextToken:{}}},output:{type:"structure",members:{RetentionConfigurations:{type:"list",member:{shape:"S4t"}},NextToken:{}}}},GetAggregateComplianceDetailsByConfigRule:{input:{type:"structure",required:["ConfigurationAggregatorName","ConfigRuleName","AccountId","AwsRegion"],members:{ConfigurationAggregatorName:{},ConfigRuleName:{},AccountId:{},AwsRegion:{},ComplianceType:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AggregateEvaluationResults:{type:"list",member:{type:"structure",members:{EvaluationResultIdentifier:{shape:"S4z"},ComplianceType:{},ResultRecordedTime:{type:"timestamp"},ConfigRuleInvokedTime:{type:"timestamp"},Annotation:{},AccountId:{},AwsRegion:{}}}},NextToken:{}}}},GetAggregateConfigRuleComplianceSummary:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},Filters:{type:"structure",members:{AccountId:{},AwsRegion:{}}},GroupByKey:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GroupByKey:{},AggregateComplianceCounts:{type:"list",member:{type:"structure",members:{GroupName:{},ComplianceSummary:{shape:"S57"}}}},NextToken:{}}}},GetAggregateDiscoveredResourceCounts:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},Filters:{type:"structure",members:{ResourceType:{},AccountId:{},Region:{}}},GroupByKey:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["TotalDiscoveredResources"],members:{TotalDiscoveredResources:{type:"long"},GroupByKey:{},GroupedResourceCounts:{type:"list",member:{type:"structure",required:["GroupName","ResourceCount"],members:{GroupName:{},ResourceCount:{type:"long"}}}},NextToken:{}}}},GetAggregateResourceConfig:{input:{type:"structure",required:["ConfigurationAggregatorName","ResourceIdentifier"],members:{ConfigurationAggregatorName:{},ResourceIdentifier:{shape:"S4"}}},output:{type:"structure",members:{ConfigurationItem:{shape:"S5h"}}}},GetComplianceDetailsByConfigRule:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ComplianceTypes:{shape:"S1w"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{EvaluationResults:{shape:"S5t"},NextToken:{}}}},GetComplianceDetailsByResource:{input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{},ResourceId:{},ComplianceTypes:{shape:"S1w"},NextToken:{}}},output:{type:"structure",members:{EvaluationResults:{shape:"S5t"},NextToken:{}}}},GetComplianceSummaryByConfigRule:{output:{type:"structure",members:{ComplianceSummary:{shape:"S57"}}}},GetComplianceSummaryByResourceType:{input:{type:"structure",members:{ResourceTypes:{shape:"S5z"}}},output:{type:"structure",members:{ComplianceSummariesByResourceType:{type:"list",member:{type:"structure",members:{ResourceType:{},ComplianceSummary:{shape:"S57"}}}}}}},GetDiscoveredResourceCounts:{input:{type:"structure",members:{resourceTypes:{shape:"S5z"},limit:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{totalDiscoveredResources:{type:"long"},resourceCounts:{type:"list",member:{type:"structure",members:{resourceType:{},count:{type:"long"}}}},nextToken:{}}}},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:{shape:"S5h"}},nextToken:{}}}},ListAggregateDiscoveredResources:{input:{type:"structure",required:["ConfigurationAggregatorName","ResourceType"],members:{ConfigurationAggregatorName:{},ResourceType:{},Filters:{type:"structure",members:{AccountId:{},ResourceId:{},ResourceName:{},Region:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ResourceIdentifiers:{type:"list",member:{shape:"S4"}},NextToken:{}}}},ListDiscoveredResources:{input:{type:"structure",required:["resourceType"],members:{resourceType:{},resourceIds:{type:"list",member:{}},resourceName:{},limit:{type:"integer"},includeDeletedResources:{type:"boolean"},nextToken:{}}},output:{type:"structure",members:{resourceIdentifiers:{type:"list",member:{type:"structure",members:{resourceType:{},resourceId:{},resourceName:{},resourceDeletionTime:{type:"timestamp"}}}},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tags:{shape:"S6q"},NextToken:{}}}},PutAggregationAuthorization:{input:{type:"structure",required:["AuthorizedAccountId","AuthorizedAwsRegion"],members:{AuthorizedAccountId:{},AuthorizedAwsRegion:{}}},output:{type:"structure",members:{AggregationAuthorization:{shape:"S1s"}}}},PutConfigRule:{input:{type:"structure",required:["ConfigRule"],members:{ConfigRule:{shape:"S2e"}}}},PutConfigurationAggregator:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},AccountAggregationSources:{shape:"S35"},OrganizationAggregationSource:{shape:"S39"}}},output:{type:"structure",members:{ConfigurationAggregator:{shape:"S33"}}}},PutConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorder"],members:{ConfigurationRecorder:{shape:"S3j"}}}},PutDeliveryChannel:{input:{type:"structure",required:["DeliveryChannel"],members:{DeliveryChannel:{shape:"S3z"}}}},PutEvaluations:{input:{type:"structure",required:["ResultToken"],members:{Evaluations:{shape:"S72"},ResultToken:{},TestMode:{type:"boolean"}}},output:{type:"structure",members:{FailedEvaluations:{shape:"S72"}}}},PutRemediationConfigurations:{input:{type:"structure",required:["RemediationConfigurations"],members:{RemediationConfigurations:{shape:"S48"}}},output:{type:"structure",members:{FailedBatches:{type:"list",member:{type:"structure",members:{FailureMessage:{},FailedItems:{shape:"S48"}}}}}}},PutRetentionConfiguration:{input:{type:"structure",required:["RetentionPeriodInDays"],members:{RetentionPeriodInDays:{type:"integer"}}},output:{type:"structure",members:{RetentionConfiguration:{shape:"S4t"}}}},SelectResourceConfig:{input:{type:"structure",required:["Expression"],members:{Expression:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Results:{type:"list",member:{}},QueryInfo:{type:"structure",members:{SelectFields:{type:"list",member:{type:"structure",members:{Name:{}}}}}},NextToken:{}}}},StartConfigRulesEvaluation:{input:{type:"structure",members:{ConfigRuleNames:{type:"list",member:{}}}},output:{type:"structure",members:{}}},StartConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}}},StartRemediationExecution:{input:{type:"structure",required:["ConfigRuleName","ResourceKeys"],members:{ConfigRuleName:{},ResourceKeys:{shape:"Sq"}}},output:{type:"structure",members:{FailureMessage:{},FailedItems:{shape:"Sq"}}}},StopConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S6q"}}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}}}},shapes:{S4:{type:"structure",required:["SourceAccountId","SourceRegion","ResourceId","ResourceType"],members:{SourceAccountId:{},SourceRegion:{},ResourceId:{},ResourceType:{},ResourceName:{}}},Sb:{type:"list",member:{type:"structure",members:{version:{},accountId:{},configurationItemCaptureTime:{type:"timestamp"},configurationItemStatus:{},configurationStateId:{},arn:{},resourceType:{},resourceId:{},resourceName:{},awsRegion:{},availabilityZone:{},resourceCreationTime:{type:"timestamp"},configuration:{},supplementaryConfiguration:{shape:"Sl"}}}},Sl:{type:"map",key:{},value:{}},Sq:{type:"list",member:{shape:"Sr"}},Sr:{type:"structure",required:["resourceType","resourceId"],members:{resourceType:{},resourceId:{}}},S1k:{type:"structure",members:{ComplianceType:{},ComplianceContributorCount:{shape:"S1l"}}},S1l:{type:"structure",members:{CappedCount:{type:"integer"},CapExceeded:{type:"boolean"}}},S1s:{type:"structure",members:{AggregationAuthorizationArn:{},AuthorizedAccountId:{},AuthorizedAwsRegion:{},CreationTime:{type:"timestamp"}}},S1v:{type:"list",member:{}},S1w:{type:"list",member:{}},S2e:{type:"structure",required:["Source"],members:{ConfigRuleName:{},ConfigRuleArn:{},ConfigRuleId:{},Description:{},Scope:{type:"structure",members:{ComplianceResourceTypes:{type:"list",member:{}},TagKey:{},TagValue:{},ComplianceResourceId:{}}},Source:{type:"structure",required:["Owner","SourceIdentifier"],members:{Owner:{},SourceIdentifier:{},SourceDetails:{type:"list",member:{type:"structure",members:{EventSource:{},MessageType:{},MaximumExecutionFrequency:{}}}}}},InputParameters:{},MaximumExecutionFrequency:{},ConfigRuleState:{},CreatedBy:{}}},S33:{type:"structure",members:{ConfigurationAggregatorName:{},ConfigurationAggregatorArn:{},AccountAggregationSources:{shape:"S35"},OrganizationAggregationSource:{shape:"S39"},CreationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}},S35:{type:"list",member:{type:"structure",required:["AccountIds"],members:{AccountIds:{type:"list",member:{}},AllAwsRegions:{type:"boolean"},AwsRegions:{shape:"S38"}}}},S38:{type:"list",member:{}},S39:{type:"structure",required:["RoleArn"],members:{RoleArn:{},AwsRegions:{shape:"S38"},AllAwsRegions:{type:"boolean"}}},S3b:{type:"list",member:{}},S3j:{type:"structure",members:{name:{},roleARN:{},recordingGroup:{type:"structure",members:{allSupported:{type:"boolean"},includeGlobalResourceTypes:{type:"boolean"},resourceTypes:{type:"list",member:{}}}}}},S3p:{type:"list",member:{}},S3t:{type:"structure",members:{lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastAttemptTime:{type:"timestamp"},lastSuccessfulTime:{type:"timestamp"},nextDeliveryTime:{type:"timestamp"}}},S3z:{type:"structure",members:{name:{},s3BucketName:{},s3KeyPrefix:{},snsTopicARN:{},configSnapshotDeliveryProperties:{type:"structure",members:{deliveryFrequency:{}}}}},S48:{type:"list",member:{type:"structure",required:["ConfigRuleName","TargetType","TargetId"],members:{ConfigRuleName:{},TargetType:{},TargetId:{},TargetVersion:{},Parameters:{type:"map",key:{},value:{type:"structure",members:{ResourceValue:{type:"structure",members:{Value:{}}},StaticValue:{type:"structure",members:{Values:{type:"list",member:{}}}}}}},ResourceType:{}}}},S4t:{type:"structure",required:["Name","RetentionPeriodInDays"],members:{Name:{},RetentionPeriodInDays:{type:"integer"}}},S4z:{type:"structure",members:{EvaluationResultQualifier:{type:"structure",members:{ConfigRuleName:{},ResourceType:{},ResourceId:{}}},OrderingTimestamp:{type:"timestamp"}}},S57:{type:"structure",members:{CompliantResourceCount:{shape:"S1l"},NonCompliantResourceCount:{shape:"S1l"},ComplianceSummaryTimestamp:{type:"timestamp"}}},S5h:{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:{},supplementaryConfiguration:{shape:"Sl"}}},S5t:{type:"list",member:{type:"structure",members:{EvaluationResultIdentifier:{shape:"S4z"},ComplianceType:{},ResultRecordedTime:{type:"timestamp"},ConfigRuleInvokedTime:{type:"timestamp"},Annotation:{},ResultToken:{}}}},S5z:{type:"list",member:{}},S6q:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S72:{type:"list",member:{type:"structure",required:["ComplianceResourceType","ComplianceResourceId","ComplianceType","OrderingTimestamp"],members:{ComplianceResourceType:{},ComplianceResourceId:{},ComplianceType:{},Annotation:{},OrderingTimestamp:{type:"timestamp"}}}}},paginators:{DescribeRemediationExecutionStatus:{input_token:"NextToken",limit_key:"Limit",output_token:"NextToken",result_key:"RemediationExecutionStatuses"},GetResourceConfigHistory:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"configurationItems"}}};AWS.apiLoader.services.mobileanalytics={},AWS.MobileAnalytics=AWS.Service.defineService("mobileanalytics",["2014-06-05"]);AWS.apiLoader.services.mobileanalytics["2014-06-05"]={version:"2.0",metadata:{apiVersion:"2014-06-05",endpointPrefix:"mobileanalytics",serviceFullName:"Amazon Mobile Analytics",serviceId:"Mobile Analytics",signatureVersion:"v4",protocol:"rest-json"},operations:{PutEvents:{http:{requestUri:"/2014-06-05/events",responseCode:202},input:{type:"structure",required:["events","clientContext"],members:{events:{type:"list",member:{type:"structure",required:["eventType","timestamp"],members:{eventType:{},timestamp:{},session:{type:"structure",members:{id:{},duration:{type:"long"},startTimestamp:{},stopTimestamp:{}}},version:{},attributes:{type:"map",key:{},value:{}},metrics:{type:"map",key:{},value:{type:"double"}}}}},clientContext:{location:"header",locationName:"x-amz-Client-Context"},clientContextEncoding:{location:"header",locationName:"x-amz-Client-Context-Encoding"}}}}},shapes:{}};AWS.apiLoader.services.s3={},AWS.S3=AWS.Service.defineService("s3",["2006-03-01"]),_xamzrequire=function e(t,r,n){function i(o,s){if(!r[o]){if(!t[o]){var u="function"==typeof _xamzrequire&&_xamzrequire;if(!s&&u)return u(o,!0);if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r=t[o][1][e];return i(r||e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var a="function"==typeof _xamzrequire&&_xamzrequire,o=0;o1&&(e="Multiple configuration errors:\n"+t.join("\n")),e)throw n.util.error(new Error,{name:"InvalidEndpoint",message:e})},shouldDisableBodySigning:function(e){var t=this.getSignerClass();return!0===this.config.s3DisableBodySigning&&t===n.Signers.V4&&"https:"===e.httpRequest.endpoint.protocol},setupRequestListeners:function(e){e.addListener("validate",this.validateScheme),e.addListener("validate",this.validateBucketEndpoint),e.addListener("validate",this.correctBucketRegionFromCache),e.addListener("validate",this.validateBucketName,!0),e.addListener("build",this.addContentType),e.addListener("build",this.populateURI),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("afterBuild",this.addExpect100Continue),e.removeListener("validate",n.EventListeners.Core.VALIDATE_REGION),e.addListener("extractError",this.extractError),e.onAsync("extractError",this.requestBucketRegion),e.addListener("extractData",this.extractData),e.addListener("extractData",n.util.hoistPayloadMember),e.addListener("beforePresign",this.prepareSignedUrl),n.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError),this.shouldDisableBodySigning(e)&&(e.removeListener("afterBuild",n.EventListeners.Core.COMPUTE_SHA256),e.addListener("afterBuild",this.disableBodySigning))},validateScheme:function(e){var t=e.params,r=e.httpRequest.endpoint.protocol;if((t.SSECustomerKey||t.CopySourceSSECustomerKey)&&"https:"!==r)throw n.util.error(new Error,{code:"ConfigError",message:"Cannot send SSE keys over HTTP. Set 'sslEnabled'to 'true' in your configuration"})},validateBucketEndpoint:function(e){if(!e.params.Bucket&&e.service.config.s3BucketEndpoint){throw n.util.error(new Error,{code:"ConfigError",message:"Cannot send requests to root API with `s3BucketEndpoint` set."})}},validateBucketName:function(e){var t=e.service,r=t.getSignatureVersion(e),i=e.params&&e.params.Bucket,a=e.params&&e.params.Key,o=i&&i.indexOf("/");if(i&&o>=0)if("string"==typeof a&&o>0){e.params=n.util.copy(e.params);var s=i.substr(o+1)||"";e.params.Key=s+"/"+a,e.params.Bucket=i.substr(0,o)}else if("v4"===r){var u="Bucket names cannot contain forward slashes. Bucket: "+i;throw n.util.error(new Error,{code:"InvalidBucket",message:u})}},isValidAccelerateOperation:function(e){return-1===["createBucket","deleteBucket","listBuckets"].indexOf(e)},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,n=e.service,i=t.endpoint;if(r&&!n.pathStyleBucketName(r)){n.config.useAccelerateEndpoint&&n.isValidAccelerateOperation(e.operation)?n.config.useDualstack?i.hostname=r+".s3-accelerate.dualstack.amazonaws.com":i.hostname=r+".s3-accelerate.amazonaws.com":n.config.s3BucketEndpoint||(i.hostname=r+"."+i.hostname);var a=i.port;i.host=80!==a&&443!==a?i.hostname+":"+i.port:i.hostname,t.virtualHostedBucket=r,n.removeVirtualHostedBucketFromPath(e)}},removeVirtualHostedBucketFromPath:function(e){var t=e.httpRequest,r=t.virtualHostedBucket;if(r&&t.path){if(e.params&&e.params.Key){var i="/"+n.util.uriEscapePath(e.params.Key);if(0===t.path.indexOf(i)&&(t.path.length===i.length||"?"===t.path[i.length]))return}t.path=t.path.replace(new RegExp("/"+r),""),"/"!==t.path[0]&&(t.path="/"+t.path)}},addExpect100Continue:function(e){var t=e.httpRequest.headers["Content-Length"];n.util.isNode()&&(t>=1048576||e.params.Body instanceof n.util.stream.Stream)&&(e.httpRequest.headers.Expect="100-continue")},addContentType:function(e){var t=e.httpRequest;if("GET"===t.method||"HEAD"===t.method)return void delete t.headers["Content-Type"];t.headers["Content-Type"]||(t.headers["Content-Type"]="application/octet-stream");var r=t.headers["Content-Type"];if(n.util.isBrowser())if("string"!=typeof t.body||r.match(/;\s*charset=/)){var i=function(e,t,r){return t+r.toUpperCase()};t.headers["Content-Type"]=r.replace(/(;\s*charset=)(.+)$/,i)}else{t.headers["Content-Type"]+="; charset=UTF-8"}},computableChecksumOperations:{putBucketCors:!0,putBucketLifecycle:!0,putBucketLifecycleConfiguration:!0,putBucketTagging:!0,deleteObjects:!0,putBucketReplication:!0,putObjectLegalHold:!0,putObjectRetention:!0,putObjectLockConfiguration:!0},willComputeChecksums:function(e){if(this.computableChecksumOperations[e.operation])return!0;if(!this.config.computeChecksums)return!1;if(!n.util.Buffer.isBuffer(e.httpRequest.body)&&"string"!=typeof e.httpRequest.body)return!1;var t=e.service.api.operations[e.operation].input.members;return!(!e.service.shouldDisableBodySigning(e)||Object.prototype.hasOwnProperty.call(e.httpRequest.headers,"presigned-expires")||!t.ContentMD5||e.params.ContentMD5)||!(e.service.getSignerClass(e)===n.Signers.V4&&t.ContentMD5&&!t.ContentMD5.required)&&(!(!t.ContentMD5||e.params.ContentMD5)||void 0)},computeContentMd5:function(e){if(e.service.willComputeChecksums(e)){var t=n.util.crypto.md5(e.httpRequest.body,"base64");e.httpRequest.headers["Content-MD5"]=t}},computeSseCustomerKeyMd5:function(e){var t={SSECustomerKey:"x-amz-server-side-encryption-customer-key-MD5",CopySourceSSECustomerKey:"x-amz-copy-source-server-side-encryption-customer-key-MD5"};n.util.each(t,function(t,r){if(e.params[t]){var i=n.util.crypto.md5(e.params[t],"base64");e.httpRequest.headers[r]=i}})},pathStyleBucketName:function(e){return!!this.config.s3ForcePathStyle||!this.config.s3BucketEndpoint&&(!this.dnsCompatibleBucketName(e)||!(!this.config.sslEnabled||!e.match(/\./)))},dnsCompatibleBucketName:function(e){var t=e,r=new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/),n=new RegExp(/(\d+\.){3}\d+/),i=new RegExp(/\.\./);return!(!t.match(r)||t.match(n)||t.match(i))},successfulResponse:function(e){var t=e.request,r=e.httpResponse;return(!a[t.operation]||!r.body.toString().match(""))&&r.statusCode<300},retryableError:function(e,t){return!(!a[t.operation]||200!==e.statusCode)||(!t._requestRegionForBucket||!t.service.bucketRegionCache[t._requestRegionForBucket])&&(!(!e||"RequestTimeout"!==e.code)||(e&&-1!=o.indexOf(e.code)&&e.region&&e.region!=t.httpRequest.region?(t.httpRequest.region=e.region,301===e.statusCode&&t.service.updateReqBucketRegion(t),!0):n.Service.prototype.retryableError.call(this,e,t)))},updateReqBucketRegion:function(e,t){var r=e.httpRequest;if("string"==typeof t&&t.length&&(r.region=t),r.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)){var i=e.service,a=i.config,o=a.s3BucketEndpoint;o&&delete a.s3BucketEndpoint;var s=n.util.copy(a);delete s.endpoint,s.region=r.region,r.endpoint=new n.S3(s).endpoint,i.populateURI(e),a.s3BucketEndpoint=o,r.headers.Host=r.endpoint.host,"validate"===e._asm.currentState&&(e.removeListener("build",i.populateURI),e.addListener("build",i.removeVirtualHostedBucketFromPath))}},extractData:function(e){var t=e.request;if("getBucketLocation"===t.operation){var r=e.httpResponse.body.toString().match(/>(.+)<\/Location/);delete e.data._,e.data.LocationConstraint=r?r[1]:""}var n=t.params.Bucket||null;if("deleteBucket"!==t.operation||"string"!=typeof n||e.error){var i=e.httpResponse.headers||{},a=i["x-amz-bucket-region"]||null;if(!a&&"createBucket"===t.operation&&!e.error){var o=t.params.CreateBucketConfiguration;a=o?"EU"===o.LocationConstraint?"eu-west-1":o.LocationConstraint:"us-east-1"}a&&n&&a!==t.service.bucketRegionCache[n]&&(t.service.bucketRegionCache[n]=a)}else t.service.clearBucketRegionCache(n);t.service.extractRequestIds(e)},extractError:function(e){var t={304:"NotModified",403:"Forbidden",400:"BadRequest",404:"NotFound"},r=e.request,i=e.httpResponse.statusCode,a=e.httpResponse.body||"",o=e.httpResponse.headers||{},s=o["x-amz-bucket-region"]||null,u=r.params.Bucket||null,c=r.service.bucketRegionCache;s&&u&&s!==c[u]&&(c[u]=s);var l;if(t[i]&&0===a.length)u&&!s&&(l=c[u]||null)!==r.httpRequest.region&&(s=l),e.error=n.util.error(new Error,{code:t[i],message:null,region:s});else{var p=(new n.XML.Parser).parse(a.toString());p.Region&&!s?(s=p.Region,u&&s!==c[u]&&(c[u]=s)):!u||s||p.Region||(l=c[u]||null)!==r.httpRequest.region&&(s=l),e.error=n.util.error(new Error,{code:p.Code||i,message:p.Message||null,region:s})}r.service.extractRequestIds(e)},requestBucketRegion:function(e,t){var r=e.error,i=e.request,a=i.params.Bucket||null;if(!r||!a||r.region||"listObjects"===i.operation||n.util.isNode()&&"headBucket"===i.operation||400===r.statusCode&&"headObject"!==i.operation||-1===o.indexOf(r.code))return t();var s=n.util.isNode()?"headBucket":"listObjects",u={Bucket:a};"listObjects"===s&&(u.MaxKeys=0);var c=i.service[s](u);c._requestRegionForBucket=a,c.send(function(){var e=i.service.bucketRegionCache[a]||null;r.region=e,t()})},reqRegionForNetworkingError:function(e,t){if(!n.util.isBrowser())return t();var r=e.error,i=e.request,a=i.params.Bucket;if(!r||"NetworkingError"!==r.code||!a||"us-east-1"===i.httpRequest.region)return t();var o=i.service,s=o.bucketRegionCache,u=s[a]||null;if(u&&u!==i.httpRequest.region)o.updateReqBucketRegion(i,u),t();else if(o.dnsCompatibleBucketName(a))if(i.httpRequest.virtualHostedBucket){var c=o.listObjects({Bucket:a,MaxKeys:0});o.updateReqBucketRegion(c,"us-east-1"),c._requestRegionForBucket=a,c.send(function(){var e=o.bucketRegionCache[a]||null;e&&e!==i.httpRequest.region&&o.updateReqBucketRegion(i,e),t()})}else t();else o.updateReqBucketRegion(i,"us-east-1"),"us-east-1"!==s[a]&&(s[a]="us-east-1"),t()},bucketRegionCache:{},clearBucketRegionCache:function(e){var t=this.bucketRegionCache;e?"string"==typeof e&&(e=[e]):e=Object.keys(t);for(var r=0;r=1&&t.doneParts===t.numParts&&t.finishMultiPart()}))}r&&t.fillQueue.call(t)},abort:function(){var e=this;!0===e.isDoneChunking&&1===e.totalPartNumbers&&e.singlePart?e.singlePart.abort():e.cleanup(n.util.error(new Error("Request aborted by user"),{code:"RequestAbortedError",retryable:!1}))},validateBody:function(){var e=this;if(e.body=e.service.config.params.Body,"string"==typeof e.body)e.body=new n.util.Buffer(e.body);else if(!e.body)throw new Error("params.Body is required");e.sliceFn=n.util.arraySliceFn(e.body)},bindServiceObject:function(e){e=e||{};var t=this;if(t.service){var r=t.service,i=n.util.copy(r.config);i.signatureVersion=r.getSignatureVersion(),t.service=new r.constructor.__super__(i),t.service.config.params=n.util.merge(t.service.config.params||{},e)}else t.service=new n.S3({params:e})},adjustTotalBytes:function(){var e=this;try{e.totalBytes=i(e.body)}catch(e){}if(e.totalBytes){var t=Math.ceil(e.totalBytes/e.maxTotalParts);t>e.partSize&&(e.partSize=t)}else e.totalBytes=void 0},isDoneChunking:!1,partPos:0,totalChunkedBytes:0,totalUploadedBytes:0,totalBytes:void 0,numParts:0,totalPartNumbers:0,activeParts:0,doneParts:0,parts:null,completeInfo:null,failed:!1,multipartReq:null,partBuffers:null,partBufferLength:0,fillBuffer:function(){var e=this,t=i(e.body);if(0===t)return e.isDoneChunking=!0,e.numParts=1,void e.nextChunk(e.body);for(;e.activeParts=e.queueSize)){var t=e.body.read(e.partSize-e.partBufferLength)||e.body.read();if(t&&(e.partBuffers.push(t),e.partBufferLength+=t.length,e.totalChunkedBytes+=t.length),e.partBufferLength>=e.partSize){var r=1===e.partBuffers.length?e.partBuffers[0]:a.concat(e.partBuffers);if(e.partBuffers=[],e.partBufferLength=0,r.length>e.partSize){var n=r.slice(e.partSize);e.partBuffers.push(n),e.partBufferLength+=n.length,r=r.slice(0,e.partSize)}e.nextChunk(r)}e.isDoneChunking&&!e.isDoneSending&&(r=1===e.partBuffers.length?e.partBuffers[0]:a.concat(e.partBuffers),e.partBuffers=[],e.partBufferLength=0,e.totalBytes=e.totalChunkedBytes,e.isDoneSending=!0,(0===e.numParts||r.length>0)&&(e.numParts++,e.nextChunk(r))),e.body.read(0)}},nextChunk:function(e){var t=this;if(t.failed)return null;var r=++t.totalPartNumbers;if(t.isDoneChunking&&1===r){var i={Body:e};this.tags&&(i.Tagging=this.getTaggingHeader());var a=t.service.putObject(i);return a._managedUpload=t,a.on("httpUploadProgress",t.progress).send(t.finishSinglePart),t.singlePart=a,null}if(t.service.config.params.ContentMD5){var o=n.util.error(new Error("The Content-MD5 you specified is invalid for multi-part uploads."),{code:"InvalidDigest",retryable:!1});return t.cleanup(o),null}if(t.completeInfo[r]&&null!==t.completeInfo[r].ETag)return null;t.activeParts++,t.service.config.params.UploadId?t.uploadPart(e,r):t.multipartReq?t.queueChunks(e,r):(t.multipartReq=t.service.createMultipartUpload(),t.multipartReq.on("success",function(e){t.service.config.params.UploadId=e.data.UploadId,t.multipartReq=null}),t.queueChunks(e,r),t.multipartReq.on("error",function(e){t.cleanup(e)}),t.multipartReq.send())},getTaggingHeader:function(){for(var e=[],t=0;t=0)return e.toLowerCase();throw o.util.error(new Error,t)}}function i(e,t){e=e||{};var i;if(e[t.clientConfig]&&(i=n(e[t.clientConfig],{code:"InvalidConfiguration",message:'invalid "'+t.clientConfig+'" configuration. Expect "legacy" or "regional". Got "'+e[t.clientConfig]+'".'})))return i;if(!o.util.isNode())return i;if(Object.prototype.hasOwnProperty.call(r.env,t.env)){if(i=n(r.env[t.env],{code:"InvalidEnvironmentalVariable",message:"invalid "+t.env+' environmental variable. Expect "legacy" or "regional". Got "'+r.env[t.env]+'".'}))return i}var s={};try{s=o.util.getProfilesFromSharedConfig(o.util.iniLoader)[r.env.AWS_PROFILE||o.util.defaultProfile]}catch(e){}if(s&&Object.prototype.hasOwnProperty.call(s,t.sharedConfig)){if(i=n(s[t.sharedConfig],{code:"InvalidConfiguration",message:"invalid "+t.sharedConfig+' profile config. Expect "legacy" or "regional". Got "'+s[t.sharedConfig]+'".'}))return i}return i}var o=e("./core");t.exports=i}).call(this,e("_process"))},{"./core":39,_process:8}],39:[function(e,t,r){var n={util:e("./util")};({}).toString(),t.exports=n,n.util.update(n,{VERSION:"2.597.0",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},apiLoader:e("./api_loader"),EndpointCache:e("../vendor/endpoint-cache").EndpointCache}),e("./sequential_executor"),e("./service"),e("./config"),e("./http"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),n.events=new n.SequentialExecutor,n.util.memoizedProperty(n,"endpointCache",function(){return new n.EndpointCache(n.config.endpointCacheSize)},!0)},{"../vendor/endpoint-cache":124,"./api_loader":27,"./config":37,"./event_listeners":60,"./http":61,"./json/builder":63,"./json/parser":64,"./model/api":65,"./model/operation":67,"./model/paginator":68,"./model/resource_waiter":69,"./model/shape":70,"./param_validator":71,"./protocol/json":74,"./protocol/query":75,"./protocol/rest":76,"./protocol/rest_json":77,"./protocol/rest_xml":78,"./request":84,"./resource_waiter":85,"./response":86,"./sequential_executor":88,"./service":89,"./signers/request_signer":109,"./util":117,"./xml/builder":119}],124:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=e("./utils/LRU"),i=1e3,o=function(){function e(e){void 0===e&&(e=i),this.maxSize=e,this.cache=new n.LRUCache(e)}return Object.defineProperty(e.prototype,"size",{get:function(){return this.cache.length},enumerable:!0,configurable:!0}),e.prototype.put=function(t,r){var n="string"!=typeof t?e.getKeyString(t):t,i=this.populateValue(r);this.cache.put(n,i)},e.prototype.get=function(t){var r="string"!=typeof t?e.getKeyString(t):t,n=Date.now(),i=this.cache.get(r);if(i)for(var o=0;o0||n?o.toString():""},t.exports=n},{"../util":117,"./xml-node":122,"./xml-text":123}],123:[function(e,t,r){function n(e){this.value=e}var i=e("./escape-element").escapeElement;n.prototype.toString=function(){return i(""+this.value)},t.exports={XmlText:n}},{"./escape-element":121}],121:[function(e,t,r){function n(e){return e.replace(/&/g,"&").replace(//g,">")}t.exports={escapeElement:n}},{}],122:[function(e,t,r){function n(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e("./escape-attribute").escapeAttribute;n.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},n.prototype.addChildNode=function(e){return this.children.push(e),this},n.prototype.removeAttribute=function(e){return delete this.attributes[e],this},n.prototype.toString=function(){for(var e=Boolean(this.children.length),t="<"+this.name,r=this.attributes,n=0,o=Object.keys(r);n"+this.children.map(function(e){return e.toString()}).join("")+"":"/>"},t.exports={XmlNode:n}},{"./escape-attribute":120}],120:[function(e,t,r){function n(e){return e.replace(/&/g,"&").replace(/'/g,"'").replace(//g,">").replace(/"/g,""")}t.exports={escapeAttribute:n}},{}],109:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),n.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return n.Signers.V2;case"v3":return n.Signers.V3;case"s3v4":case"v4":return n.Signers.V4;case"s3":return n.Signers.S3;case"v3https":return n.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":39,"./presign":108,"./s3":110,"./v2":111,"./v3":112,"./v3https":113,"./v4":114}],114:[function(e,t,r){var n=e("../core"),i=e("./v4_credentials"),o=n.util.inherit;n.Signers.V4=o(n.Signers.RequestSigner,{constructor:function(e,t,r){n.Signers.RequestSigner.call(this,e),this.serviceName=t,r=r||{},this.signatureCache="boolean"!=typeof r.signatureCache||r.signatureCache,this.operation=r.operation,this.signatureVersion=r.signatureVersion},algorithm:"AWS4-HMAC-SHA256",addAuthorization:function(e,t){var r=n.util.date.iso8601(t).replace(/[:\-]|\.\d{3}/g,"");this.isPresigned()?this.updateForPresigned(e,r):this.addHeaders(e,r),this.request.headers.Authorization=this.authorization(e,r)},addHeaders:function(e,t){this.request.headers["X-Amz-Date"]=t,e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken)},updateForPresigned:function(e,t){var r=this.credentialString(t),i={"X-Amz-Date":t,"X-Amz-Algorithm":this.algorithm,"X-Amz-Credential":e.accessKeyId+"/"+r,"X-Amz-Expires":this.request.headers["presigned-expires"],"X-Amz-SignedHeaders":this.signedHeaders()};e.sessionToken&&(i["X-Amz-Security-Token"]=e.sessionToken),this.request.headers["Content-Type"]&&(i["Content-Type"]=this.request.headers["Content-Type"]),this.request.headers["Content-MD5"]&&(i["Content-MD5"]=this.request.headers["Content-MD5"]),this.request.headers["Cache-Control"]&&(i["Cache-Control"]=this.request.headers["Cache-Control"]),n.util.each.call(this,this.request.headers,function(e,t){if("presigned-expires"!==e&&this.isSignableHeader(e)){var r=e.toLowerCase();0===r.indexOf("x-amz-meta-")?i[r]=t:0===r.indexOf("x-amz-")&&(i[e]=t)}});var o=this.request.path.indexOf("?")>=0?"&":"?";this.request.path+=o+n.util.queryParamsToString(i)},authorization:function(e,t){var r=[],n=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+n),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return n.util.crypto.hmac(r,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&"s3v4"!==this.signatureVersion&&(t=n.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];n.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),f},emptyCache:function(){i={},o=[]}}},{"../core":39}],113:[function(e,t,r){var n=e("../core"),i=n.util.inherit;e("./v3"),n.Signers.V3Https=i(n.Signers.V3,{authorization:function(e){return"AWS3-HTTPS AWSAccessKeyId="+e.accessKeyId+",Algorithm=HmacSHA256,Signature="+this.signature(e)},stringToSign:function(){return this.request.headers["X-Amz-Date"]}}),t.exports=n.Signers.V3Https},{"../core":39,"./v3":112}],112:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.V3=i(n.Signers.RequestSigner,{addAuthorization:function(e,t){var r=n.util.date.rfc822(t);this.request.headers["X-Amz-Date"]=r,e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken),this.request.headers["X-Amzn-Authorization"]=this.authorization(e,r)},authorization:function(e){return"AWS3 AWSAccessKeyId="+e.accessKeyId+",Algorithm=HmacSHA256,SignedHeaders="+this.signedHeaders()+",Signature="+this.signature(e)},signedHeaders:function(){var e=[];return n.util.arrayEach(this.headersToSign(),function(t){e.push(t.toLowerCase())}),e.sort().join(";")},canonicalHeaders:function(){var e=this.request.headers,t=[];return n.util.arrayEach(this.headersToSign(),function(r){t.push(r.toLowerCase().trim()+":"+String(e[r]).trim())}),t.sort().join("\n")+"\n"},headersToSign:function(){var e=[];return n.util.each(this.request.headers,function(t){("Host"===t||"Content-Encoding"===t||t.match(/^X-Amz/i))&&e.push(t)}),e},signature:function(e){return n.util.crypto.hmac(e.secretAccessKey,this.stringToSign(),"base64")},stringToSign:function(){var e=[];return e.push(this.request.method),e.push("/"),e.push(""),e.push(this.canonicalHeaders()),e.push(this.request.body),n.util.crypto.sha256(e.join("\n"))}}),t.exports=n.Signers.V3},{"../core":39}],111:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.V2=i(n.Signers.RequestSigner,{addAuthorization:function(e,t){t||(t=n.util.date.getDate());var r=this.request;r.params.Timestamp=n.util.date.iso8601(t),r.params.SignatureVersion="2",r.params.SignatureMethod="HmacSHA256",r.params.AWSAccessKeyId=e.accessKeyId,e.sessionToken&&(r.params.SecurityToken=e.sessionToken),delete r.params.Signature,r.params.Signature=this.signature(e),r.body=n.util.queryParamsToString(r.params),r.headers["Content-Length"]=r.body.length},signature:function(e){return n.util.crypto.hmac(e.secretAccessKey,this.stringToSign(),"base64")},stringToSign:function(){var e=[];return e.push(this.request.method),e.push(this.request.endpoint.host.toLowerCase()),e.push(this.request.pathname()),e.push(n.util.queryParamsToString(this.request.params)),e.join("\n")}}),t.exports=n.Signers.V2},{"../core":39}],110:[function(e,t,r){var n=e("../core"),i=n.util.inherit;n.Signers.S3=i(n.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=n.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];n.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()604800){throw o.util.error(new Error,{code:"InvalidExpiryTime",message:"Presigning does not support expiry time greater than a week with SigV4 signing.",retryable:!1})}e.httpRequest.headers[a]=t}else{if(r!==o.Signers.S3)throw o.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var n=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(n)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=o.util.urlParse(e.httpRequest.path),n={};r.search&&(n=o.util.queryStringParse(r.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),n.AWSAccessKeyId=i[0],n.Signature=i[1],o.util.each(e.httpRequest.headers,function(e,t){e===a&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete n[e],e=e.toLowerCase()),n[e]=t}),delete e.httpRequest.headers[a],delete n.Authorization,delete n.Host;else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var s=i.join(" "),u=s.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];n["X-Amz-Signature"]=u,delete n.Expires}t.pathname=r.pathname,t.search=o.util.queryParamsToString(n)}var o=e("../core"),s=o.util.inherit,a="presigned-expires";o.Signers.Presign=s({sign:function(e,t,r){if(e.httpRequest.headers[a]=t||3600,e.on("build",n),e.on("sign",i),e.removeListener("afterBuild",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",o.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,o.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=o.Signers.Presign},{"../core":39}],89:[function(e,t,r){(function(r){var n=e("./core"),i=e("./model/api"),o=e("./region_config"),s=n.util.inherit,a=0;n.Service=s({constructor:function(e){if(!this.loadServiceClass)throw n.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var r=n.util.copy(e),i=new t(e);return Object.defineProperty(i,"_originalConfig",{get:function(){return r},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=n.config[this.serviceIdentifier];if(this.config=new n.Config(n.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),n.SequentialExecutor.call(this),n.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||n.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener("PUBLISH_API_CALL","apiCall",function(e){r.nextTick(function(){i.eventHandler(e)})}),this.addNamedListener("PUBLISH_API_ATTEMPT","apiCallAttempt",function(e){r.nextTick(function(){i.eventHandler(e)})})}},validateService:function(){},loadServiceClass:function(e){var t=e;if(n.util.isEmpty(this.api)){if(t.apiConfig)return n.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new n.Config(n.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&n.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?n.util.isType(e,Date)&&(e=n.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if("function"!=typeof e)throw new Error("Invalid callback type '"+typeof e+"' provided in customizeRequests");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,r){if("function"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=n.util.copy(t),n.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var o=new n.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),r&&o.send(r),o},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var n=this.makeRequest(e,t).toUnauthenticated();return r?n.send(r):n},waitFor:function(e,t,r){return new n.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[n.events,n.EventListeners.Core,this.serviceInterface(),n.EventListeners.CorePost],r=0;r299?(i.code&&(r.FinalAwsException=i.code),i.message&&(r.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(r.FinalSdkException=i.code||i.name),i.message&&(r.FinalSdkExceptionMessage=i.message))}return r},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],r={Type:"ApiCallAttempt",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},n=e.response;return n.httpResponse.statusCode&&(r.HttpStatusCode=n.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(r.AccessKey=e.service.config.credentials.accessKeyId),n.httpResponse.headers?(e.httpRequest.headers["x-amz-security-token"]&&(r.SessionToken=e.httpRequest.headers["x-amz-security-token"]),n.httpResponse.headers["x-amzn-requestid"]&&(r.XAmznRequestId=n.httpResponse.headers["x-amzn-requestid"]),n.httpResponse.headers["x-amz-request-id"]&&(r.XAmzRequestId=n.httpResponse.headers["x-amz-request-id"]),n.httpResponse.headers["x-amz-id-2"]&&(r.XAmzId2=n.httpResponse.headers["x-amz-id-2"]),r):r},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),r=e.response,n=r.error;return r.httpResponse.statusCode>299?(n.code&&(t.AwsException=n.code),n.message&&(t.AwsExceptionMessage=n.message)):((n.code||n.name)&&(t.SdkException=n.code||n.name),n.message&&(t.SdkExceptionMessage=n.message)),t},attachMonitoringEmitter:function(e){var t,r,i,o,s,a,u=0,c=this;e.on("validate",function(){o=n.util.realClock.now(),a=Date.now()},!0),e.on("sign",function(){r=n.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,u++},!0),e.on("validateResponse",function(){i=Math.round(n.util.realClock.now()-r)}),e.addNamedListener("API_CALL_ATTEMPT","success",function(){var r=c.apiAttemptEvent(e);r.Timestamp=t,r.AttemptLatency=i>=0?i:0,r.Region=s,c.emit("apiCallAttempt",[r])}),e.addNamedListener("API_CALL_ATTEMPT_RETRY","retry",function(){var o=c.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(n.util.realClock.now()-r),o.AttemptLatency=i>=0?i:0,o.Region=s,c.emit("apiCallAttempt",[o])}),e.addNamedListener("API_CALL","complete",function(){var t=c.apiCallEvent(e);if(t.AttemptCount=u,!(t.AttemptCount<=0)){t.Timestamp=a;var r=Math.round(n.util.realClock.now()-o);t.Latency=r>=0?r:0;var i=e.response;"number"==typeof i.retryCount&&"number"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),c.emit("apiCall",[t])}})},setupRequestListeners:function(e){},getSignerClass:function(e){var t,r=null,i="";if(e){r=(e.service.api.operations||{})[e.operation]||null,i=r?r.authtype:""}return t=this.config.signatureVersion?this.config.signatureVersion:"v4"===i||"v4-unsigned-body"===i?"v4":this.api.signatureVersion,n.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case"ec2":case"query":return n.EventListeners.Query;case"json":return n.EventListeners.Json;case"rest-json":return n.EventListeners.RestJson;case"rest-xml":return n.EventListeners.RestXml}if(this.api.protocol)throw new Error("Invalid service `protocol' "+this.api.protocol+" in API config")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return n.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||(!!this.networkingError(e)||(!!this.expiredCredentialsError(e)||(!!this.throttledError(e)||e.statusCode>=500)))},networkingError:function(e){return"NetworkingError"===e.code},timeoutError:function(e){return"TimeoutError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":case"RequestThrottledException":case"TooManyRequestsException":case"TransactionInProgressException":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new n.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw n.util.error(i,"No pagination configuration for "+e)}return null}return r}}),n.util.update(n.Service,{defineMethods:function(e){n.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){"none"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){n.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=s(n.Service,r||{});if("string"==typeof e){n.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,n.Service.defineMethods(i);if(n.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&n.util.clientSideMonitoring){var a=n.util.clientSideMonitoring.Publisher,u=n.util.clientSideMonitoring.configProvider,c=u();this.prototype.publisher=new a(c),c.enabled&&(n.Service._clientSideMonitoring=!0)}return n.SequentialExecutor.call(i.prototype),n.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r=0){u=!0;var c=0}var l=function(){u&&c!==a?i.emit("error",n.util.error(new Error("Stream content length mismatch. Received "+c+" of "+a+" bytes."),{code:"StreamContentLengthMismatch"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit("end")},h=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(u){var p=new e.PassThrough;p._write=function(t){return t&&t.length&&(c+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},p.on("end",l),i.on("error",function(e){u=!1,h.unpipe(p),p.emit("end"),p.end()}),h.pipe(p).pipe(i,{end:!1})}else h.pipe(i);else u&&h.on("data",function(e){e&&e.length&&(c+=e.length)}),h.on("data",function(e){i.emit("data",e)}),h.on("end",l);h.on("error",function(e){u=!1,i.emit("error",e)})}}),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener("validate",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",n.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent("promise"),new e(function(e,r){t.on("complete",function(t){t.error?r(t.error):e(Object.defineProperty(t.data||{},"$response",{value:t}))}),t.runTo()})}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this,e("_process"))},{"./core":39,"./state_machine":116,_process:8,jmespath:7}],116:[function(e,t,r){function n(e,t){this.currentState=t||null,this.states=e||{}}n.prototype.runTo=function(e,t,r,n){"function"==typeof e&&(n=r,r=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(r||i,n,function(n){if(n){if(!o.fail)return t?t.call(r,n):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(r):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(r,n):null;i.runTo(e,t,r,n)})},n.prototype.addState=function(e,t,r,n){return"function"==typeof t?(n=t,t=null,r=null):"function"==typeof r&&(n=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:n},this},t.exports=n},{}],71:[function(e,t,r){var n=e("./core");n.ParamValidator=n.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,r){if(this.errors=[],this.validateMember(e,t||{},r||"params"),this.errors.length>1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,n.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(n.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var n,i=0;e.required&&i= 1, but found "'+t+'" for '+r)},validatePattern:function(e,t,r){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail("PatternMatchError",'Provided value "'+t+'" does not match regex pattern /'+e.pattern+"/ for "+r))},validateRange:function(e,t,r,n){this.validation.min&&void 0!==e.min&&t= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+n+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var o=!1,s=0;s=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();i.util.computeSha256(o,function(r,n){r?t(r):(e.httpRequest.headers["X-Amz-Content-Sha256"]=n,t())})}else t()}}),e("SET_CONTENT_LENGTH","afterBuild",function(e){var t=n(e),r=i.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers["Content-Length"])try{var o=i.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=o}catch(n){if(r&&r.isStreaming){if(r.requiresLength)throw n;if(t.indexOf("unsigned-body")>=0)return void(e.httpRequest.headers["Transfer-Encoding"]="chunked");throw n}throw n}}),e("SET_HTTP_HOST","afterBuild",function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host}),e("RESTART","restart",function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new i.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(e){e?t(e):s()}):s()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r,n){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=n,r.httpResponse.headers=t,r.httpResponse.body=i.util.buffer.toBuffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var o=t.date||t.Date,s=r.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(i.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],n={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[n,t])}t.httpResponse.buffers.push(i.util.buffer.toBuffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=i.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e("FINALIZE_ERROR","retry",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e("INVALIDATE_CREDENTIALS","retry",function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e("EXPIRED_SIGNATURE","retry",function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e("CLOCK_SKEWED","retry",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)}),e("REDIRECT","retry",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new i.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,r)):t()})}),CorePost:(new o).addNamedListeners(function(e){e("EXTRACT_REQUEST_ID","extractData",i.util.extractRequestId),e("EXTRACT_REQUEST_ID","extractError",i.util.extractRequestId),e("ENOTFOUND_ERROR","httpError",function(e){if("NetworkingError"===e.code&&"ENOTFOUND"===e.errno){ - var t="Inaccessible host: `"+e.hostname+"'. This service may not be available in the `"+e.region+"' region.";this.response.error=i.util.error(new Error(t),{code:"UnknownEndpoint",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}})}),Logger:(new o).addNamedListeners(function(t){t("LOG_REQUEST","complete",function(t){function r(e,t){if(!t)return t;switch(e.type){case"structure":var n={};return i.util.each(t,function(t,i){Object.prototype.hasOwnProperty.call(e.members,t)?n[t]=r(e.members[t],i):n[t]=i}),n;case"list":var o=[];return i.util.arrayEach(t,function(t,n){o.push(r(e.member,t))}),o;case"map":var s={};return i.util.each(t,function(t,n){s[t]=r(e.value,n)}),s;default:return e.isSensitive?"***SensitiveInformation***":t}}var n=t.request,o=n.service.config.logger;if(o){var s=function(){var s=t.request.service.getSkewCorrectedDate().getTime(),a=(s-n.startTime.getTime())/1e3,u=!!o.isTTY,c=t.httpResponse.statusCode,l=n.params;if(n.service.api.operations&&n.service.api.operations[n.operation]&&n.service.api.operations[n.operation].input){l=r(n.service.api.operations[n.operation].input,n.params)}var h=e("util").inspect(l,!0,null),p="";return u&&(p+=""),p+="[AWS "+n.service.serviceIdentifier+" "+c,p+=" "+a.toString()+"s "+t.retryCount+" retries]",u&&(p+=""),p+=" "+i.util.string.lowerFirst(n.operation),p+="("+h+")",u&&(p+=""),p}();"function"==typeof o.log?o.log(s):"function"==typeof o.write&&o.write(s+"\n")}})}),Json:(new o).addNamedListeners(function(t){var r=e("./protocol/json");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),Rest:(new o).addNamedListeners(function(t){var r=e("./protocol/rest");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),RestJson:(new o).addNamedListeners(function(t){var r=e("./protocol/rest_json");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),RestXml:(new o).addNamedListeners(function(t){var r=e("./protocol/rest_xml");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),Query:(new o).addNamedListeners(function(t){var r=e("./protocol/query");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)})}},{"./core":39,"./discover_endpoint":47,"./protocol/json":74,"./protocol/query":75,"./protocol/rest":76,"./protocol/rest_json":77,"./protocol/rest_xml":78,"./sequential_executor":88,util:20}],88:[function(e,t,r){var n=e("./core");n.SequentialExecutor=n.util.inherit({constructor:function(){this._events={}},listeners:function(e){return this._events[e]?this._events[e].slice(0):[]},on:function(e,t,r){return this._events[e]?r?this._events[e].unshift(t):this._events[e].push(t):this._events[e]=[t],this},onAsync:function(e,t,r){return t._isAsync=!0,this.on(e,t,r)},removeListener:function(e,t){var r=this._events[e];if(r){for(var n=r.length,i=-1,o=0;o-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var n=this.listeners(e),i=n.length;return this.callListeners(n,t,r),i>0},callListeners:function(e,t,r,i){function o(i){if(i&&(a=n.util.error(a||new Error,i),s._haltHandlersOnError))return r.call(s,a);s.callListeners(e,t,r,a)}for(var s=this,a=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(s,t.concat([o]));try{u.apply(s,t)}catch(e){a=n.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void r.call(s,a)}r.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),n.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),n.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r,n){return this[e]=r,this.addListener(t,r,n),this},addNamedAsyncListener:function(e,t,r,n){return r._isAsync=!0,this.addNamedListener(e,t,r,n)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),n.SequentialExecutor.prototype.addListener=n.SequentialExecutor.prototype.on,t.exports=n.SequentialExecutor},{"./core":39}],78:[function(e,t,r){function n(e){var t=e.service.api.operations[e.operation].input,r=new a.XML.Builder,n=e.params,i=t.payload;if(i){var o=t.members[i];if(void 0===(n=n[i]))return;if("structure"===o.type){var s=o.name;e.httpRequest.body=r.toXML(n,o,s,!0)}else e.httpRequest.body=n}else e.httpRequest.body=r.toXML(n,t,t.name||t.shape||u.string.upperFirst(e.operation)+"Request")}function i(e){c.buildRequest(e),["GET","HEAD"].indexOf(e.httpRequest.method)<0&&n(e)}function o(e){c.extractError(e);var t;try{t=(new a.XML.Parser).parse(e.httpResponse.body.toString())}catch(r){t={Code:e.httpResponse.statusCode,Message:e.httpResponse.statusMessage}}t.Errors&&(t=t.Errors),t.Error&&(t=t.Error),t.Code?e.error=u.error(new Error,{code:t.Code,message:t.Message}):e.error=u.error(new Error,{code:e.httpResponse.statusCode,message:null})}function s(e){c.extractData(e);var t,r=e.request,n=e.httpResponse.body,i=r.service.api.operations[r.operation],o=i.output,s=(i.hasEventOutput,o.payload);if(s){var l=o.members[s];l.isEventStream?(t=new a.XML.Parser,e.data[s]=u.createEventStream(2===a.HttpClient.streamsApiVersion?e.httpResponse.stream:e.httpResponse.body,t,l)):"structure"===l.type?(t=new a.XML.Parser,e.data[s]=t.parse(n.toString(),l)):"binary"===l.type||l.isStreaming?e.data[s]=n:e.data[s]=l.toType(n)}else if(n.length>0){t=new a.XML.Parser;var h=t.parse(n.toString(),o);u.update(e.data,h)}}var a=e("../core"),u=e("../util"),c=e("./rest");t.exports={buildRequest:i,extractError:o,extractData:s}},{"../core":39,"../util":117,"./rest":76}],77:[function(e,t,r){function n(e){var t=new h,r=e.service.api.operations[e.operation].input;if(r.payload){var n={},o=r.members[r.payload];if(void 0===(n=e.params[r.payload]))return;"structure"===o.type?(e.httpRequest.body=t.build(n,o),i(e)):(e.httpRequest.body=n,("binary"===o.type||o.isStreaming)&&i(e,!0))}else{var s=t.build(e.params,r);"{}"===s&&"GET"===e.httpRequest.method||(e.httpRequest.body=s),i(e)}}function i(e,t){var r=e.service.api.operations[e.operation];r.input;if(!e.httpRequest.headers["Content-Type"]){var n=t?"binary/octet-stream":"application/json";e.httpRequest.headers["Content-Type"]=n}}function o(e){c.buildRequest(e),["HEAD","DELETE"].indexOf(e.httpRequest.method)<0&&n(e)}function s(e){l.extractError(e)}function a(e){c.extractData(e);var t,r=e.request,n=r.service.api.operations[r.operation],i=r.service.api.operations[r.operation].output||{};n.hasEventOutput;if(i.payload){var o=i.members[i.payload],s=e.httpResponse.body;if(o.isEventStream)t=new p,e.data[payload]=u.createEventStream(2===AWS.HttpClient.streamsApiVersion?e.httpResponse.stream:s,t,o);else if("structure"===o.type||"list"===o.type){var t=new p;e.data[i.payload]=t.parse(s,o)}else"binary"===o.type||o.isStreaming?e.data[i.payload]=s:e.data[i.payload]=o.toType(s)}else{var a=e.data;l.extractData(e),e.data=u.merge(a,e.data)}}var u=e("../util"),c=e("./rest"),l=e("./json"),h=e("../json/builder"),p=e("../json/parser");t.exports={buildRequest:o,extractError:s,extractData:a}},{"../json/builder":63,"../json/parser":64,"../util":117,"./json":74,"./rest":76}],76:[function(e,t,r){function n(e){e.httpRequest.method=e.service.api.operations[e.operation].httpMethod}function i(e,t,r,n){var i=[e,t].join("/");i=i.replace(/\/+/g,"/");var o={},s=!1;if(l.each(r.members,function(e,t){var r=n[e];if(null!==r&&void 0!==r)if("uri"===t.location){var a=new RegExp("\\{"+t.name+"(\\+)?\\}");i=i.replace(a,function(e,t){return(t?l.uriEscapePath:l.uriEscape)(String(r))})}else"querystring"===t.location&&(s=!0,"list"===t.type?o[t.name]=r.map(function(e){return l.uriEscape(t.member.toWireFormat(e).toString())}):"map"===t.type?l.each(r,function(e,t){Array.isArray(t)?o[e]=t.map(function(e){return l.uriEscape(String(e))}):o[e]=l.uriEscape(String(t))}):o[t.name]=l.uriEscape(t.toWireFormat(r).toString()))}),s){i+=i.indexOf("?")>=0?"&":"?";var a=[];l.arrayEach(Object.keys(o).sort(),function(e){Array.isArray(o[e])||(o[e]=[o[e]]);for(var t=0;t-1?t||"":t,this.isJsonValue?JSON.parse(t):t&&"function"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function p(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function f(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function d(){o.apply(this,arguments),this.toType=function(e){var t=y.base64.decode(e);if(this.isSensitive&&y.isNode()&&"function"==typeof y.Buffer.alloc){var r=y.Buffer.alloc(t.length,t);t.fill(0),t=r}return t},this.toWireFormat=y.base64.encode}function m(){d.apply(this,arguments)}function v(){o.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null===e||void 0===e?null:"true"===e}}var g=e("./collection"),y=e("../util");o.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},o.types={structure:a,list:u,map:c,boolean:v,timestamp:l,float:p,integer:f,string:h,base64:m,binary:d},o.resolve=function(e,t){if(e.shape){var r=t.api.shapes[e.shape];if(!r)throw new Error("Cannot find shape reference: "+e.shape);return r}return null},o.create=function(e,t,r){if(e.isShape)return e;var n=o.resolve(e,t);if(n){var i=Object.keys(e);t.documentation||(i=i.filter(function(e){return!e.match(/documentation/)}));var s=function(){n.constructor.call(this,e,t,r)};return s.prototype=n,new s}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,r);throw new Error("Unrecognized shape type: "+a)},o.shapes={StructureShape:a,ListShape:u,MapShape:c,StringShape:h,BooleanShape:v,Base64Shape:m},t.exports=o},{"../util":117,"./collection":66}],66:[function(e,t,r){function n(e,t,r,n){o(this,n(e),function(){return r(e,t)})}function i(e,t,r,i,o){i=i||String;var s=this;for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n.call(s,a,e[a],r,i),o&&o(a,e[a]))}var o=e("../util").memoizedProperty;t.exports=i},{"../util":117}],74:[function(e,t,r){function n(e){var t=e.httpRequest,r=e.service.api,n=r.targetPrefix+"."+r.operations[e.operation].name,i=r.jsonVersion||"1.0",o=r.operations[e.operation].input,s=new a;1===i&&(i="1.0"),t.body=s.build(e.params||{},o),t.headers["Content-Type"]="application/x-amz-json-"+i,t.headers["X-Amz-Target"]=n,c(e)}function i(e){var t={},r=e.httpResponse;if(t.code=r.headers["x-amzn-errortype"]||"UnknownError","string"==typeof t.code&&(t.code=t.code.split(":")[0]),r.body.length>0)try{var n=JSON.parse(r.body.toString());(n.__type||n.code)&&(t.code=(n.__type||n.code).split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=n.message||n.Message||null}catch(n){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=s.error(new Error,t)}function o(e){var t=e.httpResponse.body.toString()||"{}";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],n=r.output||{},i=new u;e.data=i.parse(t,n)}}var s=e("../util"),a=e("../json/builder"),u=e("../json/parser"),c=e("./helpers").populateHostPrefix;t.exports={buildRequest:n,extractError:i,extractData:o}},{"../json/builder":63,"../json/parser":64,"../util":117,"./helpers":73}],73:[function(e,t,r){function n(e){if(!e.service.config.hostPrefixEnabled)return e;var t=e.service.api.operations[e.operation];if(i(e))return e;if(t.endpoint&&t.endpoint.hostPrefix){var r=t.endpoint.hostPrefix,n=o(r,e.params,t.input);s(e.httpRequest.endpoint,n),a(e.httpRequest.endpoint.hostname)}return e}function i(e){var t=e.service.api,r=t.operations[e.operation],n=t.endpointOperation&&t.endpointOperation===u.string.lowerFirst(r.name);return"NULL"!==r.endpointDiscoveryRequired||!0===n}function o(e,t,r){return u.each(r.members,function(r,n){if(!0===n.hostLabel){if("string"!=typeof t[r]||""===t[r])throw u.error(new Error,{message:"Parameter "+r+" should be a non-empty string.",code:"InvalidParameter"});var i=new RegExp("\\{"+r+"\\}","g");e=e.replace(i,t[r])}}),e}function s(e,t){e.host&&(e.host=t+e.host),e.hostname&&(e.hostname=t+e.hostname)}function a(e){var t=e.split("."),r=/^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$/;u.arrayEach(t,function(e){if(!e.length||e.length<1||e.length>63)throw u.error(new Error,{code:"ValidationError",message:"Hostname label length should be between 1 to 63 characters, inclusive."});if(!r.test(e))throw c.util.error(new Error,{code:"ValidationError",message:e+" is not hostname compatible."})})}var u=e("../util"),c=e("../core");t.exports={populateHostPrefix:n}},{"../core":39,"../util":117}],64:[function(e,t,r){function n(){}function i(e,t){if(t&&void 0!==e)switch(t.type){case"structure":return o(e,t);case"map":return a(e,t);case"list":return s(e,t);default:return u(e,t)}}function o(e,t){if(null!=e){var r={},n=t.members;return c.each(n,function(t,n){var o=n.isLocationName?n.name:t;if(Object.prototype.hasOwnProperty.call(e,o)){var s=e[o],a=i(s,n);void 0!==a&&(r[t]=a)}}),r}}function s(e,t){if(null!=e){var r=[];return c.arrayEach(e,function(e){var n=i(e,t.member);void 0===n?r.push(null):r.push(n)}),r}}function a(e,t){if(null!=e){var r={};return c.each(e,function(e,n){var o=i(n,t.value);r[e]=void 0===o?null:o}),r}}function u(e,t){return t.toType(e)}var c=e("../util");n.prototype.parse=function(e,t){return i(JSON.parse(e),t)},t.exports=n},{"../util":117}],63:[function(e,t,r){function n(){}function i(e,t){if(t&&void 0!==e&&null!==e)switch(t.type){case"structure":return o(e,t);case"map":return a(e,t);case"list":return s(e,t);default:return u(e,t)}}function o(e,t){var r={};return c.each(e,function(e,n){var o=t.members[e];if(o){if("body"!==o.location)return;var s=o.isLocationName?o.name:e,a=i(n,o);void 0!==a&&(r[s]=a)}}),r}function s(e,t){var r=[];return c.arrayEach(e,function(e){var n=i(e,t.member);void 0!==n&&r.push(n)}),r}function a(e,t){var r={};return c.each(e,function(e,n){var o=i(n,t.value);void 0!==o&&(r[e]=o)}),r}function u(e,t){return t.toWireFormat(e)}var c=e("../util");n.prototype.build=function(e,t){return JSON.stringify(i(e,t))},t.exports=n},{"../util":117}],47:[function(e,t,r){(function(r){function n(e){var t=e.service,r=t.api||{},n={};return t.config.region&&(n.region=t.config.region),r.serviceId&&(n.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(n.accessKeyId=t.config.credentials.accessKeyId),n}function i(e,t,r){r&&void 0!==t&&null!==t&&"structure"===r.type&&r.required&&r.required.length>0&&m.arrayEach(r.required,function(n){var o=r.members[n];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:n;e[s]=String(t[n])}else i(e,t[n],o)})}function o(e,t){var r={};return i(r,e.params,t),r}function s(e){var t=e.service,r=t.api,i=r.operations?r.operations[e.operation]:void 0,s=i?i.input:void 0,a=o(e,s),c=n(e);Object.keys(a).length>0&&(c=m.update(c,a),i&&(c.operation=i.name));var l=d.endpointCache.get(c);if(!l||1!==l.length||""!==l[0].Address)if(l&&l.length>0)e.httpRequest.updateEndpoint(l[0].Address);else{var h=t.makeRequest(r.endpointOperation,{Operation:i.name,Identifiers:a});u(h),h.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),h.removeListener("retry",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:1}]),h.send(function(e,t){t&&t.Endpoints?d.endpointCache.put(c,t.Endpoints):e&&d.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:1}])})}}function a(e,t){var r=e.service,i=r.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,c=o(e,a),l=n(e);Object.keys(c).length>0&&(l=m.update(l,c),s&&(l.operation=s.name));var h=d.EndpointCache.getKeyString(l),p=d.endpointCache.get(h);if(p&&1===p.length&&""===p[0].Address)return g[h]||(g[h]=[]),void g[h].push({request:e,callback:t});if(p&&p.length>0)e.httpRequest.updateEndpoint(p[0].Address),t();else{var f=r.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:c});f.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),u(f),d.endpointCache.put(h,[{Address:"",CachePeriodInMinutes:60}]),f.send(function(r,n){if(r){var i={code:"EndpointDiscoveryException",message:"Request cannot be fulfilled without specifying an endpoint",retryable:!1};if(e.response.error=m.error(r,i),d.endpointCache.remove(l),g[h]){var o=g[h];m.arrayEach(o,function(e){e.request.response.error=m.error(r,i),e.callback()}),delete g[h]}}else if(n&&(d.endpointCache.put(h,n.Endpoints),e.httpRequest.updateEndpoint(n.Endpoints[0].Address),g[h])){var o=g[h];m.arrayEach(o,function(e){e.request.httpRequest.updateEndpoint(n.Endpoints[0].Address),e.callback()}),delete g[h]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=r)}function c(e){var t=e.error,r=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===r.statusCode)){var i=e.request,s=i.service.api.operations||{},a=s[i.operation]?s[i.operation].input:void 0,u=o(i,a),c=n(i);Object.keys(u).length>0&&(c=m.update(c,u),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function l(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw m.error(new Error,{code:"ConfigurationException",message:"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true."});var t=d.config[e.serviceIdentifier]||{};return Boolean(d.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function h(e){return["false","0"].indexOf(e)>=0}function p(e){if(!0===(e.service||{}).config.endpointDiscoveryEnabled)return!0;if(m.isBrowser())return!1;for(var t=0;t=e.length)return t.push(null);var i=r+n;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,n=0,i=null;for(t=0;t>>8^t[255&(r^e.readUInt8(n))]}return(-1^r)>>>0},hmac:function(e,t,r,n){return r||(r="binary"),"buffer"===r&&(r=void 0),n||(n="sha256"),"string"==typeof t&&(t=o.buffer.toBuffer(t)),o.crypto.lib.createHmac(n,e).update(t).digest(r)},md5:function(e,t,r){return o.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return o.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,n){var i=o.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=o.buffer.toBuffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),n&&"object"==typeof t&&"function"==typeof t.on&&!a)t.on("data",function(e){i.update(e)}),t.on("error",function(e){n(e)}),t.on("end",function(){n(null,i.digest(r))});else{if(!n||!s||a||"undefined"==typeof FileReader){o.isBrowser()&&"object"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var u=i.update(t).digest(r);return n&&n(null,u),u}var c=0,l=new FileReader;l.onerror=function(){n(new Error("Failed to read data."))},l.onload=function(){var e=new o.Buffer(new Uint8Array(l.result));i.update(e),c+=e.length,l._continueReading()},l._continueReading=function(){if(c>=t.size)return void n(null,i.digest(r));var e=c+524288;e>t.size&&(e=t.size),l.readAsArrayBuffer(s.call(t,c,e))},l._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var r=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t&&(r=!0),Array.isArray(e)||(e=[e]);for(var n=0;n=0?(a++,setTimeout(c,i+(e.retryAfter||0))):r(e)},c=function(){var t="";n.handleRequest(e,s,function(e){e.on("data",function(e){t+=e.toString()}),e.on("end",function(){var n=e.statusCode;if(n<300)r(null,t);else{var i=1e3*parseInt(e.headers["retry-after"],10)||0,s=o.error(new Error,{statusCode:n,retryable:n>=500||429===n});i&&s.retryable&&(s.retryAfter=i),u(s)}})},u)};i.util.defer(c)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,n=t.service.api.operations[r].output||{};n.payload&&e.data[n.payload]&&(e.data[n.payload]=e.data[n.payload].toString())},defer:function(e){"object"==typeof r&&"function"==typeof r.nextTick?r.nextTick(e):"function"==typeof n?n(e):setTimeout(e,0)},getRequestPayloadShape:function(e){var t=e.service.api.operations;if(t){var r=(t||{})[e.operation];if(r&&r.input&&r.input.payload)return r.input.members[r.input.payload]}},getProfilesFromSharedConfig:function(e,t){var n={},i={};if(r.env[o.configOptInEnv])var i=e.loadFrom({isConfig:!0,filename:r.env[o.sharedConfigFileEnv]});for(var s=e.loadFrom({filename:t||r.env[o.configOptInEnv]&&r.env[o.sharedCredentialsFileEnv]}),a=0,u=Object.keys(i);a=6},parse:function(e){var t=e.split(":");return{partition:t[1],service:t[2],region:t[3],accountId:t[4],resource:t.slice(5).join(":")}},build:function(e){if(void 0===e.service||void 0===e.region||void 0===e.accountId||void 0===e.resource)throw o.error(new Error("Input ARN object is invalid"));return"arn:"+(e.partition||"aws")+":"+e.service+":"+e.region+":"+e.accountId+":"+e.resource}},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE",imdsDisabledEnv:"AWS_EC2_METADATA_DISABLED"};t.exports=o}).call(this,e("_process"),e("timers").setImmediate)},{"../apis/metadata.json":26,"./core":39,_process:8,fs:2,timers:16,uuid:21}],37:[function(e,t,r){var n=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var i;n.Config=n.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),n.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:i.credentials)}function r(e,t){return new n.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var i=this;i.credentials?"function"==typeof i.credentials.get?function(){i.credentials.get(function(e){e&&(e=r("Could not load credentials from "+i.credentials.constructor.name,e)),t(e)})}():function(){var e=null;i.credentials.accessKeyId&&i.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}():i.credentialProvider?i.credentialProvider.resolve(function(e,n){e&&(e=r("Could not load credentials from any providers",e)),i.credentials=n,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),n.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||n.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(n.util.readFileSync(e)),r=new n.FileSystemCredentials(e),i=new n.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){n.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]="function"==typeof r?r.call(this):r):"httpOptions"===e&&this[e]?this[e]=n.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:"legacy",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:!1,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:"legacy"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=n.util.copy(e),e.credentials=new n.Credentials(e)),e},setPromisesDependency:function(e){i=e,null===e&&"function"==typeof Promise&&(i=Promise);var t=[n.Request,n.Credentials,n.CredentialProviderChain];n.S3&&(t.push(n.S3),n.S3.ManagedUpload&&t.push(n.S3.ManagedUpload)),n.util.addPromises(t,i)},getPromisesDependency:function(){return i}}),n.config=new n.Config},{"./core":39,"./credentials":40,"./credentials/credential_provider_chain":43}],43:[function(e,t,r){var n=e("../core");n.CredentialProviderChain=n.util.inherit(n.Credentials,{constructor:function(e){this.providers=e||n.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,s){if(!e&&s||i===o.length)return n.util.arrayEach(r.resolveCallbacks,function(t){t(e,s)}),void(r.resolveCallbacks.length=0);var a=o[i++];s="function"==typeof a?a.call():a,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}var r=this;if(0===r.providers.length)return e(new Error("No providers")),r;if(1===r.resolveCallbacks.push(e)){var i=0,o=r.providers.slice(0);t()}return r}}),n.CredentialProviderChain.defaultProviders=[],n.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=n.util.promisifyMethod("resolve",e)},n.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},n.util.addPromises(n.CredentialProviderChain)},{"../core":39}],40:[function(e,t,r){var n=e("./core");n.Credentials=n.util.inherit({constructor:function(){if(n.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=n.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){n.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):n.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),n.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=n.util.promisifyMethod("get",e),this.prototype.refreshPromise=n.util.promisifyMethod("refresh",e)},n.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},n.util.addPromises(n.Credentials)},{"./core":39}],27:[function(e,t,r){function n(e,t){if(!n.services.hasOwnProperty(e))throw new Error("InvalidService: Failed to load api for "+e);return n.services[e][t]}n.services={},t.exports=n},{}],26:[function(e,t,r){t.exports={acm:{name:"ACM",cors:!0},apigateway:{name:"APIGateway",cors:!0},applicationautoscaling:{prefix:"application-autoscaling",name:"ApplicationAutoScaling",cors:!0},appstream:{name:"AppStream"},autoscaling:{name:"AutoScaling",cors:!0},batch:{name:"Batch"},budgets:{name:"Budgets"},clouddirectory:{name:"CloudDirectory",versions:["2016-05-10*"]},cloudformation:{name:"CloudFormation",cors:!0},cloudfront:{name:"CloudFront",versions:["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","2016-08-01*","2016-08-20*","2016-09-07*","2016-09-29*","2016-11-25*","2017-03-25*","2017-10-30*","2018-06-18*","2018-11-05*"],cors:!0},cloudhsm:{name:"CloudHSM",cors:!0},cloudsearch:{name:"CloudSearch"},cloudsearchdomain:{name:"CloudSearchDomain"},cloudtrail:{name:"CloudTrail",cors:!0},cloudwatch:{prefix:"monitoring",name:"CloudWatch",cors:!0},cloudwatchevents:{prefix:"events",name:"CloudWatchEvents",versions:["2014-02-03*"],cors:!0},cloudwatchlogs:{prefix:"logs",name:"CloudWatchLogs",cors:!0},codebuild:{name:"CodeBuild",cors:!0},codecommit:{name:"CodeCommit",cors:!0},codedeploy:{name:"CodeDeploy",cors:!0},codepipeline:{name:"CodePipeline",cors:!0},cognitoidentity:{prefix:"cognito-identity",name:"CognitoIdentity",cors:!0},cognitoidentityserviceprovider:{prefix:"cognito-idp",name:"CognitoIdentityServiceProvider",cors:!0},cognitosync:{prefix:"cognito-sync",name:"CognitoSync",cors:!0},configservice:{prefix:"config",name:"ConfigService",cors:!0},cur:{name:"CUR",cors:!0},datapipeline:{name:"DataPipeline"},devicefarm:{name:"DeviceFarm",cors:!0},directconnect:{name:"DirectConnect",cors:!0},directoryservice:{prefix:"ds",name:"DirectoryService"},discovery:{name:"Discovery"},dms:{name:"DMS"},dynamodb:{name:"DynamoDB",cors:!0},dynamodbstreams:{prefix:"streams.dynamodb",name:"DynamoDBStreams",cors:!0},ec2:{name:"EC2",versions:["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*","2016-04-01*","2016-09-15*"],cors:!0},ecr:{name:"ECR",cors:!0},ecs:{name:"ECS",cors:!0},efs:{prefix:"elasticfilesystem",name:"EFS",cors:!0},elasticache:{name:"ElastiCache",versions:["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],cors:!0},elasticbeanstalk:{name:"ElasticBeanstalk",cors:!0},elb:{prefix:"elasticloadbalancing",name:"ELB",cors:!0},elbv2:{prefix:"elasticloadbalancingv2",name:"ELBv2",cors:!0},emr:{prefix:"elasticmapreduce",name:"EMR",cors:!0},es:{name:"ES"},elastictranscoder:{name:"ElasticTranscoder",cors:!0},firehose:{name:"Firehose",cors:!0},gamelift:{name:"GameLift",cors:!0},glacier:{name:"Glacier"},health:{name:"Health"},iam:{name:"IAM",cors:!0},importexport:{name:"ImportExport"},inspector:{name:"Inspector",versions:["2015-08-18*"],cors:!0},iot:{name:"Iot",cors:!0},iotdata:{prefix:"iot-data",name:"IotData",cors:!0},kinesis:{name:"Kinesis",cors:!0},kinesisanalytics:{name:"KinesisAnalytics"},kms:{name:"KMS",cors:!0},lambda:{name:"Lambda",cors:!0},lexruntime:{prefix:"runtime.lex",name:"LexRuntime",cors:!0},lightsail:{name:"Lightsail"},machinelearning:{name:"MachineLearning",cors:!0},marketplacecommerceanalytics:{name:"MarketplaceCommerceAnalytics",cors:!0},marketplacemetering:{prefix:"meteringmarketplace",name:"MarketplaceMetering"},mturk:{prefix:"mturk-requester",name:"MTurk",cors:!0},mobileanalytics:{name:"MobileAnalytics",cors:!0},opsworks:{name:"OpsWorks",cors:!0},opsworkscm:{name:"OpsWorksCM"},organizations:{name:"Organizations"},pinpoint:{name:"Pinpoint"},polly:{name:"Polly",cors:!0},rds:{name:"RDS",versions:["2014-09-01*"],cors:!0},redshift:{name:"Redshift",cors:!0},rekognition:{name:"Rekognition",cors:!0},resourcegroupstaggingapi:{name:"ResourceGroupsTaggingAPI"},route53:{name:"Route53",cors:!0},route53domains:{name:"Route53Domains",cors:!0},s3:{name:"S3",dualstackAvailable:!0,cors:!0},s3control:{name:"S3Control",dualstackAvailable:!0},servicecatalog:{name:"ServiceCatalog",cors:!0},ses:{prefix:"email",name:"SES",cors:!0},shield:{name:"Shield"},simpledb:{prefix:"sdb",name:"SimpleDB"},sms:{name:"SMS"},snowball:{name:"Snowball"},sns:{name:"SNS",cors:!0},sqs:{name:"SQS",cors:!0},ssm:{name:"SSM",cors:!0},storagegateway:{name:"StorageGateway",cors:!0},stepfunctions:{prefix:"states",name:"StepFunctions"},sts:{name:"STS",cors:!0},support:{name:"Support"},swf:{name:"SWF"},xray:{name:"XRay",cors:!0},waf:{name:"WAF",cors:!0},wafregional:{prefix:"waf-regional",name:"WAFRegional"},workdocs:{name:"WorkDocs",cors:!0},workspaces:{name:"WorkSpaces"},codestar:{name:"CodeStar"},lexmodelbuildingservice:{prefix:"lex-models",name:"LexModelBuildingService",cors:!0},marketplaceentitlementservice:{prefix:"entitlement.marketplace",name:"MarketplaceEntitlementService"},athena:{name:"Athena"},greengrass:{name:"Greengrass"},dax:{name:"DAX"},migrationhub:{prefix:"AWSMigrationHub",name:"MigrationHub"},cloudhsmv2:{name:"CloudHSMV2"},glue:{name:"Glue"},mobile:{name:"Mobile"},pricing:{name:"Pricing",cors:!0},costexplorer:{prefix:"ce",name:"CostExplorer",cors:!0},mediaconvert:{name:"MediaConvert"},medialive:{name:"MediaLive"},mediapackage:{name:"MediaPackage"},mediastore:{name:"MediaStore"},mediastoredata:{prefix:"mediastore-data",name:"MediaStoreData",cors:!0},appsync:{name:"AppSync"},guardduty:{name:"GuardDuty"},mq:{name:"MQ"},comprehend:{name:"Comprehend",cors:!0},iotjobsdataplane:{prefix:"iot-jobs-data",name:"IoTJobsDataPlane"},kinesisvideoarchivedmedia:{prefix:"kinesis-video-archived-media",name:"KinesisVideoArchivedMedia",cors:!0},kinesisvideomedia:{prefix:"kinesis-video-media",name:"KinesisVideoMedia",cors:!0},kinesisvideo:{name:"KinesisVideo",cors:!0},sagemakerruntime:{prefix:"runtime.sagemaker",name:"SageMakerRuntime"},sagemaker:{name:"SageMaker"},translate:{name:"Translate",cors:!0},resourcegroups:{prefix:"resource-groups",name:"ResourceGroups",cors:!0},alexaforbusiness:{name:"AlexaForBusiness"},cloud9:{name:"Cloud9"},serverlessapplicationrepository:{prefix:"serverlessrepo",name:"ServerlessApplicationRepository"},servicediscovery:{name:"ServiceDiscovery"},workmail:{name:"WorkMail"},autoscalingplans:{prefix:"autoscaling-plans",name:"AutoScalingPlans"},transcribeservice:{prefix:"transcribe",name:"TranscribeService"},connect:{name:"Connect",cors:!0},acmpca:{prefix:"acm-pca",name:"ACMPCA"},fms:{name:"FMS"},secretsmanager:{name:"SecretsManager",cors:!0},iotanalytics:{name:"IoTAnalytics",cors:!0},iot1clickdevicesservice:{prefix:"iot1click-devices",name:"IoT1ClickDevicesService"},iot1clickprojects:{prefix:"iot1click-projects",name:"IoT1ClickProjects"},pi:{name:"PI"},neptune:{name:"Neptune"},mediatailor:{name:"MediaTailor"},eks:{name:"EKS"},macie:{name:"Macie"},dlm:{name:"DLM"},signer:{name:"Signer"},chime:{name:"Chime"},pinpointemail:{prefix:"pinpoint-email",name:"PinpointEmail"},ram:{name:"RAM"},route53resolver:{name:"Route53Resolver"},pinpointsmsvoice:{prefix:"sms-voice",name:"PinpointSMSVoice"},quicksight:{name:"QuickSight"},rdsdataservice:{prefix:"rds-data",name:"RDSDataService"},amplify:{name:"Amplify"},datasync:{name:"DataSync"},robomaker:{name:"RoboMaker"},transfer:{name:"Transfer"},globalaccelerator:{name:"GlobalAccelerator"},comprehendmedical:{name:"ComprehendMedical",cors:!0},kinesisanalyticsv2:{name:"KinesisAnalyticsV2"},mediaconnect:{name:"MediaConnect"},fsx:{name:"FSx"},securityhub:{name:"SecurityHub"},appmesh:{name:"AppMesh",versions:["2018-10-01*"]},licensemanager:{prefix:"license-manager",name:"LicenseManager"},kafka:{name:"Kafka"},apigatewaymanagementapi:{name:"ApiGatewayManagementApi"},apigatewayv2:{name:"ApiGatewayV2"},docdb:{name:"DocDB"},backup:{name:"Backup"},worklink:{name:"WorkLink"},textract:{name:"Textract"},managedblockchain:{name:"ManagedBlockchain"},mediapackagevod:{prefix:"mediapackage-vod",name:"MediaPackageVod"},groundstation:{name:"GroundStation"},iotthingsgraph:{name:"IoTThingsGraph"},iotevents:{name:"IoTEvents"},ioteventsdata:{prefix:"iotevents-data",name:"IoTEventsData"},personalize:{name:"Personalize",cors:!0},personalizeevents:{prefix:"personalize-events",name:"PersonalizeEvents",cors:!0},personalizeruntime:{prefix:"personalize-runtime",name:"PersonalizeRuntime",cors:!0},applicationinsights:{prefix:"application-insights",name:"ApplicationInsights"},servicequotas:{prefix:"service-quotas",name:"ServiceQuotas"},ec2instanceconnect:{prefix:"ec2-instance-connect",name:"EC2InstanceConnect"},eventbridge:{name:"EventBridge"},lakeformation:{name:"LakeFormation"},forecastservice:{prefix:"forecast",name:"ForecastService",cors:!0},forecastqueryservice:{prefix:"forecastquery",name:"ForecastQueryService",cors:!0},qldb:{name:"QLDB"},qldbsession:{prefix:"qldb-session",name:"QLDBSession"},workmailmessageflow:{name:"WorkMailMessageFlow"},codestarnotifications:{prefix:"codestar-notifications",name:"CodeStarNotifications"},savingsplans:{name:"SavingsPlans"},sso:{name:"SSO"},ssooidc:{prefix:"sso-oidc",name:"SSOOIDC"},marketplacecatalog:{prefix:"marketplace-catalog",name:"MarketplaceCatalog"},dataexchange:{name:"DataExchange"},sesv2:{name:"SESV2"},migrationhubconfig:{prefix:"migrationhub-config",name:"MigrationHubConfig"},connectparticipant:{name:"ConnectParticipant"},appconfig:{name:"AppConfig"},iotsecuretunneling:{name:"IoTSecureTunneling"},wafv2:{name:"WAFV2"},elasticinference:{prefix:"elastic-inference",name:"ElasticInference"},imagebuilder:{name:"Imagebuilder"},schemas:{name:"Schemas"},accessanalyzer:{name:"AccessAnalyzer"},codegurureviewer:{prefix:"codeguru-reviewer",name:"CodeGuruReviewer"},codeguruprofiler:{name:"CodeGuruProfiler"},computeoptimizer:{prefix:"compute-optimizer",name:"ComputeOptimizer"},frauddetector:{name:"FraudDetector"},kendra:{name:"Kendra"},networkmanager:{name:"NetworkManager"},outposts:{name:"Outposts"},augmentedairuntime:{prefix:"sagemaker-a2i-runtime",name:"AugmentedAIRuntime"},ebs:{name:"EBS"},kinesisvideosignalingchannels:{prefix:"kinesis-video-signaling",name:"KinesisVideoSignalingChannels",cors:!0},detective:{name:"Detective"},codestarconnections:{prefix:"codestar-connections",name:"CodeStarconnections"}}},{}],21:[function(e,t,r){var n=e("./v1"),i=e("./v4"),o=i;o.v1=n,o.v4=i,t.exports=o},{"./v1":24,"./v4":25}],25:[function(e,t,r){function n(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[n+a]=s[a];return t||o(s)}var i=e("./lib/rng"),o=e("./lib/bytesToUuid");t.exports=n},{"./lib/bytesToUuid":22,"./lib/rng":23}],24:[function(e,t,r){function n(e,t,r){var n=t&&r||0,l=t||[];e=e||{};var h=e.node||i,p=void 0!==e.clockseq?e.clockseq:o;if(null==h||null==p){var f=s();null==h&&(h=i=[1|f[0],f[1],f[2],f[3],f[4],f[5]]),null==p&&(p=o=16383&(f[6]<<8|f[7]))}var d=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=d-u+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(p=p+1&16383),(v<0||d>u)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=d,c=m,o=p,d+=122192928e5;var g=(1e4*(268435455&d)+m)%4294967296;l[n++]=g>>>24&255,l[n++]=g>>>16&255,l[n++]=g>>>8&255,l[n++]=255&g;var y=d/4294967296*1e4&268435455;l[n++]=y>>>8&255,l[n++]=255&y,l[n++]=y>>>24&15|16,l[n++]=y>>>16&255,l[n++]=p>>>8|128,l[n++]=255&p;for(var b=0;b<6;++b)l[n+b]=h[b];return t||a(l)}var i,o,s=e("./lib/rng"),a=e("./lib/bytesToUuid"),u=0,c=0;t.exports=n},{"./lib/bytesToUuid":22,"./lib/rng":23}],23:[function(e,t,r){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var i=new Uint8Array(16);t.exports=function(){return n(i),i}}else{var o=new Array(16);t.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),o[t]=e>>>((3&t)<<3)&255;return o}}},{}],22:[function(e,t,r){function n(e,t){var r=t||0,n=i;return[n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],"-",n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]],n[e[r++]]].join("")}for(var i=[],o=0;o<256;++o)i[o]=(o+256).toString(16).substr(1);t.exports=n},{}],20:[function(e,t,r){(function(t,n){function i(e,t){var n={seen:[],stylize:s};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(t)?n.showHidden=t:t&&r._extend(n,t),E(n.showHidden)&&(n.showHidden=!1),E(n.depth)&&(n.depth=2),E(n.colors)&&(n.colors=!1),E(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=o),u(n,e,n.depth)}function o(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function s(e,t){return e}function a(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,n){if(e.customInspect&&t&&R(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),m=a(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),x(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return l(t);if(0===s.length){if(R(t)){var v=t.name?": "+t.name:"";return e.stylize("[Function"+v+"]","special")}if(_(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(C(t))return e.stylize(Date.prototype.toString.call(t),"date");if(x(t))return l(t)}var g="",y=!1,w=["{","}"];if(d(t)&&(y=!0,w=["[","]"]),R(t)){g=" [Function"+(t.name?": "+t.name:"")+"]"}if(_(t)&&(g=" "+RegExp.prototype.toString.call(t)),C(t)&&(g=" "+Date.prototype.toUTCString.call(t)),x(t)&&(g=" "+l(t)),0===s.length&&(!y||0==t.length))return w[0]+g+w[1];if(n<0)return _(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return E=y?h(e,t,n,m,s):s.map(function(r){return p(e,t,n,m,r,y)}),e.seen.pop(),f(E,g,w)}function c(e,t){if(E(t))return e.stylize("undefined","undefined");if(b(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return y(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,r,n,i){for(var o=[],s=0,a=t.length;s-1&&(a=o?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n"))):a=e.stylize("[Circular]","special")),E(s)){if(o&&i.match(/^\d+$/))return a;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function f(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return"number"==typeof e}function b(e){return"string"==typeof e}function w(e){return"symbol"==typeof e}function E(e){return void 0===e}function _(e){return S(e)&&"[object RegExp]"===T(e)}function S(e){return"object"==typeof e&&null!==e}function C(e){return S(e)&&"[object Date]"===T(e)}function x(e){return S(e)&&("[object Error]"===T(e)||e instanceof Error)}function R(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function T(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}function I(){var e=new Date,t=[k(e.getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":");return[e.getDate(),U[e.getMonth()],t].join(" ")}function L(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;r.format=function(e){if(!b(e)){for(var t=[],r=0;r=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),a=n[r];r=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r.setImmediate="function"==typeof t?t:function(e){var t=c++,n=!(arguments.length<2)&&a.call(arguments,1);return u[t]=!0,o(function(){u[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))}),t},r.clearImmediate="function"==typeof n?n:function(e){delete u[e]}}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":8,timers:16}],8:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(e){if(h===setTimeout)return setTimeout(e,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(e,0);try{return h(e,0)}catch(t){try{return h.call(null,e,0)}catch(t){return h.call(this,e,0)}}}function s(e){if(p===clearTimeout)return clearTimeout(e);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){v&&d&&(v=!1,d.length?m=d.concat(m):g=-1,m.length&&u())}function u(){if(!v){var e=o(a);v=!0;for(var t=m.length;t;){for(d=m,m=[];++g1)for(var r=1;r="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function a(e){return e>="0"&&e<="9"||"-"===e}function u(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function l(){}function h(e){this.runtime=e}function p(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[g]}]},avg:{_func:this._functionAvg,_signature:[{types:[S]}]},ceil:{_func:this._functionCeil,_signature:[{types:[g]}]},contains:{_func:this._functionContains,_signature:[{types:[b,w]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[g]}]},length:{_func:this._functionLength,_signature:[{types:[b,w,E]}]},map:{_func:this._functionMap,_signature:[{types:[_]},{types:[w]}]},max:{_func:this._functionMax,_signature:[{types:[S,C]}]},merge:{_func:this._functionMerge,_signature:[{types:[E],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[w]},{types:[_]}]},sum:{_func:this._functionSum,_signature:[{types:[S]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[S,C]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[w]},{types:[_]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[E]}]},values:{_func:this._functionValues,_signature:[{types:[E]}]},sort:{_func:this._functionSort,_signature:[{types:[C,S]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[w]},{types:[_]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[C]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,w]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new l).parse(e)}function d(e){return(new c).tokenize(e)}function m(e,t){var r=new l,n=new p,i=new h(n);n._interpreter=i;var o=r.parse(t);return i.search(o,e)}var v;v="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var g=0,y=1,b=2,w=3,E=4,_=6,S=8,C=9,x={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},R={"<":!0,">":!0,"=":!0,"!":!0},A={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,n,i;this._current"===r?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===r&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,n=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={};T.EOF=0,T.UnquotedIdentifier=0,T.QuotedIdentifier=0,T.Rbracket=0,T.Rparen=0,T.Comma=0,T.Rbrace=0,T.Number=0,T.Current=0,T.Expref=0,T.Pipe=1,T.Or=2,T.And=3,T.EQ=5,T.GT=5,T.LT=5,T.GTE=5,T.LTE=5,T.NE=5,T.Flatten=9,T.Star=20,T.Filter=21,T.Dot=40,T.Not=45,T.Lbrace=50,T.Lbracket=55,T.Lparen=60,l.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw n.name="ParserError",n}return t},_loadTokens:function(e){var t=new c,r=t.tokenize(e);r.push({type:"EOF",value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw n.name="ParserError",n}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,r,n,i=[],o=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),o.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),r=this.expression(0),n={type:"KeyValuePair",name:t,value:r},i.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:i}}},h.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,u,c,l,h,p,f,d,m;switch(e.type){case"Field":return null===s?null:r(s)?(p=s[e.name],void 0===p?null:p):null;case"Subexpression":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mw;m+=E)c.push(s[m]);return c;case"Projection":var _=this.visit(e.children[0],s);if(!t(_))return null;for(d=[],m=0;m<_.length;m++)null!==(u=this.visit(e.children[1],_[m]))&&d.push(u);return d;case"ValueProjection":if(_=this.visit(e.children[0],s),!r(_))return null;d=[];var S=o(_);for(m=0;mh;break;case"GTE":c=l>=h;break;case"LT":c=l=e&&(t=r<0?e-1:e),t}},p.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var n;if(r[r.length-1].variadic){if(t.length=0;n--)r+=t[n];return r}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,n=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===g)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;n0){if(this._getTypeName(e[0][0])===g)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;na?1:ss&&(s=r,t=i[a]);return t},_functionMinBy:function(e){for(var t,r,n=e[1],i=e[0],o=this.createKeyFunction(n,[g,b]),s=1/0,a=0;a=this.HEADERS_RECEIVED&&!h&&(u.statusCode=l.status,u.headers=s.parseHeaders(l.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers,l.statusText),h=!0),this.readyState===this.DONE&&s.finishRequest(l,u)},!1),l.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),l.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),l.addEventListener("timeout",function(){o(n.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),l.addEventListener("error",function(){o(n.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),l.addEventListener("abort",function(){o(n.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))},!1),r(u),l.open(e.method,c,!1!==t.xhrAsync),n.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&l.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(l.timeout=t.timeout),t.xhrWithCredentials&&(l.withCredentials=!0);try{l.responseType="arraybuffer"}catch(e){}try{e.body?l.send(e.body):l.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;l.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return n.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],n=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=n)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var i=e.response;r=new n.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1&&0===++e[t];t--);}var o=e("../core").util,s=o.buffer.toBuffer;n.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+" is too large (or, if negative, too small) to represent as an Int64");for(var t=new Uint8Array(8),r=7,o=Math.abs(Math.round(e));r>-1&&o>0;r--,o/=256)t[r]=o;return e<0&&i(t),new n(t)},n.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString("hex"),16)*(t?-1:1)},n.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:n}},{"../core":39}],55:[function(e,t,r){function n(e){for(var t=[],r=0;ra)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;r>0;)this.buffer[this.bufferLength++]=e[t++],r--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%64>=56){for(var o=this.bufferLength;o<64;o++)r.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(var o=this.bufferLength;o<56;o++)r.setUint8(o,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var s=new i(32),o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},n.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],l=r[6],h=r[7],p=0;p<64;p++){if(p<16)this.temp[p]=(255&t[4*p])<<24|(255&t[4*p+1])<<16|(255&t[4*p+2])<<8|255&t[4*p+3];else{var f=this.temp[p-2],d=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[p-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[p]=(d+this.temp[p-7]|0)+(m+this.temp[p-16]|0)}var v=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&l)|0)+(h+(s[p]+this.temp[p]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&i^n&o^i&o)|0;h=l,l=c,c=u,u=a+v|0,a=o,o=i,i=n,n=v+g|0}r[0]+=n,r[1]+=i,r[2]+=o,r[3]+=a,r[4]+=u,r[5]+=c,r[6]+=l,r[7]+=h}},{"./browserHashUtils":30,"buffer/":3}],33:[function(e,t,r){function n(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e("buffer/").Buffer,o=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=e.length;this.totalLength+=8*t;for(var r=0;r14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var r=new i(20),n=new DataView(r.buffer);return n.setUint32(0,this.h0,!1),n.setUint32(4,this.h1,!1),n.setUint32(8,this.h2,!1),n.setUint32(12,this.h3,!1),n.setUint32(16,this.h4,!1),e?r.toString(e):r},n.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var r,n,i=this.h0,o=this.h1,s=this.h2,a=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=a^o&(s^a),n=1518500249):e<40?(r=o^s^a,n=1859775393):e<60?(r=o&s|a&(o|s),n=2400959708):(r=o^s^a,n=3395469782);var c=(i<<5|i>>>27)+r+u+n+(0|this.block[e]);u=a,a=s,s=o<<30|o>>>2,o=i,i=c}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+u|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{"./browserHashUtils":30,"buffer/":3}],32:[function(e,t,r){function n(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(h)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,r,n,i,o){return((t=(t+e&4294967295)+(n+o&4294967295)&4294967295)<>>32-i)+r&4294967295}function o(e,t,r,n,o,s,a){return i(t&r|~t&n,e,t,o,s,a)}function s(e,t,r,n,o,s,a){return i(t&n|r&~n,e,t,o,s,a)}function a(e,t,r,n,o,s,a){return i(t^r^n,e,t,o,s,a)}function u(e,t,r,n,o,s,a){return i(r^(t|~n),e,t,o,s,a)}var c=e("./browserHashUtils"),l=e("buffer/").Buffer,h=64;t.exports=n,n.BLOCK_SIZE=h,n.prototype.update=function(e){if(c.isEmptyData(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=c.convertToBuffer(e),r=0,n=t.byteLength;for(this.bytesHashed+=n;n>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),n--,this.bufferLength===h&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,n=t.bufferLength,i=t.bytesHashed,o=8*i;if(r.setUint8(this.bufferLength++,128),n%h>=h-8){for(var s=this.bufferLength;s>>0,!0),r.setUint32(h-4,Math.floor(o/4294967296),!0),this.hashBuffer(),this.finished=!0}for(var a=new DataView(new ArrayBuffer(16)),s=0;s<4;s++)a.setUint32(4*s,this.state[s],!0);var u=new l(a.buffer,a.byteOffset,a.byteLength);return e?u.toString(e):u},n.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],c=r[2],l=r[3];n=o(n,i,c,l,t.getUint32(0,!0),7,3614090360),l=o(l,n,i,c,t.getUint32(4,!0),12,3905402710),c=o(c,l,n,i,t.getUint32(8,!0),17,606105819),i=o(i,c,l,n,t.getUint32(12,!0),22,3250441966),n=o(n,i,c,l,t.getUint32(16,!0),7,4118548399),l=o(l,n,i,c,t.getUint32(20,!0),12,1200080426),c=o(c,l,n,i,t.getUint32(24,!0),17,2821735955),i=o(i,c,l,n,t.getUint32(28,!0),22,4249261313),n=o(n,i,c,l,t.getUint32(32,!0),7,1770035416),l=o(l,n,i,c,t.getUint32(36,!0),12,2336552879),c=o(c,l,n,i,t.getUint32(40,!0),17,4294925233),i=o(i,c,l,n,t.getUint32(44,!0),22,2304563134),n=o(n,i,c,l,t.getUint32(48,!0),7,1804603682),l=o(l,n,i,c,t.getUint32(52,!0),12,4254626195),c=o(c,l,n,i,t.getUint32(56,!0),17,2792965006),i=o(i,c,l,n,t.getUint32(60,!0),22,1236535329),n=s(n,i,c,l,t.getUint32(4,!0),5,4129170786),l=s(l,n,i,c,t.getUint32(24,!0),9,3225465664),c=s(c,l,n,i,t.getUint32(44,!0),14,643717713),i=s(i,c,l,n,t.getUint32(0,!0),20,3921069994),n=s(n,i,c,l,t.getUint32(20,!0),5,3593408605),l=s(l,n,i,c,t.getUint32(40,!0),9,38016083),c=s(c,l,n,i,t.getUint32(60,!0),14,3634488961),i=s(i,c,l,n,t.getUint32(16,!0),20,3889429448),n=s(n,i,c,l,t.getUint32(36,!0),5,568446438),l=s(l,n,i,c,t.getUint32(56,!0),9,3275163606),c=s(c,l,n,i,t.getUint32(12,!0),14,4107603335),i=s(i,c,l,n,t.getUint32(32,!0),20,1163531501),n=s(n,i,c,l,t.getUint32(52,!0),5,2850285829),l=s(l,n,i,c,t.getUint32(8,!0),9,4243563512),c=s(c,l,n,i,t.getUint32(28,!0),14,1735328473),i=s(i,c,l,n,t.getUint32(48,!0),20,2368359562),n=a(n,i,c,l,t.getUint32(20,!0),4,4294588738),l=a(l,n,i,c,t.getUint32(32,!0),11,2272392833),c=a(c,l,n,i,t.getUint32(44,!0),16,1839030562),i=a(i,c,l,n,t.getUint32(56,!0),23,4259657740),n=a(n,i,c,l,t.getUint32(4,!0),4,2763975236),l=a(l,n,i,c,t.getUint32(16,!0),11,1272893353),c=a(c,l,n,i,t.getUint32(28,!0),16,4139469664),i=a(i,c,l,n,t.getUint32(40,!0),23,3200236656),n=a(n,i,c,l,t.getUint32(52,!0),4,681279174),l=a(l,n,i,c,t.getUint32(0,!0),11,3936430074),c=a(c,l,n,i,t.getUint32(12,!0),16,3572445317),i=a(i,c,l,n,t.getUint32(24,!0),23,76029189),n=a(n,i,c,l,t.getUint32(36,!0),4,3654602809),l=a(l,n,i,c,t.getUint32(48,!0),11,3873151461),c=a(c,l,n,i,t.getUint32(60,!0),16,530742520),i=a(i,c,l,n,t.getUint32(8,!0),23,3299628645),n=u(n,i,c,l,t.getUint32(0,!0),6,4096336452),l=u(l,n,i,c,t.getUint32(28,!0),10,1126891415),c=u(c,l,n,i,t.getUint32(56,!0),15,2878612391),i=u(i,c,l,n,t.getUint32(20,!0),21,4237533241),n=u(n,i,c,l,t.getUint32(48,!0),6,1700485571),l=u(l,n,i,c,t.getUint32(12,!0),10,2399980690),c=u(c,l,n,i,t.getUint32(40,!0),15,4293915773),i=u(i,c,l,n,t.getUint32(4,!0),21,2240044497),n=u(n,i,c,l,t.getUint32(32,!0),6,1873313359),l=u(l,n,i,c,t.getUint32(60,!0),10,4264355552),c=u(c,l,n,i,t.getUint32(24,!0),15,2734768916),i=u(i,c,l,n,t.getUint32(52,!0),21,1309151649),n=u(n,i,c,l,t.getUint32(16,!0),6,4149444226),l=u(l,n,i,c,t.getUint32(44,!0),10,3174756917),c=u(c,l,n,i,t.getUint32(8,!0),15,718787259),i=u(i,c,l,n,t.getUint32(36,!0),21,3951481745),r[0]=n+r[0]&4294967295,r[1]=i+r[1]&4294967295,r[2]=c+r[2]&4294967295,r[3]=l+r[3]&4294967295}},{"./browserHashUtils":30,"buffer/":3}],31:[function(e,t,r){function n(e,t){this.hash=new e,this.outer=new e;var r=i(e,t),n=new Uint8Array(e.BLOCK_SIZE);n.set(r);for(var o=0;oe.BLOCK_SIZE){var n=new e;n.update(r),r=n.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(r),i}var o=e("./browserHashUtils");t.exports=n,n.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},n.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":30}],30:[function(e,t,r){function n(e){return"string"==typeof e?0===e.length:0===e.byteLength}function i(e){return"string"==typeof e&&(e=new o(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}var o=e("buffer/").Buffer;"undefined"!=typeof ArrayBuffer&&void 0===ArrayBuffer.isView&&(ArrayBuffer.isView=function(e){return s.indexOf(Object.prototype.toString.call(e))>-1});var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object DataView]"];t.exports={isEmptyData:n,convertToBuffer:i}},{"buffer/":3}],17:[function(e,t,r){function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,r){if(e&&c(e)&&e instanceof n)return e;var i=new n;return i.parse(e,t,r),i}function o(e){return u(e)&&(e=i(e)),e instanceof n?e.format():n.prototype.format.call(e)}function s(e,t){return i(e,!1,!0).resolve(t)}function a(e,t){return e?i(e,!1,!0).resolveObject(t):t}function u(e){return"string"==typeof e}function c(e){return"object"==typeof e&&null!==e}function l(e){return null===e}function h(e){return null==e}var p=e("punycode");r.parse=i,r.resolve=s,r.resolveObject=a,r.format=o,r.Url=n;var f=/^([a-z0-9.+-]+:)/i,d=/:[0-9]*$/,m=["<",">",'"',"`"," ","\r","\n","\t"],v=["{","}","|","\\","^","`"].concat(m),g=["'"].concat(v),y=["%","/","?",";","#"].concat(g),b=["/","?","#"],w=/^[a-z0-9A-Z_-]{0,63}$/,E=/^([a-z0-9A-Z_-]{0,63})(.*)$/,_={javascript:!0,"javascript:":!0},S={javascript:!0,"javascript:":!0},C={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},x=e("querystring");n.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var i=f.exec(n);if(i){i=i[0];var o=i.toLowerCase();this.protocol=o,n=n.substr(i.length)}if(r||i||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||i&&S[i]||(n=n.substr(2),this.slashes=!0)}if(!S[i]&&(s||i&&!C[i])){for(var a=-1,c=0;c127?T+="x":T+=A[k];if(!T.match(w)){var L=v.slice(0,c),P=v.slice(c+1),q=A.match(E);q&&(L.push(q[1]),P.unshift(q[2])),P.length&&(n="/"+P.join(".")+n),this.hostname=L.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var O=this.hostname.split("."),U=[],c=0;c0)&&r.host.split("@");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return r.search=e.search,r.query=e.query,l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!d.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var g=d.slice(-1)[0],y=(r.host||e.host)&&("."===g||".."===g)||""===g,b=0,w=d.length;w>=0;w--)g=d[w],"."==g?d.splice(w,1):".."===g?(d.splice(w,1),b++):b&&(d.splice(w,1),b--);if(!p&&!f)for(;b--;b)d.unshift("..");!p||""===d[0]||d[0]&&"/"===d[0].charAt(0)||d.unshift(""),y&&"/"!==d.join("/").substr(-1)&&d.push("");var E=""===d[0]||d[0]&&"/"===d[0].charAt(0);if(m){r.hostname=r.host=E?"":d.length?d.shift():"";var v=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return p=p||r.host&&d.length,p&&!E&&d.unshift(""),d.length?r.pathname=d.join("/"):(r.pathname=null,r.path=null),l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:9,querystring:12}],15:[function(e,t,r){arguments[4][12][0].apply(r,arguments)},{"./decode":13,"./encode":14,dup:12}],14:[function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,r,i){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):""}},{}],13:[function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,i){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var a=1e3;i&&"number"==typeof i.maxKeys&&(a=i.maxKeys);var u=e.length;a>0&&u>a&&(u=a);for(var c=0;c=0?(l=d.substr(0,m),h=d.substr(m+1)):(l=d,h=""),p=decodeURIComponent(l),f=decodeURIComponent(h),n(o,p)?Array.isArray(o[p])?o[p].push(f):o[p]=[o[p],f]:o[p]=f}return o}},{}],12:[function(e,t,r){"use strict";r.decode=r.parse=e("./decode"),r.encode=r.stringify=e("./encode")},{"./decode":10,"./encode":11}],11:[function(e,t,r){"use strict";function n(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n0&&c>u&&(c=u);for(var l=0;l=0?(h=m.substr(0,v),p=m.substr(v+1)):(h=m,p=""),f=decodeURIComponent(h),d=decodeURIComponent(p),n(s,f)?i(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],9:[function(e,t,r){(function(e){!function(n){function i(e){throw RangeError(q[e])}function o(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function s(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(P,"."),n+o(e.split("."),t).join(".")}function a(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=N(e>>>10&1023|55296),e=56320|1023&e),t+=N(e)}).join("")}function c(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:_}function l(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function h(e,t,r){var n=0;for(e=r?U(e/R):e>>1,e+=U(e/t);e>O*C>>1;n+=_)e=U(e/O);return U(n+(O+1)*e/(e+x))}function p(e){var t,r,n,o,s,a,l,p,f,d,m=[],v=e.length,g=0,y=T,b=A;for(r=e.lastIndexOf(k),r<0&&(r=0),n=0;n=128&&i("not-basic"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=v&&i("invalid-input"),p=c(e.charCodeAt(o++)),(p>=_||p>U((E-g)/a))&&i("overflow"),g+=p*a,f=l<=b?S:l>=b+C?C:l-b,!(pU(E/d)&&i("overflow"),a*=d;t=m.length+1,b=h(g-s,t,0==s),U(g/t)>E-y&&i("overflow"),y+=U(g/t),g%=t,m.splice(g++,0,y)}return u(m)}function f(e){var t,r,n,o,s,u,c,p,f,d,m,v,g,y,b,w=[];for(e=a(e),v=e.length,t=T,r=0,s=A,u=0;u=t&&mU((E-r)/g)&&i("overflow"),r+=(c-t)*g,t=c,u=0;uE&&i("overflow"),m==t){for(p=r,f=_;d=f<=s?S:f>=s+C?C:f-s,!(p= 0x80 (not a basic code point)","invalid-input":"Invalid input"},O=_-S,U=Math.floor,N=String.fromCharCode;if(b={version:"1.3.2",ucs2:{decode:a,encode:u},decode:p,encode:f,toASCII:m,toUnicode:d},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return b});else if(v&&g)if(t.exports==v)g.exports=b;else for(w in b)b.hasOwnProperty(w)&&(v[w]=b[w]);else n.punycode=b}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function o(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,r,n,o,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(r=this._events[e],a(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),r.apply(this,o)}else if(s(r))for(o=Array.prototype.slice.call(arguments,1),c=r.slice(),n=c.length,u=0;u0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,o,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(r)){for(a=o;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],3:[function(e,t,r){(function(t,n){"use strict";function i(){return n.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),n.alloc(+e)}function v(e,t){if(n.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return X(e).length;default:if(i)return V(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return T(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return L(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,i,o){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=n.from(t,i)),n.isBuffer(t))return 0===t.length?-1:w(e,t,r,i,o);if("number"==typeof t)return t&=255,n.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,i,o);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}var c;if(i){var l=-1;for(c=r;ca&&(r=a-u),c=r;c>=0;c--){for(var h=!0,p=0;pi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:o>223?3:o>191?2:1;if(i+a<=r){var u,c,l,h;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128==(192&u)&&(h=(31&o)<<6|63&u)>127&&(s=h);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(h=(15&o)<<12|(63&u)<<6|63&c)>2047&&(h<55296||h>57343)&&(s=h);break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(h=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&h<1114112&&(s=h)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return k(n)}function k(e){var t=e.length;if(t<=Z)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,r,i,o,s){if(!n.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,n,i){return i||M(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(e,t,r,n,23,4),r+4}function B(e,t,r,n,i){return i||M(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(e,t,r,n,52,8),r+8}function F(e){if(e=H(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function H(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function z(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(e){for(var t=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function X(e){return J.toByteArray(F(e))}function Y(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function G(e){return e!==e}var J=e("base64-js"),$=e("ieee754"),Q=e("isarray");r.Buffer=n,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,n.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),r.kMaxLength=i(),n.poolSize=8192,n._augment=function(e){return e.__proto__=n.prototype,e},n.from=function(e,t,r){return s(null,e,t,r)},n.TYPED_ARRAY_SUPPORT&&(n.prototype.__proto__=Uint8Array.prototype,n.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&n[Symbol.species]===n&&Object.defineProperty(n,Symbol.species,{value:null,configurable:!0})),n.alloc=function(e,t,r){return u(null,e,t,r)},n.allocUnsafe=function(e){return c(null,e)},n.allocUnsafeSlow=function(e){return c(null,e)},n.isBuffer=function(e){return!(null==e||!e._isBuffer)},n.compare=function(e,t){if(!n.isBuffer(e)||!n.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,i=t.length,o=0,s=Math.min(r,i);o0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},n.prototype.compare=function(e,t,r,i,o){if(!n.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),t<0||r>e.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&t>=r)return 0;if(i>=o)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,i>>>=0,o>>>=0,this===e)return 0;for(var s=o-i,a=r-t,u=Math.min(s,a),c=this.slice(i,o),l=e.slice(t,r),h=0;hi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return E(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return C(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Z=4096;n.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)n+=this[e+--t]*i;return n},n.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},n.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},n.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},n.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},n.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},n.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,o=0;++o=i&&(n-=Math.pow(2,8*t)),n},n.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},n.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},n.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},n.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},n.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),$.read(this,e,!0,23,4)},n.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),$.read(this,e,!1,23,4)},n.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),$.read(this,e,!0,52,8)},n.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),$.read(this,e,!1,52,8)},n.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){U(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},n.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,255,0),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},n.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},n.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},n.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},n.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},n.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);U(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},n.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);U(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},n.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,127,-128),n.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},n.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},n.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},n.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},n.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),n.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},n.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},n.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},n.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},n.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},n.prototype.copy=function(e,t,r,i){if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else if(s<1e3||!n.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s>1,l=-7,h=r?i-1:0,p=r?-1:1,f=e[t+h];for(h+=p,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+h],h+=p,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+h],h+=p,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(f?-1:1) - ;s+=Math.pow(2,n),o-=c}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+h>=1?p/u:p*Math.pow(2,1-h),t*u>=2&&(s++,u/=2),s+h>=l?(a=0,s=l):s+h>=1?(a=(t*u-1)*Math.pow(2,i),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=d,a/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=d,s/=256,c-=8);e[r+f-d]|=128*m}},{}],1:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e){var t=n(e),r=t[0],i=t[1];return 3*(r+i)/4-i}function o(e,t,r){return 3*(t+r)/4-r}function s(e){var t,r,i=n(e),s=i[0],a=i[1],u=new p(o(e,s,a)),c=0,l=a>0?s-4:s;for(r=0;r>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===a&&(t=h[e.charCodeAt(r)]<<2|h[e.charCodeAt(r+1)]>>4,u[c++]=255&t),1===a&&(t=h[e.charCodeAt(r)]<<10|h[e.charCodeAt(r+1)]<<4|h[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u}function a(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function u(e,t,r){for(var n,i=[],o=t;os?s:o+16383));return 1===n?(t=e[r-1],i.push(l[t>>2]+l[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(l[t>>10]+l[t>>4&63]+l[t<<2&63]+"=")),i.join("")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=c;for(var l=[],h=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,m=f.length;d `0`",state:"success"}]}}};AWS.apiLoader.services.cloudwatchevents={},AWS.CloudWatchEvents=AWS.Service.defineService("cloudwatchevents",["2015-10-07"]);AWS.apiLoader.services.cloudwatchevents["2015-10-07"]={version:"2.0",metadata:{apiVersion:"2015-10-07",endpointPrefix:"events",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon CloudWatch Events",serviceId:"CloudWatch Events",signatureVersion:"v4",targetPrefix:"AWSEvents",uid:"events-2015-10-07"},operations:{ActivateEventSource:{input:{type:"structure",required:["Name"],members:{Name:{}}}},CreateEventBus:{input:{type:"structure",required:["Name"],members:{Name:{},EventSourceName:{}}},output:{type:"structure",members:{EventBusArn:{}}}},CreatePartnerEventSource:{input:{type:"structure",required:["Name","Account"],members:{Name:{},Account:{}}},output:{type:"structure",members:{EventSourceArn:{}}}},DeactivateEventSource:{input:{type:"structure",required:["Name"],members:{Name:{}}}},DeleteEventBus:{input:{type:"structure",required:["Name"],members:{Name:{}}}},DeletePartnerEventSource:{input:{type:"structure",required:["Name","Account"],members:{Name:{},Account:{}}}},DeleteRule:{input:{type:"structure",required:["Name"],members:{Name:{},EventBusName:{},Force:{type:"boolean"}}}},DescribeEventBus:{input:{type:"structure",members:{Name:{}}},output:{type:"structure",members:{Name:{},Arn:{},Policy:{}}}},DescribeEventSource:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Arn:{},CreatedBy:{},CreationTime:{type:"timestamp"},ExpirationTime:{type:"timestamp"},Name:{},State:{}}}},DescribePartnerEventSource:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Arn:{},Name:{}}}},DescribeRule:{input:{type:"structure",required:["Name"],members:{Name:{},EventBusName:{}}},output:{type:"structure",members:{Name:{},Arn:{},EventPattern:{},ScheduleExpression:{},State:{},Description:{},RoleArn:{},ManagedBy:{},EventBusName:{}}}},DisableRule:{input:{type:"structure",required:["Name"],members:{Name:{},EventBusName:{}}}},EnableRule:{input:{type:"structure",required:["Name"],members:{Name:{},EventBusName:{}}}},ListEventBuses:{input:{type:"structure",members:{NamePrefix:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{EventBuses:{type:"list",member:{type:"structure",members:{Name:{},Arn:{},Policy:{}}}},NextToken:{}}}},ListEventSources:{input:{type:"structure",members:{NamePrefix:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{EventSources:{type:"list",member:{type:"structure",members:{Arn:{},CreatedBy:{},CreationTime:{type:"timestamp"},ExpirationTime:{type:"timestamp"},Name:{},State:{}}}},NextToken:{}}}},ListPartnerEventSourceAccounts:{input:{type:"structure",required:["EventSourceName"],members:{EventSourceName:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{PartnerEventSourceAccounts:{type:"list",member:{type:"structure",members:{Account:{},CreationTime:{type:"timestamp"},ExpirationTime:{type:"timestamp"},State:{}}}},NextToken:{}}}},ListPartnerEventSources:{input:{type:"structure",required:["NamePrefix"],members:{NamePrefix:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{PartnerEventSources:{type:"list",member:{type:"structure",members:{Arn:{},Name:{}}}},NextToken:{}}}},ListRuleNamesByTarget:{input:{type:"structure",required:["TargetArn"],members:{TargetArn:{},EventBusName:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{RuleNames:{type:"list",member:{}},NextToken:{}}}},ListRules:{input:{type:"structure",members:{NamePrefix:{},EventBusName:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Rules:{type:"list",member:{type:"structure",members:{Name:{},Arn:{},EventPattern:{},State:{},Description:{},ScheduleExpression:{},RoleArn:{},ManagedBy:{},EventBusName:{}}}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{}}},output:{type:"structure",members:{Tags:{shape:"S1u"}}}},ListTargetsByRule:{input:{type:"structure",required:["Rule"],members:{Rule:{},EventBusName:{},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Targets:{shape:"S20"},NextToken:{}}}},PutEvents:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{type:"structure",members:{Time:{type:"timestamp"},Source:{},Resources:{shape:"S2y"},DetailType:{},Detail:{},EventBusName:{}}}}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},Entries:{type:"list",member:{type:"structure",members:{EventId:{},ErrorCode:{},ErrorMessage:{}}}}}}},PutPartnerEvents:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{type:"structure",members:{Time:{type:"timestamp"},Source:{},Resources:{shape:"S2y"},DetailType:{},Detail:{}}}}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},Entries:{type:"list",member:{type:"structure",members:{EventId:{},ErrorCode:{},ErrorMessage:{}}}}}}},PutPermission:{input:{type:"structure",required:["Action","Principal","StatementId"],members:{EventBusName:{},Action:{},Principal:{},StatementId:{},Condition:{type:"structure",required:["Type","Key","Value"],members:{Type:{},Key:{},Value:{}}}}}},PutRule:{input:{type:"structure",required:["Name"],members:{Name:{},ScheduleExpression:{},EventPattern:{},State:{},Description:{},RoleArn:{},Tags:{shape:"S1u"},EventBusName:{}}},output:{type:"structure",members:{RuleArn:{}}}},PutTargets:{input:{type:"structure",required:["Rule","Targets"],members:{Rule:{},EventBusName:{},Targets:{shape:"S20"}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},FailedEntries:{type:"list",member:{type:"structure",members:{TargetId:{},ErrorCode:{},ErrorMessage:{}}}}}}},RemovePermission:{input:{type:"structure",required:["StatementId"],members:{StatementId:{},EventBusName:{}}}},RemoveTargets:{input:{type:"structure",required:["Rule","Ids"],members:{Rule:{},EventBusName:{},Ids:{type:"list",member:{}},Force:{type:"boolean"}}},output:{type:"structure",members:{FailedEntryCount:{type:"integer"},FailedEntries:{type:"list",member:{type:"structure",members:{TargetId:{},ErrorCode:{},ErrorMessage:{}}}}}}},TagResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"S1u"}}},output:{type:"structure",members:{}}},TestEventPattern:{input:{type:"structure",required:["EventPattern","Event"],members:{EventPattern:{},Event:{}}},output:{type:"structure",members:{Result:{type:"boolean"}}}},UntagResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}}},shapes:{S1u:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S20:{type:"list",member:{type:"structure",required:["Id","Arn"],members:{Id:{},Arn:{},RoleArn:{},Input:{},InputPath:{},InputTransformer:{type:"structure",required:["InputTemplate"],members:{InputPathsMap:{type:"map",key:{},value:{}},InputTemplate:{}}},KinesisParameters:{type:"structure",required:["PartitionKeyPath"],members:{PartitionKeyPath:{}}},RunCommandParameters:{type:"structure",required:["RunCommandTargets"],members:{RunCommandTargets:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}}}},EcsParameters:{type:"structure",required:["TaskDefinitionArn"],members:{TaskDefinitionArn:{},TaskCount:{type:"integer"},LaunchType:{},NetworkConfiguration:{type:"structure",members:{awsvpcConfiguration:{type:"structure",required:["Subnets"],members:{Subnets:{shape:"S2m"},SecurityGroups:{shape:"S2m"},AssignPublicIp:{}}}}},PlatformVersion:{},Group:{}}},BatchParameters:{type:"structure",required:["JobDefinition","JobName"],members:{JobDefinition:{},JobName:{},ArrayProperties:{type:"structure",members:{Size:{type:"integer"}}},RetryStrategy:{type:"structure",members:{Attempts:{type:"integer"}}}}},SqsParameters:{type:"structure",members:{MessageGroupId:{}}}}}},S2m:{type:"list",member:{}},S2y:{type:"list",member:{}}},paginators:{}};AWS.apiLoader.services.cloudwatchlogs={},AWS.CloudWatchLogs=AWS.Service.defineService("cloudwatchlogs",["2014-03-28"]);AWS.apiLoader.services.cloudwatchlogs["2014-03-28"]={version:"2.0",metadata:{apiVersion:"2014-03-28",endpointPrefix:"logs",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon CloudWatch Logs",serviceId:"CloudWatch Logs",signatureVersion:"v4",targetPrefix:"Logs_20140328",uid:"logs-2014-03-28"},operations:{AssociateKmsKey:{input:{type:"structure",required:["logGroupName","kmsKeyId"],members:{logGroupName:{},kmsKeyId:{}}}},CancelExportTask:{input:{type:"structure",required:["taskId"],members:{taskId:{}}}},CreateExportTask:{input:{type:"structure",required:["logGroupName","from","to","destination"],members:{taskName:{},logGroupName:{},logStreamNamePrefix:{},from:{type:"long"},to:{type:"long"},destination:{},destinationPrefix:{}}},output:{type:"structure",members:{taskId:{}}}},CreateLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},kmsKeyId:{},tags:{shape:"Se"}}}},CreateLogStream:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{}}}},DeleteDestination:{input:{type:"structure",required:["destinationName"],members:{destinationName:{}}}},DeleteLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}}},DeleteLogStream:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{}}}},DeleteMetricFilter:{input:{type:"structure",required:["logGroupName","filterName"],members:{logGroupName:{},filterName:{}}}},DeleteResourcePolicy:{input:{type:"structure",members:{policyName:{}}}},DeleteRetentionPolicy:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}}},DeleteSubscriptionFilter:{input:{type:"structure",required:["logGroupName","filterName"],members:{logGroupName:{},filterName:{}}}},DescribeDestinations:{input:{type:"structure",members:{DestinationNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{destinations:{type:"list",member:{shape:"Sx"}},nextToken:{}}}},DescribeExportTasks:{input:{type:"structure",members:{taskId:{},statusCode:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{exportTasks:{type:"list",member:{type:"structure",members:{taskId:{},taskName:{},logGroupName:{},from:{type:"long"},to:{type:"long"},destination:{},destinationPrefix:{},status:{type:"structure",members:{code:{},message:{}}},executionInfo:{type:"structure",members:{creationTime:{type:"long"},completionTime:{type:"long"}}}}}},nextToken:{}}}},DescribeLogGroups:{input:{type:"structure",members:{logGroupNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{logGroups:{type:"list",member:{type:"structure",members:{logGroupName:{},creationTime:{type:"long"},retentionInDays:{type:"integer"},metricFilterCount:{type:"integer"},arn:{},storedBytes:{type:"long"},kmsKeyId:{}}}},nextToken:{}}}},DescribeLogStreams:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},logStreamNamePrefix:{},orderBy:{},descending:{type:"boolean"},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{logStreams:{type:"list",member:{type:"structure",members:{logStreamName:{},creationTime:{type:"long"},firstEventTimestamp:{type:"long"},lastEventTimestamp:{type:"long"},lastIngestionTime:{type:"long"},uploadSequenceToken:{},arn:{},storedBytes:{deprecated:!0,deprecatedMessage:"Starting on June 17, 2019, this parameter will be deprecated for log streams, and will be reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected.",type:"long"}}}},nextToken:{}}}},DescribeMetricFilters:{input:{type:"structure",members:{logGroupName:{},filterNamePrefix:{},nextToken:{},limit:{type:"integer"},metricName:{},metricNamespace:{}}},output:{type:"structure",members:{metricFilters:{type:"list",member:{type:"structure",members:{filterName:{},filterPattern:{},metricTransformations:{shape:"S1v"},creationTime:{type:"long"},logGroupName:{}}}},nextToken:{}}}},DescribeQueries:{input:{type:"structure",members:{logGroupName:{},status:{},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{queries:{type:"list",member:{type:"structure",members:{queryId:{},queryString:{},status:{},createTime:{type:"long"},logGroupName:{}}}},nextToken:{}}}},DescribeResourcePolicies:{input:{type:"structure",members:{nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{resourcePolicies:{type:"list",member:{shape:"S2a"}},nextToken:{}}}},DescribeSubscriptionFilters:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},filterNamePrefix:{},nextToken:{},limit:{type:"integer"}}},output:{type:"structure",members:{subscriptionFilters:{type:"list",member:{type:"structure",members:{filterName:{},logGroupName:{},filterPattern:{},destinationArn:{},roleArn:{},distribution:{},creationTime:{type:"long"}}}},nextToken:{}}}},DisassociateKmsKey:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}}},FilterLogEvents:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},logStreamNames:{type:"list",member:{}},logStreamNamePrefix:{},startTime:{type:"long"},endTime:{type:"long"},filterPattern:{},nextToken:{},limit:{type:"integer"},interleaved:{deprecated:!0,deprecatedMessage:"Starting on June 17, 2019, this parameter will be ignored and the value will be assumed to be true. The response from this operation will always interleave events from multiple log streams within a log group.",type:"boolean"}}},output:{type:"structure",members:{events:{type:"list",member:{type:"structure",members:{logStreamName:{},timestamp:{type:"long"},message:{},ingestionTime:{type:"long"},eventId:{}}}},searchedLogStreams:{type:"list",member:{type:"structure",members:{logStreamName:{},searchedCompletely:{type:"boolean"}}}},nextToken:{}}}},GetLogEvents:{input:{type:"structure",required:["logGroupName","logStreamName"],members:{logGroupName:{},logStreamName:{},startTime:{type:"long"},endTime:{type:"long"},nextToken:{},limit:{type:"integer"},startFromHead:{type:"boolean"}}},output:{type:"structure",members:{events:{type:"list",member:{type:"structure",members:{timestamp:{type:"long"},message:{},ingestionTime:{type:"long"}}}},nextForwardToken:{},nextBackwardToken:{}}}},GetLogGroupFields:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{},time:{type:"long"}}},output:{type:"structure",members:{logGroupFields:{type:"list",member:{type:"structure",members:{name:{},percent:{type:"integer"}}}}}}},GetLogRecord:{input:{type:"structure",required:["logRecordPointer"],members:{logRecordPointer:{}}},output:{type:"structure",members:{logRecord:{type:"map",key:{},value:{}}}}},GetQueryResults:{input:{type:"structure",required:["queryId"],members:{queryId:{}}},output:{type:"structure",members:{results:{type:"list",member:{type:"list",member:{type:"structure",members:{field:{},value:{}}}}},statistics:{type:"structure",members:{recordsMatched:{type:"double"},recordsScanned:{type:"double"},bytesScanned:{type:"double"}}},status:{}}}},ListTagsLogGroup:{input:{type:"structure",required:["logGroupName"],members:{logGroupName:{}}},output:{type:"structure",members:{tags:{shape:"Se"}}}},PutDestination:{input:{type:"structure",required:["destinationName","targetArn","roleArn"],members:{destinationName:{},targetArn:{},roleArn:{}}},output:{type:"structure",members:{destination:{shape:"Sx"}}}},PutDestinationPolicy:{input:{type:"structure",required:["destinationName","accessPolicy"],members:{destinationName:{},accessPolicy:{}}}},PutLogEvents:{input:{type:"structure",required:["logGroupName","logStreamName","logEvents"],members:{logGroupName:{},logStreamName:{},logEvents:{type:"list",member:{type:"structure",required:["timestamp","message"],members:{timestamp:{type:"long"},message:{}}}},sequenceToken:{}}},output:{type:"structure",members:{nextSequenceToken:{},rejectedLogEventsInfo:{type:"structure",members:{tooNewLogEventStartIndex:{type:"integer"},tooOldLogEventEndIndex:{type:"integer"},expiredLogEventEndIndex:{type:"integer"}}}}}},PutMetricFilter:{input:{type:"structure",required:["logGroupName","filterName","filterPattern","metricTransformations"],members:{logGroupName:{},filterName:{},filterPattern:{},metricTransformations:{shape:"S1v"}}}},PutResourcePolicy:{input:{type:"structure",members:{policyName:{},policyDocument:{}}},output:{type:"structure",members:{resourcePolicy:{shape:"S2a"}}}},PutRetentionPolicy:{input:{type:"structure",required:["logGroupName","retentionInDays"],members:{logGroupName:{},retentionInDays:{type:"integer"}}}},PutSubscriptionFilter:{input:{type:"structure",required:["logGroupName","filterName","filterPattern","destinationArn"],members:{logGroupName:{},filterName:{},filterPattern:{},destinationArn:{},roleArn:{},distribution:{}}}},StartQuery:{input:{type:"structure",required:["startTime","endTime","queryString"],members:{logGroupName:{},logGroupNames:{type:"list",member:{}},startTime:{type:"long"},endTime:{type:"long"},queryString:{},limit:{type:"integer"}}},output:{type:"structure",members:{queryId:{}}}},StopQuery:{input:{type:"structure",required:["queryId"],members:{queryId:{}}},output:{type:"structure",members:{success:{type:"boolean"}}}},TagLogGroup:{input:{type:"structure",required:["logGroupName","tags"],members:{logGroupName:{},tags:{shape:"Se"}}}},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:{}}}}}}}},UntagLogGroup:{input:{type:"structure",required:["logGroupName","tags"],members:{logGroupName:{},tags:{type:"list",member:{}}}}}},shapes:{Se:{type:"map",key:{},value:{}},Sx:{type:"structure",members:{destinationName:{},targetArn:{},roleArn:{},accessPolicy:{},arn:{},creationTime:{type:"long"}}},S1v:{type:"list",member:{type:"structure",required:["metricName","metricNamespace","metricValue"],members:{metricName:{},metricNamespace:{},metricValue:{},defaultValue:{type:"double"}}}},S2a:{type:"structure",members:{policyName:{},policyDocument:{},lastUpdatedTime:{type:"long"}}}},paginators:{DescribeDestinations:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"destinations"},DescribeLogGroups:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"logGroups"},DescribeLogStreams:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"logStreams"},DescribeMetricFilters:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"metricFilters"},DescribeSubscriptionFilters:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"subscriptionFilters"},FilterLogEvents:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:["events","searchedLogStreams"]},GetLogEvents:{input_token:"nextToken",limit_key:"limit",output_token:"nextForwardToken",result_key:"events"}}};AWS.apiLoader.services.codecommit={},AWS.CodeCommit=AWS.Service.defineService("codecommit",["2015-04-13"]);AWS.apiLoader.services.codecommit["2015-04-13"]={version:"2.0",metadata:{apiVersion:"2015-04-13",endpointPrefix:"codecommit",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"CodeCommit",serviceFullName:"AWS CodeCommit",serviceId:"CodeCommit",signatureVersion:"v4",targetPrefix:"CodeCommit_20150413",uid:"codecommit-2015-04-13"},operations:{AssociateApprovalRuleTemplateWithRepository:{input:{type:"structure",required:["approvalRuleTemplateName","repositoryName"],members:{approvalRuleTemplateName:{},repositoryName:{}}}},BatchAssociateApprovalRuleTemplateWithRepositories:{input:{type:"structure",required:["approvalRuleTemplateName","repositoryNames"],members:{approvalRuleTemplateName:{},repositoryNames:{shape:"S5"}}},output:{type:"structure",required:["associatedRepositoryNames","errors"],members:{associatedRepositoryNames:{shape:"S5"},errors:{type:"list",member:{type:"structure",members:{repositoryName:{},errorCode:{},errorMessage:{}}}}}}},BatchDescribeMergeConflicts:{input:{type:"structure",required:["repositoryName","destinationCommitSpecifier","sourceCommitSpecifier","mergeOption"],members:{repositoryName:{},destinationCommitSpecifier:{},sourceCommitSpecifier:{},mergeOption:{},maxMergeHunks:{type:"integer"},maxConflictFiles:{type:"integer"},filePaths:{type:"list",member:{}},conflictDetailLevel:{},conflictResolutionStrategy:{},nextToken:{}}},output:{type:"structure",required:["conflicts","destinationCommitId","sourceCommitId"],members:{conflicts:{type:"list",member:{type:"structure",members:{conflictMetadata:{shape:"Sn"},mergeHunks:{shape:"S12"}}}},nextToken:{},errors:{type:"list",member:{type:"structure",required:["filePath","exceptionName","message"],members:{filePath:{},exceptionName:{},message:{}}}},destinationCommitId:{},sourceCommitId:{},baseCommitId:{}}}},BatchDisassociateApprovalRuleTemplateFromRepositories:{input:{type:"structure",required:["approvalRuleTemplateName","repositoryNames"],members:{approvalRuleTemplateName:{},repositoryNames:{shape:"S5"}}},output:{type:"structure",required:["disassociatedRepositoryNames","errors"],members:{disassociatedRepositoryNames:{shape:"S5"},errors:{type:"list",member:{type:"structure",members:{repositoryName:{},errorCode:{},errorMessage:{}}}}}}},BatchGetCommits:{input:{type:"structure",required:["commitIds","repositoryName"],members:{commitIds:{type:"list",member:{}},repositoryName:{}}},output:{type:"structure",members:{commits:{type:"list",member:{shape:"S1l"}},errors:{type:"list",member:{type:"structure",members:{commitId:{},errorCode:{},errorMessage:{}}}}}}},BatchGetRepositories:{input:{type:"structure",required:["repositoryNames"],members:{repositoryNames:{shape:"S5"}}},output:{type:"structure",members:{repositories:{type:"list",member:{shape:"S1x"}},repositoriesNotFound:{type:"list",member:{}}}}},CreateApprovalRuleTemplate:{input:{type:"structure",required:["approvalRuleTemplateName","approvalRuleTemplateContent"],members:{approvalRuleTemplateName:{},approvalRuleTemplateContent:{},approvalRuleTemplateDescription:{}}},output:{type:"structure",required:["approvalRuleTemplate"],members:{approvalRuleTemplate:{shape:"S2c"}}}},CreateBranch:{input:{type:"structure",required:["repositoryName","branchName","commitId"],members:{repositoryName:{},branchName:{},commitId:{}}}},CreateCommit:{input:{type:"structure",required:["repositoryName","branchName"],members:{repositoryName:{},branchName:{},parentCommitId:{},authorName:{},email:{},commitMessage:{},keepEmptyFolders:{type:"boolean"},putFiles:{type:"list",member:{type:"structure",required:["filePath"],members:{filePath:{},fileMode:{},fileContent:{type:"blob"},sourceFile:{type:"structure",required:["filePath"],members:{filePath:{},isMove:{type:"boolean"}}}}}},deleteFiles:{shape:"S2o"},setFileModes:{shape:"S2q"}}},output:{type:"structure",members:{commitId:{},treeId:{},filesAdded:{shape:"S2t"},filesUpdated:{shape:"S2t"},filesDeleted:{shape:"S2t"}}}},CreatePullRequest:{input:{type:"structure",required:["title","targets"],members:{title:{},description:{},targets:{type:"list",member:{type:"structure",required:["repositoryName","sourceReference"],members:{repositoryName:{},sourceReference:{},destinationReference:{}}}},clientRequestToken:{idempotencyToken:!0}}},output:{type:"structure",required:["pullRequest"],members:{pullRequest:{shape:"S33"}}}},CreatePullRequestApprovalRule:{input:{type:"structure",required:["pullRequestId","approvalRuleName","approvalRuleContent"],members:{pullRequestId:{},approvalRuleName:{},approvalRuleContent:{}}},output:{type:"structure",required:["approvalRule"],members:{approvalRule:{shape:"S3c"}}}},CreateRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},repositoryDescription:{},tags:{shape:"S3k"}}},output:{type:"structure",members:{repositoryMetadata:{shape:"S1x"}}}},CreateUnreferencedMergeCommit:{input:{type:"structure",required:["repositoryName","sourceCommitSpecifier","destinationCommitSpecifier","mergeOption"],members:{repositoryName:{},sourceCommitSpecifier:{},destinationCommitSpecifier:{},mergeOption:{},conflictDetailLevel:{},conflictResolutionStrategy:{},authorName:{},email:{},commitMessage:{},keepEmptyFolders:{type:"boolean"},conflictResolution:{shape:"S3p"}}},output:{type:"structure",members:{commitId:{},treeId:{}}}},DeleteApprovalRuleTemplate:{input:{type:"structure",required:["approvalRuleTemplateName"],members:{approvalRuleTemplateName:{}}},output:{type:"structure",required:["approvalRuleTemplateId"],members:{approvalRuleTemplateId:{}}}},DeleteBranch:{input:{type:"structure",required:["repositoryName","branchName"],members:{repositoryName:{},branchName:{}}},output:{type:"structure",members:{deletedBranch:{shape:"S3y"}}}},DeleteCommentContent:{input:{type:"structure",required:["commentId"],members:{commentId:{}}},output:{type:"structure",members:{comment:{shape:"S42"}}}},DeleteFile:{input:{type:"structure",required:["repositoryName","branchName","filePath","parentCommitId"],members:{repositoryName:{},branchName:{},filePath:{},parentCommitId:{},keepEmptyFolders:{type:"boolean"},commitMessage:{},name:{},email:{}}},output:{type:"structure",required:["commitId","blobId","treeId","filePath"],members:{commitId:{},blobId:{},treeId:{},filePath:{}}}},DeletePullRequestApprovalRule:{input:{type:"structure",required:["pullRequestId","approvalRuleName"],members:{pullRequestId:{},approvalRuleName:{}}},output:{type:"structure",required:["approvalRuleId"],members:{approvalRuleId:{}}}},DeleteRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{repositoryId:{}}}},DescribeMergeConflicts:{input:{type:"structure",required:["repositoryName","destinationCommitSpecifier","sourceCommitSpecifier","mergeOption","filePath"],members:{repositoryName:{},destinationCommitSpecifier:{},sourceCommitSpecifier:{},mergeOption:{},maxMergeHunks:{type:"integer"},filePath:{},conflictDetailLevel:{},conflictResolutionStrategy:{},nextToken:{}}},output:{type:"structure",required:["conflictMetadata","mergeHunks","destinationCommitId","sourceCommitId"],members:{conflictMetadata:{shape:"Sn"},mergeHunks:{shape:"S12"},nextToken:{},destinationCommitId:{},sourceCommitId:{},baseCommitId:{}}}},DescribePullRequestEvents:{input:{type:"structure",required:["pullRequestId"],members:{pullRequestId:{},pullRequestEventType:{},actorArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["pullRequestEvents"],members:{pullRequestEvents:{type:"list",member:{type:"structure",members:{pullRequestId:{},eventDate:{type:"timestamp"},pullRequestEventType:{},actorArn:{},pullRequestCreatedEventMetadata:{type:"structure",members:{repositoryName:{},sourceCommitId:{},destinationCommitId:{},mergeBase:{}}},pullRequestStatusChangedEventMetadata:{type:"structure",members:{pullRequestStatus:{}}},pullRequestSourceReferenceUpdatedEventMetadata:{type:"structure",members:{repositoryName:{},beforeCommitId:{},afterCommitId:{},mergeBase:{}}},pullRequestMergedStateChangedEventMetadata:{type:"structure",members:{repositoryName:{},destinationReference:{},mergeMetadata:{shape:"S38"}}},approvalRuleEventMetadata:{type:"structure",members:{approvalRuleName:{},approvalRuleId:{},approvalRuleContent:{}}},approvalStateChangedEventMetadata:{type:"structure",members:{revisionId:{},approvalStatus:{}}},approvalRuleOverriddenEventMetadata:{type:"structure",members:{revisionId:{},overrideStatus:{}}}}}},nextToken:{}}}},DisassociateApprovalRuleTemplateFromRepository:{input:{type:"structure",required:["approvalRuleTemplateName","repositoryName"],members:{approvalRuleTemplateName:{},repositoryName:{}}}},EvaluatePullRequestApprovalRules:{input:{type:"structure",required:["pullRequestId","revisionId"],members:{pullRequestId:{},revisionId:{}}},output:{type:"structure",required:["evaluation"],members:{evaluation:{type:"structure",members:{approved:{type:"boolean"},overridden:{type:"boolean"},approvalRulesSatisfied:{type:"list",member:{}},approvalRulesNotSatisfied:{type:"list",member:{}}}}}}},GetApprovalRuleTemplate:{input:{type:"structure",required:["approvalRuleTemplateName"],members:{approvalRuleTemplateName:{}}},output:{type:"structure",required:["approvalRuleTemplate"],members:{approvalRuleTemplate:{shape:"S2c"}}}},GetBlob:{input:{type:"structure",required:["repositoryName","blobId"],members:{repositoryName:{},blobId:{}}},output:{type:"structure",required:["content"],members:{content:{type:"blob"}}}},GetBranch:{input:{type:"structure",members:{repositoryName:{},branchName:{}}},output:{type:"structure",members:{branch:{shape:"S3y"}}}},GetComment:{input:{type:"structure",required:["commentId"],members:{commentId:{}}},output:{type:"structure",members:{comment:{shape:"S42"}}}},GetCommentsForComparedCommit:{input:{type:"structure",required:["repositoryName","afterCommitId"],members:{repositoryName:{},beforeCommitId:{},afterCommitId:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{commentsForComparedCommitData:{type:"list",member:{type:"structure",members:{repositoryName:{},beforeCommitId:{},afterCommitId:{},beforeBlobId:{},afterBlobId:{},location:{shape:"S5d"},comments:{shape:"S5g"}}}},nextToken:{}}}},GetCommentsForPullRequest:{input:{type:"structure",required:["pullRequestId"],members:{pullRequestId:{},repositoryName:{},beforeCommitId:{},afterCommitId:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{commentsForPullRequestData:{type:"list",member:{type:"structure",members:{pullRequestId:{},repositoryName:{},beforeCommitId:{},afterCommitId:{},beforeBlobId:{},afterBlobId:{},location:{shape:"S5d"},comments:{shape:"S5g"}}}},nextToken:{}}}},GetCommit:{input:{type:"structure",required:["repositoryName","commitId"],members:{repositoryName:{},commitId:{}}},output:{type:"structure",required:["commit"],members:{commit:{shape:"S1l"}}}},GetDifferences:{input:{type:"structure",required:["repositoryName","afterCommitSpecifier"],members:{repositoryName:{},beforeCommitSpecifier:{},afterCommitSpecifier:{},beforePath:{},afterPath:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{differences:{type:"list",member:{type:"structure",members:{beforeBlob:{shape:"S5s"},afterBlob:{shape:"S5s"},changeType:{}}}},NextToken:{}}}},GetFile:{input:{type:"structure",required:["repositoryName","filePath"],members:{repositoryName:{},commitSpecifier:{},filePath:{}}},output:{type:"structure",required:["commitId","blobId","filePath","fileMode","fileSize","fileContent"],members:{commitId:{},blobId:{},filePath:{},fileMode:{},fileSize:{type:"long"},fileContent:{type:"blob"}}}},GetFolder:{input:{type:"structure",required:["repositoryName","folderPath"],members:{repositoryName:{},commitSpecifier:{},folderPath:{}}},output:{type:"structure",required:["commitId","folderPath"],members:{commitId:{},folderPath:{},treeId:{},subFolders:{type:"list",member:{type:"structure",members:{treeId:{},absolutePath:{},relativePath:{}}}},files:{type:"list",member:{type:"structure",members:{blobId:{},absolutePath:{},relativePath:{},fileMode:{}}}},symbolicLinks:{type:"list",member:{type:"structure",members:{blobId:{},absolutePath:{},relativePath:{},fileMode:{}}}},subModules:{type:"list",member:{type:"structure",members:{commitId:{},absolutePath:{},relativePath:{}}}}}}},GetMergeCommit:{input:{type:"structure",required:["repositoryName","sourceCommitSpecifier","destinationCommitSpecifier"],members:{repositoryName:{},sourceCommitSpecifier:{},destinationCommitSpecifier:{},conflictDetailLevel:{},conflictResolutionStrategy:{}}},output:{type:"structure",members:{sourceCommitId:{},destinationCommitId:{},baseCommitId:{},mergedCommitId:{}}}},GetMergeConflicts:{input:{type:"structure",required:["repositoryName","destinationCommitSpecifier","sourceCommitSpecifier","mergeOption"],members:{repositoryName:{},destinationCommitSpecifier:{},sourceCommitSpecifier:{},mergeOption:{},conflictDetailLevel:{},maxConflictFiles:{type:"integer"},conflictResolutionStrategy:{},nextToken:{}}},output:{type:"structure",required:["mergeable","destinationCommitId","sourceCommitId","conflictMetadataList"],members:{mergeable:{type:"boolean"},destinationCommitId:{},sourceCommitId:{},baseCommitId:{},conflictMetadataList:{type:"list",member:{shape:"Sn"}},nextToken:{}}}},GetMergeOptions:{input:{type:"structure",required:["repositoryName","sourceCommitSpecifier","destinationCommitSpecifier"],members:{repositoryName:{},sourceCommitSpecifier:{},destinationCommitSpecifier:{},conflictDetailLevel:{},conflictResolutionStrategy:{}}},output:{type:"structure",required:["mergeOptions","sourceCommitId","destinationCommitId","baseCommitId"],members:{mergeOptions:{type:"list",member:{}},sourceCommitId:{},destinationCommitId:{},baseCommitId:{}}}},GetPullRequest:{input:{type:"structure",required:["pullRequestId"],members:{pullRequestId:{}}},output:{type:"structure",required:["pullRequest"],members:{pullRequest:{shape:"S33"}}}},GetPullRequestApprovalStates:{input:{type:"structure",required:["pullRequestId","revisionId"],members:{pullRequestId:{},revisionId:{}}},output:{type:"structure",members:{approvals:{type:"list",member:{type:"structure",members:{userArn:{},approvalState:{}}}}}}},GetPullRequestOverrideState:{input:{type:"structure",required:["pullRequestId","revisionId"],members:{pullRequestId:{},revisionId:{}}},output:{type:"structure",members:{overridden:{type:"boolean"},overrider:{}}}},GetRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{repositoryMetadata:{shape:"S1x"}}}},GetRepositoryTriggers:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{}}},output:{type:"structure",members:{configurationId:{},triggers:{shape:"S6t"}}}},ListApprovalRuleTemplates:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{approvalRuleTemplateNames:{shape:"S72"},nextToken:{}}}},ListAssociatedApprovalRuleTemplatesForRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{approvalRuleTemplateNames:{shape:"S72"},nextToken:{}}}},ListBranches:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},nextToken:{}}},output:{type:"structure",members:{branches:{shape:"S6x"},nextToken:{}}}},ListPullRequests:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},authorArn:{},pullRequestStatus:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["pullRequestIds"],members:{pullRequestIds:{type:"list",member:{}},nextToken:{}}}},ListRepositories:{input:{type:"structure",members:{nextToken:{},sortBy:{},order:{}}},output:{type:"structure",members:{repositories:{type:"list",member:{type:"structure",members:{repositoryName:{},repositoryId:{}}}},nextToken:{}}}},ListRepositoriesForApprovalRuleTemplate:{input:{type:"structure",required:["approvalRuleTemplateName"],members:{approvalRuleTemplateName:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{repositoryNames:{shape:"S5"},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{},nextToken:{}}},output:{type:"structure",members:{tags:{shape:"S3k"},nextToken:{}}}},MergeBranchesByFastForward:{input:{type:"structure",required:["repositoryName","sourceCommitSpecifier","destinationCommitSpecifier"],members:{repositoryName:{},sourceCommitSpecifier:{},destinationCommitSpecifier:{},targetBranch:{}}},output:{type:"structure",members:{commitId:{},treeId:{}}}},MergeBranchesBySquash:{input:{type:"structure",required:["repositoryName","sourceCommitSpecifier","destinationCommitSpecifier"],members:{repositoryName:{},sourceCommitSpecifier:{},destinationCommitSpecifier:{},targetBranch:{},conflictDetailLevel:{},conflictResolutionStrategy:{},authorName:{},email:{},commitMessage:{},keepEmptyFolders:{type:"boolean"},conflictResolution:{shape:"S3p"}}},output:{type:"structure",members:{commitId:{},treeId:{}}}},MergeBranchesByThreeWay:{input:{type:"structure",required:["repositoryName","sourceCommitSpecifier","destinationCommitSpecifier"],members:{repositoryName:{},sourceCommitSpecifier:{},destinationCommitSpecifier:{},targetBranch:{},conflictDetailLevel:{},conflictResolutionStrategy:{},authorName:{},email:{},commitMessage:{},keepEmptyFolders:{type:"boolean"},conflictResolution:{shape:"S3p"}}},output:{type:"structure",members:{commitId:{},treeId:{}}}},MergePullRequestByFastForward:{input:{type:"structure",required:["pullRequestId","repositoryName"],members:{pullRequestId:{},repositoryName:{},sourceCommitId:{}}},output:{type:"structure",members:{pullRequest:{shape:"S33"}}}},MergePullRequestBySquash:{input:{type:"structure",required:["pullRequestId","repositoryName"],members:{pullRequestId:{},repositoryName:{},sourceCommitId:{},conflictDetailLevel:{},conflictResolutionStrategy:{},commitMessage:{},authorName:{},email:{},keepEmptyFolders:{type:"boolean"},conflictResolution:{shape:"S3p"}}},output:{type:"structure",members:{pullRequest:{shape:"S33"}}}},MergePullRequestByThreeWay:{input:{type:"structure",required:["pullRequestId","repositoryName"],members:{pullRequestId:{},repositoryName:{},sourceCommitId:{},conflictDetailLevel:{},conflictResolutionStrategy:{},commitMessage:{},authorName:{},email:{},keepEmptyFolders:{type:"boolean"},conflictResolution:{shape:"S3p"}}},output:{type:"structure",members:{pullRequest:{shape:"S33"}}}},OverridePullRequestApprovalRules:{input:{type:"structure",required:["pullRequestId","revisionId","overrideStatus"],members:{pullRequestId:{},revisionId:{},overrideStatus:{}}}},PostCommentForComparedCommit:{input:{type:"structure",required:["repositoryName","afterCommitId","content"],members:{repositoryName:{},beforeCommitId:{},afterCommitId:{},location:{shape:"S5d"},content:{},clientRequestToken:{idempotencyToken:!0}}},output:{type:"structure",members:{repositoryName:{},beforeCommitId:{},afterCommitId:{},beforeBlobId:{},afterBlobId:{},location:{shape:"S5d"},comment:{shape:"S42"}}},idempotent:!0},PostCommentForPullRequest:{input:{type:"structure",required:["pullRequestId","repositoryName","beforeCommitId","afterCommitId","content"],members:{pullRequestId:{},repositoryName:{},beforeCommitId:{},afterCommitId:{},location:{shape:"S5d"},content:{},clientRequestToken:{idempotencyToken:!0}}},output:{type:"structure",members:{repositoryName:{},pullRequestId:{},beforeCommitId:{},afterCommitId:{},beforeBlobId:{},afterBlobId:{},location:{shape:"S5d"},comment:{shape:"S42"}}},idempotent:!0},PostCommentReply:{input:{type:"structure",required:["inReplyTo","content"],members:{inReplyTo:{},clientRequestToken:{idempotencyToken:!0},content:{}}},output:{type:"structure",members:{comment:{shape:"S42"}}},idempotent:!0},PutFile:{input:{type:"structure",required:["repositoryName","branchName","fileContent","filePath"],members:{repositoryName:{},branchName:{},fileContent:{type:"blob"},filePath:{},fileMode:{},parentCommitId:{},commitMessage:{},name:{},email:{}}},output:{type:"structure",required:["commitId","blobId","treeId"],members:{commitId:{},blobId:{},treeId:{}}}},PutRepositoryTriggers:{input:{type:"structure",required:["repositoryName","triggers"],members:{repositoryName:{},triggers:{shape:"S6t"}}},output:{type:"structure",members:{configurationId:{}}}},TagResource:{input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{},tags:{shape:"S3k"}}}},TestRepositoryTriggers:{input:{type:"structure",required:["repositoryName","triggers"],members:{repositoryName:{},triggers:{shape:"S6t"}}},output:{type:"structure",members:{successfulExecutions:{type:"list",member:{}},failedExecutions:{type:"list",member:{type:"structure",members:{trigger:{},failureMessage:{}}}}}}},UntagResource:{input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{},tagKeys:{type:"list",member:{}}}}},UpdateApprovalRuleTemplateContent:{input:{type:"structure",required:["approvalRuleTemplateName","newRuleContent"],members:{approvalRuleTemplateName:{},newRuleContent:{},existingRuleContentSha256:{}}},output:{type:"structure",required:["approvalRuleTemplate"],members:{approvalRuleTemplate:{shape:"S2c"}}}},UpdateApprovalRuleTemplateDescription:{input:{type:"structure",required:["approvalRuleTemplateName","approvalRuleTemplateDescription"],members:{approvalRuleTemplateName:{},approvalRuleTemplateDescription:{}}},output:{type:"structure",required:["approvalRuleTemplate"],members:{approvalRuleTemplate:{shape:"S2c"}}}},UpdateApprovalRuleTemplateName:{input:{type:"structure",required:["oldApprovalRuleTemplateName","newApprovalRuleTemplateName"],members:{oldApprovalRuleTemplateName:{},newApprovalRuleTemplateName:{}}},output:{type:"structure",required:["approvalRuleTemplate"],members:{approvalRuleTemplate:{shape:"S2c"}}}},UpdateComment:{input:{type:"structure",required:["commentId","content"],members:{commentId:{},content:{}}},output:{type:"structure",members:{comment:{shape:"S42"}}}},UpdateDefaultBranch:{input:{type:"structure",required:["repositoryName","defaultBranchName"],members:{repositoryName:{},defaultBranchName:{}}}},UpdatePullRequestApprovalRuleContent:{input:{type:"structure",required:["pullRequestId","approvalRuleName","newRuleContent"],members:{pullRequestId:{},approvalRuleName:{},existingRuleContentSha256:{},newRuleContent:{}}},output:{type:"structure",required:["approvalRule"],members:{approvalRule:{shape:"S3c"}}}},UpdatePullRequestApprovalState:{input:{type:"structure",required:["pullRequestId","revisionId","approvalState"],members:{pullRequestId:{},revisionId:{},approvalState:{}}}},UpdatePullRequestDescription:{input:{type:"structure",required:["pullRequestId","description"],members:{pullRequestId:{},description:{}}},output:{type:"structure",required:["pullRequest"],members:{pullRequest:{shape:"S33"}}}},UpdatePullRequestStatus:{input:{type:"structure",required:["pullRequestId","pullRequestStatus"],members:{pullRequestId:{},pullRequestStatus:{}}},output:{type:"structure",required:["pullRequest"],members:{pullRequest:{shape:"S33"}}}},UpdatePullRequestTitle:{input:{type:"structure",required:["pullRequestId","title"],members:{pullRequestId:{},title:{}}},output:{type:"structure",required:["pullRequest"],members:{pullRequest:{shape:"S33"}}}},UpdateRepositoryDescription:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},repositoryDescription:{}}}},UpdateRepositoryName:{input:{type:"structure",required:["oldName","newName"],members:{oldName:{},newName:{}}}}},shapes:{S5:{type:"list",member:{}},Sn:{type:"structure",members:{filePath:{},fileSizes:{type:"structure",members:{source:{type:"long"},destination:{type:"long"},base:{type:"long"}}},fileModes:{type:"structure",members:{source:{},destination:{},base:{}}},objectTypes:{type:"structure",members:{source:{},destination:{},base:{}}},numberOfConflicts:{type:"integer"},isBinaryFile:{type:"structure",members:{source:{type:"boolean"},destination:{type:"boolean"},base:{type:"boolean"}}},contentConflict:{type:"boolean"},fileModeConflict:{type:"boolean"},objectTypeConflict:{type:"boolean"},mergeOperations:{type:"structure",members:{source:{},destination:{}}}}},S12:{type:"list",member:{type:"structure",members:{isConflict:{type:"boolean"},source:{shape:"S15"},destination:{shape:"S15"},base:{shape:"S15"}}}},S15:{type:"structure",members:{startLine:{type:"integer"},endLine:{type:"integer"},hunkContent:{}}},S1l:{type:"structure",members:{commitId:{},treeId:{},parents:{type:"list",member:{}},message:{},author:{shape:"S1n"},committer:{shape:"S1n"},additionalData:{}}},S1n:{type:"structure",members:{name:{},email:{},date:{}}},S1x:{type:"structure",members:{accountId:{},repositoryId:{},repositoryName:{},repositoryDescription:{},defaultBranch:{},lastModifiedDate:{type:"timestamp"},creationDate:{type:"timestamp"},cloneUrlHttp:{},cloneUrlSsh:{},Arn:{}}},S2c:{type:"structure",members:{approvalRuleTemplateId:{},approvalRuleTemplateName:{},approvalRuleTemplateDescription:{},approvalRuleTemplateContent:{},ruleContentSha256:{},lastModifiedDate:{type:"timestamp"},creationDate:{type:"timestamp"},lastModifiedUser:{}}},S2o:{type:"list",member:{type:"structure",required:["filePath"],members:{filePath:{}}}},S2q:{type:"list",member:{type:"structure",required:["filePath","fileMode"],members:{filePath:{},fileMode:{}}}},S2t:{type:"list",member:{type:"structure",members:{absolutePath:{},blobId:{},fileMode:{}}}},S33:{type:"structure",members:{pullRequestId:{},title:{},description:{},lastActivityDate:{type:"timestamp"},creationDate:{type:"timestamp"},pullRequestStatus:{},authorArn:{},pullRequestTargets:{type:"list",member:{type:"structure",members:{repositoryName:{},sourceReference:{},destinationReference:{},destinationCommit:{},sourceCommit:{},mergeBase:{},mergeMetadata:{shape:"S38"}}}},clientRequestToken:{},revisionId:{},approvalRules:{type:"list",member:{shape:"S3c"}}}},S38:{type:"structure",members:{isMerged:{type:"boolean"},mergedBy:{},mergeCommitId:{},mergeOption:{}}},S3c:{type:"structure",members:{approvalRuleId:{},approvalRuleName:{},approvalRuleContent:{},ruleContentSha256:{},lastModifiedDate:{type:"timestamp"},creationDate:{type:"timestamp"},lastModifiedUser:{},originApprovalRuleTemplate:{type:"structure",members:{approvalRuleTemplateId:{},approvalRuleTemplateName:{}}}}},S3k:{type:"map",key:{},value:{}},S3p:{type:"structure",members:{replaceContents:{type:"list",member:{type:"structure",required:["filePath","replacementType"],members:{filePath:{},replacementType:{},content:{type:"blob"},fileMode:{}}}},deleteFiles:{shape:"S2o"},setFileModes:{shape:"S2q"}}},S3y:{type:"structure",members:{branchName:{},commitId:{}}},S42:{type:"structure",members:{commentId:{},content:{},inReplyTo:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},authorArn:{},deleted:{type:"boolean"},clientRequestToken:{}}},S5d:{type:"structure",members:{filePath:{},filePosition:{type:"long"},relativeFileVersion:{}}},S5g:{type:"list",member:{shape:"S42"}},S5s:{type:"structure",members:{blobId:{},path:{},mode:{}}},S6t:{type:"list",member:{type:"structure",required:["name","destinationArn","events"],members:{name:{},destinationArn:{},customData:{},branches:{shape:"S6x"},events:{type:"list",member:{}}}}},S6x:{type:"list",member:{}},S72:{type:"list",member:{}}},paginators:{DescribeMergeConflicts:{input_token:"nextToken",limit_key:"maxMergeHunks",output_token:"nextToken"},DescribePullRequestEvents:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"},GetCommentsForComparedCommit:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"},GetCommentsForPullRequest:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"},GetDifferences:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetMergeConflicts:{input_token:"nextToken",limit_key:"maxConflictFiles",output_token:"nextToken"},ListApprovalRuleTemplates:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"},ListAssociatedApprovalRuleTemplatesForRepository:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"},ListBranches:{input_token:"nextToken",output_token:"nextToken",result_key:"branches"},ListPullRequests:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"},ListRepositories:{input_token:"nextToken",output_token:"nextToken",result_key:"repositories"},ListRepositoriesForApprovalRuleTemplate:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken"}}};AWS.apiLoader.services.codedeploy={},AWS.CodeDeploy=AWS.Service.defineService("codedeploy",["2014-10-06"]);AWS.apiLoader.services.codedeploy["2014-10-06"]={version:"2.0",metadata:{apiVersion:"2014-10-06",endpointPrefix:"codedeploy",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"CodeDeploy",serviceFullName:"AWS CodeDeploy",serviceId:"CodeDeploy",signatureVersion:"v4",targetPrefix:"CodeDeploy_20141006",uid:"codedeploy-2014-10-06"},operations:{AddTagsToOnPremisesInstances:{input:{type:"structure",required:["tags","instanceNames"],members:{tags:{shape:"S2"},instanceNames:{shape:"S6"}}}},BatchGetApplicationRevisions:{input:{type:"structure",required:["applicationName","revisions"],members:{applicationName:{},revisions:{shape:"Sa"}}},output:{type:"structure",members:{applicationName:{},errorMessage:{},revisions:{type:"list",member:{type:"structure",members:{revisionLocation:{shape:"Sb"},genericRevisionInfo:{shape:"Su"}}}}}}},BatchGetApplications:{input:{type:"structure",required:["applicationNames"],members:{applicationNames:{shape:"S10"}}},output:{type:"structure",members:{applicationsInfo:{type:"list",member:{shape:"S13"}}}}},BatchGetDeploymentGroups:{input:{type:"structure",required:["applicationName","deploymentGroupNames"],members:{applicationName:{},deploymentGroupNames:{shape:"Sw"}}},output:{type:"structure",members:{deploymentGroupsInfo:{type:"list",member:{shape:"S1b"}},errorMessage:{}}}},BatchGetDeploymentInstances:{input:{type:"structure",required:["deploymentId","instanceIds"],members:{deploymentId:{},instanceIds:{shape:"S31"}}},output:{type:"structure",members:{instancesSummary:{type:"list",member:{shape:"S35"}},errorMessage:{}}},deprecated:!0,deprecatedMessage:"This operation is deprecated, use BatchGetDeploymentTargets instead."},BatchGetDeploymentTargets:{input:{type:"structure",members:{deploymentId:{},targetIds:{shape:"S3i"}}},output:{type:"structure",members:{deploymentTargets:{type:"list",member:{shape:"S3m"}}}}},BatchGetDeployments:{input:{type:"structure",required:["deploymentIds"],members:{deploymentIds:{shape:"S46"}}},output:{type:"structure",members:{deploymentsInfo:{type:"list",member:{shape:"S49"}}}}},BatchGetOnPremisesInstances:{input:{type:"structure",required:["instanceNames"],members:{instanceNames:{shape:"S6"}}},output:{type:"structure",members:{instanceInfos:{type:"list",member:{shape:"S4o"}}}}},ContinueDeployment:{input:{type:"structure",members:{deploymentId:{},deploymentWaitType:{}}}},CreateApplication:{input:{type:"structure",required:["applicationName"],members:{applicationName:{},computePlatform:{},tags:{shape:"S2"}}},output:{type:"structure",members:{applicationId:{}}}},CreateDeployment:{input:{type:"structure",required:["applicationName"],members:{applicationName:{},deploymentGroupName:{},revision:{shape:"Sb"},deploymentConfigName:{},description:{},ignoreApplicationStopFailures:{type:"boolean"},targetInstances:{shape:"S4g"},autoRollbackConfiguration:{shape:"S1z"},updateOutdatedInstancesOnly:{type:"boolean"},fileExistsBehavior:{}}},output:{type:"structure",members:{deploymentId:{}}}},CreateDeploymentConfig:{input:{type:"structure",required:["deploymentConfigName"],members:{deploymentConfigName:{},minimumHealthyHosts:{shape:"S4z"},trafficRoutingConfig:{shape:"S52"},computePlatform:{}}},output:{type:"structure",members:{deploymentConfigId:{}}}},CreateDeploymentGroup:{input:{type:"structure",required:["applicationName","deploymentGroupName","serviceRoleArn"],members:{applicationName:{},deploymentGroupName:{},deploymentConfigName:{},ec2TagFilters:{shape:"S1e"},onPremisesInstanceTagFilters:{shape:"S1h"},autoScalingGroups:{shape:"S4h"},serviceRoleArn:{},triggerConfigurations:{shape:"S1p"},alarmConfiguration:{shape:"S1v"},autoRollbackConfiguration:{shape:"S1z"},deploymentStyle:{shape:"S22"},blueGreenDeploymentConfiguration:{shape:"S25"},loadBalancerInfo:{shape:"S2d"},ec2TagSet:{shape:"S2s"},ecsServices:{shape:"S2w"},onPremisesTagSet:{shape:"S2u"},tags:{shape:"S2"}}},output:{type:"structure",members:{deploymentGroupId:{}}}},DeleteApplication:{input:{type:"structure",required:["applicationName"],members:{applicationName:{}}}},DeleteDeploymentConfig:{input:{type:"structure",required:["deploymentConfigName"],members:{deploymentConfigName:{}}}},DeleteDeploymentGroup:{input:{type:"structure",required:["applicationName","deploymentGroupName"],members:{applicationName:{},deploymentGroupName:{}}},output:{type:"structure",members:{hooksNotCleanedUp:{shape:"S1k"}}}},DeleteGitHubAccountToken:{input:{type:"structure",members:{tokenName:{}}},output:{type:"structure",members:{tokenName:{}}}},DeregisterOnPremisesInstance:{input:{type:"structure",required:["instanceName"],members:{instanceName:{}}}},GetApplication:{input:{type:"structure",required:["applicationName"],members:{applicationName:{}}},output:{type:"structure",members:{application:{shape:"S13"}}}},GetApplicationRevision:{input:{type:"structure",required:["applicationName","revision"],members:{applicationName:{},revision:{shape:"Sb"}}},output:{type:"structure",members:{applicationName:{},revision:{shape:"Sb"},revisionInfo:{shape:"Su"}}}},GetDeployment:{input:{type:"structure",required:["deploymentId"],members:{deploymentId:{}}},output:{type:"structure",members:{deploymentInfo:{shape:"S49"}}}},GetDeploymentConfig:{input:{type:"structure",required:["deploymentConfigName"],members:{deploymentConfigName:{}}},output:{type:"structure",members:{deploymentConfigInfo:{type:"structure",members:{deploymentConfigId:{},deploymentConfigName:{},minimumHealthyHosts:{shape:"S4z"},createTime:{type:"timestamp"},computePlatform:{},trafficRoutingConfig:{shape:"S52"}}}}}},GetDeploymentGroup:{input:{type:"structure",required:["applicationName","deploymentGroupName"],members:{applicationName:{},deploymentGroupName:{}}},output:{type:"structure",members:{deploymentGroupInfo:{shape:"S1b"}}}},GetDeploymentInstance:{input:{type:"structure",required:["deploymentId","instanceId"],members:{deploymentId:{},instanceId:{}}},output:{type:"structure",members:{instanceSummary:{shape:"S35"}}},deprecated:!0,deprecatedMessage:"This operation is deprecated, use GetDeploymentTarget instead."},GetDeploymentTarget:{input:{type:"structure",members:{deploymentId:{},targetId:{}}},output:{type:"structure",members:{deploymentTarget:{shape:"S3m"}}}},GetOnPremisesInstance:{input:{type:"structure",required:["instanceName"],members:{instanceName:{}}},output:{type:"structure",members:{instanceInfo:{shape:"S4o"}}}},ListApplicationRevisions:{input:{type:"structure",required:["applicationName"],members:{applicationName:{},sortBy:{},sortOrder:{},s3Bucket:{},s3KeyPrefix:{},deployed:{},nextToken:{}}},output:{type:"structure",members:{revisions:{shape:"Sa"},nextToken:{}}}},ListApplications:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{applications:{shape:"S10"},nextToken:{}}}},ListDeploymentConfigs:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{deploymentConfigsList:{type:"list",member:{}},nextToken:{}}}},ListDeploymentGroups:{input:{type:"structure",required:["applicationName"],members:{applicationName:{},nextToken:{}}},output:{type:"structure",members:{applicationName:{},deploymentGroups:{shape:"Sw"},nextToken:{}}}},ListDeploymentInstances:{input:{type:"structure",required:["deploymentId"],members:{deploymentId:{},nextToken:{},instanceStatusFilter:{type:"list",member:{shape:"S36"}},instanceTypeFilter:{type:"list",member:{}}}},output:{type:"structure",members:{instancesList:{shape:"S31"},nextToken:{}}},deprecated:!0,deprecatedMessage:"This operation is deprecated, use ListDeploymentTargets instead."},ListDeploymentTargets:{input:{type:"structure",members:{deploymentId:{},nextToken:{},targetFilters:{type:"map",key:{},value:{type:"list",member:{}}}}},output:{type:"structure",members:{targetIds:{shape:"S3i"},nextToken:{}}}},ListDeployments:{input:{type:"structure",members:{applicationName:{},deploymentGroupName:{},includeOnlyStatuses:{type:"list",member:{}},createTimeRange:{type:"structure",members:{start:{type:"timestamp"},end:{type:"timestamp"}}},nextToken:{}}},output:{type:"structure",members:{deployments:{shape:"S46"},nextToken:{}}}},ListGitHubAccountTokenNames:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{tokenNameList:{type:"list",member:{}},nextToken:{}}}},ListOnPremisesInstances:{input:{type:"structure",members:{registrationStatus:{},tagFilters:{shape:"S1h"},nextToken:{}}},output:{type:"structure",members:{instanceNames:{shape:"S6"},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},NextToken:{}}},output:{type:"structure",members:{Tags:{shape:"S2"},NextToken:{}}}},PutLifecycleEventHookExecutionStatus:{input:{type:"structure",members:{deploymentId:{},lifecycleEventHookExecutionId:{},status:{}}},output:{type:"structure",members:{lifecycleEventHookExecutionId:{}}}},RegisterApplicationRevision:{input:{type:"structure",required:["applicationName","revision"],members:{applicationName:{},description:{},revision:{shape:"Sb"}}}},RegisterOnPremisesInstance:{input:{type:"structure",required:["instanceName"],members:{instanceName:{},iamSessionArn:{},iamUserArn:{}}}},RemoveTagsFromOnPremisesInstances:{input:{type:"structure",required:["tags","instanceNames"],members:{tags:{shape:"S2"},instanceNames:{shape:"S6"}}}},SkipWaitTimeForInstanceTermination:{input:{type:"structure",members:{deploymentId:{}}},deprecated:!0,deprecatedMessage:"This operation is deprecated, use ContinueDeployment with DeploymentWaitType instead."},StopDeployment:{input:{type:"structure",required:["deploymentId"],members:{deploymentId:{},autoRollbackEnabled:{type:"boolean"}}},output:{type:"structure",members:{status:{},statusMessage:{}}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S2"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateApplication:{input:{type:"structure",members:{applicationName:{},newApplicationName:{}}}},UpdateDeploymentGroup:{input:{type:"structure",required:["applicationName","currentDeploymentGroupName"],members:{applicationName:{},currentDeploymentGroupName:{},newDeploymentGroupName:{},deploymentConfigName:{},ec2TagFilters:{shape:"S1e"},onPremisesInstanceTagFilters:{shape:"S1h"},autoScalingGroups:{shape:"S4h"},serviceRoleArn:{},triggerConfigurations:{shape:"S1p"},alarmConfiguration:{shape:"S1v"},autoRollbackConfiguration:{shape:"S1z"},deploymentStyle:{shape:"S22"},blueGreenDeploymentConfiguration:{shape:"S25"},loadBalancerInfo:{shape:"S2d"},ec2TagSet:{shape:"S2s"},ecsServices:{shape:"S2w"},onPremisesTagSet:{shape:"S2u"}}},output:{type:"structure",members:{hooksNotCleanedUp:{shape:"S1k"}}}}},shapes:{S2:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S6:{type:"list",member:{}},Sa:{type:"list",member:{shape:"Sb"}},Sb:{type:"structure",members:{revisionType:{},s3Location:{type:"structure",members:{bucket:{},key:{},bundleType:{},version:{},eTag:{}}},gitHubLocation:{type:"structure",members:{repository:{},commitId:{}}},string:{type:"structure",members:{content:{},sha256:{}},deprecated:!0,deprecatedMessage:"RawString and String revision type are deprecated, use AppSpecContent type instead."},appSpecContent:{type:"structure",members:{content:{},sha256:{}}}}},Su:{type:"structure",members:{description:{},deploymentGroups:{shape:"Sw"},firstUsedTime:{type:"timestamp"},lastUsedTime:{type:"timestamp"},registerTime:{type:"timestamp"}}},Sw:{type:"list",member:{}},S10:{type:"list",member:{}},S13:{type:"structure",members:{applicationId:{},applicationName:{},createTime:{type:"timestamp"},linkedToGitHub:{type:"boolean"},gitHubAccountName:{},computePlatform:{}}},S1b:{type:"structure",members:{applicationName:{},deploymentGroupId:{},deploymentGroupName:{},deploymentConfigName:{},ec2TagFilters:{shape:"S1e"},onPremisesInstanceTagFilters:{shape:"S1h"},autoScalingGroups:{shape:"S1k"},serviceRoleArn:{},targetRevision:{shape:"Sb"},triggerConfigurations:{shape:"S1p"},alarmConfiguration:{shape:"S1v"},autoRollbackConfiguration:{shape:"S1z"},deploymentStyle:{shape:"S22"},blueGreenDeploymentConfiguration:{shape:"S25"},loadBalancerInfo:{shape:"S2d"},lastSuccessfulDeployment:{shape:"S2p"},lastAttemptedDeployment:{shape:"S2p"},ec2TagSet:{shape:"S2s"},onPremisesTagSet:{shape:"S2u"},computePlatform:{},ecsServices:{shape:"S2w"}}},S1e:{type:"list",member:{type:"structure",members:{Key:{},Value:{},Type:{}}}},S1h:{type:"list",member:{type:"structure",members:{Key:{},Value:{},Type:{}}}},S1k:{type:"list",member:{type:"structure",members:{name:{},hook:{}}}},S1p:{type:"list",member:{type:"structure",members:{triggerName:{},triggerTargetArn:{},triggerEvents:{type:"list",member:{}}}}},S1v:{type:"structure",members:{enabled:{type:"boolean"},ignorePollAlarmFailure:{type:"boolean"},alarms:{type:"list",member:{type:"structure",members:{name:{}}}}}},S1z:{type:"structure",members:{enabled:{type:"boolean"},events:{type:"list",member:{}}}},S22:{type:"structure",members:{deploymentType:{},deploymentOption:{}}},S25:{type:"structure",members:{terminateBlueInstancesOnDeploymentSuccess:{type:"structure",members:{action:{},terminationWaitTimeInMinutes:{type:"integer"}}},deploymentReadyOption:{type:"structure",members:{actionOnTimeout:{},waitTimeInMinutes:{type:"integer"}}},greenFleetProvisioningOption:{type:"structure",members:{action:{}}}}},S2d:{type:"structure",members:{elbInfoList:{type:"list",member:{type:"structure",members:{name:{}}}},targetGroupInfoList:{shape:"S2h"},targetGroupPairInfoList:{type:"list",member:{type:"structure",members:{targetGroups:{shape:"S2h"},prodTrafficRoute:{shape:"S2m"},testTrafficRoute:{shape:"S2m"}}}}}},S2h:{type:"list",member:{shape:"S2i"}},S2i:{type:"structure",members:{name:{}}},S2m:{type:"structure",members:{listenerArns:{type:"list",member:{}}}},S2p:{type:"structure",members:{deploymentId:{},status:{},endTime:{type:"timestamp"},createTime:{type:"timestamp"}}},S2s:{type:"structure",members:{ec2TagSetList:{type:"list",member:{shape:"S1e"}}}},S2u:{type:"structure",members:{onPremisesTagSetList:{type:"list",member:{shape:"S1h"}}}},S2w:{type:"list",member:{type:"structure",members:{serviceName:{},clusterName:{}}}},S31:{type:"list",member:{}},S35:{type:"structure",members:{deploymentId:{},instanceId:{},status:{shape:"S36"},lastUpdatedAt:{type:"timestamp"},lifecycleEvents:{shape:"S37"},instanceType:{}},deprecated:!0,deprecatedMessage:"InstanceSummary is deprecated, use DeploymentTarget instead."},S36:{type:"string",deprecated:!0,deprecatedMessage:"InstanceStatus is deprecated, use TargetStatus instead."},S37:{type:"list",member:{type:"structure",members:{lifecycleEventName:{},diagnostics:{type:"structure",members:{errorCode:{},scriptName:{},message:{},logTail:{}}},startTime:{type:"timestamp"},endTime:{type:"timestamp"},status:{}}}},S3i:{type:"list",member:{}},S3m:{type:"structure",members:{deploymentTargetType:{},instanceTarget:{type:"structure",members:{deploymentId:{},targetId:{},targetArn:{},status:{},lastUpdatedAt:{type:"timestamp"},lifecycleEvents:{shape:"S37"},instanceLabel:{}}},lambdaTarget:{type:"structure",members:{deploymentId:{},targetId:{},targetArn:{},status:{},lastUpdatedAt:{type:"timestamp"},lifecycleEvents:{shape:"S37"},lambdaFunctionInfo:{type:"structure",members:{functionName:{},functionAlias:{},currentVersion:{},targetVersion:{},targetVersionWeight:{type:"double"}}}}},ecsTarget:{type:"structure",members:{deploymentId:{},targetId:{},targetArn:{},lastUpdatedAt:{type:"timestamp"},lifecycleEvents:{shape:"S37"},status:{},taskSetsInfo:{type:"list",member:{type:"structure",members:{identifer:{},desiredCount:{type:"long"},pendingCount:{type:"long"},runningCount:{type:"long"},status:{},trafficWeight:{type:"double"},targetGroup:{shape:"S2i"},taskSetLabel:{}}}}}}}},S46:{type:"list",member:{}},S49:{type:"structure",members:{applicationName:{},deploymentGroupName:{},deploymentConfigName:{},deploymentId:{},previousRevision:{shape:"Sb"},revision:{shape:"Sb"},status:{},errorInformation:{type:"structure",members:{code:{},message:{}}},createTime:{type:"timestamp"},startTime:{type:"timestamp"},completeTime:{type:"timestamp"},deploymentOverview:{type:"structure",members:{Pending:{type:"long"},InProgress:{type:"long"},Succeeded:{type:"long"},Failed:{type:"long"},Skipped:{type:"long"},Ready:{type:"long"}}},description:{},creator:{},ignoreApplicationStopFailures:{type:"boolean"},autoRollbackConfiguration:{shape:"S1z"},updateOutdatedInstancesOnly:{type:"boolean"},rollbackInfo:{type:"structure",members:{rollbackDeploymentId:{},rollbackTriggeringDeploymentId:{},rollbackMessage:{}}},deploymentStyle:{shape:"S22"},targetInstances:{shape:"S4g"},instanceTerminationWaitTimeStarted:{type:"boolean"},blueGreenDeploymentConfiguration:{shape:"S25"},loadBalancerInfo:{shape:"S2d"},additionalDeploymentStatusInfo:{type:"string",deprecated:!0,deprecatedMessage:"AdditionalDeploymentStatusInfo is deprecated, use DeploymentStatusMessageList instead."},fileExistsBehavior:{},deploymentStatusMessages:{type:"list",member:{}},computePlatform:{}}},S4g:{type:"structure",members:{tagFilters:{shape:"S1e"},autoScalingGroups:{shape:"S4h"},ec2TagSet:{shape:"S2s"}}},S4h:{type:"list",member:{}},S4o:{type:"structure",members:{instanceName:{},iamSessionArn:{},iamUserArn:{},instanceArn:{},registerTime:{type:"timestamp"},deregisterTime:{type:"timestamp"},tags:{shape:"S2"}}},S4z:{type:"structure",members:{value:{type:"integer"},type:{}}},S52:{type:"structure",members:{type:{},timeBasedCanary:{type:"structure",members:{canaryPercentage:{type:"integer"},canaryInterval:{type:"integer"}}},timeBasedLinear:{type:"structure",members:{linearPercentage:{type:"integer"},linearInterval:{type:"integer"}}}}}},paginators:{ListApplicationRevisions:{input_token:"nextToken",output_token:"nextToken",result_key:"revisions"},ListApplications:{input_token:"nextToken",output_token:"nextToken",result_key:"applications"},ListDeploymentConfigs:{input_token:"nextToken",output_token:"nextToken",result_key:"deploymentConfigsList"},ListDeploymentGroups:{input_token:"nextToken",output_token:"nextToken",result_key:"deploymentGroups"},ListDeploymentInstances:{input_token:"nextToken",output_token:"nextToken",result_key:"instancesList"},ListDeployments:{input_token:"nextToken",output_token:"nextToken",result_key:"deployments"}},waiters:{DeploymentSuccessful:{delay:15,operation:"GetDeployment",maxAttempts:120,acceptors:[{expected:"Succeeded",matcher:"path",state:"success",argument:"deploymentInfo.status"},{expected:"Failed",matcher:"path",state:"failure",argument:"deploymentInfo.status"},{expected:"Stopped",matcher:"path",state:"failure",argument:"deploymentInfo.status"}]}}};AWS.apiLoader.services.codepipeline={},AWS.CodePipeline=AWS.Service.defineService("codepipeline",["2015-07-09"]);AWS.apiLoader.services.codepipeline["2015-07-09"]={version:"2.0",metadata:{apiVersion:"2015-07-09",endpointPrefix:"codepipeline",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"CodePipeline",serviceFullName:"AWS CodePipeline",serviceId:"CodePipeline",signatureVersion:"v4",targetPrefix:"CodePipeline_20150709",uid:"codepipeline-2015-07-09"},operations:{AcknowledgeJob:{input:{type:"structure",required:["jobId","nonce"],members:{jobId:{},nonce:{}}},output:{type:"structure",members:{status:{}}}},AcknowledgeThirdPartyJob:{input:{type:"structure",required:["jobId","nonce","clientToken"],members:{jobId:{},nonce:{},clientToken:{}}},output:{type:"structure",members:{status:{}}}},CreateCustomActionType:{input:{type:"structure",required:["category","provider","version","inputArtifactDetails","outputArtifactDetails"],members:{category:{},provider:{},version:{},settings:{shape:"Se"},configurationProperties:{shape:"Sh"},inputArtifactDetails:{shape:"Sn"},outputArtifactDetails:{shape:"Sn"},tags:{shape:"Sq"}}},output:{type:"structure",required:["actionType"],members:{actionType:{shape:"Sv"},tags:{shape:"Sq"}}}},CreatePipeline:{input:{type:"structure",required:["pipeline"],members:{pipeline:{shape:"Sz"},tags:{shape:"Sq"}}},output:{type:"structure",members:{pipeline:{shape:"Sz"},tags:{shape:"Sq"}}}},DeleteCustomActionType:{input:{type:"structure",required:["category","provider","version"],members:{category:{},provider:{},version:{}}}},DeletePipeline:{input:{type:"structure",required:["name"],members:{name:{}}}},DeleteWebhook:{input:{type:"structure",required:["name"],members:{name:{}}},output:{type:"structure",members:{}}},DeregisterWebhookWithThirdParty:{input:{type:"structure",members:{webhookName:{}}},output:{type:"structure",members:{}}},DisableStageTransition:{input:{type:"structure",required:["pipelineName","stageName","transitionType","reason"],members:{pipelineName:{},stageName:{},transitionType:{},reason:{}}}},EnableStageTransition:{input:{type:"structure",required:["pipelineName","stageName","transitionType"],members:{pipelineName:{},stageName:{},transitionType:{}}}},GetJobDetails:{input:{type:"structure",required:["jobId"],members:{jobId:{}}},output:{type:"structure",members:{jobDetails:{type:"structure",members:{id:{},data:{shape:"S29"},accountId:{}}}}}},GetPipeline:{input:{type:"structure",required:["name"],members:{name:{},version:{type:"integer"}}},output:{type:"structure",members:{pipeline:{shape:"Sz"},metadata:{type:"structure",members:{pipelineArn:{},created:{type:"timestamp"},updated:{type:"timestamp"}}}}}},GetPipelineExecution:{input:{type:"structure",required:["pipelineName","pipelineExecutionId"],members:{pipelineName:{},pipelineExecutionId:{}}},output:{type:"structure",members:{pipelineExecution:{type:"structure",members:{pipelineName:{},pipelineVersion:{type:"integer"},pipelineExecutionId:{},status:{},artifactRevisions:{type:"list",member:{type:"structure",members:{name:{},revisionId:{},revisionChangeIdentifier:{},revisionSummary:{},created:{type:"timestamp"},revisionUrl:{}}}}}}}}},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:"S3h"},latestExecution:{type:"structure",members:{status:{},summary:{},lastStatusChange:{type:"timestamp"},token:{},lastUpdatedBy:{},externalExecutionId:{},externalExecutionUrl:{},percentComplete:{type:"integer"},errorDetails:{type:"structure",members:{code:{},message:{}}}}},entityUrl:{},revisionUrl:{}}}},latestExecution:{type:"structure",required:["pipelineExecutionId","status"],members:{pipelineExecutionId:{},status:{}}}}}},created:{type:"timestamp"},updated:{type:"timestamp"}}}},GetThirdPartyJobDetails:{input:{type:"structure",required:["jobId","clientToken"],members:{jobId:{},clientToken:{}}},output:{type:"structure",members:{jobDetails:{type:"structure",members:{id:{},data:{type:"structure",members:{actionTypeId:{shape:"Sw"},actionConfiguration:{shape:"S2a"},pipelineContext:{shape:"S2b"},inputArtifacts:{shape:"S2h"},outputArtifacts:{shape:"S2h"},artifactCredentials:{shape:"S2p"},continuationToken:{},encryptionKey:{shape:"S15"}}},nonce:{}}}}}},ListActionExecutions:{input:{type:"structure",required:["pipelineName"],members:{pipelineName:{},filter:{type:"structure",members:{pipelineExecutionId:{}}},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{actionExecutionDetails:{type:"list",member:{type:"structure",members:{pipelineExecutionId:{},actionExecutionId:{},pipelineVersion:{type:"integer"},stageName:{},actionName:{},startTime:{type:"timestamp"},lastUpdateTime:{type:"timestamp"},status:{},input:{type:"structure",members:{actionTypeId:{shape:"Sw"},configuration:{shape:"S1l"},resolvedConfiguration:{type:"map",key:{},value:{}},roleArn:{},region:{},inputArtifacts:{shape:"S48"},namespace:{}}},output:{type:"structure",members:{outputArtifacts:{shape:"S48"},executionResult:{type:"structure",members:{externalExecutionId:{},externalExecutionSummary:{},externalExecutionUrl:{}}},outputVariables:{shape:"S4h"}}}}}},nextToken:{}}}},ListActionTypes:{input:{type:"structure",members:{actionOwnerFilter:{},nextToken:{}}},output:{type:"structure",required:["actionTypes"],members:{actionTypes:{type:"list",member:{shape:"Sv"}},nextToken:{}}}},ListPipelineExecutions:{input:{type:"structure",required:["pipelineName"],members:{pipelineName:{},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{pipelineExecutionSummaries:{type:"list",member:{type:"structure",members:{pipelineExecutionId:{},status:{},startTime:{type:"timestamp"},lastUpdateTime:{type:"timestamp"},sourceRevisions:{type:"list",member:{type:"structure",required:["actionName"],members:{actionName:{},revisionId:{},revisionSummary:{},revisionUrl:{}}}},trigger:{type:"structure",members:{triggerType:{},triggerDetail:{}}}}}},nextToken:{}}}},ListPipelines:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{pipelines:{type:"list",member:{type:"structure",members:{name:{},version:{type:"integer"},created:{type:"timestamp"},updated:{type:"timestamp"}}}},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{tags:{shape:"Sq"},nextToken:{}}}},ListWebhooks:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{webhooks:{type:"list",member:{shape:"S56"}},NextToken:{}}}},PollForJobs:{input:{type:"structure",required:["actionTypeId"],members:{actionTypeId:{shape:"Sw"},maxBatchSize:{type:"integer"},queryParam:{type:"map",key:{},value:{}}}},output:{type:"structure",members:{jobs:{type:"list",member:{type:"structure",members:{id:{},data:{shape:"S29"},nonce:{},accountId:{}}}}}}},PollForThirdPartyJobs:{input:{type:"structure",required:["actionTypeId"],members:{actionTypeId:{shape:"Sw"},maxBatchSize:{type:"integer"}}},output:{type:"structure",members:{jobs:{type:"list",member:{type:"structure",members:{clientId:{},jobId:{}}}}}}},PutActionRevision:{input:{type:"structure",required:["pipelineName","stageName","actionName","actionRevision"],members:{pipelineName:{},stageName:{},actionName:{},actionRevision:{shape:"S3h"}}},output:{type:"structure",members:{newRevision:{type:"boolean"},pipelineExecutionId:{}}}},PutApprovalResult:{input:{type:"structure",required:["pipelineName","stageName","actionName","result","token"],members:{pipelineName:{},stageName:{},actionName:{},result:{type:"structure",required:["summary","status"],members:{summary:{},status:{}}},token:{}}},output:{type:"structure",members:{approvedAt:{type:"timestamp"}}}},PutJobFailureResult:{input:{type:"structure",required:["jobId","failureDetails"],members:{jobId:{},failureDetails:{shape:"S66"}}}},PutJobSuccessResult:{input:{type:"structure",required:["jobId"],members:{jobId:{},currentRevision:{shape:"S69"},continuationToken:{},executionDetails:{shape:"S6b"},outputVariables:{shape:"S4h"}}}},PutThirdPartyJobFailureResult:{input:{type:"structure",required:["jobId","clientToken","failureDetails"],members:{jobId:{},clientToken:{},failureDetails:{shape:"S66"}}}},PutThirdPartyJobSuccessResult:{input:{type:"structure",required:["jobId","clientToken"],members:{jobId:{},clientToken:{},currentRevision:{shape:"S69"},continuationToken:{},executionDetails:{shape:"S6b"}}}},PutWebhook:{input:{type:"structure",required:["webhook"],members:{webhook:{shape:"S57"},tags:{shape:"Sq"}}},output:{type:"structure",members:{webhook:{shape:"S56"}}}},RegisterWebhookWithThirdParty:{input:{type:"structure",members:{webhookName:{}}},output:{type:"structure",members:{}}},RetryStageExecution:{input:{type:"structure",required:["pipelineName","stageName","pipelineExecutionId","retryMode"],members:{pipelineName:{},stageName:{},pipelineExecutionId:{},retryMode:{}}},output:{type:"structure",members:{pipelineExecutionId:{}}}},StartPipelineExecution:{input:{type:"structure",required:["name"],members:{name:{},clientRequestToken:{idempotencyToken:!0}}},output:{type:"structure",members:{pipelineExecutionId:{}}}},TagResource:{input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{},tags:{shape:"Sq"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{},tagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdatePipeline:{input:{type:"structure",required:["pipeline"],members:{pipeline:{shape:"Sz"}}},output:{type:"structure",members:{pipeline:{shape:"Sz"}}}}},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"}}},Sq:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},Sv:{type:"structure",required:["id","inputArtifactDetails","outputArtifactDetails"],members:{id:{shape:"Sw"},settings:{shape:"Se"},actionConfigurationProperties:{shape:"Sh"},inputArtifactDetails:{shape:"Sn"},outputArtifactDetails:{shape:"Sn"}}},Sw:{type:"structure",required:["category","owner","provider","version"],members:{category:{},owner:{},provider:{},version:{}}},Sz:{type:"structure",required:["name","roleArn","stages"],members:{name:{},roleArn:{},artifactStore:{shape:"S12"},artifactStores:{type:"map",key:{},value:{shape:"S12"}},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:"Sw"},runOrder:{type:"integer"},configuration:{shape:"S1l"},outputArtifacts:{type:"list",member:{type:"structure",required:["name"],members:{name:{}}}},inputArtifacts:{type:"list",member:{type:"structure",required:["name"],members:{name:{}}}},roleArn:{},region:{},namespace:{}}}}}}},version:{type:"integer"}}},S12:{type:"structure",required:["type","location"],members:{type:{},location:{},encryptionKey:{shape:"S15"}}},S15:{type:"structure",required:["id","type"],members:{id:{},type:{}}},S1l:{type:"map",key:{},value:{}},S29:{type:"structure",members:{actionTypeId:{shape:"Sw"},actionConfiguration:{shape:"S2a"},pipelineContext:{shape:"S2b"},inputArtifacts:{shape:"S2h"},outputArtifacts:{shape:"S2h"},artifactCredentials:{shape:"S2p"},continuationToken:{},encryptionKey:{shape:"S15"}}},S2a:{type:"structure",members:{configuration:{shape:"S1l"}}},S2b:{type:"structure",members:{pipelineName:{},stage:{type:"structure",members:{name:{}}},action:{type:"structure",members:{name:{},actionExecutionId:{}}},pipelineArn:{},pipelineExecutionId:{}}},S2h:{type:"list",member:{type:"structure",members:{name:{},revision:{},location:{type:"structure",members:{type:{},s3Location:{type:"structure",required:["bucketName","objectKey"],members:{bucketName:{},objectKey:{}}}}}}}},S2p:{type:"structure",required:["accessKeyId","secretAccessKey","sessionToken"],members:{accessKeyId:{},secretAccessKey:{},sessionToken:{}},sensitive:!0},S3h:{type:"structure",required:["revisionId","revisionChangeId","created"],members:{revisionId:{},revisionChangeId:{},created:{type:"timestamp"}}},S48:{type:"list",member:{type:"structure",members:{name:{},s3location:{type:"structure",members:{bucket:{},key:{}}}}}},S4h:{type:"map",key:{},value:{}},S56:{type:"structure",required:["definition","url"],members:{definition:{shape:"S57"},url:{},errorMessage:{},errorCode:{},lastTriggered:{type:"timestamp"},arn:{},tags:{shape:"Sq"}}},S57:{type:"structure",required:["name","targetPipeline","targetAction","filters","authentication","authenticationConfiguration"],members:{name:{},targetPipeline:{},targetAction:{},filters:{type:"list",member:{type:"structure",required:["jsonPath"],members:{jsonPath:{},matchEquals:{}}}},authentication:{},authenticationConfiguration:{type:"structure",members:{AllowedIPRange:{},SecretToken:{}}}}},S66:{type:"structure",required:["type","message"],members:{type:{},message:{},externalExecutionId:{}}},S69:{type:"structure",required:["revision","changeIdentifier"],members:{revision:{},changeIdentifier:{},created:{type:"timestamp"},revisionSummary:{}}},S6b:{type:"structure",members:{summary:{},externalExecutionId:{},percentComplete:{type:"integer"}}}},paginators:{ListActionExecutions:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"actionExecutionDetails"},ListActionTypes:{input_token:"nextToken",output_token:"nextToken",result_key:"actionTypes"},ListPipelineExecutions:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"pipelineExecutionSummaries"},ListPipelines:{input_token:"nextToken",output_token:"nextToken",result_key:"pipelines"},ListTagsForResource:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults",result_key:"tags"},ListWebhooks:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults",result_key:"webhooks"}}};AWS.apiLoader.services.cognitoidentityserviceprovider={},AWS.CognitoIdentityServiceProvider=AWS.Service.defineService("cognitoidentityserviceprovider",["2016-04-18"]);AWS.apiLoader.services.cognitoidentityserviceprovider["2016-04-18"]={version:"2.0",metadata:{apiVersion:"2016-04-18",endpointPrefix:"cognito-idp",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Cognito Identity Provider",serviceId:"Cognito Identity Provider",signatureVersion:"v4",targetPrefix:"AWSCognitoIdentityProviderService",uid:"cognito-idp-2016-04-18"},operations:{AddCustomAttributes:{input:{type:"structure",required:["UserPoolId","CustomAttributes"],members:{UserPoolId:{},CustomAttributes:{type:"list",member:{shape:"S4"}}}},output:{type:"structure",members:{}}},AdminAddUserToGroup:{input:{type:"structure",required:["UserPoolId","Username","GroupName"],members:{UserPoolId:{},Username:{shape:"Sd"},GroupName:{}}}},AdminConfirmSignUp:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{}}},AdminCreateUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributes:{shape:"Sj"},ValidationData:{shape:"Sj"},TemporaryPassword:{shape:"Sn"},ForceAliasCreation:{type:"boolean"},MessageAction:{},DesiredDeliveryMediums:{type:"list",member:{}},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{User:{shape:"St"}}}},AdminDeleteUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}}},AdminDeleteUserAttributes:{input:{type:"structure",required:["UserPoolId","Username","UserAttributeNames"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributeNames:{shape:"S10"}}},output:{type:"structure",members:{}}},AdminDisableProviderForUser:{input:{type:"structure",required:["UserPoolId","User"],members:{UserPoolId:{},User:{shape:"S13"}}},output:{type:"structure",members:{}}},AdminDisableUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AdminEnableUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AdminForgetDevice:{input:{type:"structure",required:["UserPoolId","Username","DeviceKey"],members:{UserPoolId:{},Username:{shape:"Sd"},DeviceKey:{}}}},AdminGetDevice:{input:{type:"structure",required:["DeviceKey","UserPoolId","Username"],members:{DeviceKey:{},UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",required:["Device"],members:{Device:{shape:"S1e"}}}},AdminGetUser:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",required:["Username"],members:{Username:{shape:"Sd"},UserAttributes:{shape:"Sj"},UserCreateDate:{type:"timestamp"},UserLastModifiedDate:{type:"timestamp"},Enabled:{type:"boolean"},UserStatus:{},MFAOptions:{shape:"Sw"},PreferredMfaSetting:{},UserMFASettingList:{shape:"S1h"}}}},AdminInitiateAuth:{input:{type:"structure",required:["UserPoolId","ClientId","AuthFlow"],members:{UserPoolId:{},ClientId:{shape:"S1j"},AuthFlow:{},AuthParameters:{shape:"S1l"},ClientMetadata:{shape:"Sg"},AnalyticsMetadata:{shape:"S1m"},ContextData:{shape:"S1n"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},AdminLinkProviderForUser:{input:{type:"structure",required:["UserPoolId","DestinationUser","SourceUser"],members:{UserPoolId:{},DestinationUser:{shape:"S13"},SourceUser:{shape:"S13"}}},output:{type:"structure",members:{}}},AdminListDevices:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},Limit:{type:"integer"},PaginationToken:{}}},output:{type:"structure",members:{Devices:{shape:"S24"},PaginationToken:{}}}},AdminListGroupsForUser:{input:{type:"structure",required:["Username","UserPoolId"],members:{Username:{shape:"Sd"},UserPoolId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Groups:{shape:"S28"},NextToken:{}}}},AdminListUserAuthEvents:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AuthEvents:{type:"list",member:{type:"structure",members:{EventId:{},EventType:{},CreationDate:{type:"timestamp"},EventResponse:{},EventRisk:{type:"structure",members:{RiskDecision:{},RiskLevel:{}}},ChallengeResponses:{type:"list",member:{type:"structure",members:{ChallengeName:{},ChallengeResponse:{}}}},EventContextData:{type:"structure",members:{IpAddress:{},DeviceName:{},Timezone:{},City:{},Country:{}}},EventFeedback:{type:"structure",required:["FeedbackValue","Provider"],members:{FeedbackValue:{},Provider:{},FeedbackDate:{type:"timestamp"}}}}}},NextToken:{}}}},AdminRemoveUserFromGroup:{input:{type:"structure",required:["UserPoolId","Username","GroupName"],members:{UserPoolId:{},Username:{shape:"Sd"},GroupName:{}}}},AdminResetUserPassword:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{}}},AdminRespondToAuthChallenge:{input:{type:"structure",required:["UserPoolId","ClientId","ChallengeName"],members:{UserPoolId:{},ClientId:{shape:"S1j"},ChallengeName:{},ChallengeResponses:{shape:"S2x"},Session:{},AnalyticsMetadata:{shape:"S1m"},ContextData:{shape:"S1n"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},AdminSetUserMFAPreference:{input:{type:"structure",required:["Username","UserPoolId"],members:{SMSMfaSettings:{shape:"S30"},SoftwareTokenMfaSettings:{shape:"S31"},Username:{shape:"Sd"},UserPoolId:{}}},output:{type:"structure",members:{}}},AdminSetUserPassword:{input:{type:"structure",required:["UserPoolId","Username","Password"],members:{UserPoolId:{},Username:{shape:"Sd"},Password:{shape:"Sn"},Permanent:{type:"boolean"}}},output:{type:"structure",members:{}}},AdminSetUserSettings:{input:{type:"structure",required:["UserPoolId","Username","MFAOptions"],members:{UserPoolId:{},Username:{shape:"Sd"},MFAOptions:{shape:"Sw"}}},output:{type:"structure",members:{}}},AdminUpdateAuthEventFeedback:{input:{type:"structure",required:["UserPoolId","Username","EventId","FeedbackValue"],members:{UserPoolId:{},Username:{shape:"Sd"},EventId:{},FeedbackValue:{}}},output:{type:"structure",members:{}}},AdminUpdateDeviceStatus:{input:{type:"structure",required:["UserPoolId","Username","DeviceKey"],members:{UserPoolId:{},Username:{shape:"Sd"},DeviceKey:{},DeviceRememberedStatus:{}}},output:{type:"structure",members:{}}},AdminUpdateUserAttributes:{input:{type:"structure",required:["UserPoolId","Username","UserAttributes"],members:{UserPoolId:{},Username:{shape:"Sd"},UserAttributes:{shape:"Sj"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{}}},AdminUserGlobalSignOut:{input:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{},Username:{shape:"Sd"}}},output:{type:"structure",members:{}}},AssociateSoftwareToken:{input:{type:"structure",members:{AccessToken:{shape:"S1v"},Session:{}}},output:{type:"structure",members:{SecretCode:{type:"string",sensitive:!0},Session:{}}}},ChangePassword:{input:{type:"structure",required:["PreviousPassword","ProposedPassword","AccessToken"],members:{PreviousPassword:{shape:"Sn"},ProposedPassword:{shape:"Sn"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}},authtype:"none"},ConfirmDevice:{input:{type:"structure",required:["AccessToken","DeviceKey"],members:{AccessToken:{shape:"S1v"},DeviceKey:{},DeviceSecretVerifierConfig:{type:"structure",members:{PasswordVerifier:{},Salt:{}}},DeviceName:{}}},output:{type:"structure",members:{UserConfirmationNecessary:{type:"boolean"}}}},ConfirmForgotPassword:{input:{type:"structure",required:["ClientId","Username","ConfirmationCode","Password"],members:{ClientId:{shape:"S1j"},SecretHash:{shape:"S3r"},Username:{shape:"Sd"},ConfirmationCode:{},Password:{shape:"Sn"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3t"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{}},authtype:"none"},ConfirmSignUp:{input:{type:"structure",required:["ClientId","Username","ConfirmationCode"],members:{ClientId:{shape:"S1j"},SecretHash:{shape:"S3r"},Username:{shape:"Sd"},ConfirmationCode:{},ForceAliasCreation:{type:"boolean"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3t"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{}},authtype:"none"},CreateGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{},Description:{},RoleArn:{},Precedence:{type:"integer"}}},output:{type:"structure",members:{Group:{shape:"S29"}}}},CreateIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName","ProviderType","ProviderDetails"],members:{UserPoolId:{},ProviderName:{},ProviderType:{},ProviderDetails:{shape:"S42"},AttributeMapping:{shape:"S43"},IdpIdentifiers:{shape:"S45"}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S48"}}}},CreateResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier","Name"],members:{UserPoolId:{},Identifier:{},Name:{},Scopes:{shape:"S4c"}}},output:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"S4h"}}}},CreateUserImportJob:{input:{type:"structure",required:["JobName","UserPoolId","CloudWatchLogsRoleArn"],members:{JobName:{},UserPoolId:{},CloudWatchLogsRoleArn:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4l"}}}},CreateUserPool:{input:{type:"structure",required:["PoolName"],members:{PoolName:{},Policies:{shape:"S4t"},LambdaConfig:{shape:"S4x"},AutoVerifiedAttributes:{shape:"S4y"},AliasAttributes:{shape:"S50"},UsernameAttributes:{shape:"S52"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},VerificationMessageTemplate:{shape:"S57"},SmsAuthenticationMessage:{},MfaConfiguration:{},DeviceConfiguration:{shape:"S5c"},EmailConfiguration:{shape:"S5d"},SmsConfiguration:{shape:"S5h"},UserPoolTags:{shape:"S5i"},AdminCreateUserConfig:{shape:"S5l"},Schema:{shape:"S5o"},UserPoolAddOns:{shape:"S5p"},AccountRecoverySetting:{shape:"S5r"}}},output:{type:"structure",members:{UserPool:{shape:"S5x"}}}},CreateUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientName"],members:{UserPoolId:{},ClientName:{},GenerateSecret:{type:"boolean"},RefreshTokenValidity:{type:"integer"},ReadAttributes:{shape:"S64"},WriteAttributes:{shape:"S64"},ExplicitAuthFlows:{shape:"S66"},SupportedIdentityProviders:{shape:"S68"},CallbackURLs:{shape:"S69"},LogoutURLs:{shape:"S6b"},DefaultRedirectURI:{},AllowedOAuthFlows:{shape:"S6c"},AllowedOAuthScopes:{shape:"S6e"},AllowedOAuthFlowsUserPoolClient:{type:"boolean"},AnalyticsConfiguration:{shape:"S6g"},PreventUserExistenceErrors:{}}},output:{type:"structure",members:{UserPoolClient:{shape:"S6k"}}}},CreateUserPoolDomain:{input:{type:"structure",required:["Domain","UserPoolId"],members:{Domain:{},UserPoolId:{},CustomDomainConfig:{shape:"S6n"}}},output:{type:"structure",members:{CloudFrontDomain:{}}}},DeleteGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{}}}},DeleteIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{},ProviderName:{}}}},DeleteResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier"],members:{UserPoolId:{},Identifier:{}}}},DeleteUser:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"}}},authtype:"none"},DeleteUserAttributes:{input:{type:"structure",required:["UserAttributeNames","AccessToken"],members:{UserAttributeNames:{shape:"S10"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}},authtype:"none"},DeleteUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}}},DeleteUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S1j"}}}},DeleteUserPoolDomain:{input:{type:"structure",required:["Domain","UserPoolId"],members:{Domain:{},UserPoolId:{}}},output:{type:"structure",members:{}}},DescribeIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{},ProviderName:{}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S48"}}}},DescribeResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier"],members:{UserPoolId:{},Identifier:{}}},output:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"S4h"}}}},DescribeRiskConfiguration:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1j"}}},output:{type:"structure",required:["RiskConfiguration"],members:{RiskConfiguration:{shape:"S75"}}}},DescribeUserImportJob:{input:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{},JobId:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4l"}}}},DescribeUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{UserPool:{shape:"S5x"}}}},DescribeUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S1j"}}},output:{type:"structure",members:{UserPoolClient:{shape:"S6k"}}}},DescribeUserPoolDomain:{input:{type:"structure",required:["Domain"],members:{Domain:{}}},output:{type:"structure",members:{DomainDescription:{type:"structure",members:{UserPoolId:{},AWSAccountId:{},Domain:{},S3Bucket:{},CloudFrontDistribution:{},Version:{},Status:{},CustomDomainConfig:{shape:"S6n"}}}}}},ForgetDevice:{input:{type:"structure",required:["DeviceKey"],members:{AccessToken:{shape:"S1v"},DeviceKey:{}}}},ForgotPassword:{input:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"S1j"},SecretHash:{shape:"S3r"},UserContextData:{shape:"S3t"},Username:{shape:"Sd"},AnalyticsMetadata:{shape:"S1m"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S83"}}},authtype:"none"},GetCSVHeader:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{UserPoolId:{},CSVHeader:{type:"list",member:{}}}}},GetDevice:{input:{type:"structure",required:["DeviceKey"],members:{DeviceKey:{},AccessToken:{shape:"S1v"}}},output:{type:"structure",required:["Device"],members:{Device:{shape:"S1e"}}}},GetGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{}}},output:{type:"structure",members:{Group:{shape:"S29"}}}},GetIdentityProviderByIdentifier:{input:{type:"structure",required:["UserPoolId","IdpIdentifier"],members:{UserPoolId:{},IdpIdentifier:{}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S48"}}}},GetSigningCertificate:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{Certificate:{}}}},GetUICustomization:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1j"}}},output:{type:"structure",required:["UICustomization"],members:{UICustomization:{shape:"S8h"}}}},GetUser:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"}}},output:{type:"structure",required:["Username","UserAttributes"],members:{Username:{shape:"Sd"},UserAttributes:{shape:"Sj"},MFAOptions:{shape:"Sw"},PreferredMfaSetting:{},UserMFASettingList:{shape:"S1h"}}},authtype:"none"},GetUserAttributeVerificationCode:{input:{type:"structure",required:["AccessToken","AttributeName"],members:{AccessToken:{shape:"S1v"},AttributeName:{},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S83"}}},authtype:"none"},GetUserPoolMfaConfig:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{}}},output:{type:"structure",members:{SmsMfaConfiguration:{shape:"S8r"},SoftwareTokenMfaConfiguration:{shape:"S8s"},MfaConfiguration:{}}}},GlobalSignOut:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}}},InitiateAuth:{input:{type:"structure",required:["AuthFlow","ClientId"],members:{AuthFlow:{},AuthParameters:{shape:"S1l"},ClientMetadata:{shape:"Sg"},ClientId:{shape:"S1j"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3t"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},ListDevices:{input:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"S1v"},Limit:{type:"integer"},PaginationToken:{}}},output:{type:"structure",members:{Devices:{shape:"S24"},PaginationToken:{}}}},ListGroups:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Groups:{shape:"S28"},NextToken:{}}}},ListIdentityProviders:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["Providers"],members:{Providers:{type:"list",member:{type:"structure",members:{ProviderName:{},ProviderType:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}}},NextToken:{}}}},ListResourceServers:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["ResourceServers"],members:{ResourceServers:{type:"list",member:{shape:"S4h"}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{Tags:{shape:"S5i"}}}},ListUserImportJobs:{input:{type:"structure",required:["UserPoolId","MaxResults"],members:{UserPoolId:{},MaxResults:{type:"integer"},PaginationToken:{}}},output:{type:"structure",members:{UserImportJobs:{type:"list",member:{shape:"S4l"}},PaginationToken:{}}}},ListUserPoolClients:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{UserPoolClients:{type:"list",member:{type:"structure",members:{ClientId:{shape:"S1j"},UserPoolId:{},ClientName:{}}}},NextToken:{}}}},ListUserPools:{input:{type:"structure",required:["MaxResults"],members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{UserPools:{type:"list",member:{type:"structure",members:{Id:{},Name:{},LambdaConfig:{shape:"S4x"},Status:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}}},NextToken:{}}}},ListUsers:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},AttributesToGet:{type:"list",member:{}},Limit:{type:"integer"},PaginationToken:{},Filter:{}}},output:{type:"structure",members:{Users:{shape:"S9u"},PaginationToken:{}}}},ListUsersInGroup:{input:{type:"structure",required:["UserPoolId","GroupName"],members:{UserPoolId:{},GroupName:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Users:{shape:"S9u"},NextToken:{}}}},ResendConfirmationCode:{input:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"S1j"},SecretHash:{shape:"S3r"},UserContextData:{shape:"S3t"},Username:{shape:"Sd"},AnalyticsMetadata:{shape:"S1m"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{CodeDeliveryDetails:{shape:"S83"}}},authtype:"none"},RespondToAuthChallenge:{input:{type:"structure",required:["ClientId","ChallengeName"],members:{ClientId:{shape:"S1j"},ChallengeName:{},Session:{},ChallengeResponses:{shape:"S2x"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3t"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{ChallengeName:{},Session:{},ChallengeParameters:{shape:"S1t"},AuthenticationResult:{shape:"S1u"}}}},SetRiskConfiguration:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1j"},CompromisedCredentialsRiskConfiguration:{shape:"S76"},AccountTakeoverRiskConfiguration:{shape:"S7b"},RiskExceptionConfiguration:{shape:"S7k"}}},output:{type:"structure",required:["RiskConfiguration"],members:{RiskConfiguration:{shape:"S75"}}}},SetUICustomization:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},ClientId:{shape:"S1j"},CSS:{},ImageFile:{type:"blob"}}},output:{type:"structure",required:["UICustomization"],members:{UICustomization:{shape:"S8h"}}}},SetUserMFAPreference:{input:{type:"structure",required:["AccessToken"],members:{SMSMfaSettings:{shape:"S30"},SoftwareTokenMfaSettings:{shape:"S31"},AccessToken:{shape:"S1v"}}},output:{type:"structure",members:{}}},SetUserPoolMfaConfig:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},SmsMfaConfiguration:{shape:"S8r"},SoftwareTokenMfaConfiguration:{shape:"S8s"},MfaConfiguration:{}}},output:{type:"structure",members:{SmsMfaConfiguration:{shape:"S8r"},SoftwareTokenMfaConfiguration:{shape:"S8s"},MfaConfiguration:{}}}},SetUserSettings:{input:{type:"structure",required:["AccessToken","MFAOptions"],members:{AccessToken:{shape:"S1v"},MFAOptions:{shape:"Sw"}}},output:{type:"structure",members:{}},authtype:"none"},SignUp:{input:{type:"structure",required:["ClientId","Username","Password"],members:{ClientId:{shape:"S1j"},SecretHash:{shape:"S3r"},Username:{shape:"Sd"},Password:{shape:"Sn"},UserAttributes:{shape:"Sj"},ValidationData:{shape:"Sj"},AnalyticsMetadata:{shape:"S1m"},UserContextData:{shape:"S3t"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",required:["UserConfirmed","UserSub"],members:{UserConfirmed:{type:"boolean"},CodeDeliveryDetails:{shape:"S83"},UserSub:{}}},authtype:"none"},StartUserImportJob:{input:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{},JobId:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4l"}}}},StopUserImportJob:{input:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{},JobId:{}}},output:{type:"structure",members:{UserImportJob:{shape:"S4l"}}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S5i"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateAuthEventFeedback:{input:{type:"structure",required:["UserPoolId","Username","EventId","FeedbackToken","FeedbackValue"],members:{UserPoolId:{},Username:{shape:"Sd"},EventId:{},FeedbackToken:{shape:"S1v"},FeedbackValue:{}}},output:{type:"structure",members:{}}},UpdateDeviceStatus:{input:{type:"structure",required:["AccessToken","DeviceKey"],members:{AccessToken:{shape:"S1v"},DeviceKey:{},DeviceRememberedStatus:{}}},output:{type:"structure",members:{}}},UpdateGroup:{input:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{},UserPoolId:{},Description:{},RoleArn:{},Precedence:{type:"integer"}}},output:{type:"structure",members:{Group:{shape:"S29"}}}},UpdateIdentityProvider:{input:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{},ProviderName:{},ProviderDetails:{shape:"S42"},AttributeMapping:{shape:"S43"},IdpIdentifiers:{shape:"S45"}}},output:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"S48"}}}},UpdateResourceServer:{input:{type:"structure",required:["UserPoolId","Identifier","Name"],members:{UserPoolId:{},Identifier:{},Name:{},Scopes:{shape:"S4c"}}},output:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"S4h"}}}},UpdateUserAttributes:{input:{type:"structure",required:["UserAttributes","AccessToken"],members:{UserAttributes:{shape:"Sj"},AccessToken:{shape:"S1v"},ClientMetadata:{shape:"Sg"}}},output:{type:"structure",members:{CodeDeliveryDetailsList:{type:"list",member:{shape:"S83"}}}},authtype:"none"},UpdateUserPool:{input:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{},Policies:{shape:"S4t"},LambdaConfig:{shape:"S4x"},AutoVerifiedAttributes:{shape:"S4y"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},VerificationMessageTemplate:{shape:"S57"},SmsAuthenticationMessage:{},MfaConfiguration:{},DeviceConfiguration:{shape:"S5c"},EmailConfiguration:{shape:"S5d"},SmsConfiguration:{shape:"S5h"},UserPoolTags:{shape:"S5i"},AdminCreateUserConfig:{shape:"S5l"},UserPoolAddOns:{shape:"S5p"},AccountRecoverySetting:{shape:"S5r"}}},output:{type:"structure",members:{}}},UpdateUserPoolClient:{input:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{},ClientId:{shape:"S1j"},ClientName:{},RefreshTokenValidity:{type:"integer"},ReadAttributes:{shape:"S64"},WriteAttributes:{shape:"S64"},ExplicitAuthFlows:{shape:"S66"},SupportedIdentityProviders:{shape:"S68"},CallbackURLs:{shape:"S69"},LogoutURLs:{shape:"S6b"},DefaultRedirectURI:{},AllowedOAuthFlows:{shape:"S6c"},AllowedOAuthScopes:{shape:"S6e"},AllowedOAuthFlowsUserPoolClient:{type:"boolean"},AnalyticsConfiguration:{shape:"S6g"},PreventUserExistenceErrors:{}}},output:{type:"structure",members:{UserPoolClient:{shape:"S6k"}}}},UpdateUserPoolDomain:{input:{type:"structure",required:["Domain","UserPoolId","CustomDomainConfig"],members:{Domain:{},UserPoolId:{},CustomDomainConfig:{shape:"S6n"}}},output:{type:"structure",members:{CloudFrontDomain:{}}}},VerifySoftwareToken:{input:{type:"structure",required:["UserCode"],members:{AccessToken:{shape:"S1v"},Session:{},UserCode:{},FriendlyDeviceName:{}}},output:{type:"structure",members:{Status:{},Session:{}}}},VerifyUserAttribute:{input:{type:"structure",required:["AccessToken","AttributeName","Code"],members:{AccessToken:{shape:"S1v"},AttributeName:{},Code:{}}},output:{type:"structure",members:{}},authtype:"none"}},shapes:{S4:{type:"structure",members:{Name:{},AttributeDataType:{},DeveloperOnlyAttribute:{type:"boolean"},Mutable:{type:"boolean"},Required:{type:"boolean"},NumberAttributeConstraints:{type:"structure",members:{MinValue:{},MaxValue:{}}},StringAttributeConstraints:{type:"structure",members:{MinLength:{},MaxLength:{}}}}},Sd:{type:"string",sensitive:!0},Sg:{type:"map",key:{},value:{}},Sj:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},Value:{type:"string",sensitive:!0}}}},Sn:{type:"string",sensitive:!0},St:{type:"structure",members:{Username:{shape:"Sd"},Attributes:{shape:"Sj"},UserCreateDate:{type:"timestamp"},UserLastModifiedDate:{type:"timestamp"},Enabled:{type:"boolean"},UserStatus:{},MFAOptions:{shape:"Sw"}}},Sw:{type:"list",member:{type:"structure",members:{DeliveryMedium:{},AttributeName:{}}}},S10:{type:"list",member:{}},S13:{type:"structure",members:{ProviderName:{},ProviderAttributeName:{},ProviderAttributeValue:{}}},S1e:{type:"structure",members:{DeviceKey:{},DeviceAttributes:{shape:"Sj"},DeviceCreateDate:{type:"timestamp"},DeviceLastModifiedDate:{type:"timestamp"},DeviceLastAuthenticatedDate:{type:"timestamp"}}},S1h:{type:"list",member:{}},S1j:{type:"string",sensitive:!0},S1l:{type:"map",key:{},value:{}},S1m:{type:"structure",members:{AnalyticsEndpointId:{}}},S1n:{type:"structure",required:["IpAddress","ServerName","ServerPath","HttpHeaders"],members:{IpAddress:{},ServerName:{},ServerPath:{},HttpHeaders:{type:"list",member:{type:"structure",members:{headerName:{},headerValue:{}}}},EncodedData:{}}},S1t:{type:"map",key:{},value:{}},S1u:{type:"structure",members:{AccessToken:{shape:"S1v"},ExpiresIn:{type:"integer"},TokenType:{},RefreshToken:{shape:"S1v"},IdToken:{shape:"S1v"},NewDeviceMetadata:{type:"structure",members:{DeviceKey:{},DeviceGroupKey:{}}}}},S1v:{type:"string",sensitive:!0},S24:{type:"list",member:{shape:"S1e"}},S28:{type:"list",member:{shape:"S29"}},S29:{type:"structure",members:{GroupName:{},UserPoolId:{},Description:{},RoleArn:{},Precedence:{type:"integer"},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S2x:{type:"map",key:{},value:{}},S30:{type:"structure",members:{Enabled:{type:"boolean"},PreferredMfa:{type:"boolean"}}},S31:{type:"structure",members:{Enabled:{type:"boolean"},PreferredMfa:{type:"boolean"}}},S3r:{type:"string",sensitive:!0},S3t:{type:"structure",members:{EncodedData:{}}},S42:{type:"map",key:{},value:{}},S43:{type:"map",key:{},value:{}},S45:{type:"list",member:{}},S48:{type:"structure",members:{UserPoolId:{},ProviderName:{},ProviderType:{},ProviderDetails:{shape:"S42"},AttributeMapping:{shape:"S43"},IdpIdentifiers:{shape:"S45"},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S4c:{type:"list",member:{type:"structure",required:["ScopeName","ScopeDescription"],members:{ScopeName:{},ScopeDescription:{}}}},S4h:{type:"structure",members:{UserPoolId:{},Identifier:{},Name:{},Scopes:{shape:"S4c"}}},S4l:{type:"structure",members:{JobName:{},JobId:{},UserPoolId:{},PreSignedUrl:{},CreationDate:{type:"timestamp"},StartDate:{type:"timestamp"},CompletionDate:{type:"timestamp"},Status:{},CloudWatchLogsRoleArn:{},ImportedUsers:{type:"long"},SkippedUsers:{type:"long"},FailedUsers:{type:"long"},CompletionMessage:{}}},S4t:{type:"structure",members:{PasswordPolicy:{type:"structure",members:{MinimumLength:{type:"integer"},RequireUppercase:{type:"boolean"},RequireLowercase:{type:"boolean"},RequireNumbers:{type:"boolean"},RequireSymbols:{type:"boolean"},TemporaryPasswordValidityDays:{type:"integer"}}}}},S4x:{type:"structure",members:{PreSignUp:{},CustomMessage:{},PostConfirmation:{},PreAuthentication:{},PostAuthentication:{},DefineAuthChallenge:{},CreateAuthChallenge:{},VerifyAuthChallengeResponse:{},PreTokenGeneration:{},UserMigration:{}}},S4y:{type:"list",member:{}},S50:{type:"list",member:{}},S52:{type:"list",member:{}},S57:{type:"structure",members:{SmsMessage:{},EmailMessage:{},EmailSubject:{},EmailMessageByLink:{},EmailSubjectByLink:{},DefaultEmailOption:{}}},S5c:{type:"structure",members:{ChallengeRequiredOnNewDevice:{type:"boolean"},DeviceOnlyRememberedOnUserPrompt:{type:"boolean"}}},S5d:{type:"structure",members:{SourceArn:{},ReplyToEmailAddress:{},EmailSendingAccount:{},From:{},ConfigurationSet:{}}},S5h:{type:"structure",required:["SnsCallerArn"],members:{SnsCallerArn:{},ExternalId:{}}},S5i:{type:"map",key:{},value:{}},S5l:{type:"structure",members:{AllowAdminCreateUserOnly:{type:"boolean"},UnusedAccountValidityDays:{type:"integer"},InviteMessageTemplate:{type:"structure",members:{SMSMessage:{},EmailMessage:{},EmailSubject:{}}}}},S5o:{type:"list",member:{shape:"S4"}},S5p:{type:"structure",required:["AdvancedSecurityMode"],members:{AdvancedSecurityMode:{}}},S5r:{type:"structure",members:{RecoveryMechanisms:{type:"list",member:{type:"structure",required:["Priority","Name"],members:{Priority:{type:"integer"},Name:{}}}}}},S5x:{type:"structure",members:{Id:{},Name:{},Policies:{shape:"S4t"},LambdaConfig:{shape:"S4x"},Status:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"},SchemaAttributes:{shape:"S5o"},AutoVerifiedAttributes:{shape:"S4y"},AliasAttributes:{shape:"S50"},UsernameAttributes:{shape:"S52"},SmsVerificationMessage:{},EmailVerificationMessage:{},EmailVerificationSubject:{},VerificationMessageTemplate:{shape:"S57"},SmsAuthenticationMessage:{},MfaConfiguration:{},DeviceConfiguration:{shape:"S5c"},EstimatedNumberOfUsers:{type:"integer"},EmailConfiguration:{shape:"S5d"},SmsConfiguration:{shape:"S5h"},UserPoolTags:{shape:"S5i"},SmsConfigurationFailure:{},EmailConfigurationFailure:{},Domain:{},CustomDomain:{},AdminCreateUserConfig:{shape:"S5l"},UserPoolAddOns:{shape:"S5p"},Arn:{},AccountRecoverySetting:{shape:"S5r"}}},S64:{type:"list",member:{}},S66:{type:"list",member:{}},S68:{type:"list",member:{}},S69:{type:"list",member:{}},S6b:{type:"list",member:{}},S6c:{type:"list",member:{}},S6e:{type:"list",member:{}},S6g:{type:"structure",required:["ApplicationId","RoleArn","ExternalId"],members:{ - ApplicationId:{},RoleArn:{},ExternalId:{},UserDataShared:{type:"boolean"}}},S6k:{type:"structure",members:{UserPoolId:{},ClientName:{},ClientId:{shape:"S1j"},ClientSecret:{type:"string",sensitive:!0},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"},RefreshTokenValidity:{type:"integer"},ReadAttributes:{shape:"S64"},WriteAttributes:{shape:"S64"},ExplicitAuthFlows:{shape:"S66"},SupportedIdentityProviders:{shape:"S68"},CallbackURLs:{shape:"S69"},LogoutURLs:{shape:"S6b"},DefaultRedirectURI:{},AllowedOAuthFlows:{shape:"S6c"},AllowedOAuthScopes:{shape:"S6e"},AllowedOAuthFlowsUserPoolClient:{type:"boolean"},AnalyticsConfiguration:{shape:"S6g"},PreventUserExistenceErrors:{}}},S6n:{type:"structure",required:["CertificateArn"],members:{CertificateArn:{}}},S75:{type:"structure",members:{UserPoolId:{},ClientId:{shape:"S1j"},CompromisedCredentialsRiskConfiguration:{shape:"S76"},AccountTakeoverRiskConfiguration:{shape:"S7b"},RiskExceptionConfiguration:{shape:"S7k"},LastModifiedDate:{type:"timestamp"}}},S76:{type:"structure",required:["Actions"],members:{EventFilter:{type:"list",member:{}},Actions:{type:"structure",required:["EventAction"],members:{EventAction:{}}}}},S7b:{type:"structure",required:["Actions"],members:{NotifyConfiguration:{type:"structure",required:["SourceArn"],members:{From:{},ReplyTo:{},SourceArn:{},BlockEmail:{shape:"S7d"},NoActionEmail:{shape:"S7d"},MfaEmail:{shape:"S7d"}}},Actions:{type:"structure",members:{LowAction:{shape:"S7h"},MediumAction:{shape:"S7h"},HighAction:{shape:"S7h"}}}}},S7d:{type:"structure",required:["Subject"],members:{Subject:{},HtmlBody:{},TextBody:{}}},S7h:{type:"structure",required:["Notify","EventAction"],members:{Notify:{type:"boolean"},EventAction:{}}},S7k:{type:"structure",members:{BlockedIPRangeList:{type:"list",member:{}},SkippedIPRangeList:{type:"list",member:{}}}},S83:{type:"structure",members:{Destination:{},DeliveryMedium:{},AttributeName:{}}},S8h:{type:"structure",members:{UserPoolId:{},ClientId:{shape:"S1j"},ImageUrl:{},CSS:{},CSSVersion:{},LastModifiedDate:{type:"timestamp"},CreationDate:{type:"timestamp"}}},S8r:{type:"structure",members:{SmsAuthenticationMessage:{},SmsConfiguration:{shape:"S5h"}}},S8s:{type:"structure",members:{Enabled:{type:"boolean"}}},S9u:{type:"list",member:{shape:"St"}}},paginators:{AdminListGroupsForUser:{input_token:"NextToken",limit_key:"Limit",output_token:"NextToken",result_key:"Groups"},AdminListUserAuthEvents:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"AuthEvents"},ListGroups:{input_token:"NextToken",limit_key:"Limit",output_token:"NextToken",result_key:"Groups"},ListIdentityProviders:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"Providers"},ListResourceServers:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"ResourceServers"},ListUserPoolClients:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"UserPoolClients"},ListUserPools:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"UserPools"},ListUsers:{input_token:"PaginationToken",limit_key:"Limit",output_token:"PaginationToken",result_key:"Users"},ListUsersInGroup:{input_token:"NextToken",limit_key:"Limit",output_token:"NextToken",result_key:"Users"}}};AWS.apiLoader.services.cognitosync={},AWS.CognitoSync=AWS.Service.defineService("cognitosync",["2014-06-30"]);AWS.apiLoader.services.cognitosync["2014-06-30"]={version:"2.0",metadata:{apiVersion:"2014-06-30",endpointPrefix:"cognito-sync",jsonVersion:"1.1",serviceFullName:"Amazon Cognito Sync",serviceId:"Cognito Sync",signatureVersion:"v4",protocol:"rest-json",uid:"cognito-sync-2014-06-30"},operations:{BulkPublish:{http:{requestUri:"/identitypools/{IdentityPoolId}/bulkpublish",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{}}}},DeleteDataset:{http:{method:"DELETE",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"}}},output:{type:"structure",members:{Dataset:{shape:"S8"}}}},DescribeDataset:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"}}},output:{type:"structure",members:{Dataset:{shape:"S8"}}}},DescribeIdentityPoolUsage:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolUsage:{shape:"Sg"}}}},DescribeIdentityUsage:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"}}},output:{type:"structure",members:{IdentityUsage:{type:"structure",members:{IdentityId:{},IdentityPoolId:{},LastModifiedDate:{type:"timestamp"},DatasetCount:{type:"integer"},DataStorage:{type:"long"}}}}}},GetBulkPublishDetails:{http:{requestUri:"/identitypools/{IdentityPoolId}/getBulkPublishDetails",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{},BulkPublishStartTime:{type:"timestamp"},BulkPublishCompleteTime:{type:"timestamp"},BulkPublishStatus:{},FailureMessage:{}}}},GetCognitoEvents:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/events",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{Events:{shape:"Sq"}}}},GetIdentityPoolConfiguration:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/configuration",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"}}},output:{type:"structure",members:{IdentityPoolId:{},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}}},ListDatasets:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets",responseCode:200},input:{type:"structure",required:["IdentityId","IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{Datasets:{type:"list",member:{shape:"S8"}},Count:{type:"integer"},NextToken:{}}}},ListIdentityPoolUsage:{http:{method:"GET",requestUri:"/identitypools",responseCode:200},input:{type:"structure",members:{NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{IdentityPoolUsages:{type:"list",member:{shape:"Sg"}},MaxResults:{type:"integer"},Count:{type:"integer"},NextToken:{}}}},ListRecords:{http:{method:"GET",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},LastSyncCount:{location:"querystring",locationName:"lastSyncCount",type:"long"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"},SyncSessionToken:{location:"querystring",locationName:"syncSessionToken"}}},output:{type:"structure",members:{Records:{shape:"S1c"},NextToken:{},Count:{type:"integer"},DatasetSyncCount:{type:"long"},LastModifiedBy:{},MergedDatasetNames:{type:"list",member:{}},DatasetExists:{type:"boolean"},DatasetDeletedAfterRequestedSyncCount:{type:"boolean"},SyncSessionToken:{}}}},RegisterDevice:{http:{requestUri:"/identitypools/{IdentityPoolId}/identity/{IdentityId}/device",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","Platform","Token"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},Platform:{},Token:{}}},output:{type:"structure",members:{DeviceId:{}}}},SetCognitoEvents:{http:{requestUri:"/identitypools/{IdentityPoolId}/events",responseCode:200},input:{type:"structure",required:["IdentityPoolId","Events"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},Events:{shape:"Sq"}}}},SetIdentityPoolConfiguration:{http:{requestUri:"/identitypools/{IdentityPoolId}/configuration",responseCode:200},input:{type:"structure",required:["IdentityPoolId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}},output:{type:"structure",members:{IdentityPoolId:{},PushSync:{shape:"Sv"},CognitoStreams:{shape:"Sz"}}}},SubscribeToDataset:{http:{requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","DeviceId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{location:"uri",locationName:"DeviceId"}}},output:{type:"structure",members:{}}},UnsubscribeFromDataset:{http:{method:"DELETE",requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","DeviceId"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{location:"uri",locationName:"DeviceId"}}},output:{type:"structure",members:{}}},UpdateRecords:{http:{requestUri:"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}",responseCode:200},input:{type:"structure",required:["IdentityPoolId","IdentityId","DatasetName","SyncSessionToken"],members:{IdentityPoolId:{location:"uri",locationName:"IdentityPoolId"},IdentityId:{location:"uri",locationName:"IdentityId"},DatasetName:{location:"uri",locationName:"DatasetName"},DeviceId:{},RecordPatches:{type:"list",member:{type:"structure",required:["Op","Key","SyncCount"],members:{Op:{},Key:{},Value:{},SyncCount:{type:"long"},DeviceLastModifiedDate:{type:"timestamp"}}}},SyncSessionToken:{},ClientContext:{location:"header",locationName:"x-amz-Client-Context"}}},output:{type:"structure",members:{Records:{shape:"S1c"}}}}},shapes:{S8:{type:"structure",members:{IdentityId:{},DatasetName:{},CreationDate:{type:"timestamp"},LastModifiedDate:{type:"timestamp"},LastModifiedBy:{},DataStorage:{type:"long"},NumRecords:{type:"long"}}},Sg:{type:"structure",members:{IdentityPoolId:{},SyncSessionsCount:{type:"long"},DataStorage:{type:"long"},LastModifiedDate:{type:"timestamp"}}},Sq:{type:"map",key:{},value:{}},Sv:{type:"structure",members:{ApplicationArns:{type:"list",member:{}},RoleArn:{}}},Sz:{type:"structure",members:{StreamName:{},RoleArn:{},StreamingStatus:{}}},S1c:{type:"list",member:{type:"structure",members:{Key:{},Value:{},SyncCount:{type:"long"},LastModifiedDate:{type:"timestamp"},LastModifiedBy:{},DeviceLastModifiedDate:{type:"timestamp"}}}}},examples:{}};AWS.apiLoader.services.configservice={},AWS.ConfigService=AWS.Service.defineService("configservice",["2014-11-12"]);AWS.apiLoader.services.configservice["2014-11-12"]={version:"2.0",metadata:{apiVersion:"2014-11-12",endpointPrefix:"config",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Config Service",serviceFullName:"AWS Config",serviceId:"Config Service",signatureVersion:"v4",targetPrefix:"StarlingDoveService",uid:"config-2014-11-12"},operations:{BatchGetAggregateResourceConfig:{input:{type:"structure",required:["ConfigurationAggregatorName","ResourceIdentifiers"],members:{ConfigurationAggregatorName:{},ResourceIdentifiers:{type:"list",member:{shape:"S4"}}}},output:{type:"structure",members:{BaseConfigurationItems:{shape:"Sb"},UnprocessedResourceIdentifiers:{type:"list",member:{shape:"S4"}}}}},BatchGetResourceConfig:{input:{type:"structure",required:["resourceKeys"],members:{resourceKeys:{shape:"Sq"}}},output:{type:"structure",members:{baseConfigurationItems:{shape:"Sb"},unprocessedResourceKeys:{shape:"Sq"}}}},DeleteAggregationAuthorization:{input:{type:"structure",required:["AuthorizedAccountId","AuthorizedAwsRegion"],members:{AuthorizedAccountId:{},AuthorizedAwsRegion:{}}}},DeleteConfigRule:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{}}}},DeleteConfigurationAggregator:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{}}}},DeleteConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}}},DeleteConformancePack:{input:{type:"structure",required:["ConformancePackName"],members:{ConformancePackName:{}}}},DeleteDeliveryChannel:{input:{type:"structure",required:["DeliveryChannelName"],members:{DeliveryChannelName:{}}}},DeleteEvaluationResults:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{}}},output:{type:"structure",members:{}}},DeleteOrganizationConfigRule:{input:{type:"structure",required:["OrganizationConfigRuleName"],members:{OrganizationConfigRuleName:{}}}},DeleteOrganizationConformancePack:{input:{type:"structure",required:["OrganizationConformancePackName"],members:{OrganizationConformancePackName:{}}}},DeletePendingAggregationRequest:{input:{type:"structure",required:["RequesterAccountId","RequesterAwsRegion"],members:{RequesterAccountId:{},RequesterAwsRegion:{}}}},DeleteRemediationConfiguration:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ResourceType:{}}},output:{type:"structure",members:{}}},DeleteRemediationExceptions:{input:{type:"structure",required:["ConfigRuleName","ResourceKeys"],members:{ConfigRuleName:{},ResourceKeys:{shape:"S1f"}}},output:{type:"structure",members:{FailedBatches:{type:"list",member:{type:"structure",members:{FailureMessage:{},FailedItems:{shape:"S1f"}}}}}}},DeleteResourceConfig:{input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{},ResourceId:{}}}},DeleteRetentionConfiguration:{input:{type:"structure",required:["RetentionConfigurationName"],members:{RetentionConfigurationName:{}}}},DeliverConfigSnapshot:{input:{type:"structure",required:["deliveryChannelName"],members:{deliveryChannelName:{}}},output:{type:"structure",members:{configSnapshotId:{}}}},DescribeAggregateComplianceByConfigRules:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},Filters:{type:"structure",members:{ConfigRuleName:{},ComplianceType:{},AccountId:{},AwsRegion:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AggregateComplianceByConfigRules:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},Compliance:{shape:"S20"},AccountId:{},AwsRegion:{}}}},NextToken:{}}}},DescribeAggregationAuthorizations:{input:{type:"structure",members:{Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AggregationAuthorizations:{type:"list",member:{shape:"S28"}},NextToken:{}}}},DescribeComplianceByConfigRule:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S2b"},ComplianceTypes:{shape:"S2c"},NextToken:{}}},output:{type:"structure",members:{ComplianceByConfigRules:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},Compliance:{shape:"S20"}}}},NextToken:{}}}},DescribeComplianceByResource:{input:{type:"structure",members:{ResourceType:{},ResourceId:{},ComplianceTypes:{shape:"S2c"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ComplianceByResources:{type:"list",member:{type:"structure",members:{ResourceType:{},ResourceId:{},Compliance:{shape:"S20"}}}},NextToken:{}}}},DescribeConfigRuleEvaluationStatus:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S2b"},NextToken:{},Limit:{type:"integer"}}},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"}}}},NextToken:{}}}},DescribeConfigRules:{input:{type:"structure",members:{ConfigRuleNames:{shape:"S2b"},NextToken:{}}},output:{type:"structure",members:{ConfigRules:{type:"list",member:{shape:"S2t"}},NextToken:{}}}},DescribeConfigurationAggregatorSourcesStatus:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},UpdateStatus:{type:"list",member:{}},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{AggregatedSourceStatusList:{type:"list",member:{type:"structure",members:{SourceId:{},SourceType:{},AwsRegion:{},LastUpdateStatus:{},LastUpdateTime:{type:"timestamp"},LastErrorCode:{},LastErrorMessage:{}}}},NextToken:{}}}},DescribeConfigurationAggregators:{input:{type:"structure",members:{ConfigurationAggregatorNames:{type:"list",member:{}},NextToken:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ConfigurationAggregators:{type:"list",member:{shape:"S3h"}},NextToken:{}}}},DescribeConfigurationRecorderStatus:{input:{type:"structure",members:{ConfigurationRecorderNames:{shape:"S3p"}}},output:{type:"structure",members:{ConfigurationRecordersStatus:{type:"list",member:{type:"structure",members:{name:{},lastStartTime:{type:"timestamp"},lastStopTime:{type:"timestamp"},recording:{type:"boolean"},lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastStatusChangeTime:{type:"timestamp"}}}}}}},DescribeConfigurationRecorders:{input:{type:"structure",members:{ConfigurationRecorderNames:{shape:"S3p"}}},output:{type:"structure",members:{ConfigurationRecorders:{type:"list",member:{shape:"S3x"}}}}},DescribeConformancePackCompliance:{input:{type:"structure",required:["ConformancePackName"],members:{ConformancePackName:{},Filters:{type:"structure",members:{ConfigRuleNames:{shape:"S44"},ComplianceType:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["ConformancePackName","ConformancePackRuleComplianceList"],members:{ConformancePackName:{},ConformancePackRuleComplianceList:{type:"list",member:{type:"structure",members:{ConfigRuleName:{},ComplianceType:{}}}},NextToken:{}}}},DescribeConformancePackStatus:{input:{type:"structure",members:{ConformancePackNames:{shape:"S4b"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ConformancePackStatusDetails:{type:"list",member:{type:"structure",required:["ConformancePackName","ConformancePackId","ConformancePackArn","ConformancePackState","StackArn","LastUpdateRequestedTime"],members:{ConformancePackName:{},ConformancePackId:{},ConformancePackArn:{},ConformancePackState:{},StackArn:{},ConformancePackStatusReason:{},LastUpdateRequestedTime:{type:"timestamp"},LastUpdateCompletedTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeConformancePacks:{input:{type:"structure",members:{ConformancePackNames:{shape:"S4b"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ConformancePackDetails:{type:"list",member:{type:"structure",required:["ConformancePackName","ConformancePackArn","ConformancePackId","DeliveryS3Bucket"],members:{ConformancePackName:{},ConformancePackArn:{},ConformancePackId:{},DeliveryS3Bucket:{},DeliveryS3KeyPrefix:{},ConformancePackInputParameters:{shape:"S4r"},LastUpdateRequestedTime:{type:"timestamp"},CreatedBy:{}}}},NextToken:{}}}},DescribeDeliveryChannelStatus:{input:{type:"structure",members:{DeliveryChannelNames:{shape:"S4w"}}},output:{type:"structure",members:{DeliveryChannelsStatus:{type:"list",member:{type:"structure",members:{name:{},configSnapshotDeliveryInfo:{shape:"S50"},configHistoryDeliveryInfo:{shape:"S50"},configStreamDeliveryInfo:{type:"structure",members:{lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastStatusChangeTime:{type:"timestamp"}}}}}}}}},DescribeDeliveryChannels:{input:{type:"structure",members:{DeliveryChannelNames:{shape:"S4w"}}},output:{type:"structure",members:{DeliveryChannels:{type:"list",member:{shape:"S56"}}}}},DescribeOrganizationConfigRuleStatuses:{input:{type:"structure",members:{OrganizationConfigRuleNames:{shape:"S59"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{OrganizationConfigRuleStatuses:{type:"list",member:{type:"structure",required:["OrganizationConfigRuleName","OrganizationRuleStatus"],members:{OrganizationConfigRuleName:{},OrganizationRuleStatus:{},ErrorCode:{},ErrorMessage:{},LastUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeOrganizationConfigRules:{input:{type:"structure",members:{OrganizationConfigRuleNames:{shape:"S59"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{OrganizationConfigRules:{type:"list",member:{type:"structure",required:["OrganizationConfigRuleName","OrganizationConfigRuleArn"],members:{OrganizationConfigRuleName:{},OrganizationConfigRuleArn:{},OrganizationManagedRuleMetadata:{shape:"S5j"},OrganizationCustomRuleMetadata:{shape:"S5o"},ExcludedAccounts:{shape:"S5r"},LastUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeOrganizationConformancePackStatuses:{input:{type:"structure",members:{OrganizationConformancePackNames:{shape:"S5t"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{OrganizationConformancePackStatuses:{type:"list",member:{type:"structure",required:["OrganizationConformancePackName","Status"],members:{OrganizationConformancePackName:{},Status:{},ErrorCode:{},ErrorMessage:{},LastUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeOrganizationConformancePacks:{input:{type:"structure",members:{OrganizationConformancePackNames:{shape:"S5t"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{OrganizationConformancePacks:{type:"list",member:{type:"structure",required:["OrganizationConformancePackName","OrganizationConformancePackArn","DeliveryS3Bucket","LastUpdateTime"],members:{OrganizationConformancePackName:{},OrganizationConformancePackArn:{},DeliveryS3Bucket:{},DeliveryS3KeyPrefix:{},ConformancePackInputParameters:{shape:"S4r"},ExcludedAccounts:{shape:"S5r"},LastUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},DescribePendingAggregationRequests:{input:{type:"structure",members:{Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{PendingAggregationRequests:{type:"list",member:{type:"structure",members:{RequesterAccountId:{},RequesterAwsRegion:{}}}},NextToken:{}}}},DescribeRemediationConfigurations:{input:{type:"structure",required:["ConfigRuleNames"],members:{ConfigRuleNames:{shape:"S2b"}}},output:{type:"structure",members:{RemediationConfigurations:{shape:"S69"}}}},DescribeRemediationExceptions:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ResourceKeys:{shape:"S1f"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{RemediationExceptions:{shape:"S6p"},NextToken:{}}}},DescribeRemediationExecutionStatus:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ResourceKeys:{shape:"Sq"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{RemediationExecutionStatuses:{type:"list",member:{type:"structure",members:{ResourceKey:{shape:"Sr"},State:{},StepDetails:{type:"list",member:{type:"structure",members:{Name:{},State:{},ErrorMessage:{},StartTime:{type:"timestamp"},StopTime:{type:"timestamp"}}}},InvocationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeRetentionConfigurations:{input:{type:"structure",members:{RetentionConfigurationNames:{type:"list",member:{}},NextToken:{}}},output:{type:"structure",members:{RetentionConfigurations:{type:"list",member:{shape:"S73"}},NextToken:{}}}},GetAggregateComplianceDetailsByConfigRule:{input:{type:"structure",required:["ConfigurationAggregatorName","ConfigRuleName","AccountId","AwsRegion"],members:{ConfigurationAggregatorName:{},ConfigRuleName:{},AccountId:{},AwsRegion:{},ComplianceType:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AggregateEvaluationResults:{type:"list",member:{type:"structure",members:{EvaluationResultIdentifier:{shape:"S79"},ComplianceType:{},ResultRecordedTime:{type:"timestamp"},ConfigRuleInvokedTime:{type:"timestamp"},Annotation:{},AccountId:{},AwsRegion:{}}}},NextToken:{}}}},GetAggregateConfigRuleComplianceSummary:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},Filters:{type:"structure",members:{AccountId:{},AwsRegion:{}}},GroupByKey:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GroupByKey:{},AggregateComplianceCounts:{type:"list",member:{type:"structure",members:{GroupName:{},ComplianceSummary:{shape:"S7h"}}}},NextToken:{}}}},GetAggregateDiscoveredResourceCounts:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},Filters:{type:"structure",members:{ResourceType:{},AccountId:{},Region:{}}},GroupByKey:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["TotalDiscoveredResources"],members:{TotalDiscoveredResources:{type:"long"},GroupByKey:{},GroupedResourceCounts:{type:"list",member:{type:"structure",required:["GroupName","ResourceCount"],members:{GroupName:{},ResourceCount:{type:"long"}}}},NextToken:{}}}},GetAggregateResourceConfig:{input:{type:"structure",required:["ConfigurationAggregatorName","ResourceIdentifier"],members:{ConfigurationAggregatorName:{},ResourceIdentifier:{shape:"S4"}}},output:{type:"structure",members:{ConfigurationItem:{shape:"S7r"}}}},GetComplianceDetailsByConfigRule:{input:{type:"structure",required:["ConfigRuleName"],members:{ConfigRuleName:{},ComplianceTypes:{shape:"S2c"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{EvaluationResults:{shape:"S83"},NextToken:{}}}},GetComplianceDetailsByResource:{input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{},ResourceId:{},ComplianceTypes:{shape:"S2c"},NextToken:{}}},output:{type:"structure",members:{EvaluationResults:{shape:"S83"},NextToken:{}}}},GetComplianceSummaryByConfigRule:{output:{type:"structure",members:{ComplianceSummary:{shape:"S7h"}}}},GetComplianceSummaryByResourceType:{input:{type:"structure",members:{ResourceTypes:{shape:"S89"}}},output:{type:"structure",members:{ComplianceSummariesByResourceType:{type:"list",member:{type:"structure",members:{ResourceType:{},ComplianceSummary:{shape:"S7h"}}}}}}},GetConformancePackComplianceDetails:{input:{type:"structure",required:["ConformancePackName"],members:{ConformancePackName:{},Filters:{type:"structure",members:{ConfigRuleNames:{shape:"S44"},ComplianceType:{},ResourceType:{},ResourceIds:{type:"list",member:{}}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["ConformancePackName"],members:{ConformancePackName:{},ConformancePackRuleEvaluationResults:{type:"list",member:{type:"structure",required:["ComplianceType","EvaluationResultIdentifier","ConfigRuleInvokedTime","ResultRecordedTime"],members:{ComplianceType:{},EvaluationResultIdentifier:{shape:"S79"},ConfigRuleInvokedTime:{type:"timestamp"},ResultRecordedTime:{type:"timestamp"},Annotation:{}}}},NextToken:{}}}},GetConformancePackComplianceSummary:{input:{type:"structure",required:["ConformancePackNames"],members:{ConformancePackNames:{type:"list",member:{}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ConformancePackComplianceSummaryList:{type:"list",member:{type:"structure",required:["ConformancePackName","ConformancePackComplianceStatus"],members:{ConformancePackName:{},ConformancePackComplianceStatus:{}}}},NextToken:{}}}},GetDiscoveredResourceCounts:{input:{type:"structure",members:{resourceTypes:{shape:"S89"},limit:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{totalDiscoveredResources:{type:"long"},resourceCounts:{type:"list",member:{type:"structure",members:{resourceType:{},count:{type:"long"}}}},nextToken:{}}}},GetOrganizationConfigRuleDetailedStatus:{input:{type:"structure",required:["OrganizationConfigRuleName"],members:{OrganizationConfigRuleName:{},Filters:{type:"structure",members:{AccountId:{},MemberAccountRuleStatus:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{OrganizationConfigRuleDetailedStatus:{type:"list",member:{type:"structure",required:["AccountId","ConfigRuleName","MemberAccountRuleStatus"],members:{AccountId:{},ConfigRuleName:{},MemberAccountRuleStatus:{},ErrorCode:{},ErrorMessage:{},LastUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},GetOrganizationConformancePackDetailedStatus:{input:{type:"structure",required:["OrganizationConformancePackName"],members:{OrganizationConformancePackName:{},Filters:{type:"structure",members:{AccountId:{},Status:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{OrganizationConformancePackDetailedStatuses:{type:"list",member:{type:"structure",required:["AccountId","ConformancePackName","Status"],members:{AccountId:{},ConformancePackName:{},Status:{},ErrorCode:{},ErrorMessage:{},LastUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},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:{shape:"S7r"}},nextToken:{}}}},ListAggregateDiscoveredResources:{input:{type:"structure",required:["ConfigurationAggregatorName","ResourceType"],members:{ConfigurationAggregatorName:{},ResourceType:{},Filters:{type:"structure",members:{AccountId:{},ResourceId:{},ResourceName:{},Region:{}}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ResourceIdentifiers:{type:"list",member:{shape:"S4"}},NextToken:{}}}},ListDiscoveredResources:{input:{type:"structure",required:["resourceType"],members:{resourceType:{},resourceIds:{type:"list",member:{}},resourceName:{},limit:{type:"integer"},includeDeletedResources:{type:"boolean"},nextToken:{}}},output:{type:"structure",members:{resourceIdentifiers:{type:"list",member:{type:"structure",members:{resourceType:{},resourceId:{},resourceName:{},resourceDeletionTime:{type:"timestamp"}}}},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tags:{shape:"S9p"},NextToken:{}}}},PutAggregationAuthorization:{input:{type:"structure",required:["AuthorizedAccountId","AuthorizedAwsRegion"],members:{AuthorizedAccountId:{},AuthorizedAwsRegion:{},Tags:{shape:"S9u"}}},output:{type:"structure",members:{AggregationAuthorization:{shape:"S28"}}}},PutConfigRule:{input:{type:"structure",required:["ConfigRule"],members:{ConfigRule:{shape:"S2t"},Tags:{shape:"S9u"}}}},PutConfigurationAggregator:{input:{type:"structure",required:["ConfigurationAggregatorName"],members:{ConfigurationAggregatorName:{},AccountAggregationSources:{shape:"S3j"},OrganizationAggregationSource:{shape:"S3n"},Tags:{shape:"S9u"}}},output:{type:"structure",members:{ConfigurationAggregator:{shape:"S3h"}}}},PutConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorder"],members:{ConfigurationRecorder:{shape:"S3x"}}}},PutConformancePack:{input:{type:"structure",required:["ConformancePackName","DeliveryS3Bucket"],members:{ConformancePackName:{},TemplateS3Uri:{},TemplateBody:{},DeliveryS3Bucket:{},DeliveryS3KeyPrefix:{},ConformancePackInputParameters:{shape:"S4r"}}},output:{type:"structure",members:{ConformancePackArn:{}}}},PutDeliveryChannel:{input:{type:"structure",required:["DeliveryChannel"],members:{DeliveryChannel:{shape:"S56"}}}},PutEvaluations:{input:{type:"structure",required:["ResultToken"],members:{Evaluations:{shape:"Sa6"},ResultToken:{},TestMode:{type:"boolean"}}},output:{type:"structure",members:{FailedEvaluations:{shape:"Sa6"}}}},PutOrganizationConfigRule:{input:{type:"structure",required:["OrganizationConfigRuleName"],members:{OrganizationConfigRuleName:{},OrganizationManagedRuleMetadata:{shape:"S5j"},OrganizationCustomRuleMetadata:{shape:"S5o"},ExcludedAccounts:{shape:"S5r"}}},output:{type:"structure",members:{OrganizationConfigRuleArn:{}}}},PutOrganizationConformancePack:{input:{type:"structure",required:["OrganizationConformancePackName","DeliveryS3Bucket"],members:{OrganizationConformancePackName:{},TemplateS3Uri:{},TemplateBody:{},DeliveryS3Bucket:{},DeliveryS3KeyPrefix:{},ConformancePackInputParameters:{shape:"S4r"},ExcludedAccounts:{shape:"S5r"}}},output:{type:"structure",members:{OrganizationConformancePackArn:{}}}},PutRemediationConfigurations:{input:{type:"structure",required:["RemediationConfigurations"],members:{RemediationConfigurations:{shape:"S69"}}},output:{type:"structure",members:{FailedBatches:{type:"list",member:{type:"structure",members:{FailureMessage:{},FailedItems:{shape:"S69"}}}}}}},PutRemediationExceptions:{input:{type:"structure",required:["ConfigRuleName","ResourceKeys"],members:{ConfigRuleName:{},ResourceKeys:{shape:"S1f"},Message:{},ExpirationTime:{type:"timestamp"}}},output:{type:"structure",members:{FailedBatches:{type:"list",member:{type:"structure",members:{FailureMessage:{},FailedItems:{shape:"S6p"}}}}}}},PutResourceConfig:{input:{type:"structure",required:["ResourceType","SchemaVersionId","ResourceId","Configuration"],members:{ResourceType:{},SchemaVersionId:{},ResourceId:{},ResourceName:{},Configuration:{},Tags:{shape:"S7t"}}}},PutRetentionConfiguration:{input:{type:"structure",required:["RetentionPeriodInDays"],members:{RetentionPeriodInDays:{type:"integer"}}},output:{type:"structure",members:{RetentionConfiguration:{shape:"S73"}}}},SelectResourceConfig:{input:{type:"structure",required:["Expression"],members:{Expression:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Results:{type:"list",member:{}},QueryInfo:{type:"structure",members:{SelectFields:{type:"list",member:{type:"structure",members:{Name:{}}}}}},NextToken:{}}}},StartConfigRulesEvaluation:{input:{type:"structure",members:{ConfigRuleNames:{type:"list",member:{}}}},output:{type:"structure",members:{}}},StartConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}}},StartRemediationExecution:{input:{type:"structure",required:["ConfigRuleName","ResourceKeys"],members:{ConfigRuleName:{},ResourceKeys:{shape:"Sq"}}},output:{type:"structure",members:{FailureMessage:{},FailedItems:{shape:"Sq"}}}},StopConfigurationRecorder:{input:{type:"structure",required:["ConfigurationRecorderName"],members:{ConfigurationRecorderName:{}}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S9p"}}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}}}},shapes:{S4:{type:"structure",required:["SourceAccountId","SourceRegion","ResourceId","ResourceType"],members:{SourceAccountId:{},SourceRegion:{},ResourceId:{},ResourceType:{},ResourceName:{}}},Sb:{type:"list",member:{type:"structure",members:{version:{},accountId:{},configurationItemCaptureTime:{type:"timestamp"},configurationItemStatus:{},configurationStateId:{},arn:{},resourceType:{},resourceId:{},resourceName:{},awsRegion:{},availabilityZone:{},resourceCreationTime:{type:"timestamp"},configuration:{},supplementaryConfiguration:{shape:"Sl"}}}},Sl:{type:"map",key:{},value:{}},Sq:{type:"list",member:{shape:"Sr"}},Sr:{type:"structure",required:["resourceType","resourceId"],members:{resourceType:{},resourceId:{}}},S1f:{type:"list",member:{type:"structure",members:{ResourceType:{},ResourceId:{}}}},S20:{type:"structure",members:{ComplianceType:{},ComplianceContributorCount:{shape:"S21"}}},S21:{type:"structure",members:{CappedCount:{type:"integer"},CapExceeded:{type:"boolean"}}},S28:{type:"structure",members:{AggregationAuthorizationArn:{},AuthorizedAccountId:{},AuthorizedAwsRegion:{},CreationTime:{type:"timestamp"}}},S2b:{type:"list",member:{}},S2c:{type:"list",member:{}},S2t:{type:"structure",required:["Source"],members:{ConfigRuleName:{},ConfigRuleArn:{},ConfigRuleId:{},Description:{},Scope:{type:"structure",members:{ComplianceResourceTypes:{type:"list",member:{}},TagKey:{},TagValue:{},ComplianceResourceId:{}}},Source:{type:"structure",required:["Owner","SourceIdentifier"],members:{Owner:{},SourceIdentifier:{},SourceDetails:{type:"list",member:{type:"structure",members:{EventSource:{},MessageType:{},MaximumExecutionFrequency:{}}}}}},InputParameters:{},MaximumExecutionFrequency:{},ConfigRuleState:{},CreatedBy:{}}},S3h:{type:"structure",members:{ConfigurationAggregatorName:{},ConfigurationAggregatorArn:{},AccountAggregationSources:{shape:"S3j"},OrganizationAggregationSource:{shape:"S3n"},CreationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}},S3j:{type:"list",member:{type:"structure",required:["AccountIds"],members:{AccountIds:{type:"list",member:{}},AllAwsRegions:{type:"boolean"},AwsRegions:{shape:"S3m"}}}},S3m:{type:"list",member:{}},S3n:{type:"structure",required:["RoleArn"],members:{RoleArn:{},AwsRegions:{shape:"S3m"},AllAwsRegions:{type:"boolean"}}},S3p:{type:"list",member:{}},S3x:{type:"structure",members:{name:{},roleARN:{},recordingGroup:{type:"structure",members:{allSupported:{type:"boolean"},includeGlobalResourceTypes:{type:"boolean"},resourceTypes:{type:"list",member:{}}}}}},S44:{type:"list",member:{}},S4b:{type:"list",member:{}},S4r:{type:"list",member:{type:"structure",required:["ParameterName","ParameterValue"],members:{ParameterName:{},ParameterValue:{}}}},S4w:{type:"list",member:{}},S50:{type:"structure",members:{lastStatus:{},lastErrorCode:{},lastErrorMessage:{},lastAttemptTime:{type:"timestamp"},lastSuccessfulTime:{type:"timestamp"},nextDeliveryTime:{type:"timestamp"}}},S56:{type:"structure",members:{name:{},s3BucketName:{},s3KeyPrefix:{},snsTopicARN:{},configSnapshotDeliveryProperties:{type:"structure",members:{deliveryFrequency:{}}}}},S59:{type:"list",member:{}},S5j:{type:"structure",required:["RuleIdentifier"],members:{Description:{},RuleIdentifier:{},InputParameters:{},MaximumExecutionFrequency:{},ResourceTypesScope:{shape:"S5m"},ResourceIdScope:{},TagKeyScope:{},TagValueScope:{}}},S5m:{type:"list",member:{}},S5o:{type:"structure",required:["LambdaFunctionArn","OrganizationConfigRuleTriggerTypes"],members:{Description:{},LambdaFunctionArn:{},OrganizationConfigRuleTriggerTypes:{type:"list",member:{}},InputParameters:{},MaximumExecutionFrequency:{},ResourceTypesScope:{shape:"S5m"},ResourceIdScope:{},TagKeyScope:{},TagValueScope:{}}},S5r:{type:"list",member:{}},S5t:{type:"list",member:{}},S69:{type:"list",member:{type:"structure",required:["ConfigRuleName","TargetType","TargetId"],members:{ConfigRuleName:{},TargetType:{},TargetId:{},TargetVersion:{},Parameters:{type:"map",key:{},value:{type:"structure",members:{ResourceValue:{type:"structure",required:["Value"],members:{Value:{}}},StaticValue:{type:"structure",required:["Values"],members:{Values:{type:"list",member:{}}}}}}},ResourceType:{},Automatic:{type:"boolean"},ExecutionControls:{type:"structure",members:{SsmControls:{type:"structure",members:{ConcurrentExecutionRatePercentage:{type:"integer"},ErrorPercentage:{type:"integer"}}}}},MaximumAutomaticAttempts:{type:"integer"},RetryAttemptSeconds:{type:"long"},Arn:{},CreatedByService:{}}}},S6p:{type:"list",member:{type:"structure",required:["ConfigRuleName","ResourceType","ResourceId"],members:{ConfigRuleName:{},ResourceType:{},ResourceId:{},Message:{},ExpirationTime:{type:"timestamp"}}}},S73:{type:"structure",required:["Name","RetentionPeriodInDays"],members:{Name:{},RetentionPeriodInDays:{type:"integer"}}},S79:{type:"structure",members:{EvaluationResultQualifier:{type:"structure",members:{ConfigRuleName:{},ResourceType:{},ResourceId:{}}},OrderingTimestamp:{type:"timestamp"}}},S7h:{type:"structure",members:{CompliantResourceCount:{shape:"S21"},NonCompliantResourceCount:{shape:"S21"},ComplianceSummaryTimestamp:{type:"timestamp"}}},S7r:{type:"structure",members:{version:{},accountId:{},configurationItemCaptureTime:{type:"timestamp"},configurationItemStatus:{},configurationStateId:{},configurationItemMD5Hash:{},arn:{},resourceType:{},resourceId:{},resourceName:{},awsRegion:{},availabilityZone:{},resourceCreationTime:{type:"timestamp"},tags:{shape:"S7t"},relatedEvents:{type:"list",member:{}},relationships:{type:"list",member:{type:"structure",members:{resourceType:{},resourceId:{},resourceName:{},relationshipName:{}}}},configuration:{},supplementaryConfiguration:{shape:"Sl"}}},S7t:{type:"map",key:{},value:{}},S83:{type:"list",member:{type:"structure",members:{EvaluationResultIdentifier:{shape:"S79"},ComplianceType:{},ResultRecordedTime:{type:"timestamp"},ConfigRuleInvokedTime:{type:"timestamp"},Annotation:{},ResultToken:{}}}},S89:{type:"list",member:{}},S9p:{type:"list",member:{shape:"S9q"}},S9q:{type:"structure",members:{Key:{},Value:{}}},S9u:{type:"list",member:{shape:"S9q"}},Sa6:{type:"list",member:{type:"structure",required:["ComplianceResourceType","ComplianceResourceId","ComplianceType","OrderingTimestamp"],members:{ComplianceResourceType:{},ComplianceResourceId:{},ComplianceType:{},Annotation:{},OrderingTimestamp:{type:"timestamp"}}}}},paginators:{DescribeRemediationExceptions:{input_token:"NextToken",limit_key:"Limit",output_token:"NextToken"},DescribeRemediationExecutionStatus:{input_token:"NextToken",limit_key:"Limit",output_token:"NextToken",result_key:"RemediationExecutionStatuses"},GetResourceConfigHistory:{input_token:"nextToken",limit_key:"limit",output_token:"nextToken",result_key:"configurationItems"}}};AWS.apiLoader.services.devicefarm={},AWS.DeviceFarm=AWS.Service.defineService("devicefarm",["2015-06-23"]);AWS.apiLoader.services.devicefarm["2015-06-23"]={version:"2.0",metadata:{apiVersion:"2015-06-23",endpointPrefix:"devicefarm",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Device Farm",serviceId:"Device Farm",signatureVersion:"v4",targetPrefix:"DeviceFarm_20150623",uid:"devicefarm-2015-06-23"},operations:{CreateDevicePool:{input:{type:"structure",required:["projectArn","name","rules"],members:{projectArn:{},name:{},description:{},rules:{shape:"S5"},maxDevices:{type:"integer"}}},output:{type:"structure",members:{devicePool:{shape:"Sc"}}}},CreateInstanceProfile:{input:{type:"structure",required:["name"],members:{name:{},description:{},packageCleanup:{type:"boolean"},excludeAppPackagesFromCleanup:{shape:"Sg"},rebootAfterUse:{type:"boolean"}}},output:{type:"structure",members:{instanceProfile:{shape:"Si"}}}},CreateNetworkProfile:{input:{type:"structure",required:["projectArn","name"],members:{projectArn:{},name:{},description:{},type:{},uplinkBandwidthBits:{type:"long"},downlinkBandwidthBits:{type:"long"},uplinkDelayMs:{type:"long"},downlinkDelayMs:{type:"long"},uplinkJitterMs:{type:"long"},downlinkJitterMs:{type:"long"},uplinkLossPercent:{type:"integer"},downlinkLossPercent:{type:"integer"}}},output:{type:"structure",members:{networkProfile:{shape:"So"}}}},CreateProject:{input:{type:"structure",required:["name"],members:{name:{},defaultJobTimeoutMinutes:{type:"integer"}}},output:{type:"structure",members:{project:{shape:"Ss"}}}},CreateRemoteAccessSession:{input:{type:"structure",required:["projectArn","deviceArn"],members:{projectArn:{},deviceArn:{},instanceArn:{},sshPublicKey:{},remoteDebugEnabled:{type:"boolean"},remoteRecordEnabled:{type:"boolean"},remoteRecordAppArn:{},name:{},clientId:{},configuration:{type:"structure",members:{billingMethod:{},vpceConfigurationArns:{shape:"Sz"}}},interactionMode:{},skipAppResign:{type:"boolean"}}},output:{type:"structure",members:{remoteAccessSession:{shape:"S12"}}}},CreateTestGridProject:{input:{type:"structure",required:["name"],members:{name:{},description:{}}},output:{type:"structure",members:{testGridProject:{shape:"S1n"}}}},CreateTestGridUrl:{input:{type:"structure",required:["projectArn","expiresInSeconds"],members:{projectArn:{},expiresInSeconds:{type:"integer"}}},output:{type:"structure",members:{url:{},expires:{type:"timestamp"}}}},CreateUpload:{input:{type:"structure",required:["projectArn","name","type"],members:{projectArn:{},name:{},type:{},contentType:{}}},output:{type:"structure",members:{upload:{shape:"S1w"}}}},CreateVPCEConfiguration:{input:{type:"structure",required:["vpceConfigurationName","vpceServiceName","serviceDnsName"],members:{vpceConfigurationName:{},vpceServiceName:{},serviceDnsName:{},vpceConfigurationDescription:{}}},output:{type:"structure",members:{vpceConfiguration:{shape:"S27"}}}},DeleteDevicePool:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteInstanceProfile:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteNetworkProfile:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteProject:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteRemoteAccessSession:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteRun:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteTestGridProject:{input:{type:"structure",required:["projectArn"],members:{projectArn:{}}},output:{type:"structure",members:{}}},DeleteUpload:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},DeleteVPCEConfiguration:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{}}},GetAccountSettings:{input:{type:"structure",members:{}},output:{type:"structure",members:{accountSettings:{type:"structure",members:{awsAccountNumber:{},unmeteredDevices:{shape:"S2u"},unmeteredRemoteAccessDevices:{shape:"S2u"},maxJobTimeoutMinutes:{type:"integer"},trialMinutes:{type:"structure",members:{total:{type:"double"},remaining:{type:"double"}}},maxSlots:{type:"map",key:{},value:{type:"integer"}},defaultJobTimeoutMinutes:{type:"integer"},skipAppResign:{type:"boolean"}}}}}},GetDevice:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{device:{shape:"S15"}}}},GetDeviceInstance:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{deviceInstance:{shape:"S1c"}}}},GetDevicePool:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{devicePool:{shape:"Sc"}}}},GetDevicePoolCompatibility:{input:{type:"structure",required:["devicePoolArn"],members:{devicePoolArn:{},appArn:{},testType:{},test:{shape:"S35"},configuration:{shape:"S38"}}},output:{type:"structure",members:{compatibleDevices:{shape:"S3g"},incompatibleDevices:{shape:"S3g"}}}},GetInstanceProfile:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{instanceProfile:{shape:"Si"}}}},GetJob:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{job:{shape:"S3o"}}}},GetNetworkProfile:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{networkProfile:{shape:"So"}}}},GetOfferingStatus:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{current:{shape:"S3w"},nextPeriod:{shape:"S3w"},nextToken:{}}}},GetProject:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{project:{shape:"Ss"}}}},GetRemoteAccessSession:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{remoteAccessSession:{shape:"S12"}}}},GetRun:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{run:{shape:"S4d"}}}},GetSuite:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{suite:{shape:"S4m"}}}},GetTest:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{test:{shape:"S4p"}}}},GetTestGridProject:{input:{type:"structure",required:["projectArn"],members:{projectArn:{}}},output:{type:"structure",members:{testGridProject:{shape:"S1n"}}}},GetTestGridSession:{input:{type:"structure",members:{projectArn:{},sessionId:{},sessionArn:{}}},output:{type:"structure",members:{testGridSession:{shape:"S4v"}}}},GetUpload:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{upload:{shape:"S1w"}}}},GetVPCEConfiguration:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{vpceConfiguration:{shape:"S27"}}}},InstallToRemoteAccessSession:{input:{type:"structure",required:["remoteAccessSessionArn","appArn"],members:{remoteAccessSessionArn:{},appArn:{}}},output:{type:"structure",members:{appUpload:{shape:"S1w"}}}},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:{}}}},ListDeviceInstances:{input:{type:"structure",members:{maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{deviceInstances:{shape:"S1b"},nextToken:{}}}},ListDevicePools:{input:{type:"structure",required:["arn"],members:{arn:{},type:{},nextToken:{}}},output:{type:"structure",members:{devicePools:{type:"list",member:{shape:"Sc"}},nextToken:{}}}},ListDevices:{input:{type:"structure",members:{arn:{},nextToken:{},filters:{shape:"S4g"}}},output:{type:"structure",members:{devices:{type:"list",member:{shape:"S15"}},nextToken:{}}}},ListInstanceProfiles:{input:{type:"structure",members:{maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{instanceProfiles:{type:"list",member:{shape:"Si"}},nextToken:{}}}},ListJobs:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{jobs:{type:"list",member:{shape:"S3o"}},nextToken:{}}}},ListNetworkProfiles:{input:{type:"structure",required:["arn"],members:{arn:{},type:{},nextToken:{}}},output:{type:"structure",members:{networkProfiles:{type:"list",member:{shape:"So"}},nextToken:{}}}},ListOfferingPromotions:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{offeringPromotions:{type:"list",member:{type:"structure",members:{id:{},description:{}}}},nextToken:{}}}},ListOfferingTransactions:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{offeringTransactions:{type:"list",member:{shape:"S5y"}},nextToken:{}}}},ListOfferings:{input:{type:"structure",members:{nextToken:{}}},output:{type:"structure",members:{offerings:{type:"list",member:{shape:"S40"}},nextToken:{}}}},ListProjects:{input:{type:"structure",members:{arn:{},nextToken:{}}},output:{type:"structure",members:{projects:{type:"list",member:{shape:"Ss"}},nextToken:{}}}},ListRemoteAccessSessions:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{remoteAccessSessions:{type:"list",member:{shape:"S12"}},nextToken:{}}}},ListRuns:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{runs:{type:"list",member:{shape:"S4d"}},nextToken:{}}}},ListSamples:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{samples:{type:"list",member:{type:"structure",members:{arn:{},type:{},url:{}}}},nextToken:{}}}},ListSuites:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{suites:{type:"list",member:{shape:"S4m"}},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{}}},output:{type:"structure",members:{Tags:{shape:"S6m"}}}},ListTestGridProjects:{input:{type:"structure",members:{maxResult:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{testGridProjects:{type:"list",member:{shape:"S1n"}},nextToken:{}}}},ListTestGridSessionActions:{input:{type:"structure",required:["sessionArn"],members:{sessionArn:{},maxResult:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{actions:{type:"list",member:{type:"structure",members:{action:{},started:{type:"timestamp"},duration:{type:"long"},statusCode:{},requestMethod:{}}}},nextToken:{}}}},ListTestGridSessionArtifacts:{input:{type:"structure",required:["sessionArn"],members:{sessionArn:{},type:{},maxResult:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{artifacts:{type:"list",member:{type:"structure",members:{filename:{},type:{},url:{}}}},nextToken:{}}}},ListTestGridSessions:{input:{type:"structure",required:["projectArn"],members:{projectArn:{},status:{},creationTimeAfter:{type:"timestamp"},creationTimeBefore:{type:"timestamp"},endTimeAfter:{type:"timestamp"},endTimeBefore:{type:"timestamp"},maxResult:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{testGridSessions:{type:"list",member:{shape:"S4v"}},nextToken:{}}}},ListTests:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{tests:{type:"list",member:{shape:"S4p"}},nextToken:{}}}},ListUniqueProblems:{input:{type:"structure",required:["arn"],members:{arn:{},nextToken:{}}},output:{type:"structure",members:{uniqueProblems:{type:"map",key:{},value:{type:"list",member:{type:"structure",members:{message:{},problems:{type:"list",member:{type:"structure",members:{run:{shape:"S7h"},job:{shape:"S7h"},suite:{shape:"S7h"},test:{shape:"S7h"},device:{shape:"S15"},result:{},message:{}}}}}}}},nextToken:{}}}},ListUploads:{input:{type:"structure",required:["arn"],members:{arn:{},type:{},nextToken:{}}},output:{type:"structure",members:{uploads:{type:"list",member:{shape:"S1w"}},nextToken:{}}}},ListVPCEConfigurations:{input:{type:"structure",members:{maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{vpceConfigurations:{type:"list",member:{shape:"S27"}},nextToken:{}}}},PurchaseOffering:{input:{type:"structure",members:{offeringId:{},quantity:{type:"integer"},offeringPromotionId:{}}},output:{type:"structure",members:{offeringTransaction:{shape:"S5y"}}}},RenewOffering:{input:{type:"structure",members:{offeringId:{},quantity:{type:"integer"}}},output:{type:"structure",members:{offeringTransaction:{shape:"S5y"}}}},ScheduleRun:{input:{type:"structure",required:["projectArn","test"],members:{projectArn:{},appArn:{},devicePoolArn:{},deviceSelectionConfiguration:{type:"structure",required:["filters","maxDevices"],members:{filters:{shape:"S4g"},maxDevices:{type:"integer"}}},name:{},test:{shape:"S35"},configuration:{shape:"S38"},executionConfiguration:{type:"structure",members:{jobTimeoutMinutes:{type:"integer"},accountsCleanup:{type:"boolean"},appPackagesCleanup:{type:"boolean"},videoCapture:{type:"boolean"},skipAppResign:{type:"boolean"}}}}},output:{type:"structure",members:{run:{shape:"S4d"}}}},StopJob:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{job:{shape:"S3o"}}}},StopRemoteAccessSession:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{remoteAccessSession:{shape:"S12"}}}},StopRun:{input:{type:"structure",required:["arn"],members:{arn:{}}},output:{type:"structure",members:{run:{shape:"S4d"}}}},TagResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"S6m"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateDeviceInstance:{input:{type:"structure",required:["arn"],members:{arn:{},profileArn:{},labels:{shape:"S1d"}}},output:{type:"structure",members:{deviceInstance:{shape:"S1c"}}}},UpdateDevicePool:{input:{type:"structure",required:["arn"],members:{arn:{},name:{},description:{},rules:{shape:"S5"},maxDevices:{type:"integer"},clearMaxDevices:{type:"boolean"}}},output:{type:"structure",members:{devicePool:{shape:"Sc"}}}},UpdateInstanceProfile:{input:{type:"structure",required:["arn"],members:{arn:{},name:{},description:{},packageCleanup:{type:"boolean"},excludeAppPackagesFromCleanup:{shape:"Sg"},rebootAfterUse:{type:"boolean"}}},output:{type:"structure",members:{instanceProfile:{shape:"Si"}}}},UpdateNetworkProfile:{input:{type:"structure",required:["arn"],members:{arn:{},name:{},description:{},type:{},uplinkBandwidthBits:{type:"long"},downlinkBandwidthBits:{type:"long"},uplinkDelayMs:{type:"long"},downlinkDelayMs:{type:"long"},uplinkJitterMs:{type:"long"},downlinkJitterMs:{type:"long"},uplinkLossPercent:{type:"integer"},downlinkLossPercent:{type:"integer"}}},output:{type:"structure",members:{networkProfile:{shape:"So"}}}},UpdateProject:{input:{type:"structure",required:["arn"],members:{arn:{},name:{},defaultJobTimeoutMinutes:{type:"integer"}}},output:{type:"structure",members:{project:{shape:"Ss"}}}},UpdateTestGridProject:{input:{type:"structure",required:["projectArn"],members:{projectArn:{},name:{},description:{}}},output:{type:"structure",members:{testGridProject:{shape:"S1n"}}}},UpdateUpload:{input:{type:"structure",required:["arn"],members:{arn:{},name:{},contentType:{},editContent:{type:"boolean"}}},output:{type:"structure",members:{upload:{shape:"S1w"}}}},UpdateVPCEConfiguration:{input:{type:"structure",required:["arn"],members:{arn:{},vpceConfigurationName:{},vpceServiceName:{},serviceDnsName:{},vpceConfigurationDescription:{}}},output:{type:"structure",members:{vpceConfiguration:{shape:"S27"}}}}},shapes:{S5:{type:"list",member:{type:"structure",members:{attribute:{},operator:{},value:{}}}},Sc:{type:"structure",members:{arn:{},name:{},description:{},type:{},rules:{shape:"S5"},maxDevices:{type:"integer"}}},Sg:{type:"list",member:{}},Si:{type:"structure",members:{arn:{},packageCleanup:{type:"boolean"},excludeAppPackagesFromCleanup:{shape:"Sg"},rebootAfterUse:{type:"boolean"},name:{},description:{}}},So:{type:"structure",members:{arn:{},name:{},description:{},type:{},uplinkBandwidthBits:{type:"long"},downlinkBandwidthBits:{type:"long"},uplinkDelayMs:{type:"long"},downlinkDelayMs:{type:"long"},uplinkJitterMs:{type:"long"},downlinkJitterMs:{type:"long"},uplinkLossPercent:{type:"integer"},downlinkLossPercent:{type:"integer"}}},Ss:{type:"structure",members:{arn:{},name:{},defaultJobTimeoutMinutes:{type:"integer"},created:{type:"timestamp"}}},Sz:{type:"list",member:{}},S12:{type:"structure",members:{arn:{},name:{},created:{type:"timestamp"},status:{},result:{},message:{},started:{type:"timestamp"},stopped:{type:"timestamp"},device:{shape:"S15"},instanceArn:{},remoteDebugEnabled:{type:"boolean"},remoteRecordEnabled:{type:"boolean"},remoteRecordAppArn:{},hostAddress:{},clientId:{},billingMethod:{},deviceMinutes:{shape:"S1h"},endpoint:{},deviceUdid:{},interactionMode:{},skipAppResign:{type:"boolean"}}},S15:{type:"structure",members:{arn:{},name:{},manufacturer:{},model:{},modelId:{},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:{},remoteAccessEnabled:{type:"boolean"},remoteDebugEnabled:{type:"boolean"},fleetType:{},fleetName:{},instances:{shape:"S1b"},availability:{}}},S1b:{type:"list",member:{shape:"S1c"}},S1c:{type:"structure",members:{arn:{},deviceArn:{},labels:{shape:"S1d"},status:{},udid:{},instanceProfile:{shape:"Si"}}},S1d:{type:"list",member:{}},S1h:{type:"structure",members:{total:{type:"double"},metered:{type:"double"},unmetered:{type:"double"}}},S1n:{type:"structure",members:{arn:{},name:{},description:{},created:{type:"timestamp"}}},S1w:{type:"structure",members:{arn:{},name:{},created:{type:"timestamp"},type:{},status:{},url:{},metadata:{},contentType:{},message:{},category:{}}},S27:{type:"structure",members:{arn:{},vpceConfigurationName:{},vpceServiceName:{},serviceDnsName:{},vpceConfigurationDescription:{}}},S2u:{type:"map",key:{},value:{type:"integer"}},S35:{type:"structure",required:["type"],members:{type:{},testPackageArn:{},testSpecArn:{},filter:{},parameters:{type:"map",key:{},value:{}}}},S38:{type:"structure",members:{extraDataPackageArn:{},networkProfileArn:{},locale:{},location:{shape:"S39"},vpceConfigurationArns:{shape:"Sz"},customerArtifactPaths:{shape:"S3a"},radios:{shape:"S3e"},auxiliaryApps:{shape:"Sz"},billingMethod:{}}},S39:{type:"structure",required:["latitude","longitude"],members:{latitude:{type:"double"},longitude:{type:"double"}}},S3a:{type:"structure",members:{iosPaths:{type:"list",member:{}},androidPaths:{type:"list",member:{}},deviceHostPaths:{type:"list",member:{}}}},S3e:{type:"structure",members:{wifi:{type:"boolean"},bluetooth:{type:"boolean"},nfc:{type:"boolean"},gps:{type:"boolean"}}},S3g:{type:"list",member:{type:"structure",members:{device:{shape:"S15"},compatible:{type:"boolean"},incompatibilityMessages:{type:"list",member:{type:"structure",members:{message:{},type:{}}}}}}},S3o:{type:"structure",members:{arn:{},name:{},type:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S3p"},message:{},device:{shape:"S15"},instanceArn:{},deviceMinutes:{shape:"S1h"},videoEndpoint:{},videoCapture:{type:"boolean"}}},S3p:{type:"structure",members:{total:{type:"integer"},passed:{type:"integer"},failed:{type:"integer"},warned:{type:"integer"},errored:{type:"integer"},stopped:{type:"integer"},skipped:{type:"integer"}}},S3w:{type:"map",key:{},value:{shape:"S3y"}},S3y:{type:"structure",members:{type:{},offering:{shape:"S40"},quantity:{type:"integer"},effectiveOn:{type:"timestamp"}}},S40:{type:"structure",members:{id:{},description:{},type:{},platform:{},recurringCharges:{type:"list",member:{type:"structure",members:{cost:{shape:"S44"},frequency:{}}}}}},S44:{type:"structure",members:{amount:{type:"double"},currencyCode:{}}},S4d:{type:"structure",members:{arn:{},name:{},type:{},platform:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S3p"},message:{},totalJobs:{type:"integer"},completedJobs:{type:"integer"},billingMethod:{},deviceMinutes:{shape:"S1h"},networkProfile:{shape:"So"},parsingResultUrl:{},resultCode:{},seed:{type:"integer"},appUpload:{},eventCount:{type:"integer"},jobTimeoutMinutes:{type:"integer"},devicePoolArn:{},locale:{},radios:{shape:"S3e"},location:{shape:"S39"},customerArtifactPaths:{shape:"S3a"},webUrl:{},skipAppResign:{type:"boolean"},testSpecArn:{},deviceSelectionResult:{type:"structure",members:{filters:{shape:"S4g"},matchedDevicesCount:{type:"integer"},maxDevices:{type:"integer"}}}}},S4g:{type:"list",member:{type:"structure",members:{attribute:{},operator:{},values:{type:"list",member:{}}}}},S4m:{type:"structure",members:{arn:{},name:{},type:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S3p"},message:{},deviceMinutes:{shape:"S1h"}}},S4p:{type:"structure",members:{arn:{},name:{},type:{},created:{type:"timestamp"},status:{},result:{},started:{type:"timestamp"},stopped:{type:"timestamp"},counters:{shape:"S3p"},message:{},deviceMinutes:{shape:"S1h"}}},S4v:{type:"structure",members:{arn:{},status:{},created:{type:"timestamp"},ended:{type:"timestamp"},billingMinutes:{type:"double"},seleniumProperties:{}}},S5y:{type:"structure",members:{offeringStatus:{shape:"S3y"},transactionId:{},offeringPromotionId:{},createdOn:{type:"timestamp"},cost:{shape:"S44"}}},S6m:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S7h:{type:"structure",members:{arn:{},name:{}}}},paginators:{GetOfferingStatus:{input_token:"nextToken",output_token:"nextToken",result_key:["current","nextPeriod"]},ListArtifacts:{input_token:"nextToken",output_token:"nextToken",result_key:"artifacts"},ListDevicePools:{input_token:"nextToken",output_token:"nextToken",result_key:"devicePools"},ListDevices:{input_token:"nextToken",output_token:"nextToken",result_key:"devices"},ListJobs:{input_token:"nextToken",output_token:"nextToken",result_key:"jobs"},ListOfferingTransactions:{input_token:"nextToken",output_token:"nextToken",result_key:"offeringTransactions"},ListOfferings:{input_token:"nextToken",output_token:"nextToken",result_key:"offerings"},ListProjects:{input_token:"nextToken",output_token:"nextToken",result_key:"projects"},ListRuns:{input_token:"nextToken",output_token:"nextToken",result_key:"runs"},ListSamples:{input_token:"nextToken",output_token:"nextToken",result_key:"samples"},ListSuites:{input_token:"nextToken",output_token:"nextToken",result_key:"suites"},ListTestGridProjects:{input_token:"nextToken",limit_key:"maxResult",output_token:"nextToken"},ListTestGridSessionActions:{input_token:"nextToken",limit_key:"maxResult",output_token:"nextToken"},ListTestGridSessionArtifacts:{input_token:"nextToken",limit_key:"maxResult",output_token:"nextToken"},ListTestGridSessions:{input_token:"nextToken",limit_key:"maxResult",output_token:"nextToken"},ListTests:{input_token:"nextToken",output_token:"nextToken",result_key:"tests"},ListUniqueProblems:{input_token:"nextToken",output_token:"nextToken",result_key:"uniqueProblems"},ListUploads:{input_token:"nextToken",output_token:"nextToken",result_key:"uploads"}}};AWS.apiLoader.services.directconnect={},AWS.DirectConnect=AWS.Service.defineService("directconnect",["2012-10-25"]);AWS.apiLoader.services.directconnect["2012-10-25"]={version:"2.0",metadata:{apiVersion:"2012-10-25",endpointPrefix:"directconnect",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Direct Connect",serviceId:"Direct Connect",signatureVersion:"v4",targetPrefix:"OvertureService",uid:"directconnect-2012-10-25"},operations:{AcceptDirectConnectGatewayAssociationProposal:{input:{type:"structure",required:["directConnectGatewayId","proposalId","associatedGatewayOwnerAccount"],members:{directConnectGatewayId:{},proposalId:{},associatedGatewayOwnerAccount:{},overrideAllowedPrefixesToDirectConnectGateway:{shape:"S5"}}},output:{type:"structure",members:{directConnectGatewayAssociation:{shape:"S9"}}}},AllocateConnectionOnInterconnect:{input:{type:"structure",required:["bandwidth","connectionName","ownerAccount","interconnectId","vlan"],members:{bandwidth:{},connectionName:{},ownerAccount:{},interconnectId:{},vlan:{type:"integer"}}},output:{shape:"So"},deprecated:!0},AllocateHostedConnection:{input:{type:"structure",required:["connectionId","ownerAccount","bandwidth","connectionName","vlan"],members:{connectionId:{},ownerAccount:{},bandwidth:{},connectionName:{},vlan:{type:"integer"},tags:{shape:"Sz"}}},output:{shape:"So"}},AllocatePrivateVirtualInterface:{input:{type:"structure",required:["connectionId","ownerAccount","newPrivateVirtualInterfaceAllocation"],members:{connectionId:{},ownerAccount:{},newPrivateVirtualInterfaceAllocation:{type:"structure",required:["virtualInterfaceName","vlan","asn"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},mtu:{type:"integer"},authKey:{},amazonAddress:{},addressFamily:{},customerAddress:{},tags:{shape:"Sz"}}}}},output:{shape:"S1e"}},AllocatePublicVirtualInterface:{input:{type:"structure",required:["connectionId","ownerAccount","newPublicVirtualInterfaceAllocation"],members:{connectionId:{},ownerAccount:{},newPublicVirtualInterfaceAllocation:{type:"structure",required:["virtualInterfaceName","vlan","asn"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},addressFamily:{},routeFilterPrefixes:{shape:"S5"},tags:{shape:"Sz"}}}}},output:{shape:"S1e"}},AllocateTransitVirtualInterface:{input:{type:"structure",required:["connectionId","ownerAccount","newTransitVirtualInterfaceAllocation"],members:{connectionId:{},ownerAccount:{},newTransitVirtualInterfaceAllocation:{type:"structure",members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},mtu:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},addressFamily:{},tags:{shape:"Sz"}}}}},output:{type:"structure",members:{virtualInterface:{shape:"S1e"}}}},AssociateConnectionWithLag:{input:{type:"structure",required:["connectionId","lagId"],members:{connectionId:{},lagId:{}}},output:{shape:"So"}},AssociateHostedConnection:{input:{type:"structure",required:["connectionId","parentConnectionId"],members:{connectionId:{},parentConnectionId:{}}},output:{shape:"So"}},AssociateVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId","connectionId"],members:{virtualInterfaceId:{},connectionId:{}}},output:{shape:"S1e"}},ConfirmConnection:{input:{type:"structure",required:["connectionId"],members:{connectionId:{}}},output:{type:"structure",members:{connectionState:{}}}},ConfirmPrivateVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId"],members:{virtualInterfaceId:{},virtualGatewayId:{},directConnectGatewayId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}}},ConfirmPublicVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId"],members:{virtualInterfaceId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}}},ConfirmTransitVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId","directConnectGatewayId"],members:{virtualInterfaceId:{},directConnectGatewayId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}}},CreateBGPPeer:{input:{type:"structure",members:{virtualInterfaceId:{},newBGPPeer:{type:"structure",members:{asn:{type:"integer"},authKey:{},addressFamily:{},amazonAddress:{},customerAddress:{}}}}},output:{type:"structure",members:{virtualInterface:{shape:"S1e"}}}},CreateConnection:{input:{type:"structure",required:["location","bandwidth","connectionName"],members:{location:{},bandwidth:{},connectionName:{},lagId:{},tags:{shape:"Sz"},providerName:{}}},output:{shape:"So"}},CreateDirectConnectGateway:{input:{type:"structure",required:["directConnectGatewayName"],members:{directConnectGatewayName:{},amazonSideAsn:{type:"long"}}},output:{type:"structure",members:{directConnectGateway:{shape:"S2c"}}}},CreateDirectConnectGatewayAssociation:{input:{type:"structure",required:["directConnectGatewayId"],members:{directConnectGatewayId:{},gatewayId:{},addAllowedPrefixesToDirectConnectGateway:{shape:"S5"},virtualGatewayId:{}}},output:{type:"structure",members:{directConnectGatewayAssociation:{shape:"S9"}}}},CreateDirectConnectGatewayAssociationProposal:{input:{type:"structure",required:["directConnectGatewayId","directConnectGatewayOwnerAccount","gatewayId"],members:{directConnectGatewayId:{},directConnectGatewayOwnerAccount:{},gatewayId:{},addAllowedPrefixesToDirectConnectGateway:{shape:"S5"},removeAllowedPrefixesToDirectConnectGateway:{shape:"S5"}}},output:{type:"structure",members:{directConnectGatewayAssociationProposal:{shape:"S2j"}}}},CreateInterconnect:{input:{type:"structure",required:["interconnectName","bandwidth","location"],members:{interconnectName:{},bandwidth:{},location:{},lagId:{},tags:{shape:"Sz"},providerName:{}}},output:{shape:"S2n"}},CreateLag:{input:{type:"structure",required:["numberOfConnections","location","connectionsBandwidth","lagName"],members:{numberOfConnections:{type:"integer"},location:{},connectionsBandwidth:{},lagName:{},connectionId:{},tags:{shape:"Sz"},childConnectionTags:{shape:"Sz"},providerName:{}}},output:{shape:"S2s"}},CreatePrivateVirtualInterface:{input:{type:"structure",required:["connectionId","newPrivateVirtualInterface"],members:{connectionId:{},newPrivateVirtualInterface:{type:"structure",required:["virtualInterfaceName","vlan","asn"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},mtu:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},addressFamily:{},virtualGatewayId:{},directConnectGatewayId:{},tags:{shape:"Sz"}}}}},output:{shape:"S1e"}},CreatePublicVirtualInterface:{input:{type:"structure",required:["connectionId","newPublicVirtualInterface"],members:{connectionId:{},newPublicVirtualInterface:{type:"structure",required:["virtualInterfaceName","vlan","asn"],members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},addressFamily:{},routeFilterPrefixes:{shape:"S5"},tags:{shape:"Sz"}}}}},output:{shape:"S1e"}},CreateTransitVirtualInterface:{input:{type:"structure",required:["connectionId","newTransitVirtualInterface"],members:{connectionId:{},newTransitVirtualInterface:{type:"structure",members:{virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},mtu:{type:"integer"},authKey:{},amazonAddress:{},customerAddress:{},addressFamily:{},directConnectGatewayId:{},tags:{shape:"Sz"}}}}},output:{type:"structure",members:{virtualInterface:{shape:"S1e"}}}},DeleteBGPPeer:{input:{type:"structure",members:{virtualInterfaceId:{},asn:{type:"integer"},customerAddress:{},bgpPeerId:{}}},output:{type:"structure",members:{virtualInterface:{shape:"S1e"}}}},DeleteConnection:{input:{type:"structure",required:["connectionId"],members:{connectionId:{}}},output:{shape:"So"}},DeleteDirectConnectGateway:{input:{type:"structure",required:["directConnectGatewayId"],members:{directConnectGatewayId:{}}},output:{type:"structure",members:{directConnectGateway:{shape:"S2c"}}}},DeleteDirectConnectGatewayAssociation:{input:{type:"structure",members:{associationId:{},directConnectGatewayId:{},virtualGatewayId:{}}},output:{type:"structure",members:{directConnectGatewayAssociation:{shape:"S9"}}}},DeleteDirectConnectGatewayAssociationProposal:{input:{type:"structure",required:["proposalId"],members:{proposalId:{}}},output:{type:"structure",members:{directConnectGatewayAssociationProposal:{shape:"S2j"}}}},DeleteInterconnect:{input:{type:"structure",required:["interconnectId"],members:{interconnectId:{}}},output:{type:"structure",members:{interconnectState:{}}}},DeleteLag:{input:{type:"structure",required:["lagId"],members:{lagId:{}}},output:{shape:"S2s"}},DeleteVirtualInterface:{input:{type:"structure",required:["virtualInterfaceId"],members:{virtualInterfaceId:{}}},output:{type:"structure",members:{virtualInterfaceState:{}}}},DescribeConnectionLoa:{input:{type:"structure",required:["connectionId"],members:{connectionId:{},providerName:{},loaContentType:{}}},output:{type:"structure",members:{loa:{shape:"S3k"}}},deprecated:!0},DescribeConnections:{input:{type:"structure",members:{connectionId:{}}},output:{shape:"S3n"}},DescribeConnectionsOnInterconnect:{input:{type:"structure",required:["interconnectId"],members:{interconnectId:{}}},output:{shape:"S3n"},deprecated:!0},DescribeDirectConnectGatewayAssociationProposals:{input:{type:"structure",members:{directConnectGatewayId:{},proposalId:{},associatedGatewayId:{},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{directConnectGatewayAssociationProposals:{type:"list",member:{shape:"S2j"}},nextToken:{}}}},DescribeDirectConnectGatewayAssociations:{input:{type:"structure",members:{associationId:{},associatedGatewayId:{},directConnectGatewayId:{},maxResults:{type:"integer"},nextToken:{},virtualGatewayId:{}}},output:{type:"structure",members:{directConnectGatewayAssociations:{type:"list",member:{shape:"S9"}},nextToken:{}}}},DescribeDirectConnectGatewayAttachments:{input:{type:"structure",members:{directConnectGatewayId:{},virtualInterfaceId:{},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{directConnectGatewayAttachments:{type:"list",member:{type:"structure",members:{directConnectGatewayId:{},virtualInterfaceId:{},virtualInterfaceRegion:{},virtualInterfaceOwnerAccount:{},attachmentState:{},attachmentType:{},stateChangeError:{}}}},nextToken:{}}}},DescribeDirectConnectGateways:{input:{type:"structure",members:{directConnectGatewayId:{},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{directConnectGateways:{type:"list",member:{shape:"S2c"}},nextToken:{}}}},DescribeHostedConnections:{input:{type:"structure",required:["connectionId"],members:{connectionId:{}}},output:{shape:"S3n"}},DescribeInterconnectLoa:{input:{type:"structure",required:["interconnectId"],members:{interconnectId:{},providerName:{},loaContentType:{}}},output:{type:"structure",members:{loa:{shape:"S3k"}}},deprecated:!0},DescribeInterconnects:{input:{type:"structure",members:{interconnectId:{}}},output:{type:"structure",members:{interconnects:{type:"list",member:{shape:"S2n"}}}}},DescribeLags:{input:{type:"structure",members:{lagId:{}}},output:{type:"structure",members:{lags:{type:"list",member:{shape:"S2s"}}}}},DescribeLoa:{input:{type:"structure",required:["connectionId"],members:{connectionId:{},providerName:{},loaContentType:{}}},output:{shape:"S3k"}},DescribeLocations:{output:{type:"structure",members:{locations:{type:"list",member:{type:"structure",members:{locationCode:{},locationName:{},region:{},availablePortSpeeds:{type:"list",member:{}},availableProviders:{type:"list",member:{}}}}}}}},DescribeTags:{input:{type:"structure",required:["resourceArns"],members:{resourceArns:{type:"list",member:{}}}},output:{type:"structure",members:{resourceTags:{type:"list",member:{type:"structure",members:{resourceArn:{},tags:{shape:"Sz"}}}}}}},DescribeVirtualGateways:{output:{type:"structure",members:{virtualGateways:{type:"list",member:{type:"structure",members:{virtualGatewayId:{},virtualGatewayState:{}}}}}}},DescribeVirtualInterfaces:{input:{type:"structure",members:{connectionId:{},virtualInterfaceId:{}}},output:{type:"structure",members:{virtualInterfaces:{type:"list",member:{shape:"S1e"}}}}},DisassociateConnectionFromLag:{input:{type:"structure",required:["connectionId","lagId"],members:{connectionId:{},lagId:{}}},output:{shape:"So"}},TagResource:{input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{},tags:{shape:"Sz"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{},tagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateDirectConnectGatewayAssociation:{input:{type:"structure",members:{associationId:{},addAllowedPrefixesToDirectConnectGateway:{shape:"S5"},removeAllowedPrefixesToDirectConnectGateway:{shape:"S5"}}},output:{type:"structure",members:{directConnectGatewayAssociation:{shape:"S9"}}}},UpdateLag:{input:{type:"structure",required:["lagId"],members:{lagId:{},lagName:{},minimumLinks:{type:"integer"}}},output:{shape:"S2s"}},UpdateVirtualInterfaceAttributes:{input:{type:"structure",required:["virtualInterfaceId"],members:{virtualInterfaceId:{},mtu:{type:"integer"}}},output:{shape:"S1e"}}},shapes:{S5:{type:"list",member:{type:"structure",members:{cidr:{}}}},S9:{type:"structure",members:{directConnectGatewayId:{},directConnectGatewayOwnerAccount:{},associationState:{},stateChangeError:{},associatedGateway:{shape:"Sc"},associationId:{},allowedPrefixesToDirectConnectGateway:{shape:"S5"},virtualGatewayId:{},virtualGatewayRegion:{type:"string",deprecated:!0},virtualGatewayOwnerAccount:{}}},Sc:{type:"structure",members:{id:{},type:{},ownerAccount:{},region:{}}},So:{type:"structure",members:{ownerAccount:{},connectionId:{},connectionName:{},connectionState:{},region:{},location:{},bandwidth:{},vlan:{type:"integer"},partnerName:{},loaIssueTime:{type:"timestamp"},lagId:{},awsDevice:{shape:"Sv"},jumboFrameCapable:{type:"boolean"},awsDeviceV2:{},hasLogicalRedundancy:{},tags:{shape:"Sz"},providerName:{}}},Sv:{type:"string",deprecated:!0},Sz:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}},S1e:{type:"structure",members:{ownerAccount:{},virtualInterfaceId:{},location:{},connectionId:{},virtualInterfaceType:{},virtualInterfaceName:{},vlan:{type:"integer"},asn:{type:"integer"},amazonSideAsn:{type:"long"},authKey:{},amazonAddress:{},customerAddress:{},addressFamily:{},virtualInterfaceState:{},customerRouterConfig:{},mtu:{type:"integer"},jumboFrameCapable:{type:"boolean"},virtualGatewayId:{},directConnectGatewayId:{},routeFilterPrefixes:{shape:"S5"},bgpPeers:{type:"list",member:{type:"structure",members:{bgpPeerId:{},asn:{type:"integer"},authKey:{},addressFamily:{},amazonAddress:{},customerAddress:{},bgpPeerState:{},bgpStatus:{},awsDeviceV2:{}}}},region:{},awsDeviceV2:{},tags:{shape:"Sz"}}},S2c:{type:"structure",members:{directConnectGatewayId:{},directConnectGatewayName:{},amazonSideAsn:{type:"long"},ownerAccount:{},directConnectGatewayState:{},stateChangeError:{}}},S2j:{type:"structure",members:{proposalId:{},directConnectGatewayId:{},directConnectGatewayOwnerAccount:{},proposalState:{},associatedGateway:{shape:"Sc"},existingAllowedPrefixesToDirectConnectGateway:{shape:"S5"},requestedAllowedPrefixesToDirectConnectGateway:{shape:"S5"}}},S2n:{type:"structure",members:{interconnectId:{},interconnectName:{},interconnectState:{},region:{},location:{},bandwidth:{},loaIssueTime:{type:"timestamp"},lagId:{},awsDevice:{shape:"Sv"},jumboFrameCapable:{type:"boolean"},awsDeviceV2:{},hasLogicalRedundancy:{},tags:{shape:"Sz"},providerName:{}}},S2s:{type:"structure",members:{connectionsBandwidth:{},numberOfConnections:{type:"integer"},lagId:{},ownerAccount:{},lagName:{},lagState:{},location:{},region:{},minimumLinks:{type:"integer"},awsDevice:{shape:"Sv"},awsDeviceV2:{},connections:{shape:"S2u"},allowsHostedConnections:{type:"boolean"},jumboFrameCapable:{type:"boolean"},hasLogicalRedundancy:{},tags:{shape:"Sz"},providerName:{}}},S2u:{type:"list",member:{shape:"So"}},S3k:{type:"structure",members:{loaContent:{type:"blob"},loaContentType:{}}},S3n:{type:"structure",members:{connections:{shape:"S2u"}}}},paginators:{DescribeConnections:{result_key:"connections"},DescribeConnectionsOnInterconnect:{result_key:"connections"},DescribeInterconnects:{result_key:"interconnects"},DescribeLocations:{result_key:"locations"},DescribeVirtualGateways:{result_key:"virtualGateways"},DescribeVirtualInterfaces:{result_key:"virtualInterfaces"}}};AWS.apiLoader.services.dynamodb={},AWS.DynamoDB=AWS.Service.defineService("dynamodb",["2011-12-05","2012-08-10"]),_xamzrequire=function e(t,r,n){function a(u,o){if(!r[u]){if(!t[u]){var s="function"==typeof _xamzrequire&&_xamzrequire;if(!o&&s)return s(u,!0);if(i)return i(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[u]={exports:{}};t[u][0].call(l.exports,function(e){var r=t[u][1][e];return a(r||e)},l,l.exports,e,t,r,n)}return r[u].exports}for(var i="function"==typeof _xamzrequire&&_xamzrequire,u=0;u `0`",state:"success"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},BundleTaskComplete:{delay:15,operation:"DescribeBundleTasks",maxAttempts:40,acceptors:[{expected:"complete",matcher:"pathAll",state:"success",argument:"BundleTasks[].State"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"BundleTasks[].State"}]},ConversionTaskCancelled:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"cancelled",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"}]},ConversionTaskCompleted:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"},{expected:"cancelled",matcher:"pathAny",state:"failure",argument:"ConversionTasks[].State"},{expected:"cancelling",matcher:"pathAny",state:"failure",argument:"ConversionTasks[].State"}]},ConversionTaskDeleted:{delay:15,operation:"DescribeConversionTasks",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"ConversionTasks[].State"}]},CustomerGatewayAvailable:{delay:15,operation:"DescribeCustomerGateways",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"CustomerGateways[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"CustomerGateways[].State"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"CustomerGateways[].State"}]},ExportTaskCancelled:{delay:15,operation:"DescribeExportTasks",maxAttempts:40,acceptors:[{expected:"cancelled",matcher:"pathAll",state:"success",argument:"ExportTasks[].State"}]},ExportTaskCompleted:{delay:15,operation:"DescribeExportTasks",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"ExportTasks[].State"}]},ImageExists:{operation:"DescribeImages",maxAttempts:40,delay:15,acceptors:[{matcher:"path",expected:!0,argument:"length(Images[]) > `0`",state:"success"},{matcher:"error",expected:"InvalidAMIID.NotFound",state:"retry"}]},ImageAvailable:{operation:"DescribeImages",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"Images[].State",expected:"available"},{state:"failure",matcher:"pathAny",argument:"Images[].State",expected:"failed"}]},InstanceRunning:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"running",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"shutting-down",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},InstanceStatusOk:{operation:"DescribeInstanceStatus",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"InstanceStatuses[].InstanceStatus.Status",expected:"ok"},{matcher:"error",expected:"InvalidInstanceID.NotFound",state:"retry"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Reservations[].Instances[].State.Name"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Reservations[].Instances[].State.Name"}]},KeyPairExists:{operation:"DescribeKeyPairs",delay:5,maxAttempts:6,acceptors:[{expected:!0,matcher:"path",state:"success",argument:"length(KeyPairs[].KeyName) > `0`"},{expected:"InvalidKeyPair.NotFound",matcher:"error",state:"retry"}]},NatGatewayAvailable:{operation:"DescribeNatGateways",delay:15,maxAttempts:40,acceptors:[{state:"success",matcher:"pathAll",argument:"NatGateways[].State",expected:"available"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"failed"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"deleting"},{state:"failure",matcher:"pathAny",argument:"NatGateways[].State",expected:"deleted"},{state:"retry",matcher:"error",expected:"NatGatewayNotFound"}]},NetworkInterfaceAvailable:{operation:"DescribeNetworkInterfaces",delay:20,maxAttempts:10,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"NetworkInterfaces[].Status"},{expected:"InvalidNetworkInterfaceID.NotFound",matcher:"error",state:"failure"}]},PasswordDataAvailable:{operation:"GetPasswordData",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"path",argument:"length(PasswordData) > `0`",expected:!0}]},SnapshotCompleted:{delay:15,operation:"DescribeSnapshots",maxAttempts:40,acceptors:[{expected:"completed",matcher:"pathAll",state:"success",argument:"Snapshots[].State"}]},SecurityGroupExists:{operation:"DescribeSecurityGroups",delay:5,maxAttempts:6,acceptors:[{expected:!0,matcher:"path",state:"success",argument:"length(SecurityGroups[].GroupId) > `0`"},{expected:"InvalidGroupNotFound",matcher:"error",state:"retry"}]},SpotInstanceRequestFulfilled:{operation:"DescribeSpotInstanceRequests",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"SpotInstanceRequests[].Status.Code",expected:"fulfilled"},{state:"success",matcher:"pathAll",argument:"SpotInstanceRequests[].Status.Code",expected:"request-canceled-and-instance-running"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"schedule-expired"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"canceled-before-fulfillment"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"bad-parameters"},{state:"failure",matcher:"pathAny",argument:"SpotInstanceRequests[].Status.Code",expected:"system-error"},{state:"retry",matcher:"error",expected:"InvalidSpotInstanceRequestID.NotFound"}]},SubnetAvailable:{delay:15,operation:"DescribeSubnets",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Subnets[].State"}]},SystemStatusOk:{operation:"DescribeInstanceStatus",maxAttempts:40,delay:15,acceptors:[{state:"success",matcher:"pathAll",argument:"InstanceStatuses[].SystemStatus.Status",expected:"ok"}]},VolumeAvailable:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Volumes[].State"}]},VolumeDeleted:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{matcher:"error",expected:"InvalidVolume.NotFound",state:"success"}]},VolumeInUse:{delay:15,operation:"DescribeVolumes",maxAttempts:40,acceptors:[{expected:"in-use",matcher:"pathAll",state:"success",argument:"Volumes[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Volumes[].State"}]},VpcAvailable:{delay:15,operation:"DescribeVpcs",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Vpcs[].State"}]},VpcExists:{operation:"DescribeVpcs",delay:1,maxAttempts:5,acceptors:[{matcher:"status",expected:200,state:"success"},{matcher:"error",expected:"InvalidVpcID.NotFound",state:"retry"}]},VpnConnectionAvailable:{delay:15,operation:"DescribeVpnConnections",maxAttempts:40,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"VpnConnections[].State"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"}]},VpnConnectionDeleted:{delay:15,operation:"DescribeVpnConnections",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"VpnConnections[].State"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"VpnConnections[].State"}]},VpcPeeringConnectionExists:{delay:15,operation:"DescribeVpcPeeringConnections",maxAttempts:40,acceptors:[{matcher:"status",expected:200,state:"success"},{matcher:"error",expected:"InvalidVpcPeeringConnectionID.NotFound",state:"retry"}]},VpcPeeringConnectionDeleted:{delay:15,operation:"DescribeVpcPeeringConnections",maxAttempts:40,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"VpcPeeringConnections[].Status.Code"},{matcher:"error",expected:"InvalidVpcPeeringConnectionID.NotFound",state:"success"}]}}};AWS.apiLoader.services.ecr={},AWS.ECR=AWS.Service.defineService("ecr",["2015-09-21"]);AWS.apiLoader.services.ecr["2015-09-21"]={version:"2.0",metadata:{apiVersion:"2015-09-21",endpointPrefix:"api.ecr",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon ECR",serviceFullName:"Amazon EC2 Container Registry",serviceId:"ECR",signatureVersion:"v4",signingName:"ecr",targetPrefix:"AmazonEC2ContainerRegistry_V20150921",uid:"ecr-2015-09-21"},operations:{BatchCheckLayerAvailability:{input:{type:"structure",required:["repositoryName","layerDigests"],members:{registryId:{},repositoryName:{},layerDigests:{type:"list",member:{}}}},output:{type:"structure",members:{layers:{type:"list",member:{type:"structure",members:{layerDigest:{},layerAvailability:{},layerSize:{type:"long"},mediaType:{}}}},failures:{type:"list",member:{type:"structure",members:{layerDigest:{},failureCode:{},failureReason:{}}}}}}},BatchDeleteImage:{input:{type:"structure",required:["repositoryName","imageIds"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Si"}}},output:{type:"structure",members:{imageIds:{shape:"Si"},failures:{shape:"Sn"}}}},BatchGetImage:{input:{type:"structure",required:["repositoryName","imageIds"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Si"},acceptedMediaTypes:{type:"list",member:{}}}},output:{type:"structure",members:{images:{type:"list",member:{shape:"Sv"}},failures:{shape:"Sn"}}}},CompleteLayerUpload:{input:{type:"structure",required:["repositoryName","uploadId","layerDigests"],members:{registryId:{},repositoryName:{},uploadId:{},layerDigests:{type:"list",member:{}}}},output:{type:"structure",members:{registryId:{},repositoryName:{},uploadId:{},layerDigest:{}}}},CreateRepository:{input:{type:"structure",required:["repositoryName"],members:{repositoryName:{},tags:{shape:"S12"},imageTagMutability:{},imageScanningConfiguration:{shape:"S17"}}},output:{type:"structure",members:{repository:{shape:"S1a"}}}},DeleteLifecyclePolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},lifecyclePolicyText:{},lastEvaluatedAt:{type:"timestamp"}}}},DeleteRepository:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},force:{type:"boolean"}}},output:{type:"structure",members:{repository:{shape:"S1a"}}}},DeleteRepositoryPolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}}},DescribeImageScanFindings:{input:{type:"structure",required:["repositoryName","imageId"],members:{registryId:{},repositoryName:{},imageId:{shape:"Sj"},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},imageId:{shape:"Sj"},imageScanStatus:{shape:"S1s"},imageScanFindings:{type:"structure",members:{imageScanCompletedAt:{type:"timestamp"},vulnerabilitySourceUpdatedAt:{type:"timestamp"},findings:{type:"list",member:{type:"structure",members:{name:{},description:{},uri:{},severity:{},attributes:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}}}}},findingSeverityCounts:{shape:"S27"}}},nextToken:{}}}},DescribeImages:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Si"},nextToken:{},maxResults:{type:"integer"},filter:{type:"structure",members:{tagStatus:{}}}}},output:{type:"structure",members:{imageDetails:{type:"list",member:{type:"structure",members:{registryId:{},repositoryName:{},imageDigest:{},imageTags:{shape:"S2f"},imageSizeInBytes:{type:"long"},imagePushedAt:{type:"timestamp"},imageScanStatus:{shape:"S1s"},imageScanFindingsSummary:{type:"structure",members:{imageScanCompletedAt:{type:"timestamp"},vulnerabilitySourceUpdatedAt:{type:"timestamp"},findingSeverityCounts:{shape:"S27"}}}}}},nextToken:{}}}},DescribeRepositories:{input:{type:"structure",members:{registryId:{},repositoryNames:{type:"list",member:{}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{repositories:{type:"list",member:{shape:"S1a"}},nextToken:{}}}},GetAuthorizationToken:{input:{type:"structure",members:{registryIds:{type:"list",member:{}}}},output:{type:"structure",members:{authorizationData:{type:"list",member:{type:"structure",members:{authorizationToken:{},expiresAt:{type:"timestamp"},proxyEndpoint:{}}}}}}},GetDownloadUrlForLayer:{input:{type:"structure",required:["repositoryName","layerDigest"],members:{registryId:{},repositoryName:{},layerDigest:{}}},output:{type:"structure",members:{downloadUrl:{},layerDigest:{}}}},GetLifecyclePolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},lifecyclePolicyText:{},lastEvaluatedAt:{type:"timestamp"}}}},GetLifecyclePolicyPreview:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},imageIds:{shape:"Si"},nextToken:{},maxResults:{type:"integer"},filter:{type:"structure",members:{tagStatus:{}}}}},output:{type:"structure",members:{registryId:{},repositoryName:{},lifecyclePolicyText:{},status:{},nextToken:{},previewResults:{type:"list",member:{type:"structure",members:{imageTags:{shape:"S2f"},imageDigest:{},imagePushedAt:{type:"timestamp"},action:{type:"structure",members:{type:{}}},appliedRulePriority:{type:"integer"}}}},summary:{type:"structure",members:{expiringImageTotalCount:{type:"integer"}}}}}},GetRepositoryPolicy:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}}},InitiateLayerUpload:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{}}},output:{type:"structure",members:{uploadId:{},partSize:{type:"long"}}}},ListImages:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},nextToken:{},maxResults:{type:"integer"},filter:{type:"structure",members:{tagStatus:{}}}}},output:{type:"structure",members:{imageIds:{shape:"Si"},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{}}},output:{type:"structure",members:{tags:{shape:"S12"}}}},PutImage:{input:{type:"structure",required:["repositoryName","imageManifest"],members:{registryId:{},repositoryName:{},imageManifest:{},imageTag:{}}},output:{type:"structure",members:{image:{shape:"Sv"}}}},PutImageScanningConfiguration:{input:{type:"structure",required:["repositoryName","imageScanningConfiguration"],members:{registryId:{},repositoryName:{},imageScanningConfiguration:{shape:"S17"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},imageScanningConfiguration:{shape:"S17"}}}},PutImageTagMutability:{input:{type:"structure",required:["repositoryName","imageTagMutability"],members:{registryId:{},repositoryName:{},imageTagMutability:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},imageTagMutability:{}}}},PutLifecyclePolicy:{input:{type:"structure",required:["repositoryName","lifecyclePolicyText"],members:{registryId:{},repositoryName:{},lifecyclePolicyText:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},lifecyclePolicyText:{}}}},SetRepositoryPolicy:{input:{type:"structure",required:["repositoryName","policyText"],members:{registryId:{},repositoryName:{},policyText:{},force:{type:"boolean"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},policyText:{}}}},StartImageScan:{input:{type:"structure",required:["repositoryName","imageId"],members:{registryId:{},repositoryName:{},imageId:{shape:"Sj"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},imageId:{shape:"Sj"},imageScanStatus:{shape:"S1s"}}}},StartLifecyclePolicyPreview:{input:{type:"structure",required:["repositoryName"],members:{registryId:{},repositoryName:{},lifecyclePolicyText:{}}},output:{type:"structure",members:{registryId:{},repositoryName:{},lifecyclePolicyText:{},status:{}}}},TagResource:{input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{},tags:{shape:"S12"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{},tagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UploadLayerPart:{input:{type:"structure",required:["repositoryName","uploadId","partFirstByte","partLastByte","layerPartBlob"],members:{registryId:{},repositoryName:{},uploadId:{},partFirstByte:{type:"long"},partLastByte:{type:"long"},layerPartBlob:{type:"blob"}}},output:{type:"structure",members:{registryId:{},repositoryName:{},uploadId:{},lastByteReceived:{type:"long"}}}}},shapes:{Si:{type:"list",member:{shape:"Sj"}},Sj:{type:"structure",members:{imageDigest:{},imageTag:{}}},Sn:{type:"list",member:{type:"structure",members:{imageId:{shape:"Sj"},failureCode:{},failureReason:{}}}},Sv:{type:"structure",members:{registryId:{},repositoryName:{},imageId:{shape:"Sj"},imageManifest:{}}},S12:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S17:{type:"structure",members:{scanOnPush:{type:"boolean"}}},S1a:{type:"structure",members:{repositoryArn:{},registryId:{},repositoryName:{},repositoryUri:{},createdAt:{type:"timestamp"},imageTagMutability:{},imageScanningConfiguration:{shape:"S17"}}},S1s:{type:"structure",members:{status:{},description:{}}},S27:{type:"map",key:{},value:{type:"integer"}},S2f:{type:"list",member:{}}},paginators:{DescribeImageScanFindings:{input_token:"nextToken",limit_key:"maxResults",non_aggregate_keys:["registryId","repositoryName","imageId","imageScanStatus","imageScanFindings"],output_token:"nextToken",result_key:"imageScanFindings.findings"},DescribeImages:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"imageDetails"},DescribeRepositories:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"repositories"},GetLifecyclePolicyPreview:{input_token:"nextToken",limit_key:"maxResults",non_aggregate_keys:["registryId","repositoryName","lifecyclePolicyText","status","summary"],output_token:"nextToken",result_key:"previewResults"},ListImages:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"imageIds"}},waiters:{ImageScanComplete:{description:"Wait until an image scan is complete and findings can be accessed",operation:"DescribeImageScanFindings",delay:5,maxAttempts:60,acceptors:[{state:"success",matcher:"path",argument:"imageScanStatus.status",expected:"COMPLETE"},{state:"failure",matcher:"path",argument:"imageScanStatus.status",expected:"FAILED"}]},LifecyclePolicyPreviewComplete:{description:"Wait until a lifecycle policy preview request is complete and results can be accessed",operation:"GetLifecyclePolicyPreview",delay:5,maxAttempts:20,acceptors:[{state:"success",matcher:"path",argument:"status",expected:"COMPLETE"},{state:"failure",matcher:"path",argument:"status",expected:"FAILED"}]}}};AWS.apiLoader.services.ecs={},AWS.ECS=AWS.Service.defineService("ecs",["2014-11-13"]);AWS.apiLoader.services.ecs["2014-11-13"]={version:"2.0",metadata:{apiVersion:"2014-11-13",endpointPrefix:"ecs",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon ECS",serviceFullName:"Amazon EC2 Container Service",serviceId:"ECS",signatureVersion:"v4",targetPrefix:"AmazonEC2ContainerServiceV20141113",uid:"ecs-2014-11-13"},operations:{CreateCapacityProvider:{input:{type:"structure",required:["name","autoScalingGroupProvider"],members:{name:{},autoScalingGroupProvider:{shape:"S3"},tags:{shape:"S9"}}},output:{type:"structure",members:{capacityProvider:{shape:"Se"}}}},CreateCluster:{input:{type:"structure",members:{clusterName:{},tags:{shape:"S9"},settings:{shape:"Sh"},capacityProviders:{shape:"Sk"},defaultCapacityProviderStrategy:{shape:"Sl"}}},output:{type:"structure",members:{cluster:{shape:"Sq"}}}},CreateService:{input:{type:"structure",required:["serviceName"],members:{cluster:{},serviceName:{},taskDefinition:{},loadBalancers:{shape:"Sy"},serviceRegistries:{shape:"S11"},desiredCount:{type:"integer"},clientToken:{},launchType:{},capacityProviderStrategy:{shape:"Sl"},platformVersion:{},role:{},deploymentConfiguration:{shape:"S14"},placementConstraints:{shape:"S15"},placementStrategy:{shape:"S18"},networkConfiguration:{shape:"S1b"},healthCheckGracePeriodSeconds:{type:"integer"},schedulingStrategy:{},deploymentController:{shape:"S1f"},tags:{shape:"S9"},enableECSManagedTags:{type:"boolean"},propagateTags:{}}},output:{type:"structure",members:{service:{shape:"S1k"}}}},CreateTaskSet:{input:{type:"structure",required:["service","cluster","taskDefinition"],members:{service:{},cluster:{},externalId:{},taskDefinition:{},networkConfiguration:{shape:"S1b"},loadBalancers:{shape:"Sy"},serviceRegistries:{shape:"S11"},launchType:{},capacityProviderStrategy:{shape:"Sl"},platformVersion:{},scale:{shape:"S1o"},clientToken:{}}},output:{type:"structure",members:{taskSet:{shape:"S1m"}}}},DeleteAccountSetting:{input:{type:"structure",required:["name"],members:{name:{},principalArn:{}}},output:{type:"structure",members:{setting:{shape:"S21"}}}},DeleteAttributes:{input:{type:"structure",required:["attributes"],members:{cluster:{},attributes:{shape:"S23"}}},output:{type:"structure",members:{attributes:{shape:"S23"}}}},DeleteCluster:{input:{type:"structure",required:["cluster"],members:{cluster:{}}},output:{type:"structure",members:{cluster:{shape:"Sq"}}}},DeleteService:{input:{type:"structure",required:["service"],members:{cluster:{},service:{},force:{type:"boolean"}}},output:{type:"structure",members:{service:{shape:"S1k"}}}},DeleteTaskSet:{input:{type:"structure",required:["cluster","service","taskSet"],members:{cluster:{},service:{},taskSet:{},force:{type:"boolean"}}},output:{type:"structure",members:{taskSet:{shape:"S1m"}}}},DeregisterContainerInstance:{input:{type:"structure",required:["containerInstance"],members:{cluster:{},containerInstance:{},force:{type:"boolean"}}},output:{type:"structure",members:{containerInstance:{shape:"S2g"}}}},DeregisterTaskDefinition:{input:{type:"structure",required:["taskDefinition"],members:{taskDefinition:{}}},output:{type:"structure",members:{taskDefinition:{shape:"S2o"}}}},DescribeCapacityProviders:{input:{type:"structure",members:{capacityProviders:{shape:"Sk"},include:{type:"list",member:{}},maxResults:{type:"integer"},nextToken:{}}},output:{type:"structure",members:{capacityProviders:{type:"list",member:{shape:"Se"}},failures:{shape:"S4l"},nextToken:{}}}},DescribeClusters:{input:{type:"structure",members:{clusters:{shape:"Sk"},include:{type:"list",member:{}}}},output:{type:"structure",members:{clusters:{type:"list",member:{shape:"Sq"}},failures:{shape:"S4l"}}}},DescribeContainerInstances:{input:{type:"structure",required:["containerInstances"],members:{cluster:{},containerInstances:{shape:"Sk"},include:{type:"list",member:{}}}},output:{type:"structure",members:{containerInstances:{shape:"S4w"},failures:{shape:"S4l"}}}},DescribeServices:{input:{type:"structure",required:["services"],members:{cluster:{},services:{shape:"Sk"},include:{type:"list",member:{}}}},output:{type:"structure",members:{services:{type:"list",member:{shape:"S1k"}},failures:{shape:"S4l"}}}},DescribeTaskDefinition:{input:{type:"structure",required:["taskDefinition"],members:{taskDefinition:{},include:{type:"list",member:{}}}},output:{type:"structure",members:{taskDefinition:{shape:"S2o"},tags:{shape:"S9"}}}},DescribeTaskSets:{input:{type:"structure",required:["cluster","service"],members:{cluster:{},service:{},taskSets:{shape:"Sk"}}},output:{type:"structure",members:{taskSets:{shape:"S1l"},failures:{shape:"S4l"}}}},DescribeTasks:{input:{type:"structure",required:["tasks"],members:{cluster:{},tasks:{shape:"Sk"},include:{type:"list",member:{}}}},output:{type:"structure",members:{tasks:{shape:"S5c"},failures:{shape:"S4l"}}}},DiscoverPollEndpoint:{input:{type:"structure",members:{containerInstance:{},cluster:{}}},output:{type:"structure",members:{endpoint:{},telemetryEndpoint:{}}}},ListAccountSettings:{input:{type:"structure",members:{name:{},value:{},principalArn:{},effectiveSettings:{type:"boolean"},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{settings:{type:"list",member:{shape:"S21"}},nextToken:{}}}},ListAttributes:{input:{type:"structure",required:["targetType"],members:{cluster:{},targetType:{},attributeName:{},attributeValue:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{attributes:{shape:"S23"},nextToken:{}}}},ListClusters:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{clusterArns:{shape:"Sk"},nextToken:{}}}},ListContainerInstances:{input:{type:"structure",members:{cluster:{},filter:{},nextToken:{},maxResults:{type:"integer"},status:{}}},output:{type:"structure",members:{containerInstanceArns:{shape:"Sk"},nextToken:{}}}},ListServices:{input:{type:"structure",members:{cluster:{},nextToken:{},maxResults:{type:"integer"},launchType:{},schedulingStrategy:{}}},output:{type:"structure",members:{serviceArns:{shape:"Sk"},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{}}},output:{type:"structure",members:{tags:{shape:"S9"}}}},ListTaskDefinitionFamilies:{input:{type:"structure",members:{familyPrefix:{},status:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{families:{shape:"Sk"},nextToken:{}}}},ListTaskDefinitions:{input:{type:"structure",members:{familyPrefix:{},status:{},sort:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",members:{taskDefinitionArns:{shape:"Sk"},nextToken:{}}}},ListTasks:{input:{type:"structure",members:{cluster:{},containerInstance:{},family:{},nextToken:{},maxResults:{type:"integer"},startedBy:{},serviceName:{},desiredStatus:{},launchType:{}}},output:{type:"structure",members:{taskArns:{shape:"Sk"},nextToken:{}}}},PutAccountSetting:{input:{type:"structure",required:["name","value"],members:{name:{},value:{},principalArn:{}}},output:{type:"structure",members:{setting:{shape:"S21"}}}},PutAccountSettingDefault:{input:{type:"structure",required:["name","value"],members:{name:{},value:{}}},output:{type:"structure",members:{setting:{shape:"S21"}}}},PutAttributes:{input:{type:"structure",required:["attributes"],members:{cluster:{},attributes:{shape:"S23"}}},output:{type:"structure",members:{attributes:{shape:"S23"}}}},PutClusterCapacityProviders:{input:{type:"structure",required:["cluster","capacityProviders","defaultCapacityProviderStrategy"],members:{cluster:{},capacityProviders:{shape:"Sk"},defaultCapacityProviderStrategy:{shape:"Sl"}}},output:{type:"structure",members:{cluster:{shape:"Sq"}}}},RegisterContainerInstance:{input:{type:"structure",members:{cluster:{},instanceIdentityDocument:{},instanceIdentityDocumentSignature:{},totalResources:{shape:"S2j"},versionInfo:{shape:"S2i"},containerInstanceArn:{},attributes:{shape:"S23"},platformDevices:{type:"list",member:{type:"structure",required:["id","type"],members:{id:{},type:{}}}},tags:{shape:"S9"}}},output:{type:"structure",members:{containerInstance:{shape:"S2g"}}}},RegisterTaskDefinition:{input:{type:"structure",required:["family","containerDefinitions"],members:{family:{},taskRoleArn:{},executionRoleArn:{},networkMode:{},containerDefinitions:{shape:"S2p"},volumes:{shape:"S3w"},placementConstraints:{shape:"S44"},requiresCompatibilities:{shape:"S47"},cpu:{},memory:{},tags:{shape:"S9"},pidMode:{},ipcMode:{},proxyConfiguration:{shape:"S4d"},inferenceAccelerators:{shape:"S49"}}},output:{type:"structure",members:{taskDefinition:{shape:"S2o"},tags:{shape:"S9"}}}},RunTask:{input:{type:"structure",required:["taskDefinition"],members:{capacityProviderStrategy:{shape:"Sl"},cluster:{},count:{type:"integer"},enableECSManagedTags:{type:"boolean"},group:{},launchType:{},networkConfiguration:{shape:"S1b"},overrides:{shape:"S5n"},placementConstraints:{shape:"S15"},placementStrategy:{shape:"S18"},platformVersion:{},propagateTags:{},referenceId:{},startedBy:{},tags:{shape:"S9"},taskDefinition:{}}},output:{type:"structure",members:{tasks:{shape:"S5c"},failures:{shape:"S4l"}}}},StartTask:{input:{type:"structure",required:["containerInstances","taskDefinition"],members:{cluster:{},containerInstances:{shape:"Sk"},enableECSManagedTags:{type:"boolean"},group:{},networkConfiguration:{shape:"S1b"},overrides:{shape:"S5n"},propagateTags:{},referenceId:{},startedBy:{},tags:{shape:"S9"},taskDefinition:{}}},output:{type:"structure",members:{tasks:{shape:"S5c"},failures:{shape:"S4l"}}}},StopTask:{input:{type:"structure",required:["task"],members:{cluster:{},task:{},reason:{}}},output:{type:"structure",members:{task:{shape:"S5d"}}}},SubmitAttachmentStateChanges:{input:{type:"structure",required:["attachments"],members:{cluster:{},attachments:{shape:"S74"}}},output:{type:"structure",members:{acknowledgment:{}}}},SubmitContainerStateChange:{input:{type:"structure",members:{cluster:{},task:{},containerName:{},runtimeId:{},status:{},exitCode:{type:"integer"},reason:{},networkBindings:{shape:"S5h"}}},output:{type:"structure",members:{acknowledgment:{}}}},SubmitTaskStateChange:{input:{type:"structure",members:{cluster:{},task:{},status:{},reason:{},containers:{type:"list",member:{type:"structure",members:{containerName:{},imageDigest:{},runtimeId:{},exitCode:{type:"integer"},networkBindings:{shape:"S5h"},reason:{},status:{}}}},attachments:{shape:"S74"},pullStartedAt:{type:"timestamp"},pullStoppedAt:{type:"timestamp"},executionStoppedAt:{type:"timestamp"}}},output:{type:"structure",members:{acknowledgment:{}}}},TagResource:{input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{},tags:{shape:"S9"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{},tagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateClusterSettings:{input:{type:"structure",required:["cluster","settings"],members:{cluster:{},settings:{shape:"Sh"}}},output:{type:"structure",members:{cluster:{shape:"Sq"}}}},UpdateContainerAgent:{input:{type:"structure",required:["containerInstance"],members:{cluster:{},containerInstance:{}}},output:{type:"structure",members:{containerInstance:{shape:"S2g"}}}},UpdateContainerInstancesState:{input:{type:"structure",required:["containerInstances","status"],members:{cluster:{},containerInstances:{shape:"Sk"},status:{}}},output:{type:"structure",members:{containerInstances:{shape:"S4w"},failures:{shape:"S4l"}}}},UpdateService:{input:{type:"structure",required:["service"],members:{cluster:{},service:{},desiredCount:{type:"integer"},taskDefinition:{},capacityProviderStrategy:{shape:"Sl"},deploymentConfiguration:{shape:"S14"},networkConfiguration:{shape:"S1b"},platformVersion:{},forceNewDeployment:{type:"boolean"},healthCheckGracePeriodSeconds:{type:"integer"}}},output:{type:"structure",members:{service:{shape:"S1k"}}}},UpdateServicePrimaryTaskSet:{input:{type:"structure",required:["cluster","service","primaryTaskSet"],members:{cluster:{},service:{},primaryTaskSet:{}}},output:{type:"structure",members:{taskSet:{shape:"S1m"}}}},UpdateTaskSet:{input:{type:"structure",required:["cluster","service","taskSet","scale"],members:{cluster:{},service:{},taskSet:{},scale:{shape:"S1o"}}},output:{type:"structure",members:{taskSet:{shape:"S1m"}}}}},shapes:{S3:{type:"structure",required:["autoScalingGroupArn"],members:{autoScalingGroupArn:{},managedScaling:{type:"structure",members:{status:{},targetCapacity:{type:"integer"},minimumScalingStepSize:{type:"integer"},maximumScalingStepSize:{type:"integer"}}},managedTerminationProtection:{}}},S9:{type:"list",member:{type:"structure",members:{key:{},value:{}}}},Se:{type:"structure",members:{capacityProviderArn:{},name:{},status:{},autoScalingGroupProvider:{shape:"S3"},tags:{shape:"S9"}}},Sh:{type:"list",member:{type:"structure",members:{name:{},value:{}}}},Sk:{type:"list",member:{}},Sl:{type:"list",member:{type:"structure",required:["capacityProvider"],members:{capacityProvider:{},weight:{type:"integer"},base:{type:"integer"}}}},Sq:{type:"structure",members:{clusterArn:{},clusterName:{},status:{},registeredContainerInstancesCount:{type:"integer"},runningTasksCount:{type:"integer"},pendingTasksCount:{type:"integer"},activeServicesCount:{type:"integer"},statistics:{type:"list",member:{shape:"St"}},tags:{shape:"S9"},settings:{shape:"Sh"},capacityProviders:{shape:"Sk"},defaultCapacityProviderStrategy:{shape:"Sl"},attachments:{shape:"Su"},attachmentsStatus:{}}},St:{type:"structure",members:{name:{},value:{}}},Su:{type:"list",member:{type:"structure",members:{id:{},type:{},status:{},details:{type:"list",member:{shape:"St"}}}}},Sy:{type:"list",member:{type:"structure",members:{targetGroupArn:{},loadBalancerName:{},containerName:{},containerPort:{type:"integer"}}}},S11:{type:"list",member:{type:"structure",members:{registryArn:{},port:{type:"integer"},containerName:{},containerPort:{type:"integer"}}}},S14:{type:"structure",members:{maximumPercent:{type:"integer"},minimumHealthyPercent:{type:"integer"}}},S15:{type:"list",member:{type:"structure",members:{type:{},expression:{}}}},S18:{type:"list",member:{type:"structure",members:{type:{},field:{}}}},S1b:{type:"structure",members:{awsvpcConfiguration:{type:"structure",required:["subnets"],members:{subnets:{shape:"Sk"},securityGroups:{shape:"Sk"},assignPublicIp:{}}}}},S1f:{type:"structure",required:["type"],members:{type:{}}},S1k:{type:"structure",members:{serviceArn:{},serviceName:{},clusterArn:{},loadBalancers:{shape:"Sy"},serviceRegistries:{shape:"S11"},status:{},desiredCount:{type:"integer"},runningCount:{type:"integer"},pendingCount:{type:"integer"},launchType:{},capacityProviderStrategy:{shape:"Sl"},platformVersion:{},taskDefinition:{},deploymentConfiguration:{shape:"S14"},taskSets:{shape:"S1l"},deployments:{type:"list",member:{type:"structure",members:{id:{},status:{},taskDefinition:{},desiredCount:{type:"integer"},pendingCount:{type:"integer"},runningCount:{type:"integer"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"},capacityProviderStrategy:{shape:"Sl"},launchType:{},platformVersion:{},networkConfiguration:{shape:"S1b"}}}},roleArn:{},events:{type:"list",member:{type:"structure",members:{id:{},createdAt:{type:"timestamp"},message:{}}}},createdAt:{type:"timestamp"},placementConstraints:{shape:"S15"},placementStrategy:{shape:"S18"},networkConfiguration:{shape:"S1b"},healthCheckGracePeriodSeconds:{type:"integer"},schedulingStrategy:{},deploymentController:{shape:"S1f"},tags:{shape:"S9"},createdBy:{},enableECSManagedTags:{type:"boolean"},propagateTags:{}}},S1l:{type:"list",member:{shape:"S1m"}},S1m:{type:"structure",members:{id:{},taskSetArn:{},serviceArn:{},clusterArn:{},startedBy:{},externalId:{},status:{},taskDefinition:{},computedDesiredCount:{type:"integer"},pendingCount:{type:"integer"},runningCount:{type:"integer"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"},launchType:{},capacityProviderStrategy:{shape:"Sl"},platformVersion:{},networkConfiguration:{shape:"S1b"},loadBalancers:{shape:"Sy"},serviceRegistries:{shape:"S11"},scale:{shape:"S1o"},stabilityStatus:{},stabilityStatusAt:{type:"timestamp"}}},S1o:{type:"structure",members:{value:{type:"double"},unit:{}}},S21:{type:"structure",members:{name:{},value:{},principalArn:{}}},S23:{type:"list",member:{shape:"S24"}},S24:{type:"structure",required:["name"],members:{name:{},value:{},targetType:{},targetId:{}}},S2g:{type:"structure",members:{containerInstanceArn:{},ec2InstanceId:{},capacityProviderName:{},version:{type:"long"},versionInfo:{shape:"S2i"},remainingResources:{shape:"S2j"},registeredResources:{shape:"S2j"},status:{},statusReason:{},agentConnected:{type:"boolean"},runningTasksCount:{type:"integer"},pendingTasksCount:{type:"integer"},agentUpdateStatus:{},attributes:{shape:"S23"},registeredAt:{type:"timestamp"},attachments:{shape:"Su"},tags:{shape:"S9"}}},S2i:{type:"structure",members:{agentVersion:{},agentHash:{},dockerVersion:{}}},S2j:{type:"list",member:{type:"structure",members:{name:{},type:{},doubleValue:{type:"double"},longValue:{type:"long"},integerValue:{type:"integer"},stringSetValue:{shape:"Sk"}}}},S2o:{type:"structure",members:{taskDefinitionArn:{},containerDefinitions:{shape:"S2p"},family:{},taskRoleArn:{},executionRoleArn:{},networkMode:{},revision:{type:"integer"},volumes:{shape:"S3w"},status:{},requiresAttributes:{type:"list",member:{shape:"S24"}},placementConstraints:{shape:"S44"},compatibilities:{shape:"S47"},requiresCompatibilities:{shape:"S47"},cpu:{},memory:{},inferenceAccelerators:{shape:"S49"},pidMode:{},ipcMode:{},proxyConfiguration:{shape:"S4d"}}},S2p:{type:"list",member:{type:"structure",members:{name:{},image:{},repositoryCredentials:{type:"structure",required:["credentialsParameter"],members:{credentialsParameter:{}}},cpu:{type:"integer"},memory:{type:"integer"},memoryReservation:{type:"integer"},links:{shape:"Sk"},portMappings:{type:"list",member:{type:"structure",members:{containerPort:{type:"integer"},hostPort:{type:"integer"},protocol:{}}}},essential:{type:"boolean"},entryPoint:{shape:"Sk"},command:{shape:"Sk"},environment:{shape:"S2v"},mountPoints:{type:"list",member:{type:"structure",members:{sourceVolume:{},containerPath:{},readOnly:{type:"boolean"}}}},volumesFrom:{type:"list",member:{type:"structure",members:{sourceContainer:{},readOnly:{type:"boolean"}}}},linuxParameters:{type:"structure",members:{capabilities:{type:"structure",members:{add:{shape:"Sk"},drop:{shape:"Sk"}}},devices:{type:"list",member:{type:"structure",required:["hostPath"],members:{hostPath:{},containerPath:{},permissions:{type:"list",member:{}}}}},initProcessEnabled:{type:"boolean"},sharedMemorySize:{type:"integer"},tmpfs:{type:"list",member:{type:"structure",required:["containerPath","size"],members:{containerPath:{},size:{type:"integer"},mountOptions:{shape:"Sk"}}}},maxSwap:{type:"integer"},swappiness:{type:"integer"}}},secrets:{shape:"S38"},dependsOn:{type:"list",member:{type:"structure",required:["containerName","condition"],members:{containerName:{},condition:{}}}},startTimeout:{type:"integer"},stopTimeout:{type:"integer"},hostname:{},user:{},workingDirectory:{},disableNetworking:{type:"boolean"},privileged:{type:"boolean"},readonlyRootFilesystem:{type:"boolean"},dnsServers:{shape:"Sk"},dnsSearchDomains:{shape:"Sk"},extraHosts:{type:"list",member:{type:"structure",required:["hostname","ipAddress"],members:{hostname:{},ipAddress:{}}}},dockerSecurityOptions:{shape:"Sk"},interactive:{type:"boolean"},pseudoTerminal:{type:"boolean"},dockerLabels:{type:"map",key:{},value:{}},ulimits:{type:"list",member:{type:"structure",required:["name","softLimit","hardLimit"],members:{name:{},softLimit:{type:"integer"},hardLimit:{type:"integer"}}}},logConfiguration:{type:"structure",required:["logDriver"],members:{logDriver:{},options:{type:"map",key:{},value:{}},secretOptions:{shape:"S38"}}},healthCheck:{type:"structure",required:["command"],members:{command:{shape:"Sk"},interval:{type:"integer"},timeout:{type:"integer"},retries:{type:"integer"},startPeriod:{type:"integer"}}},systemControls:{type:"list",member:{type:"structure",members:{namespace:{},value:{}}}},resourceRequirements:{shape:"S3p"},firelensConfiguration:{type:"structure",required:["type"],members:{type:{},options:{type:"map",key:{},value:{}}}}}}},S2v:{type:"list",member:{shape:"St"}},S38:{type:"list",member:{type:"structure",required:["name","valueFrom"],members:{name:{},valueFrom:{}}}},S3p:{type:"list",member:{type:"structure",required:["value","type"],members:{value:{},type:{}}}},S3w:{type:"list",member:{type:"structure",members:{name:{},host:{type:"structure",members:{sourcePath:{}}},dockerVolumeConfiguration:{type:"structure",members:{scope:{},autoprovision:{type:"boolean"},driver:{},driverOpts:{shape:"S41"},labels:{shape:"S41"}}}}}},S41:{type:"map",key:{},value:{}},S44:{type:"list",member:{type:"structure",members:{type:{},expression:{}}}},S47:{type:"list",member:{}},S49:{type:"list",member:{type:"structure",required:["deviceName","deviceType"],members:{deviceName:{},deviceType:{}}}},S4d:{type:"structure",required:["containerName"],members:{type:{},containerName:{},properties:{type:"list",member:{shape:"St"}}}},S4l:{type:"list",member:{type:"structure",members:{arn:{},reason:{},detail:{}}}},S4w:{type:"list",member:{shape:"S2g"}},S5c:{type:"list",member:{shape:"S5d"}},S5d:{type:"structure",members:{attachments:{shape:"Su"},attributes:{shape:"S23"},availabilityZone:{},capacityProviderName:{},clusterArn:{},connectivity:{},connectivityAt:{type:"timestamp"},containerInstanceArn:{},containers:{type:"list",member:{type:"structure",members:{containerArn:{},taskArn:{},name:{},image:{},imageDigest:{},runtimeId:{},lastStatus:{},exitCode:{type:"integer"},reason:{},networkBindings:{shape:"S5h"},networkInterfaces:{type:"list",member:{type:"structure",members:{attachmentId:{},privateIpv4Address:{},ipv6Address:{}}}},healthStatus:{},cpu:{},memory:{},memoryReservation:{},gpuIds:{type:"list",member:{}}}}},cpu:{},createdAt:{type:"timestamp"},desiredStatus:{},executionStoppedAt:{type:"timestamp"},group:{},healthStatus:{},inferenceAccelerators:{shape:"S49"},lastStatus:{},launchType:{},memory:{},overrides:{shape:"S5n"},platformVersion:{},pullStartedAt:{type:"timestamp"},pullStoppedAt:{type:"timestamp"},startedAt:{type:"timestamp"},startedBy:{},stopCode:{},stoppedAt:{type:"timestamp"},stoppedReason:{},stoppingAt:{type:"timestamp"},tags:{shape:"S9"},taskArn:{},taskDefinitionArn:{},version:{type:"long"}}},S5h:{type:"list",member:{type:"structure",members:{bindIP:{},containerPort:{type:"integer"},hostPort:{type:"integer"},protocol:{}}}},S5n:{type:"structure",members:{containerOverrides:{type:"list",member:{type:"structure",members:{name:{},command:{shape:"Sk"},environment:{shape:"S2v"},cpu:{type:"integer"},memory:{type:"integer"},memoryReservation:{type:"integer"},resourceRequirements:{shape:"S3p"}}}},cpu:{},inferenceAcceleratorOverrides:{type:"list",member:{type:"structure",members:{deviceName:{},deviceType:{}}}},executionRoleArn:{},memory:{},taskRoleArn:{}}},S74:{type:"list",member:{type:"structure",required:["attachmentArn","status"],members:{attachmentArn:{},status:{}}}}},paginators:{ListAttributes:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"attributes"},ListClusters:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"clusterArns"},ListContainerInstances:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"containerInstanceArns"},ListServices:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"serviceArns"},ListTaskDefinitionFamilies:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"families"},ListTaskDefinitions:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"taskDefinitionArns"},ListTasks:{input_token:"nextToken",limit_key:"maxResults",output_token:"nextToken",result_key:"taskArns"}},waiters:{TasksRunning:{delay:6,operation:"DescribeTasks",maxAttempts:100,acceptors:[{expected:"STOPPED",matcher:"pathAny",state:"failure",argument:"tasks[].lastStatus"},{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"RUNNING",matcher:"pathAll",state:"success",argument:"tasks[].lastStatus"}]},TasksStopped:{delay:6,operation:"DescribeTasks",maxAttempts:100,acceptors:[{expected:"STOPPED",matcher:"pathAll",state:"success",argument:"tasks[].lastStatus"}]},ServicesStable:{delay:15,operation:"DescribeServices",maxAttempts:40,acceptors:[{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"DRAINING",matcher:"pathAny",state:"failure",argument:"services[].status"},{expected:"INACTIVE",matcher:"pathAny",state:"failure",argument:"services[].status"},{expected:!0,matcher:"path",state:"success",argument:"length(services[?!(length(deployments) == `1` && runningCount == desiredCount)]) == `0`"}]},ServicesInactive:{delay:15,operation:"DescribeServices",maxAttempts:40,acceptors:[{expected:"MISSING",matcher:"pathAny",state:"failure",argument:"failures[].reason"},{expected:"INACTIVE",matcher:"pathAny",state:"success",argument:"services[].status"}]}}};AWS.apiLoader.services.elasticache={},AWS.ElastiCache=AWS.Service.defineService("elasticache",["2015-02-02"]);AWS.apiLoader.services.elasticache["2015-02-02"]={version:"2.0",metadata:{apiVersion:"2015-02-02",endpointPrefix:"elasticache",protocol:"query",serviceFullName:"Amazon ElastiCache",serviceId:"ElastiCache",signatureVersion:"v4",uid:"elasticache-2015-02-02",xmlNamespace:"http://elasticache.amazonaws.com/doc/2015-02-02/"},operations:{AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S3"}}},output:{shape:"S5",resultWrapper:"AddTagsToResourceResult"}},AuthorizeCacheSecurityGroupIngress:{input:{type:"structure",required:["CacheSecurityGroupName","EC2SecurityGroupName","EC2SecurityGroupOwnerId"],members:{CacheSecurityGroupName:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeCacheSecurityGroupIngressResult",type:"structure",members:{CacheSecurityGroup:{shape:"S8"}}}},BatchApplyUpdateAction:{input:{type:"structure",required:["ServiceUpdateName"],members:{ReplicationGroupIds:{shape:"Sc"},CacheClusterIds:{shape:"Sd"},ServiceUpdateName:{}}},output:{shape:"Se",resultWrapper:"BatchApplyUpdateActionResult"}},BatchStopUpdateAction:{input:{type:"structure",required:["ServiceUpdateName"],members:{ReplicationGroupIds:{shape:"Sc"},CacheClusterIds:{shape:"Sd"},ServiceUpdateName:{}}},output:{shape:"Se",resultWrapper:"BatchStopUpdateActionResult"}},CompleteMigration:{input:{type:"structure",required:["ReplicationGroupId"],members:{ReplicationGroupId:{},Force:{type:"boolean"}}},output:{resultWrapper:"CompleteMigrationResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},CopySnapshot:{input:{type:"structure",required:["SourceSnapshotName","TargetSnapshotName"],members:{SourceSnapshotName:{},TargetSnapshotName:{},TargetBucket:{},KmsKeyId:{}}},output:{resultWrapper:"CopySnapshotResult",type:"structure",members:{Snapshot:{shape:"S18"}}}},CreateCacheCluster:{input:{type:"structure",required:["CacheClusterId"],members:{CacheClusterId:{},ReplicationGroupId:{},AZMode:{},PreferredAvailabilityZone:{},PreferredAvailabilityZones:{shape:"S1g"},NumCacheNodes:{type:"integer"},CacheNodeType:{},Engine:{},EngineVersion:{},CacheParameterGroupName:{},CacheSubnetGroupName:{},CacheSecurityGroupNames:{shape:"S1h"},SecurityGroupIds:{shape:"S1i"},Tags:{shape:"S3"},SnapshotArns:{shape:"S1j"},SnapshotName:{},PreferredMaintenanceWindow:{},Port:{type:"integer"},NotificationTopicArn:{},AutoMinorVersionUpgrade:{type:"boolean"},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},AuthToken:{}}},output:{resultWrapper:"CreateCacheClusterResult",type:"structure",members:{CacheCluster:{shape:"S1l"}}}},CreateCacheParameterGroup:{input:{type:"structure",required:["CacheParameterGroupName","CacheParameterGroupFamily","Description"],members:{CacheParameterGroupName:{},CacheParameterGroupFamily:{},Description:{}}},output:{resultWrapper:"CreateCacheParameterGroupResult",type:"structure",members:{CacheParameterGroup:{shape:"S1y"}}}},CreateCacheSecurityGroup:{input:{type:"structure",required:["CacheSecurityGroupName","Description"],members:{CacheSecurityGroupName:{},Description:{}}},output:{resultWrapper:"CreateCacheSecurityGroupResult",type:"structure",members:{CacheSecurityGroup:{shape:"S8"}}}},CreateCacheSubnetGroup:{input:{type:"structure",required:["CacheSubnetGroupName","CacheSubnetGroupDescription","SubnetIds"],members:{CacheSubnetGroupName:{},CacheSubnetGroupDescription:{},SubnetIds:{shape:"S22"}}},output:{resultWrapper:"CreateCacheSubnetGroupResult",type:"structure",members:{CacheSubnetGroup:{shape:"S24"}}}},CreateReplicationGroup:{input:{type:"structure",required:["ReplicationGroupId","ReplicationGroupDescription"],members:{ReplicationGroupId:{},ReplicationGroupDescription:{},PrimaryClusterId:{},AutomaticFailoverEnabled:{type:"boolean"},NumCacheClusters:{type:"integer"},PreferredCacheClusterAZs:{shape:"S1d"},NumNodeGroups:{type:"integer"},ReplicasPerNodeGroup:{type:"integer"},NodeGroupConfiguration:{type:"list",member:{shape:"S1b",locationName:"NodeGroupConfiguration"}},CacheNodeType:{},Engine:{},EngineVersion:{},CacheParameterGroupName:{},CacheSubnetGroupName:{},CacheSecurityGroupNames:{shape:"S1h"},SecurityGroupIds:{shape:"S1i"},Tags:{shape:"S3"},SnapshotArns:{shape:"S1j"},SnapshotName:{},PreferredMaintenanceWindow:{},Port:{type:"integer"},NotificationTopicArn:{},AutoMinorVersionUpgrade:{type:"boolean"},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},AuthToken:{},TransitEncryptionEnabled:{type:"boolean"},AtRestEncryptionEnabled:{type:"boolean"},KmsKeyId:{}}},output:{resultWrapper:"CreateReplicationGroupResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},CreateSnapshot:{input:{type:"structure",required:["SnapshotName"],members:{ReplicationGroupId:{},CacheClusterId:{},SnapshotName:{},KmsKeyId:{}}},output:{resultWrapper:"CreateSnapshotResult",type:"structure",members:{Snapshot:{shape:"S18"}}}},DecreaseReplicaCount:{input:{type:"structure",required:["ReplicationGroupId","ApplyImmediately"],members:{ReplicationGroupId:{},NewReplicaCount:{type:"integer"},ReplicaConfiguration:{shape:"S2e"},ReplicasToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"DecreaseReplicaCountResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},DeleteCacheCluster:{input:{type:"structure",required:["CacheClusterId"],members:{CacheClusterId:{},FinalSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteCacheClusterResult",type:"structure",members:{CacheCluster:{shape:"S1l"}}}},DeleteCacheParameterGroup:{input:{type:"structure",required:["CacheParameterGroupName"],members:{CacheParameterGroupName:{}}}},DeleteCacheSecurityGroup:{input:{type:"structure",required:["CacheSecurityGroupName"],members:{CacheSecurityGroupName:{}}}},DeleteCacheSubnetGroup:{input:{type:"structure",required:["CacheSubnetGroupName"],members:{CacheSubnetGroupName:{}}}},DeleteReplicationGroup:{input:{type:"structure",required:["ReplicationGroupId"],members:{ReplicationGroupId:{},RetainPrimaryCluster:{type:"boolean"},FinalSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteReplicationGroupResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},DeleteSnapshot:{input:{type:"structure",required:["SnapshotName"],members:{SnapshotName:{}}},output:{resultWrapper:"DeleteSnapshotResult",type:"structure",members:{Snapshot:{shape:"S18"}}}},DescribeCacheClusters:{input:{type:"structure",members:{CacheClusterId:{},MaxRecords:{type:"integer"},Marker:{},ShowCacheNodeInfo:{type:"boolean"},ShowCacheClustersNotInReplicationGroups:{type:"boolean"}}},output:{resultWrapper:"DescribeCacheClustersResult",type:"structure",members:{Marker:{},CacheClusters:{type:"list",member:{shape:"S1l",locationName:"CacheCluster"}}}}},DescribeCacheEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},CacheParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"}}},output:{resultWrapper:"DescribeCacheEngineVersionsResult",type:"structure",members:{Marker:{},CacheEngineVersions:{type:"list",member:{locationName:"CacheEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},CacheParameterGroupFamily:{},CacheEngineDescription:{},CacheEngineVersionDescription:{}}}}}}},DescribeCacheParameterGroups:{input:{type:"structure",members:{CacheParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCacheParameterGroupsResult",type:"structure",members:{Marker:{},CacheParameterGroups:{type:"list",member:{shape:"S1y",locationName:"CacheParameterGroup"}}}}},DescribeCacheParameters:{input:{type:"structure",required:["CacheParameterGroupName"],members:{CacheParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCacheParametersResult",type:"structure",members:{Marker:{},Parameters:{shape:"S33"},CacheNodeTypeSpecificParameters:{shape:"S36"}}}},DescribeCacheSecurityGroups:{input:{type:"structure",members:{CacheSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCacheSecurityGroupsResult",type:"structure",members:{Marker:{},CacheSecurityGroups:{type:"list",member:{shape:"S8",locationName:"CacheSecurityGroup"}}}}},DescribeCacheSubnetGroups:{input:{type:"structure",members:{CacheSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCacheSubnetGroupsResult",type:"structure",members:{Marker:{},CacheSubnetGroups:{type:"list",member:{shape:"S24",locationName:"CacheSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["CacheParameterGroupFamily"],members:{CacheParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{CacheParameterGroupFamily:{},Marker:{},Parameters:{shape:"S33"},CacheNodeTypeSpecificParameters:{shape:"S36"}},wrapper:!0}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},Date:{type:"timestamp"}}}}}}},DescribeReplicationGroups:{input:{type:"structure",members:{ReplicationGroupId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReplicationGroupsResult",type:"structure",members:{Marker:{},ReplicationGroups:{type:"list",member:{shape:"So",locationName:"ReplicationGroup"}}}}},DescribeReservedCacheNodes:{input:{type:"structure",members:{ReservedCacheNodeId:{},ReservedCacheNodesOfferingId:{},CacheNodeType:{},Duration:{},ProductDescription:{},OfferingType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedCacheNodesResult",type:"structure",members:{Marker:{},ReservedCacheNodes:{type:"list",member:{shape:"S3u",locationName:"ReservedCacheNode"}}}}},DescribeReservedCacheNodesOfferings:{input:{type:"structure",members:{ReservedCacheNodesOfferingId:{},CacheNodeType:{},Duration:{},ProductDescription:{},OfferingType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedCacheNodesOfferingsResult",type:"structure",members:{Marker:{},ReservedCacheNodesOfferings:{type:"list",member:{locationName:"ReservedCacheNodesOffering",type:"structure",members:{ReservedCacheNodesOfferingId:{},CacheNodeType:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},ProductDescription:{},OfferingType:{},RecurringCharges:{shape:"S3v"}},wrapper:!0}}}}},DescribeServiceUpdates:{input:{type:"structure",members:{ServiceUpdateName:{},ServiceUpdateStatus:{shape:"S42"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeServiceUpdatesResult",type:"structure",members:{Marker:{},ServiceUpdates:{type:"list",member:{locationName:"ServiceUpdate",type:"structure",members:{ServiceUpdateName:{},ServiceUpdateReleaseDate:{type:"timestamp"},ServiceUpdateEndDate:{type:"timestamp"},ServiceUpdateSeverity:{},ServiceUpdateRecommendedApplyByDate:{type:"timestamp"},ServiceUpdateStatus:{},ServiceUpdateDescription:{},ServiceUpdateType:{},Engine:{},EngineVersion:{},AutoUpdateAfterRecommendedApplyByDate:{type:"boolean"},EstimatedUpdateTime:{}}}}}}},DescribeSnapshots:{input:{type:"structure",members:{ReplicationGroupId:{},CacheClusterId:{},SnapshotName:{},SnapshotSource:{},Marker:{},MaxRecords:{type:"integer"},ShowNodeGroupConfig:{type:"boolean"}}},output:{resultWrapper:"DescribeSnapshotsResult",type:"structure",members:{Marker:{},Snapshots:{type:"list",member:{shape:"S18",locationName:"Snapshot"}}}}},DescribeUpdateActions:{input:{type:"structure",members:{ServiceUpdateName:{},ReplicationGroupIds:{shape:"Sc"},CacheClusterIds:{shape:"Sd"},Engine:{},ServiceUpdateStatus:{shape:"S42"},ServiceUpdateTimeRange:{type:"structure",members:{StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}},UpdateActionStatus:{type:"list",member:{}},ShowNodeLevelUpdateStatus:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeUpdateActionsResult",type:"structure",members:{Marker:{},UpdateActions:{type:"list",member:{locationName:"UpdateAction",type:"structure",members:{ReplicationGroupId:{},CacheClusterId:{},ServiceUpdateName:{},ServiceUpdateReleaseDate:{type:"timestamp"},ServiceUpdateSeverity:{},ServiceUpdateStatus:{},ServiceUpdateRecommendedApplyByDate:{type:"timestamp"},ServiceUpdateType:{},UpdateActionAvailableDate:{type:"timestamp"},UpdateActionStatus:{},NodesUpdated:{},UpdateActionStatusModifiedDate:{type:"timestamp"},SlaMet:{},NodeGroupUpdateStatus:{type:"list",member:{locationName:"NodeGroupUpdateStatus",type:"structure",members:{NodeGroupId:{},NodeGroupMemberUpdateStatus:{type:"list",member:{locationName:"NodeGroupMemberUpdateStatus",type:"structure",members:{CacheClusterId:{},CacheNodeId:{},NodeUpdateStatus:{},NodeDeletionDate:{type:"timestamp"},NodeUpdateStartDate:{type:"timestamp"},NodeUpdateEndDate:{type:"timestamp"},NodeUpdateInitiatedBy:{},NodeUpdateInitiatedDate:{type:"timestamp"},NodeUpdateStatusModifiedDate:{type:"timestamp"}}}}}}},CacheNodeUpdateStatus:{type:"list",member:{locationName:"CacheNodeUpdateStatus",type:"structure",members:{CacheNodeId:{},NodeUpdateStatus:{},NodeDeletionDate:{type:"timestamp"},NodeUpdateStartDate:{type:"timestamp"},NodeUpdateEndDate:{type:"timestamp"},NodeUpdateInitiatedBy:{},NodeUpdateInitiatedDate:{type:"timestamp"},NodeUpdateStatusModifiedDate:{type:"timestamp"}}}},EstimatedUpdateTime:{},Engine:{}}}}}}},IncreaseReplicaCount:{input:{type:"structure",required:["ReplicationGroupId","ApplyImmediately"],members:{ReplicationGroupId:{},NewReplicaCount:{type:"integer"},ReplicaConfiguration:{shape:"S2e"},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"IncreaseReplicaCountResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},ListAllowedNodeTypeModifications:{input:{type:"structure",members:{CacheClusterId:{},ReplicationGroupId:{}}},output:{resultWrapper:"ListAllowedNodeTypeModificationsResult",type:"structure",members:{ScaleUpModifications:{shape:"S4v"},ScaleDownModifications:{shape:"S4v"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{}}},output:{shape:"S5",resultWrapper:"ListTagsForResourceResult"}},ModifyCacheCluster:{input:{type:"structure",required:["CacheClusterId"],members:{CacheClusterId:{},NumCacheNodes:{type:"integer"},CacheNodeIdsToRemove:{shape:"S1n"},AZMode:{},NewAvailabilityZones:{shape:"S1g"},CacheSecurityGroupNames:{shape:"S1h"},SecurityGroupIds:{shape:"S1i"},PreferredMaintenanceWindow:{},NotificationTopicArn:{},CacheParameterGroupName:{},NotificationTopicStatus:{},ApplyImmediately:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},CacheNodeType:{},AuthToken:{},AuthTokenUpdateStrategy:{}}},output:{resultWrapper:"ModifyCacheClusterResult",type:"structure",members:{CacheCluster:{shape:"S1l"}}}},ModifyCacheParameterGroup:{input:{type:"structure",required:["CacheParameterGroupName","ParameterNameValues"],members:{CacheParameterGroupName:{},ParameterNameValues:{shape:"S51"}}},output:{shape:"S53",resultWrapper:"ModifyCacheParameterGroupResult"}},ModifyCacheSubnetGroup:{input:{type:"structure",required:["CacheSubnetGroupName"],members:{CacheSubnetGroupName:{},CacheSubnetGroupDescription:{},SubnetIds:{shape:"S22"}}},output:{resultWrapper:"ModifyCacheSubnetGroupResult",type:"structure",members:{CacheSubnetGroup:{shape:"S24"}}}},ModifyReplicationGroup:{input:{type:"structure",required:["ReplicationGroupId"],members:{ReplicationGroupId:{},ReplicationGroupDescription:{},PrimaryClusterId:{},SnapshottingClusterId:{},AutomaticFailoverEnabled:{type:"boolean"},NodeGroupId:{deprecated:!0},CacheSecurityGroupNames:{shape:"S1h"},SecurityGroupIds:{shape:"S1i"},PreferredMaintenanceWindow:{},NotificationTopicArn:{},CacheParameterGroupName:{},NotificationTopicStatus:{},ApplyImmediately:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},CacheNodeType:{},AuthToken:{},AuthTokenUpdateStrategy:{}}},output:{resultWrapper:"ModifyReplicationGroupResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},ModifyReplicationGroupShardConfiguration:{input:{type:"structure",required:["ReplicationGroupId","NodeGroupCount","ApplyImmediately"],members:{ReplicationGroupId:{},NodeGroupCount:{type:"integer"},ApplyImmediately:{type:"boolean"},ReshardingConfiguration:{type:"list",member:{locationName:"ReshardingConfiguration",type:"structure",members:{NodeGroupId:{},PreferredAvailabilityZones:{shape:"S1d"}}}},NodeGroupsToRemove:{type:"list",member:{locationName:"NodeGroupToRemove"}},NodeGroupsToRetain:{type:"list",member:{locationName:"NodeGroupToRetain"}}}},output:{resultWrapper:"ModifyReplicationGroupShardConfigurationResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},PurchaseReservedCacheNodesOffering:{input:{type:"structure",required:["ReservedCacheNodesOfferingId"],members:{ReservedCacheNodesOfferingId:{},ReservedCacheNodeId:{},CacheNodeCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedCacheNodesOfferingResult",type:"structure",members:{ReservedCacheNode:{shape:"S3u"}}}},RebootCacheCluster:{input:{type:"structure",required:["CacheClusterId","CacheNodeIdsToReboot"],members:{CacheClusterId:{},CacheNodeIdsToReboot:{shape:"S1n"}}},output:{resultWrapper:"RebootCacheClusterResult",type:"structure",members:{CacheCluster:{shape:"S1l"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}},output:{shape:"S5",resultWrapper:"RemoveTagsFromResourceResult"}},ResetCacheParameterGroup:{input:{type:"structure",required:["CacheParameterGroupName"],members:{CacheParameterGroupName:{},ResetAllParameters:{type:"boolean"},ParameterNameValues:{shape:"S51"}}},output:{shape:"S53",resultWrapper:"ResetCacheParameterGroupResult"}},RevokeCacheSecurityGroupIngress:{input:{type:"structure",required:["CacheSecurityGroupName","EC2SecurityGroupName","EC2SecurityGroupOwnerId"],members:{CacheSecurityGroupName:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeCacheSecurityGroupIngressResult",type:"structure",members:{CacheSecurityGroup:{shape:"S8"}}}},StartMigration:{input:{type:"structure",required:["ReplicationGroupId","CustomerNodeEndpointList"],members:{ReplicationGroupId:{},CustomerNodeEndpointList:{type:"list",member:{type:"structure",members:{Address:{},Port:{type:"integer"}}}}}},output:{resultWrapper:"StartMigrationResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}},TestFailover:{input:{type:"structure",required:["ReplicationGroupId","NodeGroupId"],members:{ReplicationGroupId:{},NodeGroupId:{}}},output:{resultWrapper:"TestFailoverResult",type:"structure",members:{ReplicationGroup:{shape:"So"}}}}},shapes:{S3:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},S5:{type:"structure",members:{TagList:{shape:"S3"}}},S8:{type:"structure",members:{OwnerId:{},CacheSecurityGroupName:{},Description:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}}}},wrapper:!0},Sc:{type:"list",member:{}},Sd:{type:"list",member:{}},Se:{type:"structure",members:{ProcessedUpdateActions:{type:"list",member:{locationName:"ProcessedUpdateAction",type:"structure",members:{ReplicationGroupId:{},CacheClusterId:{},ServiceUpdateName:{},UpdateActionStatus:{}}}},UnprocessedUpdateActions:{type:"list",member:{locationName:"UnprocessedUpdateAction",type:"structure",members:{ReplicationGroupId:{},CacheClusterId:{},ServiceUpdateName:{},ErrorType:{},ErrorMessage:{}}}}}},So:{type:"structure",members:{ReplicationGroupId:{},Description:{},Status:{},PendingModifiedValues:{type:"structure",members:{PrimaryClusterId:{},AutomaticFailoverStatus:{},Resharding:{type:"structure",members:{SlotMigration:{type:"structure",members:{ProgressPercentage:{type:"double"}}}}},AuthTokenStatus:{}}},MemberClusters:{type:"list",member:{locationName:"ClusterId"}},NodeGroups:{type:"list",member:{locationName:"NodeGroup",type:"structure",members:{NodeGroupId:{},Status:{},PrimaryEndpoint:{shape:"Sy"},ReaderEndpoint:{shape:"Sy"},Slots:{},NodeGroupMembers:{type:"list",member:{locationName:"NodeGroupMember",type:"structure",members:{CacheClusterId:{},CacheNodeId:{},ReadEndpoint:{shape:"Sy"},PreferredAvailabilityZone:{},CurrentRole:{}}}}}}},SnapshottingClusterId:{},AutomaticFailover:{},ConfigurationEndpoint:{shape:"Sy"},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},ClusterEnabled:{type:"boolean"},CacheNodeType:{},AuthTokenEnabled:{type:"boolean"},AuthTokenLastModifiedDate:{type:"timestamp"},TransitEncryptionEnabled:{type:"boolean"},AtRestEncryptionEnabled:{type:"boolean"},KmsKeyId:{}},wrapper:!0},Sy:{type:"structure",members:{Address:{},Port:{type:"integer"}}},S18:{type:"structure",members:{SnapshotName:{},ReplicationGroupId:{},ReplicationGroupDescription:{},CacheClusterId:{},SnapshotStatus:{},SnapshotSource:{},CacheNodeType:{},Engine:{},EngineVersion:{},NumCacheNodes:{type:"integer"},PreferredAvailabilityZone:{},CacheClusterCreateTime:{type:"timestamp"},PreferredMaintenanceWindow:{},TopicArn:{},Port:{type:"integer"},CacheParameterGroupName:{},CacheSubnetGroupName:{},VpcId:{},AutoMinorVersionUpgrade:{type:"boolean"},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},NumNodeGroups:{type:"integer"},AutomaticFailover:{},NodeSnapshots:{type:"list",member:{locationName:"NodeSnapshot",type:"structure",members:{CacheClusterId:{},NodeGroupId:{},CacheNodeId:{},NodeGroupConfiguration:{shape:"S1b"},CacheSize:{},CacheNodeCreateTime:{type:"timestamp"},SnapshotCreateTime:{type:"timestamp"}},wrapper:!0}},KmsKeyId:{}},wrapper:!0},S1b:{type:"structure",members:{NodeGroupId:{},Slots:{},ReplicaCount:{type:"integer"},PrimaryAvailabilityZone:{},ReplicaAvailabilityZones:{shape:"S1d"}}},S1d:{type:"list",member:{locationName:"AvailabilityZone"}},S1g:{type:"list",member:{locationName:"PreferredAvailabilityZone"}},S1h:{type:"list",member:{locationName:"CacheSecurityGroupName"}},S1i:{type:"list",member:{locationName:"SecurityGroupId"}},S1j:{type:"list",member:{locationName:"SnapshotArn"}},S1l:{type:"structure",members:{CacheClusterId:{},ConfigurationEndpoint:{shape:"Sy"},ClientDownloadLandingPage:{},CacheNodeType:{},Engine:{},EngineVersion:{},CacheClusterStatus:{},NumCacheNodes:{type:"integer"},PreferredAvailabilityZone:{},CacheClusterCreateTime:{type:"timestamp"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{NumCacheNodes:{type:"integer"},CacheNodeIdsToRemove:{shape:"S1n"},EngineVersion:{},CacheNodeType:{},AuthTokenStatus:{}}},NotificationConfiguration:{type:"structure",members:{TopicArn:{},TopicStatus:{}}},CacheSecurityGroups:{type:"list",member:{locationName:"CacheSecurityGroup",type:"structure",members:{CacheSecurityGroupName:{},Status:{}}}},CacheParameterGroup:{type:"structure",members:{CacheParameterGroupName:{},ParameterApplyStatus:{},CacheNodeIdsToReboot:{shape:"S1n"}}},CacheSubnetGroupName:{},CacheNodes:{type:"list",member:{locationName:"CacheNode",type:"structure",members:{CacheNodeId:{},CacheNodeStatus:{},CacheNodeCreateTime:{type:"timestamp"},Endpoint:{shape:"Sy"},ParameterGroupStatus:{},SourceCacheNodeId:{},CustomerAvailabilityZone:{}}}},AutoMinorVersionUpgrade:{type:"boolean"},SecurityGroups:{type:"list",member:{type:"structure",members:{SecurityGroupId:{},Status:{}}}},ReplicationGroupId:{},SnapshotRetentionLimit:{type:"integer"},SnapshotWindow:{},AuthTokenEnabled:{type:"boolean"},AuthTokenLastModifiedDate:{type:"timestamp"},TransitEncryptionEnabled:{type:"boolean"},AtRestEncryptionEnabled:{type:"boolean"}},wrapper:!0},S1n:{type:"list",member:{locationName:"CacheNodeId"}},S1y:{type:"structure",members:{CacheParameterGroupName:{},CacheParameterGroupFamily:{},Description:{}},wrapper:!0},S22:{type:"list",member:{locationName:"SubnetIdentifier"}},S24:{type:"structure",members:{CacheSubnetGroupName:{},CacheSubnetGroupDescription:{},VpcId:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{type:"structure",members:{Name:{}},wrapper:!0}}}}},wrapper:!0},S2e:{type:"list",member:{locationName:"ConfigureShard",type:"structure",required:["NodeGroupId","NewReplicaCount"],members:{NodeGroupId:{},NewReplicaCount:{type:"integer"},PreferredAvailabilityZones:{shape:"S1g"}}}},S33:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ChangeType:{}}}},S36:{type:"list",member:{locationName:"CacheNodeTypeSpecificParameter",type:"structure",members:{ParameterName:{},Description:{},Source:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},CacheNodeTypeSpecificValues:{type:"list",member:{locationName:"CacheNodeTypeSpecificValue",type:"structure",members:{CacheNodeType:{},Value:{}}}},ChangeType:{}}}},S3u:{type:"structure",members:{ReservedCacheNodeId:{},ReservedCacheNodesOfferingId:{},CacheNodeType:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CacheNodeCount:{type:"integer"},ProductDescription:{},OfferingType:{},State:{},RecurringCharges:{shape:"S3v"},ReservationARN:{}},wrapper:!0},S3v:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S42:{type:"list",member:{}},S4v:{type:"list",member:{}},S51:{type:"list",member:{locationName:"ParameterNameValue",type:"structure",members:{ParameterName:{},ParameterValue:{}}}},S53:{type:"structure",members:{CacheParameterGroupName:{}}}},paginators:{DescribeCacheClusters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"CacheClusters"},DescribeCacheEngineVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"CacheEngineVersions"},DescribeCacheParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"CacheParameterGroups"},DescribeCacheParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeCacheSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"CacheSecurityGroups"},DescribeCacheSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"CacheSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"EngineDefaults.Marker",result_key:"EngineDefaults.Parameters"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeReplicationGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReplicationGroups"},DescribeReservedCacheNodes:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedCacheNodes"},DescribeReservedCacheNodesOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedCacheNodesOfferings"},DescribeServiceUpdates:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ServiceUpdates"},DescribeSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Snapshots"},DescribeUpdateActions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"UpdateActions"}},waiters:{CacheClusterAvailable:{acceptors:[{argument:"CacheClusters[].CacheClusterStatus",expected:"available",matcher:"pathAll",state:"success"},{argument:"CacheClusters[].CacheClusterStatus",expected:"deleted",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"deleting",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"incompatible-network",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"restore-failed",matcher:"pathAny",state:"failure"}],delay:15,description:"Wait until ElastiCache cluster is available.",maxAttempts:40,operation:"DescribeCacheClusters"},CacheClusterDeleted:{acceptors:[{argument:"CacheClusters[].CacheClusterStatus",expected:"deleted",matcher:"pathAll",state:"success"},{expected:"CacheClusterNotFound",matcher:"error",state:"success"},{argument:"CacheClusters[].CacheClusterStatus",expected:"available",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"creating",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"incompatible-network",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"modifying",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"restore-failed",matcher:"pathAny",state:"failure"},{argument:"CacheClusters[].CacheClusterStatus",expected:"snapshotting",matcher:"pathAny",state:"failure"}],delay:15,description:"Wait until ElastiCache cluster is deleted.",maxAttempts:40,operation:"DescribeCacheClusters"},ReplicationGroupAvailable:{acceptors:[{argument:"ReplicationGroups[].Status",expected:"available",matcher:"pathAll",state:"success"},{argument:"ReplicationGroups[].Status",expected:"deleted",matcher:"pathAny",state:"failure"}],delay:15,description:"Wait until ElastiCache replication group is available.",maxAttempts:40,operation:"DescribeReplicationGroups"},ReplicationGroupDeleted:{acceptors:[{argument:"ReplicationGroups[].Status",expected:"deleted",matcher:"pathAll",state:"success"},{argument:"ReplicationGroups[].Status",expected:"available",matcher:"pathAny",state:"failure"},{expected:"ReplicationGroupNotFoundFault",matcher:"error",state:"success"}],delay:15,description:"Wait until ElastiCache replication group is deleted.",maxAttempts:40,operation:"DescribeReplicationGroups"}}};AWS.apiLoader.services.elasticbeanstalk={},AWS.ElasticBeanstalk=AWS.Service.defineService("elasticbeanstalk",["2010-12-01"]);AWS.apiLoader.services.elasticbeanstalk["2010-12-01"]={version:"2.0",metadata:{apiVersion:"2010-12-01",endpointPrefix:"elasticbeanstalk",protocol:"query",serviceAbbreviation:"Elastic Beanstalk",serviceFullName:"AWS Elastic Beanstalk",serviceId:"Elastic Beanstalk",signatureVersion:"v4",uid:"elasticbeanstalk-2010-12-01",xmlNamespace:"http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/"},operations:{AbortEnvironmentUpdate:{input:{type:"structure",members:{EnvironmentId:{},EnvironmentName:{}}}},ApplyEnvironmentManagedAction:{input:{type:"structure",required:["ActionId"],members:{EnvironmentName:{},EnvironmentId:{},ActionId:{}}},output:{resultWrapper:"ApplyEnvironmentManagedActionResult",type:"structure",members:{ActionId:{},ActionDescription:{},ActionType:{},Status:{}}}},CheckDNSAvailability:{input:{type:"structure",required:["CNAMEPrefix"],members:{CNAMEPrefix:{}}},output:{resultWrapper:"CheckDNSAvailabilityResult",type:"structure",members:{Available:{type:"boolean"},FullyQualifiedCNAME:{}}}},ComposeEnvironments:{input:{type:"structure",members:{ApplicationName:{},GroupName:{},VersionLabels:{type:"list",member:{}}}},output:{shape:"Si",resultWrapper:"ComposeEnvironmentsResult"}},CreateApplication:{input:{type:"structure",required:["ApplicationName"],members:{ApplicationName:{},Description:{},ResourceLifecycleConfig:{shape:"S17"},Tags:{shape:"S1d"}}},output:{shape:"S1h",resultWrapper:"CreateApplicationResult"}},CreateApplicationVersion:{input:{type:"structure",required:["ApplicationName","VersionLabel"],members:{ApplicationName:{},VersionLabel:{},Description:{},SourceBuildInformation:{shape:"S1n"},SourceBundle:{shape:"S1r"},BuildConfiguration:{type:"structure",required:["CodeBuildServiceRole","Image"],members:{ArtifactName:{},CodeBuildServiceRole:{},ComputeType:{},Image:{},TimeoutInMinutes:{type:"integer"}}},AutoCreateApplication:{type:"boolean"},Process:{type:"boolean"},Tags:{shape:"S1d"}}},output:{shape:"S1z",resultWrapper:"CreateApplicationVersionResult"}},CreateConfigurationTemplate:{input:{type:"structure",required:["ApplicationName","TemplateName"],members:{ApplicationName:{},TemplateName:{},SolutionStackName:{},PlatformArn:{},SourceConfiguration:{type:"structure",members:{ApplicationName:{},TemplateName:{}}},EnvironmentId:{},Description:{},OptionSettings:{shape:"S25"},Tags:{shape:"S1d"}}},output:{shape:"S2b",resultWrapper:"CreateConfigurationTemplateResult"}},CreateEnvironment:{input:{type:"structure",required:["ApplicationName"],members:{ApplicationName:{},EnvironmentName:{},GroupName:{},Description:{},CNAMEPrefix:{},Tier:{shape:"S11"},Tags:{shape:"S1d"},VersionLabel:{},TemplateName:{},SolutionStackName:{},PlatformArn:{},OptionSettings:{shape:"S25"},OptionsToRemove:{shape:"S2e"}}},output:{shape:"Sk",resultWrapper:"CreateEnvironmentResult"}},CreatePlatformVersion:{input:{type:"structure",required:["PlatformName","PlatformVersion","PlatformDefinitionBundle"],members:{PlatformName:{},PlatformVersion:{},PlatformDefinitionBundle:{shape:"S1r"},EnvironmentName:{},OptionSettings:{shape:"S25"},Tags:{shape:"S1d"}}},output:{resultWrapper:"CreatePlatformVersionResult",type:"structure",members:{PlatformSummary:{shape:"S2k"},Builder:{type:"structure",members:{ARN:{}}}}}},CreateStorageLocation:{output:{resultWrapper:"CreateStorageLocationResult",type:"structure",members:{S3Bucket:{}}}},DeleteApplication:{input:{type:"structure",required:["ApplicationName"],members:{ApplicationName:{},TerminateEnvByForce:{type:"boolean"}}}},DeleteApplicationVersion:{input:{type:"structure",required:["ApplicationName","VersionLabel"],members:{ApplicationName:{},VersionLabel:{},DeleteSourceBundle:{type:"boolean"}}}},DeleteConfigurationTemplate:{input:{type:"structure",required:["ApplicationName","TemplateName"],members:{ApplicationName:{},TemplateName:{}}}},DeleteEnvironmentConfiguration:{input:{type:"structure",required:["ApplicationName","EnvironmentName"],members:{ApplicationName:{},EnvironmentName:{}}}},DeletePlatformVersion:{input:{type:"structure",members:{PlatformArn:{}}},output:{resultWrapper:"DeletePlatformVersionResult",type:"structure",members:{PlatformSummary:{shape:"S2k"}}}},DescribeAccountAttributes:{output:{resultWrapper:"DescribeAccountAttributesResult",type:"structure",members:{ResourceQuotas:{type:"structure",members:{ApplicationQuota:{shape:"S37"},ApplicationVersionQuota:{shape:"S37"},EnvironmentQuota:{shape:"S37"},ConfigurationTemplateQuota:{shape:"S37"},CustomPlatformQuota:{shape:"S37"}}}}}},DescribeApplicationVersions:{input:{type:"structure",members:{ApplicationName:{},VersionLabels:{shape:"S1k"},MaxRecords:{type:"integer"},NextToken:{}}},output:{resultWrapper:"DescribeApplicationVersionsResult",type:"structure",members:{ApplicationVersions:{type:"list",member:{shape:"S20"}},NextToken:{}}}},DescribeApplications:{input:{type:"structure",members:{ApplicationNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeApplicationsResult",type:"structure",members:{Applications:{type:"list",member:{shape:"S1i"}}}}},DescribeConfigurationOptions:{input:{type:"structure",members:{ApplicationName:{},TemplateName:{},EnvironmentName:{},SolutionStackName:{},PlatformArn:{},Options:{shape:"S2e"}}},output:{resultWrapper:"DescribeConfigurationOptionsResult",type:"structure",members:{SolutionStackName:{},PlatformArn:{},Options:{type:"list",member:{type:"structure",members:{Namespace:{},Name:{},DefaultValue:{},ChangeSeverity:{},UserDefined:{type:"boolean"},ValueType:{},ValueOptions:{type:"list",member:{}},MinValue:{type:"integer"},MaxValue:{type:"integer"},MaxLength:{type:"integer"},Regex:{type:"structure",members:{Pattern:{},Label:{}}}}}}}}},DescribeConfigurationSettings:{input:{type:"structure",required:["ApplicationName"],members:{ApplicationName:{},TemplateName:{},EnvironmentName:{}}},output:{resultWrapper:"DescribeConfigurationSettingsResult",type:"structure",members:{ConfigurationSettings:{type:"list",member:{shape:"S2b"}}}}},DescribeEnvironmentHealth:{input:{type:"structure",members:{EnvironmentName:{},EnvironmentId:{},AttributeNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeEnvironmentHealthResult",type:"structure",members:{EnvironmentName:{},HealthStatus:{},Status:{},Color:{},Causes:{shape:"S43"},ApplicationMetrics:{shape:"S45"},InstancesHealth:{type:"structure",members:{NoData:{type:"integer"},Unknown:{type:"integer"},Pending:{type:"integer"},Ok:{type:"integer"},Info:{type:"integer"},Warning:{type:"integer"},Degraded:{type:"integer"},Severe:{type:"integer"}}},RefreshedAt:{type:"timestamp"}}}},DescribeEnvironmentManagedActionHistory:{input:{type:"structure",members:{EnvironmentId:{},EnvironmentName:{},NextToken:{},MaxItems:{type:"integer"}}},output:{resultWrapper:"DescribeEnvironmentManagedActionHistoryResult",type:"structure",members:{ManagedActionHistoryItems:{type:"list",member:{type:"structure",members:{ActionId:{},ActionType:{},ActionDescription:{},FailureType:{},Status:{},FailureDescription:{},ExecutedTime:{type:"timestamp"},FinishedTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeEnvironmentManagedActions:{input:{type:"structure",members:{EnvironmentName:{},EnvironmentId:{},Status:{}}},output:{resultWrapper:"DescribeEnvironmentManagedActionsResult",type:"structure",members:{ManagedActions:{type:"list",member:{type:"structure",members:{ActionId:{},ActionDescription:{},ActionType:{},Status:{},WindowStartTime:{type:"timestamp"}}}}}}},DescribeEnvironmentResources:{input:{type:"structure",members:{EnvironmentId:{},EnvironmentName:{}}},output:{resultWrapper:"DescribeEnvironmentResourcesResult",type:"structure",members:{EnvironmentResources:{type:"structure",members:{EnvironmentName:{},AutoScalingGroups:{type:"list",member:{type:"structure",members:{Name:{}}}},Instances:{type:"list",member:{type:"structure",members:{Id:{}}}},LaunchConfigurations:{type:"list",member:{type:"structure",members:{Name:{}}}},LaunchTemplates:{type:"list",member:{type:"structure",members:{Id:{}}}},LoadBalancers:{type:"list",member:{type:"structure",members:{Name:{}}}},Triggers:{type:"list",member:{type:"structure",members:{Name:{}}}},Queues:{type:"list",member:{type:"structure",members:{Name:{},URL:{}}}}}}}}},DescribeEnvironments:{input:{type:"structure",members:{ApplicationName:{},VersionLabel:{},EnvironmentIds:{type:"list",member:{}},EnvironmentNames:{type:"list",member:{}},IncludeDeleted:{type:"boolean"},IncludedDeletedBackTo:{type:"timestamp"},MaxRecords:{type:"integer"},NextToken:{}}},output:{shape:"Si",resultWrapper:"DescribeEnvironmentsResult"}},DescribeEvents:{input:{type:"structure",members:{ApplicationName:{},VersionLabel:{},TemplateName:{},EnvironmentId:{},EnvironmentName:{},PlatformArn:{},RequestId:{},Severity:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},MaxRecords:{type:"integer"},NextToken:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Events:{type:"list",member:{type:"structure",members:{EventDate:{type:"timestamp"},Message:{},ApplicationName:{},VersionLabel:{},TemplateName:{},EnvironmentName:{},PlatformArn:{},RequestId:{},Severity:{}}}},NextToken:{}}}},DescribeInstancesHealth:{input:{type:"structure",members:{EnvironmentName:{},EnvironmentId:{},AttributeNames:{type:"list",member:{}},NextToken:{}}},output:{resultWrapper:"DescribeInstancesHealthResult",type:"structure",members:{InstanceHealthList:{type:"list",member:{type:"structure",members:{InstanceId:{},HealthStatus:{},Color:{},Causes:{shape:"S43"},LaunchedAt:{type:"timestamp"},ApplicationMetrics:{shape:"S45"},System:{type:"structure",members:{CPUUtilization:{type:"structure",members:{User:{type:"double"},Nice:{type:"double"},System:{type:"double"},Idle:{type:"double"},IOWait:{type:"double"},IRQ:{type:"double"},SoftIRQ:{type:"double"},Privileged:{type:"double"}}},LoadAverage:{type:"list",member:{type:"double"}}}},Deployment:{type:"structure",members:{VersionLabel:{},DeploymentId:{type:"long"},Status:{},DeploymentTime:{type:"timestamp"}}},AvailabilityZone:{},InstanceType:{}}}},RefreshedAt:{type:"timestamp"},NextToken:{}}}},DescribePlatformVersion:{input:{type:"structure",members:{PlatformArn:{}}},output:{resultWrapper:"DescribePlatformVersionResult",type:"structure",members:{PlatformDescription:{type:"structure",members:{PlatformArn:{},PlatformOwner:{},PlatformName:{},PlatformVersion:{},SolutionStackName:{},PlatformStatus:{},DateCreated:{type:"timestamp"},DateUpdated:{type:"timestamp"},PlatformCategory:{},Description:{},Maintainer:{},OperatingSystemName:{},OperatingSystemVersion:{},ProgrammingLanguages:{type:"list",member:{type:"structure",members:{Name:{},Version:{}}}},Frameworks:{type:"list",member:{type:"structure",members:{Name:{},Version:{}}}},CustomAmiList:{type:"list",member:{type:"structure",members:{VirtualizationType:{},ImageId:{}}}},SupportedTierList:{shape:"S2q"},SupportedAddonList:{shape:"S2s"}}}}}},ListAvailableSolutionStacks:{output:{resultWrapper:"ListAvailableSolutionStacksResult",type:"structure",members:{SolutionStacks:{type:"list",member:{}},SolutionStackDetails:{type:"list",member:{type:"structure",members:{SolutionStackName:{},PermittedFileTypes:{type:"list",member:{}}}}}}}},ListPlatformVersions:{input:{type:"structure",members:{Filters:{type:"list",member:{type:"structure",members:{Type:{},Operator:{},Values:{type:"list",member:{}}}}},MaxRecords:{type:"integer"},NextToken:{}}},output:{resultWrapper:"ListPlatformVersionsResult",type:"structure",members:{PlatformSummaryList:{type:"list",member:{shape:"S2k"}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{ResourceArn:{},ResourceTags:{shape:"S6x"}}}},RebuildEnvironment:{input:{type:"structure",members:{EnvironmentId:{},EnvironmentName:{}}}},RequestEnvironmentInfo:{input:{type:"structure",required:["InfoType"],members:{EnvironmentId:{},EnvironmentName:{},InfoType:{}}}},RestartAppServer:{input:{type:"structure",members:{EnvironmentId:{},EnvironmentName:{}}}},RetrieveEnvironmentInfo:{input:{type:"structure",required:["InfoType"],members:{EnvironmentId:{},EnvironmentName:{},InfoType:{}}},output:{resultWrapper:"RetrieveEnvironmentInfoResult",type:"structure",members:{EnvironmentInfo:{type:"list",member:{type:"structure",members:{InfoType:{},Ec2InstanceId:{},SampleTimestamp:{type:"timestamp"},Message:{}}}}}}},SwapEnvironmentCNAMEs:{input:{type:"structure",members:{SourceEnvironmentId:{},SourceEnvironmentName:{},DestinationEnvironmentId:{},DestinationEnvironmentName:{}}}},TerminateEnvironment:{input:{type:"structure",members:{EnvironmentId:{},EnvironmentName:{},TerminateResources:{type:"boolean"},ForceTerminate:{type:"boolean"}}},output:{shape:"Sk",resultWrapper:"TerminateEnvironmentResult"}},UpdateApplication:{input:{type:"structure",required:["ApplicationName"],members:{ApplicationName:{},Description:{}}},output:{shape:"S1h",resultWrapper:"UpdateApplicationResult"}},UpdateApplicationResourceLifecycle:{input:{type:"structure",required:["ApplicationName","ResourceLifecycleConfig"],members:{ApplicationName:{},ResourceLifecycleConfig:{shape:"S17"}}},output:{resultWrapper:"UpdateApplicationResourceLifecycleResult",type:"structure",members:{ApplicationName:{},ResourceLifecycleConfig:{shape:"S17"}}}},UpdateApplicationVersion:{input:{type:"structure",required:["ApplicationName","VersionLabel"],members:{ApplicationName:{},VersionLabel:{},Description:{}}},output:{shape:"S1z",resultWrapper:"UpdateApplicationVersionResult"}},UpdateConfigurationTemplate:{input:{type:"structure",required:["ApplicationName","TemplateName"],members:{ApplicationName:{},TemplateName:{},Description:{},OptionSettings:{shape:"S25"},OptionsToRemove:{shape:"S2e"}}},output:{shape:"S2b",resultWrapper:"UpdateConfigurationTemplateResult"}},UpdateEnvironment:{input:{type:"structure",members:{ApplicationName:{},EnvironmentId:{},EnvironmentName:{},GroupName:{},Description:{},Tier:{shape:"S11"},VersionLabel:{},TemplateName:{},SolutionStackName:{},PlatformArn:{},OptionSettings:{shape:"S25"},OptionsToRemove:{shape:"S2e"}}},output:{shape:"Sk",resultWrapper:"UpdateEnvironmentResult"}},UpdateTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},TagsToAdd:{shape:"S6x"},TagsToRemove:{type:"list",member:{}}}}},ValidateConfigurationSettings:{input:{type:"structure",required:["ApplicationName","OptionSettings"],members:{ApplicationName:{},TemplateName:{},EnvironmentName:{},OptionSettings:{shape:"S25"}}},output:{resultWrapper:"ValidateConfigurationSettingsResult",type:"structure",members:{Messages:{type:"list",member:{type:"structure",members:{Message:{},Severity:{},Namespace:{},OptionName:{}}}}}}}},shapes:{Si:{type:"structure",members:{Environments:{type:"list",member:{shape:"Sk"}},NextToken:{}}},Sk:{type:"structure",members:{EnvironmentName:{},EnvironmentId:{},ApplicationName:{},VersionLabel:{},SolutionStackName:{},PlatformArn:{},TemplateName:{},Description:{},EndpointURL:{},CNAME:{},DateCreated:{type:"timestamp"},DateUpdated:{type:"timestamp"},Status:{},AbortableOperationInProgress:{type:"boolean"},Health:{},HealthStatus:{},Resources:{type:"structure",members:{LoadBalancer:{type:"structure",members:{LoadBalancerName:{},Domain:{},Listeners:{type:"list",member:{type:"structure",members:{Protocol:{},Port:{type:"integer"}}}}}}}},Tier:{shape:"S11"},EnvironmentLinks:{type:"list",member:{type:"structure",members:{LinkName:{},EnvironmentName:{}}}},EnvironmentArn:{}}},S11:{type:"structure",members:{Name:{},Type:{},Version:{}}},S17:{type:"structure",members:{ServiceRole:{},VersionLifecycleConfig:{type:"structure",members:{MaxCountRule:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},MaxCount:{type:"integer"},DeleteSourceFromS3:{type:"boolean"}}},MaxAgeRule:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},MaxAgeInDays:{type:"integer"},DeleteSourceFromS3:{type:"boolean"}}}}}}},S1d:{type:"list",member:{shape:"S1e"}},S1e:{type:"structure",members:{Key:{},Value:{}}},S1h:{type:"structure",members:{Application:{shape:"S1i"}}},S1i:{type:"structure",members:{ApplicationArn:{},ApplicationName:{},Description:{},DateCreated:{type:"timestamp"},DateUpdated:{type:"timestamp"},Versions:{shape:"S1k"},ConfigurationTemplates:{type:"list",member:{}},ResourceLifecycleConfig:{shape:"S17"}}},S1k:{type:"list",member:{}},S1n:{type:"structure",required:["SourceType","SourceRepository","SourceLocation"],members:{SourceType:{},SourceRepository:{},SourceLocation:{}}},S1r:{type:"structure",members:{S3Bucket:{},S3Key:{}}},S1z:{type:"structure",members:{ApplicationVersion:{shape:"S20"}}},S20:{type:"structure",members:{ApplicationVersionArn:{},ApplicationName:{},Description:{},VersionLabel:{},SourceBuildInformation:{shape:"S1n"},BuildArn:{},SourceBundle:{shape:"S1r"},DateCreated:{type:"timestamp"},DateUpdated:{type:"timestamp"},Status:{}}},S25:{type:"list",member:{type:"structure",members:{ResourceName:{},Namespace:{},OptionName:{},Value:{}}}},S2b:{type:"structure",members:{SolutionStackName:{},PlatformArn:{},ApplicationName:{},TemplateName:{},Description:{},EnvironmentName:{},DeploymentStatus:{},DateCreated:{type:"timestamp"},DateUpdated:{type:"timestamp"},OptionSettings:{shape:"S25"}}},S2e:{type:"list",member:{type:"structure",members:{ResourceName:{},Namespace:{},OptionName:{}}}},S2k:{type:"structure",members:{PlatformArn:{},PlatformOwner:{},PlatformStatus:{},PlatformCategory:{},OperatingSystemName:{},OperatingSystemVersion:{},SupportedTierList:{shape:"S2q"},SupportedAddonList:{shape:"S2s"}}},S2q:{type:"list",member:{}},S2s:{type:"list",member:{}},S37:{type:"structure",members:{Maximum:{type:"integer"}}},S43:{type:"list",member:{}},S45:{type:"structure",members:{Duration:{type:"integer"},RequestCount:{type:"integer"},StatusCodes:{type:"structure",members:{Status2xx:{type:"integer"},Status3xx:{type:"integer"},Status4xx:{type:"integer"},Status5xx:{type:"integer"}}},Latency:{type:"structure",members:{P999:{type:"double"},P99:{type:"double"},P95:{type:"double"},P90:{type:"double"},P85:{type:"double"},P75:{type:"double"},P50:{type:"double"},P10:{type:"double"}}}}},S6x:{type:"list",member:{shape:"S1e"}}},paginators:{DescribeApplicationVersions:{result_key:"ApplicationVersions"},DescribeApplications:{result_key:"Applications"},DescribeConfigurationOptions:{result_key:"Options"},DescribeEnvironments:{result_key:"Environments"},DescribeEvents:{input_token:"NextToken",limit_key:"MaxRecords",output_token:"NextToken",result_key:"Events"},ListAvailableSolutionStacks:{result_key:"SolutionStacks"}}};AWS.apiLoader.services.elb={},AWS.ELB=AWS.Service.defineService("elb",["2012-06-01"]);AWS.apiLoader.services.elb["2012-06-01"]={version:"2.0",metadata:{apiVersion:"2012-06-01",endpointPrefix:"elasticloadbalancing",protocol:"query",serviceFullName:"Elastic Load Balancing",serviceId:"Elastic Load Balancing",signatureVersion:"v4",uid:"elasticloadbalancing-2012-06-01",xmlNamespace:"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/"},operations:{AddTags:{input:{type:"structure",required:["LoadBalancerNames","Tags"],members:{LoadBalancerNames:{shape:"S2"},Tags:{shape:"S4"}}},output:{resultWrapper:"AddTagsResult",type:"structure",members:{}}},ApplySecurityGroupsToLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","SecurityGroups"],members:{LoadBalancerName:{},SecurityGroups:{shape:"Sa"}}},output:{resultWrapper:"ApplySecurityGroupsToLoadBalancerResult",type:"structure",members:{SecurityGroups:{shape:"Sa"}}}},AttachLoadBalancerToSubnets:{input:{type:"structure",required:["LoadBalancerName","Subnets"],members:{LoadBalancerName:{},Subnets:{shape:"Se"}}},output:{resultWrapper:"AttachLoadBalancerToSubnetsResult",type:"structure",members:{Subnets:{shape:"Se"}}}},ConfigureHealthCheck:{input:{type:"structure",required:["LoadBalancerName","HealthCheck"],members:{LoadBalancerName:{},HealthCheck:{shape:"Si"}}},output:{resultWrapper:"ConfigureHealthCheckResult",type:"structure",members:{HealthCheck:{shape:"Si"}}}},CreateAppCookieStickinessPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName","CookieName"],members:{LoadBalancerName:{},PolicyName:{},CookieName:{}}},output:{resultWrapper:"CreateAppCookieStickinessPolicyResult",type:"structure",members:{}}},CreateLBCookieStickinessPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName"],members:{LoadBalancerName:{},PolicyName:{},CookieExpirationPeriod:{type:"long"}}},output:{resultWrapper:"CreateLBCookieStickinessPolicyResult",type:"structure",members:{}}},CreateLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Listeners"],members:{LoadBalancerName:{},Listeners:{shape:"Sx"},AvailabilityZones:{shape:"S13"},Subnets:{shape:"Se"},SecurityGroups:{shape:"Sa"},Scheme:{},Tags:{shape:"S4"}}},output:{resultWrapper:"CreateLoadBalancerResult",type:"structure",members:{DNSName:{}}}},CreateLoadBalancerListeners:{input:{type:"structure",required:["LoadBalancerName","Listeners"],members:{LoadBalancerName:{},Listeners:{shape:"Sx"}}},output:{resultWrapper:"CreateLoadBalancerListenersResult",type:"structure",members:{}}},CreateLoadBalancerPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName","PolicyTypeName"],members:{LoadBalancerName:{},PolicyName:{},PolicyTypeName:{},PolicyAttributes:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeValue:{}}}}}},output:{resultWrapper:"CreateLoadBalancerPolicyResult",type:"structure",members:{}}},DeleteLoadBalancer:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{}}},output:{resultWrapper:"DeleteLoadBalancerResult",type:"structure",members:{}}},DeleteLoadBalancerListeners:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPorts"],members:{LoadBalancerName:{},LoadBalancerPorts:{type:"list",member:{type:"integer"}}}},output:{resultWrapper:"DeleteLoadBalancerListenersResult",type:"structure",members:{}}},DeleteLoadBalancerPolicy:{input:{type:"structure",required:["LoadBalancerName","PolicyName"],members:{LoadBalancerName:{},PolicyName:{}}},output:{resultWrapper:"DeleteLoadBalancerPolicyResult",type:"structure",members:{}}},DeregisterInstancesFromLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Instances"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"DeregisterInstancesFromLoadBalancerResult",type:"structure",members:{Instances:{shape:"S1p"}}}},DescribeAccountLimits:{input:{type:"structure",members:{Marker:{},PageSize:{type:"integer"}}},output:{resultWrapper:"DescribeAccountLimitsResult",type:"structure",members:{Limits:{type:"list",member:{type:"structure",members:{Name:{},Max:{}}}},NextMarker:{}}}},DescribeInstanceHealth:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"DescribeInstanceHealthResult",type:"structure",members:{InstanceStates:{type:"list",member:{type:"structure",members:{InstanceId:{},State:{},ReasonCode:{},Description:{}}}}}}},DescribeLoadBalancerAttributes:{input:{type:"structure",required:["LoadBalancerName"],members:{LoadBalancerName:{}}},output:{resultWrapper:"DescribeLoadBalancerAttributesResult",type:"structure",members:{LoadBalancerAttributes:{shape:"S2a"}}}},DescribeLoadBalancerPolicies:{input:{type:"structure",members:{LoadBalancerName:{},PolicyNames:{shape:"S2s"}}},output:{resultWrapper:"DescribeLoadBalancerPoliciesResult",type:"structure",members:{PolicyDescriptions:{type:"list",member:{type:"structure",members:{PolicyName:{},PolicyTypeName:{},PolicyAttributeDescriptions:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeValue:{}}}}}}}}}},DescribeLoadBalancerPolicyTypes:{input:{type:"structure",members:{PolicyTypeNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeLoadBalancerPolicyTypesResult",type:"structure",members:{PolicyTypeDescriptions:{type:"list",member:{type:"structure",members:{PolicyTypeName:{},Description:{},PolicyAttributeTypeDescriptions:{type:"list",member:{type:"structure",members:{AttributeName:{},AttributeType:{},Description:{},DefaultValue:{},Cardinality:{}}}}}}}}}},DescribeLoadBalancers:{input:{type:"structure",members:{LoadBalancerNames:{shape:"S2"},Marker:{},PageSize:{type:"integer"}}},output:{resultWrapper:"DescribeLoadBalancersResult",type:"structure",members:{LoadBalancerDescriptions:{type:"list",member:{type:"structure",members:{LoadBalancerName:{},DNSName:{},CanonicalHostedZoneName:{},CanonicalHostedZoneNameID:{},ListenerDescriptions:{type:"list",member:{type:"structure",members:{Listener:{shape:"Sy"},PolicyNames:{shape:"S2s"}}}},Policies:{type:"structure",members:{AppCookieStickinessPolicies:{type:"list",member:{type:"structure",members:{PolicyName:{},CookieName:{}}}},LBCookieStickinessPolicies:{type:"list",member:{type:"structure",members:{PolicyName:{},CookieExpirationPeriod:{type:"long"}}}},OtherPolicies:{shape:"S2s"}}},BackendServerDescriptions:{type:"list",member:{type:"structure",members:{InstancePort:{type:"integer"},PolicyNames:{shape:"S2s"}}}},AvailabilityZones:{shape:"S13"},Subnets:{shape:"Se"},VPCId:{},Instances:{shape:"S1p"},HealthCheck:{shape:"Si"},SourceSecurityGroup:{type:"structure",members:{OwnerAlias:{},GroupName:{}}},SecurityGroups:{shape:"Sa"},CreatedTime:{type:"timestamp"},Scheme:{}}}},NextMarker:{}}}},DescribeTags:{input:{type:"structure",required:["LoadBalancerNames"],members:{LoadBalancerNames:{type:"list",member:{}}}},output:{resultWrapper:"DescribeTagsResult",type:"structure",members:{TagDescriptions:{type:"list",member:{type:"structure",members:{LoadBalancerName:{},Tags:{shape:"S4"}}}}}}},DetachLoadBalancerFromSubnets:{input:{type:"structure",required:["LoadBalancerName","Subnets"],members:{LoadBalancerName:{},Subnets:{shape:"Se"}}},output:{resultWrapper:"DetachLoadBalancerFromSubnetsResult",type:"structure",members:{Subnets:{shape:"Se"}}}},DisableAvailabilityZonesForLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","AvailabilityZones"],members:{LoadBalancerName:{},AvailabilityZones:{shape:"S13"}}},output:{resultWrapper:"DisableAvailabilityZonesForLoadBalancerResult",type:"structure",members:{AvailabilityZones:{shape:"S13"}}}},EnableAvailabilityZonesForLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","AvailabilityZones"],members:{LoadBalancerName:{},AvailabilityZones:{shape:"S13"}}},output:{resultWrapper:"EnableAvailabilityZonesForLoadBalancerResult",type:"structure",members:{AvailabilityZones:{shape:"S13"}}}},ModifyLoadBalancerAttributes:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerAttributes"],members:{LoadBalancerName:{},LoadBalancerAttributes:{shape:"S2a"}}},output:{resultWrapper:"ModifyLoadBalancerAttributesResult",type:"structure",members:{LoadBalancerName:{},LoadBalancerAttributes:{shape:"S2a"}}}},RegisterInstancesWithLoadBalancer:{input:{type:"structure",required:["LoadBalancerName","Instances"],members:{LoadBalancerName:{},Instances:{shape:"S1p"}}},output:{resultWrapper:"RegisterInstancesWithLoadBalancerResult",type:"structure",members:{Instances:{shape:"S1p"}}}},RemoveTags:{input:{type:"structure",required:["LoadBalancerNames","Tags"],members:{LoadBalancerNames:{shape:"S2"},Tags:{type:"list",member:{type:"structure",members:{Key:{}}}}}},output:{resultWrapper:"RemoveTagsResult",type:"structure",members:{}}},SetLoadBalancerListenerSSLCertificate:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPort","SSLCertificateId"],members:{LoadBalancerName:{},LoadBalancerPort:{type:"integer"},SSLCertificateId:{}}},output:{resultWrapper:"SetLoadBalancerListenerSSLCertificateResult",type:"structure",members:{}}},SetLoadBalancerPoliciesForBackendServer:{input:{type:"structure",required:["LoadBalancerName","InstancePort","PolicyNames"],members:{LoadBalancerName:{},InstancePort:{type:"integer"},PolicyNames:{shape:"S2s"}}},output:{resultWrapper:"SetLoadBalancerPoliciesForBackendServerResult",type:"structure",members:{}}},SetLoadBalancerPoliciesOfListener:{input:{type:"structure",required:["LoadBalancerName","LoadBalancerPort","PolicyNames"],members:{LoadBalancerName:{},LoadBalancerPort:{type:"integer"},PolicyNames:{shape:"S2s"}}},output:{resultWrapper:"SetLoadBalancerPoliciesOfListenerResult",type:"structure",members:{}}}},shapes:{S2:{type:"list",member:{}},S4:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},Sa:{type:"list",member:{}},Se:{type:"list",member:{}},Si:{type:"structure",required:["Target","Interval","Timeout","UnhealthyThreshold","HealthyThreshold"],members:{Target:{},Interval:{type:"integer"},Timeout:{type:"integer"},UnhealthyThreshold:{type:"integer"},HealthyThreshold:{type:"integer"}}},Sx:{type:"list",member:{shape:"Sy"}},Sy:{type:"structure",required:["Protocol","LoadBalancerPort","InstancePort"],members:{Protocol:{},LoadBalancerPort:{type:"integer"},InstanceProtocol:{},InstancePort:{type:"integer"},SSLCertificateId:{}}},S13:{type:"list",member:{}},S1p:{type:"list",member:{type:"structure",members:{InstanceId:{}}}},S2a:{type:"structure",members:{CrossZoneLoadBalancing:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"}}},AccessLog:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},S3BucketName:{},EmitInterval:{type:"integer"},S3BucketPrefix:{}}},ConnectionDraining:{type:"structure",required:["Enabled"],members:{Enabled:{type:"boolean"},Timeout:{type:"integer"}}},ConnectionSettings:{type:"structure",required:["IdleTimeout"],members:{IdleTimeout:{type:"integer"}}},AdditionalAttributes:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}},S2s:{type:"list",member:{}}},paginators:{DescribeInstanceHealth:{result_key:"InstanceStates"},DescribeLoadBalancerPolicies:{result_key:"PolicyDescriptions"},DescribeLoadBalancerPolicyTypes:{result_key:"PolicyTypeDescriptions"},DescribeLoadBalancers:{input_token:"Marker",output_token:"NextMarker",result_key:"LoadBalancerDescriptions"}},waiters:{InstanceDeregistered:{delay:15,operation:"DescribeInstanceHealth",maxAttempts:40,acceptors:[{expected:"OutOfService",matcher:"pathAll",state:"success",argument:"InstanceStates[].State"},{matcher:"error",expected:"InvalidInstance",state:"success"}]},AnyInstanceInService:{acceptors:[{argument:"InstanceStates[].State",expected:"InService",matcher:"pathAny",state:"success"}],delay:15,maxAttempts:40,operation:"DescribeInstanceHealth"},InstanceInService:{acceptors:[{argument:"InstanceStates[].State",expected:"InService",matcher:"pathAll",state:"success"},{matcher:"error",expected:"InvalidInstance",state:"retry"}],delay:15,maxAttempts:40,operation:"DescribeInstanceHealth"}}};AWS.apiLoader.services.emr={},AWS.EMR=AWS.Service.defineService("emr",["2009-03-31"]);AWS.apiLoader.services.emr["2009-03-31"]={version:"2.0",metadata:{apiVersion:"2009-03-31",endpointPrefix:"elasticmapreduce",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon EMR",serviceFullName:"Amazon Elastic MapReduce",serviceId:"EMR",signatureVersion:"v4",targetPrefix:"ElasticMapReduce",uid:"elasticmapreduce-2009-03-31"},operations:{AddInstanceFleet:{input:{type:"structure",required:["ClusterId","InstanceFleet"],members:{ClusterId:{},InstanceFleet:{shape:"S3"}}},output:{type:"structure",members:{ClusterId:{},InstanceFleetId:{},ClusterArn:{}}}},AddInstanceGroups:{input:{type:"structure",required:["InstanceGroups","JobFlowId"],members:{InstanceGroups:{shape:"Sr"},JobFlowId:{}}},output:{type:"structure",members:{JobFlowId:{},InstanceGroupIds:{type:"list",member:{}},ClusterArn:{}}}},AddJobFlowSteps:{input:{type:"structure",required:["JobFlowId","Steps"],members:{JobFlowId:{},Steps:{shape:"S1c"}}},output:{type:"structure",members:{StepIds:{shape:"S1l"}}}},AddTags:{input:{type:"structure",required:["ResourceId","Tags"],members:{ResourceId:{},Tags:{shape:"S1o"}}},output:{type:"structure",members:{}}},CancelSteps:{input:{type:"structure",required:["ClusterId","StepIds"],members:{ClusterId:{},StepIds:{shape:"S1l"},StepCancellationOption:{}}},output:{type:"structure",members:{CancelStepsInfoList:{type:"list",member:{type:"structure",members:{StepId:{},Status:{},Reason:{}}}}}}},CreateSecurityConfiguration:{input:{type:"structure",required:["Name","SecurityConfiguration"],members:{Name:{},SecurityConfiguration:{}}},output:{type:"structure",required:["Name","CreationDateTime"],members:{Name:{},CreationDateTime:{type:"timestamp"}}}},DeleteSecurityConfiguration:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DescribeCluster:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{}}},output:{type:"structure",members:{Cluster:{type:"structure",members:{Id:{},Name:{},Status:{shape:"S27"},Ec2InstanceAttributes:{type:"structure",members:{Ec2KeyName:{},Ec2SubnetId:{},RequestedEc2SubnetIds:{shape:"S2d"},Ec2AvailabilityZone:{},RequestedEc2AvailabilityZones:{shape:"S2d"},IamInstanceProfile:{},EmrManagedMasterSecurityGroup:{},EmrManagedSlaveSecurityGroup:{},ServiceAccessSecurityGroup:{},AdditionalMasterSecurityGroups:{shape:"S2e"},AdditionalSlaveSecurityGroups:{shape:"S2e"}}},InstanceCollectionType:{},LogUri:{},RequestedAmiVersion:{},RunningAmiVersion:{},ReleaseLabel:{},AutoTerminate:{type:"boolean"},TerminationProtected:{type:"boolean"},VisibleToAllUsers:{type:"boolean"},Applications:{shape:"S2h"},Tags:{shape:"S1o"},ServiceRole:{},NormalizedInstanceHours:{type:"integer"},MasterPublicDnsName:{},Configurations:{shape:"Sh"},SecurityConfiguration:{},AutoScalingRole:{},ScaleDownBehavior:{},CustomAmiId:{},EbsRootVolumeSize:{type:"integer"},RepoUpgradeOnBoot:{},KerberosAttributes:{shape:"S2l"},ClusterArn:{},StepConcurrencyLevel:{type:"integer"},OutpostArn:{}}}}}},DescribeJobFlows:{input:{type:"structure",members:{CreatedAfter:{type:"timestamp"},CreatedBefore:{type:"timestamp"},JobFlowIds:{shape:"S1j"},JobFlowStates:{type:"list",member:{}}}},output:{type:"structure",members:{JobFlows:{type:"list",member:{type:"structure",required:["JobFlowId","Name","ExecutionStatusDetail","Instances"],members:{JobFlowId:{},Name:{},LogUri:{},AmiVersion:{},ExecutionStatusDetail:{type:"structure",required:["State","CreationDateTime"],members:{State:{},CreationDateTime:{type:"timestamp"},StartDateTime:{type:"timestamp"},ReadyDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"},LastStateChangeReason:{}}},Instances:{type:"structure",required:["MasterInstanceType","SlaveInstanceType","InstanceCount"],members:{MasterInstanceType:{},MasterPublicDnsName:{},MasterInstanceId:{},SlaveInstanceType:{},InstanceCount:{type:"integer"},InstanceGroups:{type:"list",member:{type:"structure",required:["Market","InstanceRole","InstanceType","InstanceRequestCount","InstanceRunningCount","State","CreationDateTime"],members:{InstanceGroupId:{},Name:{},Market:{},InstanceRole:{},BidPrice:{},InstanceType:{},InstanceRequestCount:{type:"integer"},InstanceRunningCount:{type:"integer"},State:{},LastStateChangeReason:{},CreationDateTime:{type:"timestamp"},StartDateTime:{type:"timestamp"},ReadyDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"}}}},NormalizedInstanceHours:{type:"integer"},Ec2KeyName:{},Ec2SubnetId:{},Placement:{shape:"S2y"},KeepJobFlowAliveWhenNoSteps:{type:"boolean"},TerminationProtected:{type:"boolean"},HadoopVersion:{}}},Steps:{type:"list",member:{type:"structure",required:["StepConfig","ExecutionStatusDetail"],members:{StepConfig:{shape:"S1d"},ExecutionStatusDetail:{type:"structure",required:["State","CreationDateTime"],members:{State:{},CreationDateTime:{type:"timestamp"},StartDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"},LastStateChangeReason:{}}}}}},BootstrapActions:{type:"list",member:{type:"structure",members:{BootstrapActionConfig:{shape:"S35"}}}},SupportedProducts:{shape:"S37"},VisibleToAllUsers:{type:"boolean"},JobFlowRole:{},ServiceRole:{},AutoScalingRole:{},ScaleDownBehavior:{}}}}}},deprecated:!0},DescribeSecurityConfiguration:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},SecurityConfiguration:{},CreationDateTime:{type:"timestamp"}}}},DescribeStep:{input:{type:"structure",required:["ClusterId","StepId"],members:{ClusterId:{},StepId:{}}},output:{type:"structure",members:{Step:{type:"structure",members:{Id:{},Name:{},Config:{shape:"S3d"},ActionOnFailure:{},Status:{shape:"S3e"}}}}}},GetBlockPublicAccessConfiguration:{input:{type:"structure",members:{}},output:{type:"structure",required:["BlockPublicAccessConfiguration","BlockPublicAccessConfigurationMetadata"],members:{BlockPublicAccessConfiguration:{shape:"S3m"},BlockPublicAccessConfigurationMetadata:{type:"structure",required:["CreationDateTime","CreatedByArn"],members:{CreationDateTime:{type:"timestamp"},CreatedByArn:{}}}}}},ListBootstrapActions:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{},Marker:{}}},output:{type:"structure",members:{BootstrapActions:{type:"list",member:{type:"structure",members:{Name:{},ScriptPath:{},Args:{shape:"S2e"}}}},Marker:{}}}},ListClusters:{input:{type:"structure",members:{CreatedAfter:{type:"timestamp"},CreatedBefore:{type:"timestamp"},ClusterStates:{type:"list",member:{}},Marker:{}}},output:{type:"structure",members:{Clusters:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Status:{shape:"S27"},NormalizedInstanceHours:{type:"integer"},ClusterArn:{},OutpostArn:{}}}},Marker:{}}}},ListInstanceFleets:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{},Marker:{}}},output:{type:"structure",members:{InstanceFleets:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Status:{type:"structure",members:{State:{},StateChangeReason:{type:"structure",members:{Code:{},Message:{}}},Timeline:{type:"structure",members:{CreationDateTime:{type:"timestamp"},ReadyDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"}}}}},InstanceFleetType:{},TargetOnDemandCapacity:{type:"integer"},TargetSpotCapacity:{type:"integer"},ProvisionedOnDemandCapacity:{type:"integer"},ProvisionedSpotCapacity:{type:"integer"},InstanceTypeSpecifications:{type:"list",member:{type:"structure",members:{InstanceType:{},WeightedCapacity:{type:"integer"},BidPrice:{},BidPriceAsPercentageOfOnDemandPrice:{type:"double"},Configurations:{shape:"Sh"},EbsBlockDevices:{shape:"S4c"},EbsOptimized:{type:"boolean"}}}},LaunchSpecifications:{shape:"Sk"}}}},Marker:{}}}},ListInstanceGroups:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{},Marker:{}}},output:{type:"structure",members:{InstanceGroups:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Market:{},InstanceGroupType:{},BidPrice:{},InstanceType:{},RequestedInstanceCount:{type:"integer"},RunningInstanceCount:{type:"integer"},Status:{type:"structure",members:{State:{},StateChangeReason:{type:"structure",members:{Code:{},Message:{}}},Timeline:{type:"structure",members:{CreationDateTime:{type:"timestamp"},ReadyDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"}}}}},Configurations:{shape:"Sh"},ConfigurationsVersion:{type:"long"},LastSuccessfullyAppliedConfigurations:{shape:"Sh"},LastSuccessfullyAppliedConfigurationsVersion:{type:"long"},EbsBlockDevices:{shape:"S4c"},EbsOptimized:{type:"boolean"},ShrinkPolicy:{shape:"S4p"},AutoScalingPolicy:{shape:"S4t"}}}},Marker:{}}}},ListInstances:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{},InstanceGroupId:{},InstanceGroupTypes:{type:"list",member:{}},InstanceFleetId:{},InstanceFleetType:{},InstanceStates:{type:"list",member:{}},Marker:{}}},output:{type:"structure",members:{Instances:{type:"list",member:{type:"structure",members:{Id:{},Ec2InstanceId:{},PublicDnsName:{},PublicIpAddress:{},PrivateDnsName:{},PrivateIpAddress:{},Status:{type:"structure",members:{State:{},StateChangeReason:{type:"structure",members:{Code:{},Message:{}}},Timeline:{type:"structure",members:{CreationDateTime:{type:"timestamp"},ReadyDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"}}}}},InstanceGroupId:{},InstanceFleetId:{},Market:{},InstanceType:{},EbsVolumes:{type:"list",member:{type:"structure",members:{Device:{},VolumeId:{}}}}}}},Marker:{}}}},ListSecurityConfigurations:{input:{type:"structure",members:{Marker:{}}},output:{type:"structure",members:{SecurityConfigurations:{type:"list",member:{type:"structure",members:{Name:{},CreationDateTime:{type:"timestamp"}}}},Marker:{}}}},ListSteps:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{},StepStates:{type:"list",member:{}},StepIds:{shape:"S1j"},Marker:{}}},output:{type:"structure",members:{Steps:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Config:{shape:"S3d"},ActionOnFailure:{},Status:{shape:"S3e"}}}},Marker:{}}}},ModifyCluster:{input:{type:"structure",required:["ClusterId"],members:{ClusterId:{},StepConcurrencyLevel:{type:"integer"}}},output:{type:"structure",members:{StepConcurrencyLevel:{type:"integer"}}}},ModifyInstanceFleet:{input:{type:"structure",required:["ClusterId","InstanceFleet"],members:{ClusterId:{},InstanceFleet:{type:"structure",required:["InstanceFleetId"],members:{InstanceFleetId:{},TargetOnDemandCapacity:{type:"integer"},TargetSpotCapacity:{type:"integer"}}}}}},ModifyInstanceGroups:{input:{type:"structure",members:{ClusterId:{},InstanceGroups:{type:"list",member:{type:"structure",required:["InstanceGroupId"],members:{InstanceGroupId:{},InstanceCount:{type:"integer"},EC2InstanceIdsToTerminate:{type:"list",member:{}},ShrinkPolicy:{shape:"S4p"},Configurations:{shape:"Sh"}}}}}}},PutAutoScalingPolicy:{input:{type:"structure",required:["ClusterId","InstanceGroupId","AutoScalingPolicy"],members:{ClusterId:{},InstanceGroupId:{},AutoScalingPolicy:{shape:"Sv"}}},output:{type:"structure",members:{ClusterId:{},InstanceGroupId:{},AutoScalingPolicy:{shape:"S4t"},ClusterArn:{}}}},PutBlockPublicAccessConfiguration:{input:{type:"structure",required:["BlockPublicAccessConfiguration"],members:{BlockPublicAccessConfiguration:{shape:"S3m"}}},output:{type:"structure",members:{}}},RemoveAutoScalingPolicy:{input:{type:"structure",required:["ClusterId","InstanceGroupId"],members:{ClusterId:{},InstanceGroupId:{}}},output:{type:"structure",members:{}}},RemoveTags:{input:{type:"structure",required:["ResourceId","TagKeys"],members:{ResourceId:{},TagKeys:{shape:"S2e"}}},output:{type:"structure",members:{}}},RunJobFlow:{input:{type:"structure",required:["Name","Instances"],members:{Name:{},LogUri:{},AdditionalInfo:{},AmiVersion:{},ReleaseLabel:{},Instances:{type:"structure",members:{MasterInstanceType:{},SlaveInstanceType:{},InstanceCount:{type:"integer"},InstanceGroups:{shape:"Sr"},InstanceFleets:{type:"list",member:{shape:"S3"}},Ec2KeyName:{},Placement:{shape:"S2y"},KeepJobFlowAliveWhenNoSteps:{type:"boolean"},TerminationProtected:{type:"boolean"},HadoopVersion:{},Ec2SubnetId:{},Ec2SubnetIds:{shape:"S2d"},EmrManagedMasterSecurityGroup:{},EmrManagedSlaveSecurityGroup:{},ServiceAccessSecurityGroup:{},AdditionalMasterSecurityGroups:{shape:"S63"},AdditionalSlaveSecurityGroups:{shape:"S63"}}},Steps:{shape:"S1c"},BootstrapActions:{type:"list",member:{shape:"S35"}},SupportedProducts:{shape:"S37"},NewSupportedProducts:{type:"list",member:{type:"structure",members:{Name:{},Args:{shape:"S1j"}}}},Applications:{shape:"S2h"},Configurations:{shape:"Sh"},VisibleToAllUsers:{type:"boolean"},JobFlowRole:{},ServiceRole:{},Tags:{shape:"S1o"},SecurityConfiguration:{},AutoScalingRole:{},ScaleDownBehavior:{},CustomAmiId:{},EbsRootVolumeSize:{type:"integer"},RepoUpgradeOnBoot:{},KerberosAttributes:{shape:"S2l"},StepConcurrencyLevel:{type:"integer"}}},output:{type:"structure",members:{JobFlowId:{},ClusterArn:{}}}},SetTerminationProtection:{input:{type:"structure",required:["JobFlowIds","TerminationProtected"],members:{JobFlowIds:{shape:"S1j"},TerminationProtected:{type:"boolean"}}}},SetVisibleToAllUsers:{input:{type:"structure",required:["JobFlowIds","VisibleToAllUsers"],members:{JobFlowIds:{shape:"S1j"},VisibleToAllUsers:{type:"boolean"}}}},TerminateJobFlows:{input:{type:"structure",required:["JobFlowIds"],members:{JobFlowIds:{shape:"S1j"}}}}},shapes:{S3:{type:"structure",required:["InstanceFleetType"],members:{Name:{},InstanceFleetType:{},TargetOnDemandCapacity:{type:"integer"},TargetSpotCapacity:{type:"integer"},InstanceTypeConfigs:{type:"list",member:{type:"structure",required:["InstanceType"],members:{InstanceType:{},WeightedCapacity:{type:"integer"},BidPrice:{},BidPriceAsPercentageOfOnDemandPrice:{type:"double"},EbsConfiguration:{shape:"Sa"},Configurations:{shape:"Sh"}}}},LaunchSpecifications:{shape:"Sk"}}},Sa:{type:"structure",members:{EbsBlockDeviceConfigs:{type:"list",member:{type:"structure",required:["VolumeSpecification"],members:{VolumeSpecification:{shape:"Sd"},VolumesPerInstance:{type:"integer"}}}},EbsOptimized:{type:"boolean"}}},Sd:{type:"structure",required:["VolumeType","SizeInGB"],members:{VolumeType:{},Iops:{type:"integer"},SizeInGB:{type:"integer"}}},Sh:{type:"list",member:{type:"structure",members:{Classification:{},Configurations:{shape:"Sh"},Properties:{shape:"Sj"}}}},Sj:{type:"map",key:{},value:{}},Sk:{type:"structure",required:["SpotSpecification"],members:{SpotSpecification:{type:"structure",required:["TimeoutDurationMinutes","TimeoutAction"],members:{TimeoutDurationMinutes:{type:"integer"},TimeoutAction:{},BlockDurationMinutes:{type:"integer"}}}}},Sr:{type:"list",member:{type:"structure",required:["InstanceRole","InstanceType","InstanceCount"],members:{Name:{},Market:{},InstanceRole:{},BidPrice:{},InstanceType:{},InstanceCount:{type:"integer"},Configurations:{shape:"Sh"},EbsConfiguration:{shape:"Sa"},AutoScalingPolicy:{shape:"Sv"}}}},Sv:{type:"structure",required:["Constraints","Rules"],members:{Constraints:{shape:"Sw"},Rules:{shape:"Sx"}}},Sw:{type:"structure",required:["MinCapacity","MaxCapacity"],members:{MinCapacity:{type:"integer"},MaxCapacity:{type:"integer"}}},Sx:{type:"list",member:{type:"structure",required:["Name","Action","Trigger"],members:{Name:{},Description:{},Action:{type:"structure",required:["SimpleScalingPolicyConfiguration"],members:{Market:{},SimpleScalingPolicyConfiguration:{type:"structure",required:["ScalingAdjustment"],members:{AdjustmentType:{},ScalingAdjustment:{type:"integer"},CoolDown:{type:"integer"}}}}},Trigger:{type:"structure",required:["CloudWatchAlarmDefinition"],members:{CloudWatchAlarmDefinition:{type:"structure",required:["ComparisonOperator","MetricName","Period","Threshold"],members:{ComparisonOperator:{},EvaluationPeriods:{type:"integer"},MetricName:{},Namespace:{},Period:{type:"integer"},Statistic:{},Threshold:{type:"double"},Unit:{},Dimensions:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}}}}}}},S1c:{type:"list",member:{shape:"S1d"}},S1d:{type:"structure",required:["Name","HadoopJarStep"],members:{Name:{},ActionOnFailure:{},HadoopJarStep:{type:"structure",required:["Jar"],members:{Properties:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},Jar:{},MainClass:{},Args:{shape:"S1j"}}}}},S1j:{type:"list",member:{}},S1l:{type:"list",member:{}},S1o:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S27:{type:"structure",members:{State:{},StateChangeReason:{type:"structure",members:{Code:{},Message:{}}},Timeline:{type:"structure",members:{CreationDateTime:{type:"timestamp"},ReadyDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"}}}}},S2d:{type:"list",member:{}},S2e:{type:"list",member:{}},S2h:{type:"list",member:{type:"structure",members:{Name:{},Version:{},Args:{shape:"S2e"},AdditionalInfo:{shape:"Sj"}}}},S2l:{type:"structure",required:["Realm","KdcAdminPassword"],members:{Realm:{},KdcAdminPassword:{},CrossRealmTrustPrincipalPassword:{},ADDomainJoinUser:{},ADDomainJoinPassword:{}}},S2y:{type:"structure",members:{AvailabilityZone:{},AvailabilityZones:{shape:"S2d"}}},S35:{type:"structure",required:["Name","ScriptBootstrapAction"],members:{Name:{},ScriptBootstrapAction:{type:"structure",required:["Path"],members:{Path:{},Args:{shape:"S1j"}}}}},S37:{type:"list",member:{}},S3d:{type:"structure",members:{Jar:{},Properties:{shape:"Sj"},MainClass:{},Args:{shape:"S2e"}}},S3e:{type:"structure",members:{State:{},StateChangeReason:{type:"structure",members:{Code:{},Message:{}}},FailureDetails:{type:"structure",members:{Reason:{},Message:{},LogFile:{}}},Timeline:{type:"structure",members:{CreationDateTime:{type:"timestamp"},StartDateTime:{type:"timestamp"},EndDateTime:{type:"timestamp"}}}}},S3m:{type:"structure",required:["BlockPublicSecurityGroupRules"],members:{BlockPublicSecurityGroupRules:{type:"boolean"},PermittedPublicSecurityGroupRuleRanges:{type:"list",member:{type:"structure",required:["MinRange"],members:{MinRange:{type:"integer"},MaxRange:{type:"integer"}}}}}},S4c:{type:"list",member:{type:"structure",members:{VolumeSpecification:{shape:"Sd"},Device:{}}}},S4p:{type:"structure",members:{DecommissionTimeout:{type:"integer"},InstanceResizePolicy:{type:"structure",members:{InstancesToTerminate:{shape:"S4r"},InstancesToProtect:{shape:"S4r"},InstanceTerminationTimeout:{type:"integer"}}}}},S4r:{type:"list",member:{}},S4t:{type:"structure",members:{Status:{type:"structure",members:{State:{},StateChangeReason:{type:"structure",members:{Code:{},Message:{}}}}},Constraints:{shape:"Sw"},Rules:{shape:"Sx"}}},S63:{type:"list",member:{}}},paginators:{DescribeJobFlows:{result_key:"JobFlows"},ListBootstrapActions:{input_token:"Marker",output_token:"Marker",result_key:"BootstrapActions"},ListClusters:{input_token:"Marker",output_token:"Marker",result_key:"Clusters"},ListInstanceFleets:{input_token:"Marker",output_token:"Marker",result_key:"InstanceFleets"},ListInstanceGroups:{input_token:"Marker",output_token:"Marker",result_key:"InstanceGroups"},ListInstances:{input_token:"Marker",output_token:"Marker",result_key:"Instances"},ListSecurityConfigurations:{input_token:"Marker",output_token:"Marker",result_key:"SecurityConfigurations"},ListSteps:{input_token:"Marker",output_token:"Marker",result_key:"Steps"}},waiters:{ClusterRunning:{delay:30,operation:"DescribeCluster",maxAttempts:60,acceptors:[{state:"success",matcher:"path",argument:"Cluster.Status.State",expected:"RUNNING"},{state:"success",matcher:"path",argument:"Cluster.Status.State",expected:"WAITING"},{state:"failure",matcher:"path",argument:"Cluster.Status.State",expected:"TERMINATING"},{state:"failure",matcher:"path",argument:"Cluster.Status.State",expected:"TERMINATED"},{state:"failure",matcher:"path",argument:"Cluster.Status.State",expected:"TERMINATED_WITH_ERRORS"}]},StepComplete:{delay:30,operation:"DescribeStep",maxAttempts:60,acceptors:[{state:"success",matcher:"path",argument:"Step.Status.State",expected:"COMPLETED"},{state:"failure",matcher:"path",argument:"Step.Status.State",expected:"FAILED"},{state:"failure",matcher:"path",argument:"Step.Status.State",expected:"CANCELLED"}]},ClusterTerminated:{delay:30,operation:"DescribeCluster",maxAttempts:60,acceptors:[{state:"success",matcher:"path",argument:"Cluster.Status.State",expected:"TERMINATED"},{state:"failure",matcher:"path",argument:"Cluster.Status.State",expected:"TERMINATED_WITH_ERRORS"}]}}};AWS.apiLoader.services.elastictranscoder={},AWS.ElasticTranscoder=AWS.Service.defineService("elastictranscoder",["2012-09-25"]);AWS.apiLoader.services.elastictranscoder["2012-09-25"]={version:"2.0",metadata:{apiVersion:"2012-09-25",endpointPrefix:"elastictranscoder",protocol:"rest-json",serviceFullName:"Amazon Elastic Transcoder",serviceId:"Elastic Transcoder",signatureVersion:"v4",uid:"elastictranscoder-2012-09-25"},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"],members:{PipelineId:{},Input:{shape:"S5"},Inputs:{shape:"St"},Output:{shape:"Su"},Outputs:{type:"list",member:{shape:"Su"}},OutputKeyPrefix:{},Playlists:{type:"list",member:{type:"structure",members:{Name:{},Format:{},OutputKeys:{shape:"S1l"},HlsContentProtection:{shape:"S1m"},PlayReadyDrm:{shape:"S1q"}}}},UserMetadata:{shape:"S1v"}}},output:{type:"structure",members:{Job:{shape:"S1y"}}}},CreatePipeline:{http:{requestUri:"/2012-09-25/pipelines",responseCode:201},input:{type:"structure",required:["Name","InputBucket","Role"],members:{Name:{},InputBucket:{},OutputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S2a"},ContentConfig:{shape:"S2c"},ThumbnailConfig:{shape:"S2c"}}},output:{type:"structure",members:{Pipeline:{shape:"S2l"},Warnings:{shape:"S2n"}}}},CreatePreset:{http:{requestUri:"/2012-09-25/presets",responseCode:201},input:{type:"structure",required:["Name","Container"],members:{Name:{},Description:{},Container:{},Video:{shape:"S2r"},Audio:{shape:"S37"},Thumbnails:{shape:"S3i"}}},output:{type:"structure",members:{Preset:{shape:"S3m"},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:"S3v"},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:"S3v"},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:"S2l"}},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:"S3m"}},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:"S1y"}}}},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:"S2l"},Warnings:{shape:"S2n"}}}},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:"S3m"}}}},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:{}}},deprecated:!0},output:{type:"structure",members:{Success:{},Messages:{type:"list",member:{}}},deprecated:!0},deprecated:!0},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:"S2a"},ContentConfig:{shape:"S2c"},ThumbnailConfig:{shape:"S2c"}}},output:{type:"structure",members:{Pipeline:{shape:"S2l"},Warnings:{shape:"S2n"}}}},UpdatePipelineNotifications:{http:{requestUri:"/2012-09-25/pipelines/{Id}/notifications"},input:{type:"structure",required:["Id","Notifications"],members:{Id:{location:"uri",locationName:"Id"},Notifications:{shape:"S2a"}}},output:{type:"structure",members:{Pipeline:{shape:"S2l"}}}},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:"S2l"}}}}},shapes:{S5:{type:"structure",members:{Key:{},FrameRate:{},Resolution:{},AspectRatio:{},Interlaced:{},Container:{},Encryption:{shape:"Sc"},TimeSpan:{shape:"Sg"},InputCaptions:{type:"structure",members:{MergePolicy:{},CaptionSources:{shape:"Sk"}}},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:{}}},Sg:{type:"structure",members:{StartTime:{},Duration:{}}},Sk:{type:"list",member:{type:"structure",members:{Key:{},Language:{},TimeOffset:{},Label:{},Encryption:{shape:"Sc"}}}},St:{type:"list",member:{shape:"S5"}},Su:{type:"structure",members:{Key:{},ThumbnailPattern:{},ThumbnailEncryption:{shape:"Sc"},Rotate:{},PresetId:{},SegmentDuration:{},Watermarks:{shape:"Sx"},AlbumArt:{shape:"S11"},Composition:{shape:"S19",deprecated:!0},Captions:{shape:"S1b"},Encryption:{shape:"Sc"}}},Sx:{type:"list",member:{type:"structure",members:{PresetWatermarkId:{},InputKey:{},Encryption:{shape:"Sc"}}}},S11:{type:"structure",members:{MergePolicy:{},Artwork:{type:"list",member:{type:"structure",members:{InputKey:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},PaddingPolicy:{},AlbumArtFormat:{},Encryption:{shape:"Sc"}}}}}},S19:{type:"list",member:{type:"structure",members:{TimeSpan:{shape:"Sg"}},deprecated:!0},deprecated:!0},S1b:{type:"structure",members:{MergePolicy:{deprecated:!0},CaptionSources:{shape:"Sk",deprecated:!0},CaptionFormats:{type:"list",member:{type:"structure",members:{Format:{},Pattern:{},Encryption:{shape:"Sc"}}}}}},S1l:{type:"list",member:{}},S1m:{type:"structure",members:{Method:{},Key:{},KeyMd5:{},InitializationVector:{},LicenseAcquisitionUrl:{},KeyStoragePolicy:{}}},S1q:{type:"structure",members:{Format:{},Key:{},KeyMd5:{},KeyId:{},InitializationVector:{},LicenseAcquisitionUrl:{}}},S1v:{type:"map",key:{},value:{}},S1y:{type:"structure",members:{Id:{},Arn:{},PipelineId:{},Input:{shape:"S5"},Inputs:{shape:"St"},Output:{shape:"S1z"},Outputs:{type:"list",member:{shape:"S1z"}},OutputKeyPrefix:{},Playlists:{type:"list",member:{type:"structure",members:{Name:{},Format:{},OutputKeys:{shape:"S1l"},HlsContentProtection:{shape:"S1m"},PlayReadyDrm:{shape:"S1q"},Status:{},StatusDetail:{}}}},Status:{},UserMetadata:{shape:"S1v"},Timing:{type:"structure",members:{SubmitTimeMillis:{type:"long"},StartTimeMillis:{type:"long"},FinishTimeMillis:{type:"long"}}}}},S1z:{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:"Sx"},AlbumArt:{shape:"S11"},Composition:{shape:"S19",deprecated:!0},Captions:{shape:"S1b"},Encryption:{shape:"Sc"},AppliedColorSpaceConversion:{}}},S2a:{type:"structure",members:{Progressing:{},Completed:{},Warning:{},Error:{}}},S2c:{type:"structure",members:{Bucket:{},StorageClass:{},Permissions:{type:"list",member:{type:"structure",members:{GranteeType:{},Grantee:{},Access:{type:"list",member:{}}}}}}},S2l:{type:"structure",members:{Id:{},Arn:{},Name:{},Status:{},InputBucket:{},OutputBucket:{},Role:{},AwsKmsKeyArn:{},Notifications:{shape:"S2a"},ContentConfig:{shape:"S2c"},ThumbnailConfig:{shape:"S2c"}}},S2n:{type:"list",member:{type:"structure",members:{Code:{},Message:{}}}},S2r:{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:{}}}}}},S37:{type:"structure",members:{Codec:{},SampleRate:{},BitRate:{},Channels:{},AudioPackingMode:{},CodecOptions:{type:"structure",members:{Profile:{},BitDepth:{},BitOrder:{},Signed:{}}}}},S3i:{type:"structure",members:{Format:{},Interval:{},Resolution:{},AspectRatio:{},MaxWidth:{},MaxHeight:{},SizingPolicy:{},PaddingPolicy:{}}},S3m:{type:"structure",members:{Id:{},Arn:{},Name:{},Description:{},Container:{},Audio:{shape:"S37"},Video:{shape:"S2r"},Thumbnails:{shape:"S3i"},Type:{}}},S3v:{type:"list",member:{shape:"S1y"}}},paginators:{ListJobsByPipeline:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Jobs"},ListJobsByStatus:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Jobs"},ListPipelines:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Pipelines"},ListPresets:{input_token:"PageToken",output_token:"NextPageToken",result_key:"Presets"}},waiters:{JobComplete:{delay:30,operation:"ReadJob",maxAttempts:120,acceptors:[{expected:"Complete",matcher:"path",state:"success",argument:"Job.Status"},{expected:"Canceled",matcher:"path",state:"failure",argument:"Job.Status"},{expected:"Error",matcher:"path",state:"failure",argument:"Job.Status"}]}}};AWS.apiLoader.services.firehose={},AWS.Firehose=AWS.Service.defineService("firehose",["2015-08-04"]);AWS.apiLoader.services.firehose["2015-08-04"]={version:"2.0",metadata:{apiVersion:"2015-08-04",endpointPrefix:"firehose",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Firehose",serviceFullName:"Amazon Kinesis Firehose",serviceId:"Firehose",signatureVersion:"v4",targetPrefix:"Firehose_20150804",uid:"firehose-2015-08-04"},operations:{CreateDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},DeliveryStreamType:{},KinesisStreamSourceConfiguration:{type:"structure",required:["KinesisStreamARN","RoleARN"],members:{KinesisStreamARN:{},RoleARN:{}}},DeliveryStreamEncryptionConfigurationInput:{shape:"S7"},S3DestinationConfiguration:{shape:"Sa",deprecated:!0},ExtendedS3DestinationConfiguration:{type:"structure",required:["RoleARN","BucketARN"],members:{RoleARN:{},BucketARN:{},Prefix:{},ErrorOutputPrefix:{},BufferingHints:{shape:"Se"},CompressionFormat:{},EncryptionConfiguration:{shape:"Si"},CloudWatchLoggingOptions:{shape:"Sl"},ProcessingConfiguration:{shape:"Sq"},S3BackupMode:{},S3BackupConfiguration:{shape:"Sa"},DataFormatConversionConfiguration:{shape:"Sz"}}},RedshiftDestinationConfiguration:{type:"structure",required:["RoleARN","ClusterJDBCURL","CopyCommand","Username","Password","S3Configuration"],members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"S1q"},Username:{shape:"S1u"},Password:{shape:"S1v"},RetryOptions:{shape:"S1w"},S3Configuration:{shape:"Sa"},ProcessingConfiguration:{shape:"Sq"},S3BackupMode:{},S3BackupConfiguration:{shape:"Sa"},CloudWatchLoggingOptions:{shape:"Sl"}}},ElasticsearchDestinationConfiguration:{type:"structure",required:["RoleARN","IndexName","S3Configuration"],members:{RoleARN:{},DomainARN:{},ClusterEndpoint:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"S25"},RetryOptions:{shape:"S28"},S3BackupMode:{},S3Configuration:{shape:"Sa"},ProcessingConfiguration:{shape:"Sq"},CloudWatchLoggingOptions:{shape:"Sl"}}},SplunkDestinationConfiguration:{type:"structure",required:["HECEndpoint","HECEndpointType","HECToken","S3Configuration"],members:{HECEndpoint:{},HECEndpointType:{},HECToken:{},HECAcknowledgmentTimeoutInSeconds:{type:"integer"},RetryOptions:{shape:"S2g"},S3BackupMode:{},S3Configuration:{shape:"Sa"},ProcessingConfiguration:{shape:"Sq"},CloudWatchLoggingOptions:{shape:"Sl"}}},Tags:{shape:"S2j"}}},output:{type:"structure",members:{DeliveryStreamARN:{}}}},DeleteDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},AllowForceDelete:{type:"boolean"}}},output:{type:"structure",members:{}}},DescribeDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},Limit:{type:"integer"},ExclusiveStartDestinationId:{}}},output:{type:"structure",required:["DeliveryStreamDescription"],members:{DeliveryStreamDescription:{type:"structure",required:["DeliveryStreamName","DeliveryStreamARN","DeliveryStreamStatus","DeliveryStreamType","VersionId","Destinations","HasMoreDestinations"],members:{DeliveryStreamName:{},DeliveryStreamARN:{},DeliveryStreamStatus:{},FailureDescription:{shape:"S2x"},DeliveryStreamEncryptionConfiguration:{type:"structure",members:{KeyARN:{},KeyType:{},Status:{},FailureDescription:{shape:"S2x"}}},DeliveryStreamType:{},VersionId:{},CreateTimestamp:{type:"timestamp"},LastUpdateTimestamp:{type:"timestamp"},Source:{type:"structure",members:{KinesisStreamSourceDescription:{type:"structure",members:{KinesisStreamARN:{},RoleARN:{},DeliveryStartTimestamp:{type:"timestamp"}}}}},Destinations:{type:"list",member:{type:"structure",required:["DestinationId"],members:{DestinationId:{},S3DestinationDescription:{shape:"S38"},ExtendedS3DestinationDescription:{type:"structure",required:["RoleARN","BucketARN","BufferingHints","CompressionFormat","EncryptionConfiguration"],members:{RoleARN:{},BucketARN:{},Prefix:{},ErrorOutputPrefix:{},BufferingHints:{shape:"Se"},CompressionFormat:{},EncryptionConfiguration:{shape:"Si"},CloudWatchLoggingOptions:{shape:"Sl"},ProcessingConfiguration:{shape:"Sq"},S3BackupMode:{},S3BackupDescription:{shape:"S38"},DataFormatConversionConfiguration:{shape:"Sz"}}},RedshiftDestinationDescription:{type:"structure",required:["RoleARN","ClusterJDBCURL","CopyCommand","Username","S3DestinationDescription"],members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"S1q"},Username:{shape:"S1u"},RetryOptions:{shape:"S1w"},S3DestinationDescription:{shape:"S38"},ProcessingConfiguration:{shape:"Sq"},S3BackupMode:{},S3BackupDescription:{shape:"S38"},CloudWatchLoggingOptions:{shape:"Sl"}}},ElasticsearchDestinationDescription:{type:"structure",members:{RoleARN:{},DomainARN:{},ClusterEndpoint:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"S25"},RetryOptions:{shape:"S28"},S3BackupMode:{},S3DestinationDescription:{shape:"S38"},ProcessingConfiguration:{shape:"Sq"},CloudWatchLoggingOptions:{shape:"Sl"}}},SplunkDestinationDescription:{type:"structure",members:{HECEndpoint:{},HECEndpointType:{},HECToken:{},HECAcknowledgmentTimeoutInSeconds:{type:"integer"},RetryOptions:{shape:"S2g"},S3BackupMode:{},S3DestinationDescription:{shape:"S38"},ProcessingConfiguration:{shape:"Sq"},CloudWatchLoggingOptions:{shape:"Sl"}}}}}},HasMoreDestinations:{type:"boolean"}}}}}},ListDeliveryStreams:{input:{type:"structure",members:{Limit:{type:"integer"},DeliveryStreamType:{},ExclusiveStartDeliveryStreamName:{}}},output:{type:"structure",required:["DeliveryStreamNames","HasMoreDeliveryStreams"],members:{DeliveryStreamNames:{type:"list",member:{}},HasMoreDeliveryStreams:{type:"boolean"}}}},ListTagsForDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},ExclusiveStartTagKey:{},Limit:{type:"integer"}}},output:{type:"structure",required:["Tags","HasMoreTags"],members:{Tags:{type:"list",member:{shape:"S2k"}},HasMoreTags:{type:"boolean"}}}},PutRecord:{input:{type:"structure",required:["DeliveryStreamName","Record"],members:{DeliveryStreamName:{},Record:{shape:"S3m"}}},output:{type:"structure",required:["RecordId"],members:{RecordId:{},Encrypted:{type:"boolean"}}}},PutRecordBatch:{input:{type:"structure",required:["DeliveryStreamName","Records"],members:{DeliveryStreamName:{},Records:{type:"list",member:{shape:"S3m"}}}},output:{type:"structure",required:["FailedPutCount","RequestResponses"],members:{FailedPutCount:{type:"integer"},Encrypted:{type:"boolean"},RequestResponses:{type:"list",member:{type:"structure",members:{RecordId:{},ErrorCode:{},ErrorMessage:{}}}}}}},StartDeliveryStreamEncryption:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{},DeliveryStreamEncryptionConfigurationInput:{shape:"S7"}}},output:{type:"structure",members:{}}},StopDeliveryStreamEncryption:{input:{type:"structure",required:["DeliveryStreamName"],members:{DeliveryStreamName:{}}},output:{type:"structure",members:{}}},TagDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName","Tags"],members:{DeliveryStreamName:{},Tags:{shape:"S2j"}}},output:{type:"structure",members:{}}},UntagDeliveryStream:{input:{type:"structure",required:["DeliveryStreamName","TagKeys"],members:{DeliveryStreamName:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateDestination:{input:{type:"structure",required:["DeliveryStreamName","CurrentDeliveryStreamVersionId","DestinationId"],members:{DeliveryStreamName:{},CurrentDeliveryStreamVersionId:{},DestinationId:{},S3DestinationUpdate:{shape:"S47",deprecated:!0},ExtendedS3DestinationUpdate:{type:"structure",members:{RoleARN:{},BucketARN:{},Prefix:{},ErrorOutputPrefix:{},BufferingHints:{shape:"Se"},CompressionFormat:{},EncryptionConfiguration:{shape:"Si"},CloudWatchLoggingOptions:{shape:"Sl"},ProcessingConfiguration:{shape:"Sq"},S3BackupMode:{},S3BackupUpdate:{shape:"S47"},DataFormatConversionConfiguration:{shape:"Sz"}}},RedshiftDestinationUpdate:{type:"structure",members:{RoleARN:{},ClusterJDBCURL:{},CopyCommand:{shape:"S1q"},Username:{shape:"S1u"},Password:{shape:"S1v"},RetryOptions:{shape:"S1w"},S3Update:{shape:"S47"},ProcessingConfiguration:{shape:"Sq"},S3BackupMode:{},S3BackupUpdate:{shape:"S47"},CloudWatchLoggingOptions:{shape:"Sl"}}},ElasticsearchDestinationUpdate:{type:"structure",members:{RoleARN:{},DomainARN:{},ClusterEndpoint:{},IndexName:{},TypeName:{},IndexRotationPeriod:{},BufferingHints:{shape:"S25"},RetryOptions:{shape:"S28"},S3Update:{shape:"S47"},ProcessingConfiguration:{shape:"Sq"},CloudWatchLoggingOptions:{shape:"Sl"}}},SplunkDestinationUpdate:{type:"structure",members:{HECEndpoint:{},HECEndpointType:{},HECToken:{},HECAcknowledgmentTimeoutInSeconds:{type:"integer"},RetryOptions:{shape:"S2g"},S3BackupMode:{},S3Update:{shape:"S47"},ProcessingConfiguration:{shape:"Sq"},CloudWatchLoggingOptions:{shape:"Sl"}}}}},output:{type:"structure",members:{}}}},shapes:{S7:{type:"structure",required:["KeyType"],members:{KeyARN:{},KeyType:{}}},Sa:{type:"structure",required:["RoleARN","BucketARN"],members:{RoleARN:{},BucketARN:{},Prefix:{},ErrorOutputPrefix:{},BufferingHints:{shape:"Se"},CompressionFormat:{},EncryptionConfiguration:{shape:"Si"},CloudWatchLoggingOptions:{shape:"Sl"}}},Se:{type:"structure",members:{SizeInMBs:{type:"integer"},IntervalInSeconds:{type:"integer"}}},Si:{type:"structure",members:{NoEncryptionConfig:{},KMSEncryptionConfig:{type:"structure",required:["AWSKMSKeyARN"],members:{AWSKMSKeyARN:{}}}}},Sl:{type:"structure",members:{Enabled:{type:"boolean"},LogGroupName:{},LogStreamName:{}}},Sq:{type:"structure",members:{Enabled:{type:"boolean"},Processors:{type:"list",member:{type:"structure",required:["Type"],members:{Type:{},Parameters:{type:"list",member:{type:"structure",required:["ParameterName","ParameterValue"],members:{ParameterName:{},ParameterValue:{}}}}}}}}},Sz:{type:"structure",members:{SchemaConfiguration:{type:"structure",members:{RoleARN:{},CatalogId:{},DatabaseName:{},TableName:{},Region:{},VersionId:{}}},InputFormatConfiguration:{type:"structure",members:{Deserializer:{type:"structure",members:{OpenXJsonSerDe:{type:"structure",members:{ConvertDotsInJsonKeysToUnderscores:{type:"boolean"},CaseInsensitive:{type:"boolean"},ColumnToJsonKeyMappings:{type:"map",key:{},value:{}}}},HiveJsonSerDe:{type:"structure",members:{TimestampFormats:{type:"list",member:{}}}}}}}},OutputFormatConfiguration:{type:"structure",members:{Serializer:{type:"structure",members:{ParquetSerDe:{type:"structure",members:{BlockSizeBytes:{type:"integer"},PageSizeBytes:{type:"integer"},Compression:{},EnableDictionaryCompression:{type:"boolean"},MaxPaddingBytes:{type:"integer"},WriterVersion:{}}},OrcSerDe:{type:"structure",members:{StripeSizeBytes:{type:"integer"},BlockSizeBytes:{type:"integer"},RowIndexStride:{type:"integer"},EnablePadding:{type:"boolean"},PaddingTolerance:{type:"double"},Compression:{},BloomFilterColumns:{type:"list",member:{}},BloomFilterFalsePositiveProbability:{type:"double"},DictionaryKeyThreshold:{type:"double"},FormatVersion:{}}}}}}},Enabled:{type:"boolean"}}},S1q:{type:"structure",required:["DataTableName"],members:{DataTableName:{},DataTableColumns:{},CopyOptions:{}}},S1u:{type:"string",sensitive:!0},S1v:{type:"string",sensitive:!0},S1w:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},S25:{type:"structure",members:{IntervalInSeconds:{type:"integer"},SizeInMBs:{type:"integer"}}},S28:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},S2g:{type:"structure",members:{DurationInSeconds:{type:"integer"}}},S2j:{type:"list",member:{shape:"S2k"}},S2k:{type:"structure",required:["Key"],members:{Key:{},Value:{}}},S2x:{type:"structure",required:["Type","Details"],members:{Type:{},Details:{}}},S38:{type:"structure",required:["RoleARN","BucketARN","BufferingHints","CompressionFormat","EncryptionConfiguration"],members:{RoleARN:{},BucketARN:{},Prefix:{},ErrorOutputPrefix:{},BufferingHints:{shape:"Se"},CompressionFormat:{},EncryptionConfiguration:{shape:"Si"},CloudWatchLoggingOptions:{shape:"Sl"}}},S3m:{type:"structure",required:["Data"],members:{Data:{type:"blob"}}},S47:{type:"structure",members:{RoleARN:{},BucketARN:{},Prefix:{},ErrorOutputPrefix:{},BufferingHints:{shape:"Se"},CompressionFormat:{},EncryptionConfiguration:{shape:"Si"},CloudWatchLoggingOptions:{shape:"Sl"}}}},paginators:{}};AWS.apiLoader.services.gamelift={},AWS.GameLift=AWS.Service.defineService("gamelift",["2015-10-01"]);AWS.apiLoader.services.gamelift["2015-10-01"]={version:"2.0",metadata:{apiVersion:"2015-10-01",endpointPrefix:"gamelift",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon GameLift",serviceId:"GameLift",signatureVersion:"v4",targetPrefix:"GameLift",uid:"gamelift-2015-10-01"},operations:{AcceptMatch:{input:{type:"structure",required:["TicketId","PlayerIds","AcceptanceType"],members:{TicketId:{},PlayerIds:{shape:"S3"},AcceptanceType:{}}},output:{type:"structure",members:{}}},CreateAlias:{input:{type:"structure",required:["Name","RoutingStrategy"],members:{Name:{},Description:{},RoutingStrategy:{shape:"S9"},Tags:{shape:"Sd"}}},output:{type:"structure",members:{Alias:{shape:"Si"}}}},CreateBuild:{input:{type:"structure",members:{Name:{},Version:{},StorageLocation:{shape:"Sn"},OperatingSystem:{},Tags:{shape:"Sd"}}},output:{type:"structure",members:{Build:{shape:"Sr"},UploadCredentials:{shape:"Sw"},StorageLocation:{shape:"Sn"}}}},CreateFleet:{input:{type:"structure",required:["Name","EC2InstanceType"],members:{Name:{},Description:{},BuildId:{},ScriptId:{},ServerLaunchPath:{},ServerLaunchParameters:{},LogPaths:{shape:"S3"},EC2InstanceType:{},EC2InboundPermissions:{shape:"S10"},NewGameSessionProtectionPolicy:{},RuntimeConfiguration:{shape:"S16"},ResourceCreationLimitPolicy:{shape:"S1c"},MetricGroups:{shape:"S1e"},PeerVpcAwsAccountId:{},PeerVpcId:{},FleetType:{},InstanceRoleArn:{},CertificateConfiguration:{shape:"S1h"},Tags:{shape:"Sd"}}},output:{type:"structure",members:{FleetAttributes:{shape:"S1k"}}}},CreateGameSession:{input:{type:"structure",required:["MaximumPlayerSessionCount"],members:{FleetId:{},AliasId:{},MaximumPlayerSessionCount:{type:"integer"},Name:{},GameProperties:{shape:"S1q"},CreatorId:{},GameSessionId:{},IdempotencyToken:{},GameSessionData:{}}},output:{type:"structure",members:{GameSession:{shape:"S1x"}}}},CreateGameSessionQueue:{input:{type:"structure",required:["Name"],members:{Name:{},TimeoutInSeconds:{type:"integer"},PlayerLatencyPolicies:{shape:"S26"},Destinations:{shape:"S28"},Tags:{shape:"Sd"}}},output:{type:"structure",members:{GameSessionQueue:{shape:"S2b"}}}},CreateMatchmakingConfiguration:{input:{type:"structure",required:["Name","GameSessionQueueArns","RequestTimeoutSeconds","AcceptanceRequired","RuleSetName"],members:{Name:{},Description:{},GameSessionQueueArns:{shape:"S2d"},RequestTimeoutSeconds:{type:"integer"},AcceptanceTimeoutSeconds:{type:"integer"},AcceptanceRequired:{type:"boolean"},RuleSetName:{},NotificationTarget:{},AdditionalPlayerCount:{type:"integer"},CustomEventData:{},GameProperties:{shape:"S1q"},GameSessionData:{},BackfillMode:{},Tags:{shape:"Sd"}}},output:{type:"structure",members:{Configuration:{shape:"S2m"}}}},CreateMatchmakingRuleSet:{input:{type:"structure",required:["Name","RuleSetBody"],members:{Name:{},RuleSetBody:{},Tags:{shape:"Sd"}}},output:{type:"structure",required:["RuleSet"],members:{RuleSet:{shape:"S2s"}}}},CreatePlayerSession:{input:{type:"structure",required:["GameSessionId","PlayerId"],members:{GameSessionId:{},PlayerId:{},PlayerData:{}}},output:{type:"structure",members:{PlayerSession:{shape:"S2w"}}}},CreatePlayerSessions:{input:{type:"structure",required:["GameSessionId","PlayerIds"],members:{GameSessionId:{},PlayerIds:{type:"list",member:{}},PlayerDataMap:{type:"map",key:{},value:{}}}},output:{type:"structure",members:{PlayerSessions:{shape:"S33"}}}},CreateScript:{input:{type:"structure",members:{Name:{},Version:{},StorageLocation:{shape:"Sn"},ZipFile:{type:"blob"},Tags:{shape:"Sd"}}},output:{type:"structure",members:{Script:{shape:"S37"}}}},CreateVpcPeeringAuthorization:{input:{type:"structure",required:["GameLiftAwsAccountId","PeerVpcId"],members:{GameLiftAwsAccountId:{},PeerVpcId:{}}},output:{type:"structure",members:{VpcPeeringAuthorization:{shape:"S3a"}}}},CreateVpcPeeringConnection:{input:{type:"structure",required:["FleetId","PeerVpcAwsAccountId","PeerVpcId"],members:{FleetId:{},PeerVpcAwsAccountId:{},PeerVpcId:{}}},output:{type:"structure",members:{}}},DeleteAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}}},DeleteBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}}},DeleteFleet:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}}},DeleteGameSessionQueue:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DeleteMatchmakingConfiguration:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DeleteMatchmakingRuleSet:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DeleteScalingPolicy:{input:{type:"structure",required:["Name","FleetId"],members:{Name:{},FleetId:{}}}},DeleteScript:{input:{type:"structure",required:["ScriptId"],members:{ScriptId:{}}}},DeleteVpcPeeringAuthorization:{input:{type:"structure",required:["GameLiftAwsAccountId","PeerVpcId"],members:{GameLiftAwsAccountId:{},PeerVpcId:{}}},output:{type:"structure",members:{}}},DeleteVpcPeeringConnection:{input:{type:"structure",required:["FleetId","VpcPeeringConnectionId"],members:{FleetId:{},VpcPeeringConnectionId:{}}},output:{type:"structure",members:{}}},DescribeAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},output:{type:"structure",members:{Alias:{shape:"Si"}}}},DescribeBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},output:{type:"structure",members:{Build:{shape:"Sr"}}}},DescribeEC2InstanceLimits:{input:{type:"structure",members:{EC2InstanceType:{}}},output:{type:"structure",members:{EC2InstanceLimits:{type:"list",member:{type:"structure",members:{EC2InstanceType:{},CurrentInstances:{type:"integer"},InstanceLimit:{type:"integer"}}}}}}},DescribeFleetAttributes:{input:{type:"structure",members:{FleetIds:{shape:"S42"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetAttributes:{type:"list",member:{shape:"S1k"}},NextToken:{}}}},DescribeFleetCapacity:{input:{type:"structure",members:{FleetIds:{shape:"S42"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetCapacity:{type:"list",member:{type:"structure",members:{FleetId:{},InstanceType:{},InstanceCounts:{type:"structure",members:{DESIRED:{type:"integer"},MINIMUM:{type:"integer"},MAXIMUM:{type:"integer"},PENDING:{type:"integer"},ACTIVE:{type:"integer"},IDLE:{type:"integer"},TERMINATING:{type:"integer"}}}}}},NextToken:{}}}},DescribeFleetEvents:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Events:{type:"list",member:{type:"structure",members:{EventId:{},ResourceId:{},EventCode:{},Message:{},EventTime:{type:"timestamp"},PreSignedLogUrl:{}}}},NextToken:{}}}},DescribeFleetPortSettings:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}},output:{type:"structure",members:{InboundPermissions:{shape:"S10"}}}},DescribeFleetUtilization:{input:{type:"structure",members:{FleetIds:{shape:"S42"},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetUtilization:{type:"list",member:{type:"structure",members:{FleetId:{},ActiveServerProcessCount:{type:"integer"},ActiveGameSessionCount:{type:"integer"},CurrentPlayerSessionCount:{type:"integer"},MaximumPlayerSessionCount:{type:"integer"}}}},NextToken:{}}}},DescribeGameSessionDetails:{input:{type:"structure",members:{FleetId:{},GameSessionId:{},AliasId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessionDetails:{type:"list",member:{type:"structure",members:{GameSession:{shape:"S1x"},ProtectionPolicy:{}}}},NextToken:{}}}},DescribeGameSessionPlacement:{input:{type:"structure",required:["PlacementId"],members:{PlacementId:{}}},output:{type:"structure",members:{GameSessionPlacement:{shape:"S4r"}}}},DescribeGameSessionQueues:{input:{type:"structure",members:{Names:{type:"list",member:{}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessionQueues:{type:"list",member:{shape:"S2b"}},NextToken:{}}}},DescribeGameSessions:{input:{type:"structure",members:{FleetId:{},GameSessionId:{},AliasId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessions:{shape:"S54"},NextToken:{}}}},DescribeInstances:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},InstanceId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Instances:{type:"list",member:{type:"structure",members:{FleetId:{},InstanceId:{},IpAddress:{},DnsName:{},OperatingSystem:{},Type:{},Status:{},CreationTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeMatchmaking:{input:{type:"structure",required:["TicketIds"],members:{TicketIds:{type:"list",member:{}}}},output:{type:"structure",members:{TicketList:{type:"list",member:{shape:"S5f"}}}}},DescribeMatchmakingConfigurations:{input:{type:"structure",members:{Names:{type:"list",member:{}},RuleSetName:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Configurations:{type:"list",member:{shape:"S2m"}},NextToken:{}}}},DescribeMatchmakingRuleSets:{input:{type:"structure",members:{Names:{type:"list",member:{}},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",required:["RuleSets"],members:{RuleSets:{type:"list",member:{shape:"S2s"}},NextToken:{}}}},DescribePlayerSessions:{input:{type:"structure",members:{GameSessionId:{},PlayerId:{},PlayerSessionId:{},PlayerSessionStatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{PlayerSessions:{shape:"S33"},NextToken:{}}}},DescribeRuntimeConfiguration:{input:{type:"structure",required:["FleetId"],members:{FleetId:{}}},output:{type:"structure",members:{RuntimeConfiguration:{shape:"S16"}}}},DescribeScalingPolicies:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},StatusFilter:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ScalingPolicies:{type:"list",member:{type:"structure",members:{FleetId:{},Name:{},Status:{},ScalingAdjustment:{type:"integer"},ScalingAdjustmentType:{},ComparisonOperator:{},Threshold:{type:"double"},EvaluationPeriods:{type:"integer"},MetricName:{},PolicyType:{},TargetConfiguration:{shape:"S6g"}}}},NextToken:{}}}},DescribeScript:{input:{type:"structure",required:["ScriptId"],members:{ScriptId:{}}},output:{type:"structure",members:{Script:{shape:"S37"}}}},DescribeVpcPeeringAuthorizations:{input:{type:"structure",members:{}},output:{type:"structure",members:{VpcPeeringAuthorizations:{type:"list",member:{shape:"S3a"}}}}},DescribeVpcPeeringConnections:{input:{type:"structure",members:{FleetId:{}}},output:{type:"structure",members:{VpcPeeringConnections:{type:"list",member:{type:"structure",members:{FleetId:{},FleetArn:{},IpV4CidrBlock:{},VpcPeeringConnectionId:{},Status:{type:"structure",members:{Code:{},Message:{}}},PeerVpcId:{},GameLiftVpcId:{}}}}}}},GetGameSessionLogUrl:{input:{type:"structure",required:["GameSessionId"],members:{GameSessionId:{}}},output:{type:"structure",members:{PreSignedUrl:{}}}},GetInstanceAccess:{input:{type:"structure",required:["FleetId","InstanceId"],members:{FleetId:{},InstanceId:{}}},output:{type:"structure",members:{InstanceAccess:{type:"structure",members:{FleetId:{},InstanceId:{},IpAddress:{},OperatingSystem:{},Credentials:{type:"structure",members:{UserName:{},Secret:{}},sensitive:!0}}}}}},ListAliases:{input:{type:"structure",members:{RoutingStrategyType:{},Name:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Aliases:{type:"list",member:{shape:"Si"}},NextToken:{}}}},ListBuilds:{input:{type:"structure",members:{Status:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Builds:{type:"list",member:{shape:"Sr"}},NextToken:{}}}},ListFleets:{input:{type:"structure",members:{BuildId:{},ScriptId:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{FleetIds:{shape:"S42"},NextToken:{}}}},ListScripts:{input:{type:"structure",members:{Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Scripts:{type:"list",member:{shape:"S37"}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{}}},output:{type:"structure",members:{Tags:{shape:"Sd"}}}},PutScalingPolicy:{input:{type:"structure",required:["Name","FleetId","MetricName"],members:{Name:{},FleetId:{},ScalingAdjustment:{type:"integer"},ScalingAdjustmentType:{},Threshold:{type:"double"},ComparisonOperator:{},EvaluationPeriods:{type:"integer"},MetricName:{},PolicyType:{},TargetConfiguration:{shape:"S6g"}}},output:{type:"structure",members:{Name:{}}}},RequestUploadCredentials:{input:{type:"structure",required:["BuildId"],members:{BuildId:{}}},output:{type:"structure",members:{UploadCredentials:{shape:"Sw"},StorageLocation:{shape:"Sn"}}}},ResolveAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{}}},output:{type:"structure",members:{FleetId:{},FleetArn:{}}}},SearchGameSessions:{input:{type:"structure",members:{FleetId:{},AliasId:{},FilterExpression:{},SortExpression:{},Limit:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{GameSessions:{shape:"S54"},NextToken:{}}}},StartFleetActions:{input:{type:"structure",required:["FleetId","Actions"],members:{FleetId:{},Actions:{shape:"S1n"}}},output:{type:"structure",members:{}}},StartGameSessionPlacement:{input:{type:"structure",required:["PlacementId","GameSessionQueueName","MaximumPlayerSessionCount"],members:{PlacementId:{},GameSessionQueueName:{},GameProperties:{shape:"S1q"},MaximumPlayerSessionCount:{type:"integer"},GameSessionName:{},PlayerLatencies:{shape:"S4t"},DesiredPlayerSessions:{type:"list",member:{type:"structure",members:{PlayerId:{},PlayerData:{}}}},GameSessionData:{}}},output:{type:"structure",members:{GameSessionPlacement:{shape:"S4r"}}}},StartMatchBackfill:{input:{type:"structure",required:["ConfigurationName","GameSessionArn","Players"],members:{TicketId:{},ConfigurationName:{},GameSessionArn:{},Players:{shape:"S5i"}}},output:{type:"structure",members:{MatchmakingTicket:{shape:"S5f"}}}},StartMatchmaking:{input:{type:"structure",required:["ConfigurationName","Players"],members:{TicketId:{},ConfigurationName:{},Players:{shape:"S5i"}}},output:{type:"structure",members:{MatchmakingTicket:{shape:"S5f"}}}},StopFleetActions:{input:{type:"structure",required:["FleetId","Actions"],members:{FleetId:{},Actions:{shape:"S1n"}}},output:{type:"structure",members:{}}},StopGameSessionPlacement:{input:{type:"structure",required:["PlacementId"],members:{PlacementId:{}}},output:{type:"structure",members:{GameSessionPlacement:{shape:"S4r"}}}},StopMatchmaking:{input:{type:"structure",required:["TicketId"],members:{TicketId:{}}},output:{type:"structure",members:{}}},TagResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sd"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateAlias:{input:{type:"structure",required:["AliasId"],members:{AliasId:{},Name:{},Description:{},RoutingStrategy:{shape:"S9"}}},output:{type:"structure",members:{Alias:{shape:"Si"}}}},UpdateBuild:{input:{type:"structure",required:["BuildId"],members:{BuildId:{},Name:{},Version:{}}},output:{type:"structure",members:{Build:{shape:"Sr"}}}},UpdateFleetAttributes:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},Name:{},Description:{},NewGameSessionProtectionPolicy:{},ResourceCreationLimitPolicy:{shape:"S1c"},MetricGroups:{shape:"S1e"}}},output:{type:"structure",members:{FleetId:{}}}},UpdateFleetCapacity:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},DesiredInstances:{type:"integer"},MinSize:{type:"integer"},MaxSize:{type:"integer"}}},output:{type:"structure",members:{FleetId:{}}}},UpdateFleetPortSettings:{input:{type:"structure",required:["FleetId"],members:{FleetId:{},InboundPermissionAuthorizations:{shape:"S10"},InboundPermissionRevocations:{shape:"S10"}}},output:{type:"structure",members:{FleetId:{}}}},UpdateGameSession:{input:{type:"structure",required:["GameSessionId"],members:{GameSessionId:{},MaximumPlayerSessionCount:{type:"integer"},Name:{},PlayerSessionCreationPolicy:{},ProtectionPolicy:{}}},output:{type:"structure",members:{GameSession:{shape:"S1x"}}}},UpdateGameSessionQueue:{input:{type:"structure",required:["Name"],members:{Name:{},TimeoutInSeconds:{type:"integer"},PlayerLatencyPolicies:{shape:"S26"},Destinations:{shape:"S28"}}},output:{type:"structure",members:{GameSessionQueue:{shape:"S2b"}}}},UpdateMatchmakingConfiguration:{input:{type:"structure",required:["Name"],members:{Name:{},Description:{},GameSessionQueueArns:{shape:"S2d"},RequestTimeoutSeconds:{type:"integer"},AcceptanceTimeoutSeconds:{type:"integer"},AcceptanceRequired:{type:"boolean"},RuleSetName:{},NotificationTarget:{},AdditionalPlayerCount:{type:"integer"},CustomEventData:{},GameProperties:{shape:"S1q"},GameSessionData:{},BackfillMode:{}}},output:{type:"structure",members:{Configuration:{shape:"S2m"}}}},UpdateRuntimeConfiguration:{input:{type:"structure",required:["FleetId","RuntimeConfiguration"],members:{FleetId:{},RuntimeConfiguration:{shape:"S16"}}},output:{type:"structure",members:{RuntimeConfiguration:{shape:"S16"}}}},UpdateScript:{input:{type:"structure",required:["ScriptId"],members:{ScriptId:{},Name:{},Version:{},StorageLocation:{shape:"Sn"},ZipFile:{type:"blob"}}},output:{type:"structure",members:{Script:{shape:"S37"}}}},ValidateMatchmakingRuleSet:{input:{type:"structure",required:["RuleSetBody"],members:{RuleSetBody:{}}},output:{type:"structure",members:{Valid:{type:"boolean"}}}}},shapes:{S3:{type:"list",member:{}},S9:{type:"structure",members:{Type:{},FleetId:{},Message:{}}},Sd:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},Si:{type:"structure",members:{AliasId:{},Name:{},AliasArn:{},Description:{},RoutingStrategy:{shape:"S9"},CreationTime:{type:"timestamp"},LastUpdatedTime:{type:"timestamp"}}},Sn:{type:"structure",members:{Bucket:{},Key:{},RoleArn:{},ObjectVersion:{}}},Sr:{type:"structure",members:{BuildId:{},BuildArn:{},Name:{},Version:{},Status:{},SizeOnDisk:{type:"long"},OperatingSystem:{},CreationTime:{type:"timestamp"}}},Sw:{type:"structure",members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{}},sensitive:!0},S10:{type:"list",member:{type:"structure",required:["FromPort","ToPort","IpRange","Protocol"],members:{FromPort:{type:"integer"},ToPort:{type:"integer"},IpRange:{},Protocol:{}}}},S16:{type:"structure",members:{ServerProcesses:{type:"list",member:{type:"structure",required:["LaunchPath","ConcurrentExecutions"],members:{LaunchPath:{},Parameters:{},ConcurrentExecutions:{type:"integer"}}}},MaxConcurrentGameSessionActivations:{type:"integer"},GameSessionActivationTimeoutSeconds:{type:"integer"}}},S1c:{type:"structure",members:{NewGameSessionsPerCreator:{type:"integer"},PolicyPeriodInMinutes:{type:"integer"}}},S1e:{type:"list",member:{}},S1h:{type:"structure",required:["CertificateType"],members:{CertificateType:{}}},S1k:{type:"structure",members:{FleetId:{},FleetArn:{},FleetType:{},InstanceType:{},Description:{},Name:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},Status:{},BuildId:{},BuildArn:{},ScriptId:{},ScriptArn:{},ServerLaunchPath:{},ServerLaunchParameters:{},LogPaths:{shape:"S3"},NewGameSessionProtectionPolicy:{},OperatingSystem:{},ResourceCreationLimitPolicy:{shape:"S1c"},MetricGroups:{shape:"S1e"},StoppedActions:{shape:"S1n"},InstanceRoleArn:{},CertificateConfiguration:{shape:"S1h"}}},S1n:{type:"list",member:{}},S1q:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S1x:{type:"structure",members:{GameSessionId:{},Name:{},FleetId:{},FleetArn:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},CurrentPlayerSessionCount:{type:"integer"},MaximumPlayerSessionCount:{type:"integer"},Status:{},StatusReason:{},GameProperties:{shape:"S1q"},IpAddress:{},DnsName:{},Port:{type:"integer"},PlayerSessionCreationPolicy:{},CreatorId:{},GameSessionData:{},MatchmakerData:{}}},S26:{type:"list",member:{type:"structure",members:{MaximumIndividualPlayerLatencyMilliseconds:{type:"integer"},PolicyDurationSeconds:{type:"integer"}}}},S28:{type:"list",member:{type:"structure",members:{DestinationArn:{}}}},S2b:{type:"structure",members:{Name:{},GameSessionQueueArn:{},TimeoutInSeconds:{type:"integer"},PlayerLatencyPolicies:{shape:"S26"},Destinations:{shape:"S28"}}},S2d:{type:"list",member:{}},S2m:{type:"structure",members:{Name:{},ConfigurationArn:{},Description:{},GameSessionQueueArns:{shape:"S2d"},RequestTimeoutSeconds:{type:"integer"},AcceptanceTimeoutSeconds:{type:"integer"},AcceptanceRequired:{type:"boolean"},RuleSetName:{},RuleSetArn:{},NotificationTarget:{},AdditionalPlayerCount:{type:"integer"},CustomEventData:{},CreationTime:{type:"timestamp"},GameProperties:{shape:"S1q"},GameSessionData:{},BackfillMode:{}}},S2s:{type:"structure",required:["RuleSetBody"],members:{RuleSetName:{},RuleSetArn:{},RuleSetBody:{},CreationTime:{type:"timestamp"}}},S2w:{type:"structure",members:{PlayerSessionId:{},PlayerId:{},GameSessionId:{},FleetId:{},FleetArn:{},CreationTime:{type:"timestamp"},TerminationTime:{type:"timestamp"},Status:{},IpAddress:{},DnsName:{},Port:{type:"integer"},PlayerData:{}}},S33:{type:"list",member:{shape:"S2w"}},S37:{type:"structure",members:{ScriptId:{},ScriptArn:{},Name:{},Version:{},SizeOnDisk:{type:"long"},CreationTime:{type:"timestamp"},StorageLocation:{shape:"Sn"}}},S3a:{type:"structure",members:{GameLiftAwsAccountId:{},PeerVpcAwsAccountId:{},PeerVpcId:{},CreationTime:{type:"timestamp"},ExpirationTime:{type:"timestamp"}}},S42:{type:"list",member:{}},S4r:{type:"structure",members:{PlacementId:{},GameSessionQueueName:{},Status:{},GameProperties:{shape:"S1q"},MaximumPlayerSessionCount:{type:"integer"},GameSessionName:{},GameSessionId:{},GameSessionArn:{},GameSessionRegion:{},PlayerLatencies:{shape:"S4t"},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},IpAddress:{},DnsName:{},Port:{type:"integer"},PlacedPlayerSessions:{type:"list",member:{type:"structure",members:{PlayerId:{},PlayerSessionId:{}}}},GameSessionData:{},MatchmakerData:{}}},S4t:{type:"list",member:{type:"structure",members:{PlayerId:{},RegionIdentifier:{},LatencyInMilliseconds:{type:"float"}}}},S54:{type:"list",member:{shape:"S1x"}},S5f:{type:"structure",members:{TicketId:{},ConfigurationName:{},ConfigurationArn:{},Status:{},StatusReason:{},StatusMessage:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Players:{shape:"S5i"},GameSessionConnectionInfo:{type:"structure",members:{GameSessionArn:{},IpAddress:{},DnsName:{},Port:{type:"integer"},MatchedPlayerSessions:{type:"list",member:{type:"structure",members:{PlayerId:{},PlayerSessionId:{}}}}}},EstimatedWaitTime:{type:"integer"}}},S5i:{type:"list",member:{type:"structure",members:{PlayerId:{},PlayerAttributes:{type:"map",key:{},value:{type:"structure",members:{S:{},N:{type:"double"},SL:{shape:"S3"},SDM:{type:"map",key:{},value:{type:"double"}}}}},Team:{},LatencyInMs:{type:"map",key:{},value:{type:"integer"}}}}},S6g:{type:"structure",required:["TargetValue"],members:{TargetValue:{type:"double"}}}},paginators:{}};AWS.apiLoader.services.inspector={},AWS.Inspector=AWS.Service.defineService("inspector",["2016-02-16"]);AWS.apiLoader.services.inspector["2016-02-16"]={version:"2.0",metadata:{apiVersion:"2016-02-16",endpointPrefix:"inspector",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Inspector",serviceId:"Inspector",signatureVersion:"v4",targetPrefix:"InspectorService",uid:"inspector-2016-02-16"},operations:{AddAttributesToFindings:{input:{type:"structure",required:["findingArns","attributes"],members:{findingArns:{shape:"S2"},attributes:{shape:"S4"}}},output:{type:"structure",required:["failedItems"],members:{failedItems:{shape:"S9"}}}},CreateAssessmentTarget:{input:{type:"structure",required:["assessmentTargetName"],members:{assessmentTargetName:{},resourceGroupArn:{}}},output:{type:"structure",required:["assessmentTargetArn"],members:{assessmentTargetArn:{}}}},CreateAssessmentTemplate:{input:{type:"structure",required:["assessmentTargetArn","assessmentTemplateName","durationInSeconds","rulesPackageArns"],members:{assessmentTargetArn:{},assessmentTemplateName:{},durationInSeconds:{type:"integer"},rulesPackageArns:{shape:"Sj"},userAttributesForFindings:{shape:"S4"}}},output:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}}},CreateExclusionsPreview:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}},output:{type:"structure",required:["previewToken"],members:{previewToken:{}}}},CreateResourceGroup:{input:{type:"structure",required:["resourceGroupTags"],members:{resourceGroupTags:{shape:"Sp"}}},output:{type:"structure",required:["resourceGroupArn"],members:{resourceGroupArn:{}}}},DeleteAssessmentRun:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}}},DeleteAssessmentTarget:{input:{type:"structure",required:["assessmentTargetArn"],members:{assessmentTargetArn:{}}}},DeleteAssessmentTemplate:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{}}}},DescribeAssessmentRuns:{input:{type:"structure",required:["assessmentRunArns"],members:{assessmentRunArns:{shape:"Sy"}}},output:{type:"structure",required:["assessmentRuns","failedItems"],members:{assessmentRuns:{type:"list",member:{type:"structure",required:["arn","name","assessmentTemplateArn","state","durationInSeconds","rulesPackageArns","userAttributesForFindings","createdAt","stateChangedAt","dataCollected","stateChanges","notifications","findingCounts"],members:{arn:{},name:{},assessmentTemplateArn:{},state:{},durationInSeconds:{type:"integer"},rulesPackageArns:{type:"list",member:{}},userAttributesForFindings:{shape:"S4"},createdAt:{type:"timestamp"},startedAt:{type:"timestamp"},completedAt:{type:"timestamp"},stateChangedAt:{type:"timestamp"},dataCollected:{type:"boolean"},stateChanges:{type:"list",member:{type:"structure",required:["stateChangedAt","state"],members:{stateChangedAt:{type:"timestamp"},state:{}}}},notifications:{type:"list",member:{type:"structure",required:["date","event","error"],members:{date:{type:"timestamp"},event:{},message:{},error:{type:"boolean"},snsTopicArn:{},snsPublishStatusCode:{}}}},findingCounts:{type:"map",key:{},value:{type:"integer"}}}}},failedItems:{shape:"S9"}}}},DescribeAssessmentTargets:{input:{type:"structure",required:["assessmentTargetArns"],members:{assessmentTargetArns:{shape:"Sy"}}},output:{type:"structure",required:["assessmentTargets","failedItems"],members:{assessmentTargets:{type:"list",member:{type:"structure",required:["arn","name","createdAt","updatedAt"],members:{arn:{},name:{},resourceGroupArn:{},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}}},DescribeAssessmentTemplates:{input:{type:"structure",required:["assessmentTemplateArns"],members:{assessmentTemplateArns:{shape:"Sy"}}},output:{type:"structure",required:["assessmentTemplates","failedItems"],members:{assessmentTemplates:{type:"list",member:{type:"structure",required:["arn","name","assessmentTargetArn","durationInSeconds","rulesPackageArns","userAttributesForFindings","assessmentRunCount","createdAt"],members:{arn:{},name:{},assessmentTargetArn:{},durationInSeconds:{type:"integer"},rulesPackageArns:{shape:"Sj"},userAttributesForFindings:{shape:"S4"},lastAssessmentRunArn:{},assessmentRunCount:{type:"integer"},createdAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}}},DescribeCrossAccountAccessRole:{output:{type:"structure",required:["roleArn","valid","registeredAt"],members:{roleArn:{},valid:{type:"boolean"},registeredAt:{type:"timestamp"}}}},DescribeExclusions:{input:{type:"structure",required:["exclusionArns"],members:{exclusionArns:{type:"list",member:{}},locale:{}}},output:{type:"structure",required:["exclusions","failedItems"],members:{exclusions:{type:"map",key:{},value:{type:"structure",required:["arn","title","description","recommendation","scopes"],members:{arn:{},title:{},description:{},recommendation:{},scopes:{shape:"S1x"},attributes:{shape:"S21"}}}},failedItems:{shape:"S9"}}}},DescribeFindings:{input:{type:"structure",required:["findingArns"],members:{findingArns:{shape:"Sy"},locale:{}}},output:{type:"structure",required:["findings","failedItems"],members:{findings:{type:"list",member:{type:"structure",required:["arn","attributes","userAttributes","createdAt","updatedAt"],members:{arn:{},schemaVersion:{type:"integer"},service:{},serviceAttributes:{type:"structure",required:["schemaVersion"],members:{schemaVersion:{type:"integer"},assessmentRunArn:{},rulesPackageArn:{}}},assetType:{},assetAttributes:{type:"structure",required:["schemaVersion"],members:{schemaVersion:{type:"integer"},agentId:{},autoScalingGroup:{},amiId:{},hostname:{},ipv4Addresses:{type:"list",member:{}},tags:{type:"list",member:{shape:"S2i"}},networkInterfaces:{type:"list",member:{type:"structure",members:{networkInterfaceId:{},subnetId:{},vpcId:{},privateDnsName:{},privateIpAddress:{},privateIpAddresses:{type:"list",member:{type:"structure",members:{privateDnsName:{},privateIpAddress:{}}}},publicDnsName:{},publicIp:{},ipv6Addresses:{type:"list",member:{}},securityGroups:{type:"list",member:{type:"structure",members:{groupName:{},groupId:{}}}}}}}}},id:{},title:{},description:{},recommendation:{},severity:{},numericSeverity:{type:"double"},confidence:{type:"integer"},indicatorOfCompromise:{type:"boolean"},attributes:{shape:"S21"},userAttributes:{shape:"S4"},createdAt:{type:"timestamp"},updatedAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}}},DescribeResourceGroups:{input:{type:"structure",required:["resourceGroupArns"],members:{resourceGroupArns:{shape:"Sy"}}},output:{type:"structure",required:["resourceGroups","failedItems"],members:{resourceGroups:{type:"list",member:{type:"structure",required:["arn","tags","createdAt"],members:{arn:{},tags:{shape:"Sp"},createdAt:{type:"timestamp"}}}},failedItems:{shape:"S9"}}}},DescribeRulesPackages:{input:{type:"structure",required:["rulesPackageArns"],members:{rulesPackageArns:{shape:"Sy"},locale:{}}},output:{type:"structure",required:["rulesPackages","failedItems"],members:{rulesPackages:{type:"list",member:{type:"structure",required:["arn","name","version","provider"],members:{arn:{},name:{},version:{},provider:{},description:{}}}},failedItems:{shape:"S9"}}}},GetAssessmentReport:{input:{type:"structure",required:["assessmentRunArn","reportFileFormat","reportType"],members:{assessmentRunArn:{},reportFileFormat:{},reportType:{}}},output:{type:"structure",required:["status"],members:{status:{},url:{}}}},GetExclusionsPreview:{input:{type:"structure",required:["assessmentTemplateArn","previewToken"],members:{assessmentTemplateArn:{},previewToken:{},nextToken:{},maxResults:{type:"integer"},locale:{}}},output:{type:"structure",required:["previewStatus"],members:{previewStatus:{},exclusionPreviews:{type:"list",member:{type:"structure",required:["title","description","recommendation","scopes"],members:{title:{},description:{},recommendation:{},scopes:{shape:"S1x"},attributes:{shape:"S21"}}}},nextToken:{}}}},GetTelemetryMetadata:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}},output:{type:"structure",required:["telemetryMetadata"],members:{telemetryMetadata:{shape:"S3j"}}}},ListAssessmentRunAgents:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{},filter:{type:"structure",required:["agentHealths","agentHealthCodes"],members:{agentHealths:{type:"list",member:{}},agentHealthCodes:{type:"list",member:{}}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentRunAgents"],members:{assessmentRunAgents:{type:"list",member:{type:"structure",required:["agentId","assessmentRunArn","agentHealth","agentHealthCode","telemetryMetadata"],members:{agentId:{},assessmentRunArn:{},agentHealth:{},agentHealthCode:{},agentHealthDetails:{},autoScalingGroup:{},telemetryMetadata:{shape:"S3j"}}}},nextToken:{}}}},ListAssessmentRuns:{input:{type:"structure",members:{assessmentTemplateArns:{shape:"S3x"},filter:{type:"structure",members:{namePattern:{},states:{type:"list",member:{}},durationRange:{shape:"S41"},rulesPackageArns:{shape:"S42"},startTimeRange:{shape:"S43"},completionTimeRange:{shape:"S43"},stateChangeTimeRange:{shape:"S43"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentRunArns"],members:{assessmentRunArns:{shape:"S45"},nextToken:{}}}},ListAssessmentTargets:{input:{type:"structure",members:{filter:{type:"structure",members:{assessmentTargetNamePattern:{}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentTargetArns"],members:{assessmentTargetArns:{shape:"S45"},nextToken:{}}}},ListAssessmentTemplates:{input:{type:"structure",members:{assessmentTargetArns:{shape:"S3x"},filter:{type:"structure",members:{namePattern:{},durationRange:{shape:"S41"},rulesPackageArns:{shape:"S42"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["assessmentTemplateArns"],members:{assessmentTemplateArns:{shape:"S45"},nextToken:{}}}},ListEventSubscriptions:{input:{type:"structure",members:{resourceArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["subscriptions"],members:{subscriptions:{type:"list",member:{type:"structure",required:["resourceArn","topicArn","eventSubscriptions"],members:{resourceArn:{},topicArn:{},eventSubscriptions:{type:"list",member:{type:"structure",required:["event","subscribedAt"],members:{event:{},subscribedAt:{type:"timestamp"}}}}}}},nextToken:{}}}},ListExclusions:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["exclusionArns"],members:{exclusionArns:{shape:"S45"},nextToken:{}}}},ListFindings:{input:{type:"structure",members:{assessmentRunArns:{shape:"S3x"},filter:{type:"structure",members:{agentIds:{type:"list",member:{}},autoScalingGroups:{type:"list",member:{}},ruleNames:{type:"list",member:{}},severities:{type:"list",member:{}},rulesPackageArns:{shape:"S42"},attributes:{shape:"S21"},userAttributes:{shape:"S21"},creationTimeRange:{shape:"S43"}}},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["findingArns"],members:{findingArns:{shape:"S45"},nextToken:{}}}},ListRulesPackages:{input:{type:"structure",members:{nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["rulesPackageArns"],members:{rulesPackageArns:{shape:"S45"},nextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{}}},output:{type:"structure",required:["tags"],members:{tags:{shape:"S4x"}}}},PreviewAgents:{input:{type:"structure",required:["previewAgentsArn"],members:{previewAgentsArn:{},nextToken:{},maxResults:{type:"integer"}}},output:{type:"structure",required:["agentPreviews"],members:{agentPreviews:{type:"list",member:{type:"structure",required:["agentId"],members:{hostname:{},agentId:{},autoScalingGroup:{},agentHealth:{},agentVersion:{},operatingSystem:{},kernelVersion:{},ipv4Address:{}}}},nextToken:{}}}},RegisterCrossAccountAccessRole:{input:{type:"structure",required:["roleArn"],members:{roleArn:{}}}},RemoveAttributesFromFindings:{input:{type:"structure",required:["findingArns","attributeKeys"],members:{findingArns:{shape:"S2"},attributeKeys:{type:"list",member:{}}}},output:{type:"structure",required:["failedItems"],members:{failedItems:{shape:"S9"}}}},SetTagsForResource:{input:{type:"structure",required:["resourceArn"],members:{resourceArn:{},tags:{shape:"S4x"}}}},StartAssessmentRun:{input:{type:"structure",required:["assessmentTemplateArn"],members:{assessmentTemplateArn:{},assessmentRunName:{}}},output:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{}}}},StopAssessmentRun:{input:{type:"structure",required:["assessmentRunArn"],members:{assessmentRunArn:{},stopAction:{}}}},SubscribeToEvent:{input:{type:"structure",required:["resourceArn","event","topicArn"],members:{resourceArn:{},event:{},topicArn:{}}}},UnsubscribeFromEvent:{input:{type:"structure",required:["resourceArn","event","topicArn"],members:{resourceArn:{},event:{},topicArn:{}}}},UpdateAssessmentTarget:{input:{type:"structure",required:["assessmentTargetArn","assessmentTargetName"],members:{assessmentTargetArn:{},assessmentTargetName:{},resourceGroupArn:{}}}}},shapes:{S2:{type:"list",member:{}},S4:{type:"list",member:{shape:"S5"}},S5:{type:"structure",required:["key"],members:{key:{},value:{}}},S9:{type:"map",key:{},value:{type:"structure",required:["failureCode","retryable"],members:{failureCode:{},retryable:{type:"boolean"}}}},Sj:{type:"list",member:{}},Sp:{type:"list",member:{type:"structure",required:["key"],members:{key:{},value:{}}}},Sy:{type:"list",member:{}},S1x:{type:"list",member:{type:"structure",members:{key:{},value:{}}}},S21:{type:"list",member:{shape:"S5"}},S2i:{type:"structure",required:["key"],members:{key:{},value:{}}},S3j:{type:"list",member:{type:"structure",required:["messageType","count"],members:{messageType:{},count:{type:"long"},dataSize:{type:"long"}}}},S3x:{type:"list",member:{}},S41:{type:"structure",members:{minSeconds:{type:"integer"},maxSeconds:{type:"integer"}}},S42:{type:"list",member:{}},S43:{type:"structure",members:{beginDate:{type:"timestamp"},endDate:{type:"timestamp"}}},S45:{type:"list",member:{}},S4x:{type:"list",member:{shape:"S2i"}}},paginators:{GetExclusionsPreview:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListAssessmentRunAgents:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListAssessmentRuns:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListAssessmentTargets:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListAssessmentTemplates:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListEventSubscriptions:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListExclusions:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListFindings:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},ListRulesPackages:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"},PreviewAgents:{input_token:"nextToken",output_token:"nextToken",limit_key:"maxResults"}}};AWS.apiLoader.services.iot={},AWS.Iot=AWS.Service.defineService("iot",["2015-05-28"]);AWS.apiLoader.services.iot["2015-05-28"]={version:"2.0",metadata:{apiVersion:"2015-05-28",endpointPrefix:"iot",protocol:"rest-json",serviceFullName:"AWS IoT",serviceId:"IoT",signatureVersion:"v4",signingName:"execute-api",uid:"iot-2015-05-28"},operations:{AcceptCertificateTransfer:{http:{method:"PATCH",requestUri:"/accept-certificate-transfer/{certificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"certificateId"},setAsActive:{location:"querystring",locationName:"setAsActive",type:"boolean"}}}},AddThingToBillingGroup:{http:{method:"PUT",requestUri:"/billing-groups/addThingToBillingGroup"},input:{type:"structure",members:{billingGroupName:{},billingGroupArn:{},thingName:{},thingArn:{}}},output:{type:"structure",members:{}}},AddThingToThingGroup:{http:{method:"PUT",requestUri:"/thing-groups/addThingToThingGroup"},input:{type:"structure",members:{thingGroupName:{},thingGroupArn:{},thingName:{},thingArn:{},overrideDynamicGroups:{type:"boolean"}}},output:{type:"structure",members:{}}},AssociateTargetsWithJob:{http:{requestUri:"/jobs/{jobId}/targets"},input:{type:"structure",required:["targets","jobId"],members:{targets:{shape:"Sg"},jobId:{location:"uri",locationName:"jobId"},comment:{}}},output:{type:"structure",members:{jobArn:{},jobId:{},description:{}}}},AttachPolicy:{http:{method:"PUT",requestUri:"/target-policies/{policyName}"},input:{type:"structure",required:["policyName","target"],members:{policyName:{location:"uri",locationName:"policyName"},target:{}}}},AttachPrincipalPolicy:{http:{method:"PUT",requestUri:"/principal-policies/{policyName}"},input:{type:"structure",required:["policyName","principal"],members:{policyName:{location:"uri",locationName:"policyName"},principal:{location:"header",locationName:"x-amzn-iot-principal"}}},deprecated:!0},AttachSecurityProfile:{http:{method:"PUT",requestUri:"/security-profiles/{securityProfileName}/targets"},input:{type:"structure",required:["securityProfileName","securityProfileTargetArn"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"},securityProfileTargetArn:{location:"querystring",locationName:"securityProfileTargetArn"}}},output:{type:"structure",members:{}}},AttachThingPrincipal:{http:{method:"PUT",requestUri:"/things/{thingName}/principals"},input:{type:"structure",required:["thingName","principal"],members:{thingName:{location:"uri",locationName:"thingName"},principal:{location:"header",locationName:"x-amzn-principal"}}},output:{type:"structure",members:{}}},CancelAuditMitigationActionsTask:{http:{method:"PUT",requestUri:"/audit/mitigationactions/tasks/{taskId}/cancel"},input:{type:"structure",required:["taskId"],members:{taskId:{location:"uri",locationName:"taskId"}}},output:{type:"structure",members:{}}},CancelAuditTask:{http:{method:"PUT",requestUri:"/audit/tasks/{taskId}/cancel"},input:{type:"structure",required:["taskId"],members:{taskId:{location:"uri",locationName:"taskId"}}},output:{type:"structure",members:{}}},CancelCertificateTransfer:{http:{method:"PATCH",requestUri:"/cancel-certificate-transfer/{certificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"certificateId"}}}},CancelJob:{http:{method:"PUT",requestUri:"/jobs/{jobId}/cancel"},input:{type:"structure",required:["jobId"],members:{jobId:{location:"uri",locationName:"jobId"},reasonCode:{},comment:{},force:{location:"querystring",locationName:"force",type:"boolean"}}},output:{type:"structure",members:{jobArn:{},jobId:{},description:{}}}},CancelJobExecution:{http:{method:"PUT",requestUri:"/things/{thingName}/jobs/{jobId}/cancel"},input:{type:"structure",required:["jobId","thingName"],members:{jobId:{location:"uri",locationName:"jobId"},thingName:{location:"uri",locationName:"thingName"},force:{location:"querystring",locationName:"force",type:"boolean"},expectedVersion:{type:"long"},statusDetails:{shape:"S1b"}}}},ClearDefaultAuthorizer:{http:{method:"DELETE",requestUri:"/default-authorizer"},input:{type:"structure",members:{}},output:{type:"structure",members:{}}},ConfirmTopicRuleDestination:{http:{method:"GET",requestUri:"/confirmdestination/{confirmationToken+}"},input:{type:"structure",required:["confirmationToken"],members:{confirmationToken:{location:"uri",locationName:"confirmationToken"}}},output:{type:"structure",members:{}}},CreateAuthorizer:{http:{requestUri:"/authorizer/{authorizerName}"},input:{type:"structure",required:["authorizerName","authorizerFunctionArn"],members:{authorizerName:{location:"uri",locationName:"authorizerName"},authorizerFunctionArn:{},tokenKeyName:{},tokenSigningPublicKeys:{shape:"S1n"},status:{},signingDisabled:{type:"boolean"}}},output:{type:"structure",members:{authorizerName:{},authorizerArn:{}}}},CreateBillingGroup:{http:{requestUri:"/billing-groups/{billingGroupName}"},input:{type:"structure",required:["billingGroupName"],members:{billingGroupName:{location:"uri",locationName:"billingGroupName"},billingGroupProperties:{shape:"S1v"},tags:{shape:"S1x"}}},output:{type:"structure",members:{billingGroupName:{},billingGroupArn:{},billingGroupId:{}}}},CreateCertificateFromCsr:{http:{requestUri:"/certificates"},input:{type:"structure",required:["certificateSigningRequest"],members:{certificateSigningRequest:{},setAsActive:{location:"querystring",locationName:"setAsActive",type:"boolean"}}},output:{type:"structure",members:{certificateArn:{},certificateId:{},certificatePem:{}}}},CreateDomainConfiguration:{http:{requestUri:"/domainConfigurations/{domainConfigurationName}"},input:{type:"structure",required:["domainConfigurationName"],members:{domainConfigurationName:{location:"uri",locationName:"domainConfigurationName"},domainName:{},serverCertificateArns:{type:"list",member:{}},validationCertificateArn:{},authorizerConfig:{shape:"S2d"},serviceType:{}}},output:{type:"structure",members:{domainConfigurationName:{},domainConfigurationArn:{}}}},CreateDynamicThingGroup:{http:{requestUri:"/dynamic-thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName","queryString"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},thingGroupProperties:{shape:"S2j"},indexName:{},queryString:{},queryVersion:{},tags:{shape:"S1x"}}},output:{type:"structure",members:{thingGroupName:{},thingGroupArn:{},thingGroupId:{},indexName:{},queryString:{},queryVersion:{}}}},CreateJob:{http:{method:"PUT",requestUri:"/jobs/{jobId}"},input:{type:"structure",required:["jobId","targets"],members:{jobId:{location:"uri",locationName:"jobId"},targets:{shape:"Sg"},documentSource:{},document:{},description:{},presignedUrlConfig:{shape:"S2y"},targetSelection:{},jobExecutionsRolloutConfig:{shape:"S32"},abortConfig:{shape:"S39"},timeoutConfig:{shape:"S3g"},tags:{shape:"S1x"}}},output:{type:"structure",members:{jobArn:{},jobId:{},description:{}}}},CreateKeysAndCertificate:{http:{requestUri:"/keys-and-certificate"},input:{type:"structure",members:{setAsActive:{location:"querystring",locationName:"setAsActive",type:"boolean"}}},output:{type:"structure",members:{certificateArn:{},certificateId:{},certificatePem:{},keyPair:{shape:"S3l"}}}},CreateMitigationAction:{http:{requestUri:"/mitigationactions/actions/{actionName}"},input:{type:"structure",required:["actionName","roleArn","actionParams"],members:{actionName:{location:"uri",locationName:"actionName"},roleArn:{},actionParams:{shape:"S3q"},tags:{shape:"S1x"}}},output:{type:"structure",members:{actionArn:{},actionId:{}}}},CreateOTAUpdate:{http:{requestUri:"/otaUpdates/{otaUpdateId}"},input:{type:"structure",required:["otaUpdateId","targets","files","roleArn"],members:{otaUpdateId:{location:"uri",locationName:"otaUpdateId"},description:{},targets:{shape:"S49"},protocols:{shape:"S4b"},targetSelection:{},awsJobExecutionsRolloutConfig:{shape:"S4d"},awsJobPresignedUrlConfig:{shape:"S4f"},files:{shape:"S4h"},roleArn:{},additionalParameters:{shape:"S5e"},tags:{shape:"S1x"}}},output:{type:"structure",members:{otaUpdateId:{},awsIotJobId:{},otaUpdateArn:{},awsIotJobArn:{},otaUpdateStatus:{}}}},CreatePolicy:{http:{requestUri:"/policies/{policyName}"},input:{type:"structure",required:["policyName","policyDocument"],members:{policyName:{location:"uri",locationName:"policyName"},policyDocument:{}}},output:{type:"structure",members:{policyName:{},policyArn:{},policyDocument:{},policyVersionId:{}}}},CreatePolicyVersion:{http:{requestUri:"/policies/{policyName}/version"},input:{type:"structure",required:["policyName","policyDocument"],members:{policyName:{location:"uri",locationName:"policyName"},policyDocument:{},setAsDefault:{location:"querystring",locationName:"setAsDefault",type:"boolean"}}},output:{type:"structure",members:{policyArn:{},policyDocument:{},policyVersionId:{},isDefaultVersion:{type:"boolean"}}}},CreateProvisioningClaim:{http:{requestUri:"/provisioning-templates/{templateName}/provisioning-claim"},input:{type:"structure",required:["templateName"],members:{templateName:{location:"uri",locationName:"templateName"}}},output:{type:"structure",members:{certificateId:{},certificatePem:{},keyPair:{shape:"S3l"},expiration:{type:"timestamp"}}}},CreateProvisioningTemplate:{http:{requestUri:"/provisioning-templates"},input:{type:"structure",required:["templateName","templateBody","provisioningRoleArn"],members:{templateName:{},description:{},templateBody:{},enabled:{type:"boolean"},provisioningRoleArn:{},tags:{shape:"S1x"}}},output:{type:"structure",members:{templateArn:{},templateName:{},defaultVersionId:{type:"integer"}}}},CreateProvisioningTemplateVersion:{http:{requestUri:"/provisioning-templates/{templateName}/versions"},input:{type:"structure",required:["templateName","templateBody"],members:{templateName:{location:"uri",locationName:"templateName"},templateBody:{},setAsDefault:{location:"querystring",locationName:"setAsDefault",type:"boolean"}}},output:{type:"structure",members:{templateArn:{},templateName:{},versionId:{type:"integer"},isDefaultVersion:{type:"boolean"}}}},CreateRoleAlias:{http:{requestUri:"/role-aliases/{roleAlias}"},input:{type:"structure",required:["roleAlias","roleArn"],members:{roleAlias:{location:"uri",locationName:"roleAlias"},roleArn:{},credentialDurationSeconds:{type:"integer"}}},output:{type:"structure",members:{roleAlias:{},roleAliasArn:{}}}},CreateScheduledAudit:{http:{requestUri:"/audit/scheduledaudits/{scheduledAuditName}"},input:{type:"structure",required:["frequency","targetCheckNames","scheduledAuditName"],members:{frequency:{},dayOfMonth:{},dayOfWeek:{},targetCheckNames:{shape:"S6f"},scheduledAuditName:{location:"uri",locationName:"scheduledAuditName"},tags:{shape:"S1x"}}},output:{type:"structure",members:{scheduledAuditArn:{}}}},CreateSecurityProfile:{http:{requestUri:"/security-profiles/{securityProfileName}"},input:{type:"structure",required:["securityProfileName"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"},securityProfileDescription:{},behaviors:{shape:"S6m"},alertTargets:{shape:"S73"},additionalMetricsToRetain:{shape:"S77"},tags:{shape:"S1x"}}},output:{type:"structure",members:{securityProfileName:{},securityProfileArn:{}}}},CreateStream:{http:{requestUri:"/streams/{streamId}"},input:{type:"structure",required:["streamId","files","roleArn"],members:{streamId:{location:"uri",locationName:"streamId"},description:{},files:{shape:"S7c"},roleArn:{},tags:{shape:"S1x"}}},output:{type:"structure",members:{streamId:{},streamArn:{},description:{},streamVersion:{type:"integer"}}}},CreateThing:{http:{requestUri:"/things/{thingName}"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"},thingTypeName:{},attributePayload:{shape:"S2l"},billingGroupName:{}}},output:{type:"structure",members:{thingName:{},thingArn:{},thingId:{}}}},CreateThingGroup:{http:{requestUri:"/thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},parentGroupName:{},thingGroupProperties:{shape:"S2j"},tags:{shape:"S1x"}}},output:{type:"structure",members:{thingGroupName:{},thingGroupArn:{},thingGroupId:{}}}},CreateThingType:{http:{requestUri:"/thing-types/{thingTypeName}"},input:{type:"structure",required:["thingTypeName"],members:{thingTypeName:{location:"uri",locationName:"thingTypeName"},thingTypeProperties:{shape:"S7o"},tags:{shape:"S1x"}}},output:{type:"structure",members:{thingTypeName:{},thingTypeArn:{},thingTypeId:{}}}},CreateTopicRule:{http:{requestUri:"/rules/{ruleName}"},input:{type:"structure",required:["ruleName","topicRulePayload"],members:{ruleName:{location:"uri",locationName:"ruleName"},topicRulePayload:{shape:"S7w"},tags:{location:"header",locationName:"x-amz-tagging"}},payload:"topicRulePayload"}},CreateTopicRuleDestination:{http:{requestUri:"/destinations"},input:{type:"structure",required:["destinationConfiguration"],members:{destinationConfiguration:{type:"structure",members:{httpUrlConfiguration:{type:"structure",required:["confirmationUrl"],members:{confirmationUrl:{}}}}}}},output:{type:"structure",members:{topicRuleDestination:{shape:"Sah"}}}},DeleteAccountAuditConfiguration:{http:{method:"DELETE",requestUri:"/audit/configuration"},input:{type:"structure",members:{deleteScheduledAudits:{location:"querystring",locationName:"deleteScheduledAudits",type:"boolean"}}},output:{type:"structure",members:{}}},DeleteAuthorizer:{http:{method:"DELETE",requestUri:"/authorizer/{authorizerName}"},input:{type:"structure",required:["authorizerName"],members:{authorizerName:{location:"uri",locationName:"authorizerName"}}},output:{type:"structure",members:{}}},DeleteBillingGroup:{http:{method:"DELETE",requestUri:"/billing-groups/{billingGroupName}"},input:{type:"structure",required:["billingGroupName"],members:{billingGroupName:{location:"uri",locationName:"billingGroupName"},expectedVersion:{location:"querystring",locationName:"expectedVersion",type:"long"}}},output:{type:"structure",members:{}}},DeleteCACertificate:{http:{method:"DELETE",requestUri:"/cacertificate/{caCertificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"caCertificateId"}}},output:{type:"structure",members:{}}},DeleteCertificate:{http:{method:"DELETE",requestUri:"/certificates/{certificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"certificateId"},forceDelete:{location:"querystring",locationName:"forceDelete",type:"boolean"}}}},DeleteDomainConfiguration:{http:{method:"DELETE",requestUri:"/domainConfigurations/{domainConfigurationName}"},input:{type:"structure",required:["domainConfigurationName"],members:{domainConfigurationName:{location:"uri",locationName:"domainConfigurationName"}}},output:{type:"structure",members:{}}},DeleteDynamicThingGroup:{http:{method:"DELETE",requestUri:"/dynamic-thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},expectedVersion:{location:"querystring",locationName:"expectedVersion",type:"long"}}},output:{type:"structure",members:{}}},DeleteJob:{http:{method:"DELETE",requestUri:"/jobs/{jobId}"},input:{type:"structure",required:["jobId"],members:{jobId:{location:"uri",locationName:"jobId"},force:{location:"querystring",locationName:"force",type:"boolean"}}}},DeleteJobExecution:{http:{method:"DELETE",requestUri:"/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}"},input:{type:"structure",required:["jobId","thingName","executionNumber"],members:{jobId:{location:"uri",locationName:"jobId"},thingName:{location:"uri",locationName:"thingName"},executionNumber:{location:"uri",locationName:"executionNumber",type:"long"},force:{location:"querystring",locationName:"force",type:"boolean"}}}},DeleteMitigationAction:{http:{method:"DELETE",requestUri:"/mitigationactions/actions/{actionName}"},input:{type:"structure",required:["actionName"],members:{actionName:{location:"uri",locationName:"actionName"}}},output:{type:"structure",members:{}}},DeleteOTAUpdate:{http:{method:"DELETE",requestUri:"/otaUpdates/{otaUpdateId}"},input:{type:"structure",required:["otaUpdateId"],members:{otaUpdateId:{location:"uri",locationName:"otaUpdateId"},deleteStream:{location:"querystring",locationName:"deleteStream",type:"boolean"},forceDeleteAWSJob:{location:"querystring",locationName:"forceDeleteAWSJob",type:"boolean"}}},output:{type:"structure",members:{}}},DeletePolicy:{http:{method:"DELETE",requestUri:"/policies/{policyName}"},input:{type:"structure",required:["policyName"],members:{policyName:{location:"uri",locationName:"policyName"}}}},DeletePolicyVersion:{http:{method:"DELETE",requestUri:"/policies/{policyName}/version/{policyVersionId}"},input:{type:"structure",required:["policyName","policyVersionId"],members:{policyName:{location:"uri",locationName:"policyName"},policyVersionId:{location:"uri",locationName:"policyVersionId"}}}},DeleteProvisioningTemplate:{http:{method:"DELETE",requestUri:"/provisioning-templates/{templateName}"},input:{type:"structure",required:["templateName"],members:{templateName:{location:"uri",locationName:"templateName"}}},output:{type:"structure",members:{}}},DeleteProvisioningTemplateVersion:{http:{method:"DELETE",requestUri:"/provisioning-templates/{templateName}/versions/{versionId}"},input:{type:"structure",required:["templateName","versionId"],members:{templateName:{location:"uri",locationName:"templateName"},versionId:{location:"uri",locationName:"versionId",type:"integer"}}},output:{type:"structure",members:{}}},DeleteRegistrationCode:{http:{method:"DELETE",requestUri:"/registrationcode"},input:{type:"structure",members:{}},output:{type:"structure",members:{}}},DeleteRoleAlias:{http:{method:"DELETE",requestUri:"/role-aliases/{roleAlias}"},input:{type:"structure",required:["roleAlias"],members:{roleAlias:{location:"uri",locationName:"roleAlias"}}},output:{type:"structure",members:{}}},DeleteScheduledAudit:{http:{method:"DELETE",requestUri:"/audit/scheduledaudits/{scheduledAuditName}"},input:{type:"structure",required:["scheduledAuditName"],members:{scheduledAuditName:{location:"uri",locationName:"scheduledAuditName"}}},output:{type:"structure",members:{}}},DeleteSecurityProfile:{http:{method:"DELETE",requestUri:"/security-profiles/{securityProfileName}"},input:{type:"structure",required:["securityProfileName"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"},expectedVersion:{location:"querystring",locationName:"expectedVersion",type:"long"}}},output:{type:"structure",members:{}}},DeleteStream:{http:{method:"DELETE",requestUri:"/streams/{streamId}"},input:{type:"structure",required:["streamId"],members:{streamId:{location:"uri",locationName:"streamId"}}},output:{type:"structure",members:{}}},DeleteThing:{http:{method:"DELETE",requestUri:"/things/{thingName}"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"},expectedVersion:{location:"querystring",locationName:"expectedVersion",type:"long"}}},output:{type:"structure",members:{}}},DeleteThingGroup:{http:{method:"DELETE",requestUri:"/thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},expectedVersion:{location:"querystring",locationName:"expectedVersion",type:"long"}}},output:{type:"structure",members:{}}},DeleteThingType:{http:{method:"DELETE",requestUri:"/thing-types/{thingTypeName}"},input:{type:"structure",required:["thingTypeName"],members:{thingTypeName:{location:"uri",locationName:"thingTypeName"}}},output:{type:"structure",members:{}}},DeleteTopicRule:{http:{method:"DELETE",requestUri:"/rules/{ruleName}"},input:{type:"structure",required:["ruleName"],members:{ruleName:{location:"uri",locationName:"ruleName"}}}},DeleteTopicRuleDestination:{http:{method:"DELETE",requestUri:"/destinations/{arn+}"},input:{type:"structure",required:["arn"],members:{arn:{location:"uri",locationName:"arn"}}},output:{type:"structure",members:{}}},DeleteV2LoggingLevel:{http:{method:"DELETE",requestUri:"/v2LoggingLevel"},input:{type:"structure",required:["targetType","targetName"],members:{targetType:{location:"querystring",locationName:"targetType"},targetName:{location:"querystring",locationName:"targetName"}}}},DeprecateThingType:{http:{requestUri:"/thing-types/{thingTypeName}/deprecate"},input:{type:"structure",required:["thingTypeName"],members:{thingTypeName:{location:"uri",locationName:"thingTypeName"},undoDeprecate:{type:"boolean"}}},output:{type:"structure",members:{}}},DescribeAccountAuditConfiguration:{http:{method:"GET",requestUri:"/audit/configuration"},input:{type:"structure",members:{}},output:{type:"structure",members:{roleArn:{},auditNotificationTargetConfigurations:{shape:"Sc6"},auditCheckConfigurations:{shape:"Sc9"}}}},DescribeAuditFinding:{http:{method:"GET",requestUri:"/audit/findings/{findingId}"},input:{type:"structure",required:["findingId"],members:{findingId:{location:"uri",locationName:"findingId"}}},output:{type:"structure",members:{finding:{shape:"Sce"}}}},DescribeAuditMitigationActionsTask:{http:{method:"GET",requestUri:"/audit/mitigationactions/tasks/{taskId}"},input:{type:"structure",required:["taskId"],members:{taskId:{location:"uri",locationName:"taskId"}}},output:{type:"structure",members:{taskStatus:{},startTime:{type:"timestamp"},endTime:{type:"timestamp"},taskStatistics:{type:"map",key:{},value:{type:"structure",members:{totalFindingsCount:{type:"long"},failedFindingsCount:{type:"long"},succeededFindingsCount:{type:"long"},skippedFindingsCount:{type:"long"},canceledFindingsCount:{type:"long"}}}},target:{shape:"Sd3"},auditCheckToActionsMapping:{shape:"Sd7"},actionsDefinition:{type:"list",member:{type:"structure",members:{name:{},id:{},roleArn:{},actionParams:{shape:"S3q"}}}}}}},DescribeAuditTask:{http:{method:"GET",requestUri:"/audit/tasks/{taskId}"},input:{type:"structure",required:["taskId"],members:{taskId:{location:"uri",locationName:"taskId"}}},output:{type:"structure",members:{taskStatus:{},taskType:{},taskStartTime:{type:"timestamp"},taskStatistics:{type:"structure",members:{totalChecks:{type:"integer"},inProgressChecks:{type:"integer"},waitingForDataCollectionChecks:{type:"integer"},compliantChecks:{type:"integer"},nonCompliantChecks:{type:"integer"},failedChecks:{type:"integer"},canceledChecks:{type:"integer"}}},scheduledAuditName:{},auditDetails:{type:"map",key:{},value:{type:"structure",members:{checkRunStatus:{},checkCompliant:{type:"boolean"},totalResourcesCount:{type:"long"},nonCompliantResourcesCount:{type:"long"},errorCode:{},message:{}}}}}}},DescribeAuthorizer:{http:{method:"GET",requestUri:"/authorizer/{authorizerName}"},input:{type:"structure",required:["authorizerName"],members:{authorizerName:{location:"uri",locationName:"authorizerName"}}},output:{type:"structure",members:{authorizerDescription:{shape:"Sdx"}}}},DescribeBillingGroup:{http:{method:"GET",requestUri:"/billing-groups/{billingGroupName}"},input:{type:"structure",required:["billingGroupName"],members:{billingGroupName:{location:"uri",locationName:"billingGroupName"}}},output:{type:"structure",members:{billingGroupName:{},billingGroupId:{},billingGroupArn:{},version:{type:"long"},billingGroupProperties:{shape:"S1v"},billingGroupMetadata:{type:"structure",members:{creationDate:{type:"timestamp"}}}}}},DescribeCACertificate:{http:{method:"GET",requestUri:"/cacertificate/{caCertificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"caCertificateId"}}},output:{type:"structure",members:{certificateDescription:{type:"structure",members:{certificateArn:{},certificateId:{},status:{},certificatePem:{},ownedBy:{},creationDate:{type:"timestamp"},autoRegistrationStatus:{},lastModifiedDate:{type:"timestamp"},customerVersion:{type:"integer"},generationId:{},validity:{shape:"Sea"}}},registrationConfig:{shape:"Seb"}}}},DescribeCertificate:{http:{method:"GET",requestUri:"/certificates/{certificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"certificateId"}}},output:{type:"structure",members:{certificateDescription:{type:"structure",members:{certificateArn:{},certificateId:{},caCertificateId:{},status:{},certificatePem:{},ownedBy:{},previousOwnedBy:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},customerVersion:{type:"integer"},transferData:{type:"structure",members:{transferMessage:{},rejectReason:{},transferDate:{type:"timestamp"},acceptDate:{type:"timestamp"},rejectDate:{type:"timestamp"}}},generationId:{},validity:{shape:"Sea"}}}}}},DescribeDefaultAuthorizer:{http:{method:"GET",requestUri:"/default-authorizer"},input:{type:"structure",members:{}},output:{type:"structure",members:{authorizerDescription:{shape:"Sdx"}}}},DescribeDomainConfiguration:{http:{method:"GET",requestUri:"/domainConfigurations/{domainConfigurationName}"},input:{type:"structure",required:["domainConfigurationName"],members:{domainConfigurationName:{location:"uri",locationName:"domainConfigurationName"}}},output:{type:"structure",members:{domainConfigurationName:{},domainConfigurationArn:{},domainName:{},serverCertificates:{type:"list",member:{type:"structure",members:{serverCertificateArn:{},serverCertificateStatus:{},serverCertificateStatusDetail:{}}}},authorizerConfig:{shape:"S2d"},domainConfigurationStatus:{},serviceType:{},domainType:{}}}},DescribeEndpoint:{http:{method:"GET",requestUri:"/endpoint"},input:{type:"structure",members:{endpointType:{location:"querystring",locationName:"endpointType"}}},output:{type:"structure",members:{endpointAddress:{}}}},DescribeEventConfigurations:{http:{method:"GET",requestUri:"/event-configurations"},input:{type:"structure",members:{}},output:{type:"structure",members:{eventConfigurations:{shape:"Sez"},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"}}}},DescribeIndex:{http:{method:"GET",requestUri:"/indices/{indexName}"},input:{type:"structure",required:["indexName"],members:{indexName:{location:"uri",locationName:"indexName"}}},output:{type:"structure",members:{indexName:{},indexStatus:{},schema:{}}}},DescribeJob:{http:{method:"GET",requestUri:"/jobs/{jobId}"},input:{type:"structure",required:["jobId"],members:{jobId:{location:"uri",locationName:"jobId"}}},output:{type:"structure",members:{documentSource:{},job:{type:"structure",members:{jobArn:{},jobId:{},targetSelection:{},status:{},forceCanceled:{type:"boolean"},reasonCode:{},comment:{},targets:{shape:"Sg"},description:{},presignedUrlConfig:{shape:"S2y"},jobExecutionsRolloutConfig:{shape:"S32"},abortConfig:{shape:"S39"},createdAt:{type:"timestamp"},lastUpdatedAt:{type:"timestamp"},completedAt:{type:"timestamp"},jobProcessDetails:{type:"structure",members:{processingTargets:{type:"list",member:{}},numberOfCanceledThings:{type:"integer"},numberOfSucceededThings:{type:"integer"},numberOfFailedThings:{type:"integer"},numberOfRejectedThings:{type:"integer"},numberOfQueuedThings:{type:"integer"},numberOfInProgressThings:{type:"integer"},numberOfRemovedThings:{type:"integer"},numberOfTimedOutThings:{type:"integer"}}},timeoutConfig:{shape:"S3g"}}}}}},DescribeJobExecution:{http:{method:"GET",requestUri:"/things/{thingName}/jobs/{jobId}"},input:{type:"structure",required:["jobId","thingName"],members:{jobId:{location:"uri",locationName:"jobId"},thingName:{location:"uri",locationName:"thingName"},executionNumber:{location:"querystring",locationName:"executionNumber",type:"long"}}},output:{type:"structure",members:{execution:{type:"structure",members:{jobId:{},status:{},forceCanceled:{type:"boolean"},statusDetails:{type:"structure",members:{detailsMap:{shape:"S1b"}}},thingArn:{},queuedAt:{type:"timestamp"},startedAt:{type:"timestamp"},lastUpdatedAt:{type:"timestamp"},executionNumber:{type:"long"},versionNumber:{type:"long"},approximateSecondsBeforeTimedOut:{type:"long"}}}}}},DescribeMitigationAction:{http:{method:"GET",requestUri:"/mitigationactions/actions/{actionName}"},input:{type:"structure",required:["actionName"],members:{actionName:{location:"uri",locationName:"actionName"}}},output:{type:"structure",members:{actionName:{},actionType:{},actionArn:{},actionId:{},roleArn:{},actionParams:{shape:"S3q"},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"}}}},DescribeProvisioningTemplate:{http:{method:"GET",requestUri:"/provisioning-templates/{templateName}"},input:{type:"structure",required:["templateName"],members:{templateName:{location:"uri",locationName:"templateName"}}},output:{type:"structure",members:{templateArn:{},templateName:{},description:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},defaultVersionId:{type:"integer"},templateBody:{},enabled:{type:"boolean"},provisioningRoleArn:{}}}},DescribeProvisioningTemplateVersion:{http:{method:"GET",requestUri:"/provisioning-templates/{templateName}/versions/{versionId}"},input:{type:"structure",required:["templateName","versionId"],members:{templateName:{location:"uri",locationName:"templateName"},versionId:{location:"uri",locationName:"versionId",type:"integer"}}},output:{type:"structure",members:{versionId:{type:"integer"},creationDate:{type:"timestamp"},templateBody:{},isDefaultVersion:{type:"boolean"}}}},DescribeRoleAlias:{http:{method:"GET",requestUri:"/role-aliases/{roleAlias}"},input:{type:"structure",required:["roleAlias"],members:{roleAlias:{location:"uri",locationName:"roleAlias"}}},output:{type:"structure",members:{roleAliasDescription:{type:"structure",members:{roleAlias:{},roleAliasArn:{},roleArn:{},owner:{},credentialDurationSeconds:{type:"integer"},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"}}}}}},DescribeScheduledAudit:{http:{method:"GET",requestUri:"/audit/scheduledaudits/{scheduledAuditName}"},input:{type:"structure",required:["scheduledAuditName"],members:{scheduledAuditName:{location:"uri",locationName:"scheduledAuditName"}}},output:{type:"structure",members:{frequency:{},dayOfMonth:{},dayOfWeek:{},targetCheckNames:{shape:"S6f"},scheduledAuditName:{},scheduledAuditArn:{}}}},DescribeSecurityProfile:{http:{method:"GET",requestUri:"/security-profiles/{securityProfileName}"},input:{type:"structure",required:["securityProfileName"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"}}},output:{type:"structure",members:{securityProfileName:{},securityProfileArn:{},securityProfileDescription:{},behaviors:{shape:"S6m"},alertTargets:{shape:"S73"},additionalMetricsToRetain:{shape:"S77"},version:{type:"long"},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"}}}},DescribeStream:{http:{method:"GET",requestUri:"/streams/{streamId}"},input:{type:"structure",required:["streamId"],members:{streamId:{location:"uri",locationName:"streamId"}}},output:{type:"structure",members:{streamInfo:{type:"structure",members:{streamId:{},streamArn:{},streamVersion:{type:"integer"},description:{},files:{shape:"S7c"},createdAt:{type:"timestamp"},lastUpdatedAt:{type:"timestamp"},roleArn:{}}}}}},DescribeThing:{http:{method:"GET",requestUri:"/things/{thingName}"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",members:{defaultClientId:{},thingName:{},thingId:{},thingArn:{},thingTypeName:{},attributes:{shape:"S2m"},version:{type:"long"},billingGroupName:{}}}},DescribeThingGroup:{http:{method:"GET",requestUri:"/thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"}}},output:{type:"structure",members:{thingGroupName:{},thingGroupId:{},thingGroupArn:{},version:{type:"long"},thingGroupProperties:{shape:"S2j"},thingGroupMetadata:{type:"structure",members:{parentGroupName:{},rootToParentThingGroups:{shape:"Sgg"},creationDate:{ - type:"timestamp"}}},indexName:{},queryString:{},queryVersion:{},status:{}}}},DescribeThingRegistrationTask:{http:{method:"GET",requestUri:"/thing-registration-tasks/{taskId}"},input:{type:"structure",required:["taskId"],members:{taskId:{location:"uri",locationName:"taskId"}}},output:{type:"structure",members:{taskId:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},templateBody:{},inputFileBucket:{},inputFileKey:{},roleArn:{},status:{},message:{},successCount:{type:"integer"},failureCount:{type:"integer"},percentageProgress:{type:"integer"}}}},DescribeThingType:{http:{method:"GET",requestUri:"/thing-types/{thingTypeName}"},input:{type:"structure",required:["thingTypeName"],members:{thingTypeName:{location:"uri",locationName:"thingTypeName"}}},output:{type:"structure",members:{thingTypeName:{},thingTypeId:{},thingTypeArn:{},thingTypeProperties:{shape:"S7o"},thingTypeMetadata:{shape:"Sgt"}}}},DetachPolicy:{http:{requestUri:"/target-policies/{policyName}"},input:{type:"structure",required:["policyName","target"],members:{policyName:{location:"uri",locationName:"policyName"},target:{}}}},DetachPrincipalPolicy:{http:{method:"DELETE",requestUri:"/principal-policies/{policyName}"},input:{type:"structure",required:["policyName","principal"],members:{policyName:{location:"uri",locationName:"policyName"},principal:{location:"header",locationName:"x-amzn-iot-principal"}}},deprecated:!0},DetachSecurityProfile:{http:{method:"DELETE",requestUri:"/security-profiles/{securityProfileName}/targets"},input:{type:"structure",required:["securityProfileName","securityProfileTargetArn"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"},securityProfileTargetArn:{location:"querystring",locationName:"securityProfileTargetArn"}}},output:{type:"structure",members:{}}},DetachThingPrincipal:{http:{method:"DELETE",requestUri:"/things/{thingName}/principals"},input:{type:"structure",required:["thingName","principal"],members:{thingName:{location:"uri",locationName:"thingName"},principal:{location:"header",locationName:"x-amzn-principal"}}},output:{type:"structure",members:{}}},DisableTopicRule:{http:{requestUri:"/rules/{ruleName}/disable"},input:{type:"structure",required:["ruleName"],members:{ruleName:{location:"uri",locationName:"ruleName"}}}},EnableTopicRule:{http:{requestUri:"/rules/{ruleName}/enable"},input:{type:"structure",required:["ruleName"],members:{ruleName:{location:"uri",locationName:"ruleName"}}}},GetCardinality:{http:{requestUri:"/indices/cardinality"},input:{type:"structure",required:["queryString"],members:{indexName:{},queryString:{},aggregationField:{},queryVersion:{}}},output:{type:"structure",members:{cardinality:{type:"integer"}}}},GetEffectivePolicies:{http:{requestUri:"/effective-policies"},input:{type:"structure",members:{principal:{},cognitoIdentityPoolId:{},thingName:{location:"querystring",locationName:"thingName"}}},output:{type:"structure",members:{effectivePolicies:{type:"list",member:{type:"structure",members:{policyName:{},policyArn:{},policyDocument:{}}}}}}},GetIndexingConfiguration:{http:{method:"GET",requestUri:"/indexing/config"},input:{type:"structure",members:{}},output:{type:"structure",members:{thingIndexingConfiguration:{shape:"Shd"},thingGroupIndexingConfiguration:{shape:"Shk"}}}},GetJobDocument:{http:{method:"GET",requestUri:"/jobs/{jobId}/job-document"},input:{type:"structure",required:["jobId"],members:{jobId:{location:"uri",locationName:"jobId"}}},output:{type:"structure",members:{document:{}}}},GetLoggingOptions:{http:{method:"GET",requestUri:"/loggingOptions"},input:{type:"structure",members:{}},output:{type:"structure",members:{roleArn:{},logLevel:{}}}},GetOTAUpdate:{http:{method:"GET",requestUri:"/otaUpdates/{otaUpdateId}"},input:{type:"structure",required:["otaUpdateId"],members:{otaUpdateId:{location:"uri",locationName:"otaUpdateId"}}},output:{type:"structure",members:{otaUpdateInfo:{type:"structure",members:{otaUpdateId:{},otaUpdateArn:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},description:{},targets:{shape:"S49"},protocols:{shape:"S4b"},awsJobExecutionsRolloutConfig:{shape:"S4d"},awsJobPresignedUrlConfig:{shape:"S4f"},targetSelection:{},otaUpdateFiles:{shape:"S4h"},otaUpdateStatus:{},awsIotJobId:{},awsIotJobArn:{},errorInfo:{type:"structure",members:{code:{},message:{}}},additionalParameters:{shape:"S5e"}}}}}},GetPercentiles:{http:{requestUri:"/indices/percentiles"},input:{type:"structure",required:["queryString"],members:{indexName:{},queryString:{},aggregationField:{},queryVersion:{},percents:{type:"list",member:{type:"double"}}}},output:{type:"structure",members:{percentiles:{type:"list",member:{type:"structure",members:{percent:{type:"double"},value:{type:"double"}}}}}}},GetPolicy:{http:{method:"GET",requestUri:"/policies/{policyName}"},input:{type:"structure",required:["policyName"],members:{policyName:{location:"uri",locationName:"policyName"}}},output:{type:"structure",members:{policyName:{},policyArn:{},policyDocument:{},defaultVersionId:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},generationId:{}}}},GetPolicyVersion:{http:{method:"GET",requestUri:"/policies/{policyName}/version/{policyVersionId}"},input:{type:"structure",required:["policyName","policyVersionId"],members:{policyName:{location:"uri",locationName:"policyName"},policyVersionId:{location:"uri",locationName:"policyVersionId"}}},output:{type:"structure",members:{policyArn:{},policyName:{},policyDocument:{},policyVersionId:{},isDefaultVersion:{type:"boolean"},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},generationId:{}}}},GetRegistrationCode:{http:{method:"GET",requestUri:"/registrationcode"},input:{type:"structure",members:{}},output:{type:"structure",members:{registrationCode:{}}}},GetStatistics:{http:{requestUri:"/indices/statistics"},input:{type:"structure",required:["queryString"],members:{indexName:{},queryString:{},aggregationField:{},queryVersion:{}}},output:{type:"structure",members:{statistics:{type:"structure",members:{count:{type:"integer"},average:{type:"double"},sum:{type:"double"},minimum:{type:"double"},maximum:{type:"double"},sumOfSquares:{type:"double"},variance:{type:"double"},stdDeviation:{type:"double"}}}}}},GetTopicRule:{http:{method:"GET",requestUri:"/rules/{ruleName}"},input:{type:"structure",required:["ruleName"],members:{ruleName:{location:"uri",locationName:"ruleName"}}},output:{type:"structure",members:{ruleArn:{},rule:{type:"structure",members:{ruleName:{},sql:{},description:{},createdAt:{type:"timestamp"},actions:{shape:"S7z"},ruleDisabled:{type:"boolean"},awsIotSqlVersion:{},errorAction:{shape:"S80"}}}}}},GetTopicRuleDestination:{http:{method:"GET",requestUri:"/destinations/{arn+}"},input:{type:"structure",required:["arn"],members:{arn:{location:"uri",locationName:"arn"}}},output:{type:"structure",members:{topicRuleDestination:{shape:"Sah"}}}},GetV2LoggingOptions:{http:{method:"GET",requestUri:"/v2LoggingOptions"},input:{type:"structure",members:{}},output:{type:"structure",members:{roleArn:{},defaultLogLevel:{},disableAllLogs:{type:"boolean"}}}},ListActiveViolations:{http:{method:"GET",requestUri:"/active-violations"},input:{type:"structure",members:{thingName:{location:"querystring",locationName:"thingName"},securityProfileName:{location:"querystring",locationName:"securityProfileName"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{activeViolations:{type:"list",member:{type:"structure",members:{violationId:{},thingName:{},securityProfileName:{},behavior:{shape:"S6n"},lastViolationValue:{shape:"S6s"},lastViolationTime:{type:"timestamp"},violationStartTime:{type:"timestamp"}}}},nextToken:{}}}},ListAttachedPolicies:{http:{requestUri:"/attached-policies/{target}"},input:{type:"structure",required:["target"],members:{target:{location:"uri",locationName:"target"},recursive:{location:"querystring",locationName:"recursive",type:"boolean"},marker:{location:"querystring",locationName:"marker"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"}}},output:{type:"structure",members:{policies:{shape:"Sj7"},nextMarker:{}}}},ListAuditFindings:{http:{requestUri:"/audit/findings"},input:{type:"structure",members:{taskId:{},checkName:{},resourceIdentifier:{shape:"Scj"},maxResults:{type:"integer"},nextToken:{},startTime:{type:"timestamp"},endTime:{type:"timestamp"}}},output:{type:"structure",members:{findings:{type:"list",member:{shape:"Sce"}},nextToken:{}}}},ListAuditMitigationActionsExecutions:{http:{method:"GET",requestUri:"/audit/mitigationactions/executions"},input:{type:"structure",required:["taskId","findingId"],members:{taskId:{location:"querystring",locationName:"taskId"},actionStatus:{location:"querystring",locationName:"actionStatus"},findingId:{location:"querystring",locationName:"findingId"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{actionsExecutions:{type:"list",member:{type:"structure",members:{taskId:{},findingId:{},actionName:{},actionId:{},status:{},startTime:{type:"timestamp"},endTime:{type:"timestamp"},errorCode:{},message:{}}}},nextToken:{}}}},ListAuditMitigationActionsTasks:{http:{method:"GET",requestUri:"/audit/mitigationactions/tasks"},input:{type:"structure",required:["startTime","endTime"],members:{auditTaskId:{location:"querystring",locationName:"auditTaskId"},findingId:{location:"querystring",locationName:"findingId"},taskStatus:{location:"querystring",locationName:"taskStatus"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"},startTime:{location:"querystring",locationName:"startTime",type:"timestamp"},endTime:{location:"querystring",locationName:"endTime",type:"timestamp"}}},output:{type:"structure",members:{tasks:{type:"list",member:{type:"structure",members:{taskId:{},startTime:{type:"timestamp"},taskStatus:{}}}},nextToken:{}}}},ListAuditTasks:{http:{method:"GET",requestUri:"/audit/tasks"},input:{type:"structure",required:["startTime","endTime"],members:{startTime:{location:"querystring",locationName:"startTime",type:"timestamp"},endTime:{location:"querystring",locationName:"endTime",type:"timestamp"},taskType:{location:"querystring",locationName:"taskType"},taskStatus:{location:"querystring",locationName:"taskStatus"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{tasks:{type:"list",member:{type:"structure",members:{taskId:{},taskStatus:{},taskType:{}}}},nextToken:{}}}},ListAuthorizers:{http:{method:"GET",requestUri:"/authorizers/"},input:{type:"structure",members:{pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},marker:{location:"querystring",locationName:"marker"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"},status:{location:"querystring",locationName:"status"}}},output:{type:"structure",members:{authorizers:{type:"list",member:{type:"structure",members:{authorizerName:{},authorizerArn:{}}}},nextMarker:{}}}},ListBillingGroups:{http:{method:"GET",requestUri:"/billing-groups"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},namePrefixFilter:{location:"querystring",locationName:"namePrefixFilter"}}},output:{type:"structure",members:{billingGroups:{type:"list",member:{shape:"Sgh"}},nextToken:{}}}},ListCACertificates:{http:{method:"GET",requestUri:"/cacertificates"},input:{type:"structure",members:{pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},marker:{location:"querystring",locationName:"marker"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{certificates:{type:"list",member:{type:"structure",members:{certificateArn:{},certificateId:{},status:{},creationDate:{type:"timestamp"}}}},nextMarker:{}}}},ListCertificates:{http:{method:"GET",requestUri:"/certificates"},input:{type:"structure",members:{pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},marker:{location:"querystring",locationName:"marker"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{certificates:{shape:"Sk4"},nextMarker:{}}}},ListCertificatesByCA:{http:{method:"GET",requestUri:"/certificates-by-ca/{caCertificateId}"},input:{type:"structure",required:["caCertificateId"],members:{caCertificateId:{location:"uri",locationName:"caCertificateId"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},marker:{location:"querystring",locationName:"marker"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{certificates:{shape:"Sk4"},nextMarker:{}}}},ListDomainConfigurations:{http:{method:"GET",requestUri:"/domainConfigurations"},input:{type:"structure",members:{marker:{location:"querystring",locationName:"marker"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},serviceType:{location:"querystring",locationName:"serviceType"}}},output:{type:"structure",members:{domainConfigurations:{type:"list",member:{type:"structure",members:{domainConfigurationName:{},domainConfigurationArn:{},serviceType:{}}}},nextMarker:{}}}},ListIndices:{http:{method:"GET",requestUri:"/indices"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{indexNames:{type:"list",member:{}},nextToken:{}}}},ListJobExecutionsForJob:{http:{method:"GET",requestUri:"/jobs/{jobId}/things"},input:{type:"structure",required:["jobId"],members:{jobId:{location:"uri",locationName:"jobId"},status:{location:"querystring",locationName:"status"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{executionSummaries:{type:"list",member:{type:"structure",members:{thingArn:{},jobExecutionSummary:{shape:"Skl"}}}},nextToken:{}}}},ListJobExecutionsForThing:{http:{method:"GET",requestUri:"/things/{thingName}/jobs"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"},status:{location:"querystring",locationName:"status"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{executionSummaries:{type:"list",member:{type:"structure",members:{jobId:{},jobExecutionSummary:{shape:"Skl"}}}},nextToken:{}}}},ListJobs:{http:{method:"GET",requestUri:"/jobs"},input:{type:"structure",members:{status:{location:"querystring",locationName:"status"},targetSelection:{location:"querystring",locationName:"targetSelection"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"},thingGroupName:{location:"querystring",locationName:"thingGroupName"},thingGroupId:{location:"querystring",locationName:"thingGroupId"}}},output:{type:"structure",members:{jobs:{type:"list",member:{type:"structure",members:{jobArn:{},jobId:{},thingGroupId:{},targetSelection:{},status:{},createdAt:{type:"timestamp"},lastUpdatedAt:{type:"timestamp"},completedAt:{type:"timestamp"}}}},nextToken:{}}}},ListMitigationActions:{http:{method:"GET",requestUri:"/mitigationactions/actions"},input:{type:"structure",members:{actionType:{location:"querystring",locationName:"actionType"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{actionIdentifiers:{type:"list",member:{type:"structure",members:{actionName:{},actionArn:{},creationDate:{type:"timestamp"}}}},nextToken:{}}}},ListOTAUpdates:{http:{method:"GET",requestUri:"/otaUpdates"},input:{type:"structure",members:{maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"},otaUpdateStatus:{location:"querystring",locationName:"otaUpdateStatus"}}},output:{type:"structure",members:{otaUpdates:{type:"list",member:{type:"structure",members:{otaUpdateId:{},otaUpdateArn:{},creationDate:{type:"timestamp"}}}},nextToken:{}}}},ListOutgoingCertificates:{http:{method:"GET",requestUri:"/certificates-out-going"},input:{type:"structure",members:{pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},marker:{location:"querystring",locationName:"marker"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{outgoingCertificates:{type:"list",member:{type:"structure",members:{certificateArn:{},certificateId:{},transferredTo:{},transferDate:{type:"timestamp"},transferMessage:{},creationDate:{type:"timestamp"}}}},nextMarker:{}}}},ListPolicies:{http:{method:"GET",requestUri:"/policies"},input:{type:"structure",members:{marker:{location:"querystring",locationName:"marker"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{policies:{shape:"Sj7"},nextMarker:{}}}},ListPolicyPrincipals:{http:{method:"GET",requestUri:"/policy-principals"},input:{type:"structure",required:["policyName"],members:{policyName:{location:"header",locationName:"x-amzn-iot-policy"},marker:{location:"querystring",locationName:"marker"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{principals:{shape:"Sla"},nextMarker:{}}},deprecated:!0},ListPolicyVersions:{http:{method:"GET",requestUri:"/policies/{policyName}/version"},input:{type:"structure",required:["policyName"],members:{policyName:{location:"uri",locationName:"policyName"}}},output:{type:"structure",members:{policyVersions:{type:"list",member:{type:"structure",members:{versionId:{},isDefaultVersion:{type:"boolean"},createDate:{type:"timestamp"}}}}}}},ListPrincipalPolicies:{http:{method:"GET",requestUri:"/principal-policies"},input:{type:"structure",required:["principal"],members:{principal:{location:"header",locationName:"x-amzn-iot-principal"},marker:{location:"querystring",locationName:"marker"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{policies:{shape:"Sj7"},nextMarker:{}}},deprecated:!0},ListPrincipalThings:{http:{method:"GET",requestUri:"/principals/things"},input:{type:"structure",required:["principal"],members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},principal:{location:"header",locationName:"x-amzn-principal"}}},output:{type:"structure",members:{things:{shape:"Slk"},nextToken:{}}}},ListProvisioningTemplateVersions:{http:{method:"GET",requestUri:"/provisioning-templates/{templateName}/versions"},input:{type:"structure",required:["templateName"],members:{templateName:{location:"uri",locationName:"templateName"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{versions:{type:"list",member:{type:"structure",members:{versionId:{type:"integer"},creationDate:{type:"timestamp"},isDefaultVersion:{type:"boolean"}}}},nextToken:{}}}},ListProvisioningTemplates:{http:{method:"GET",requestUri:"/provisioning-templates"},input:{type:"structure",members:{maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{templates:{type:"list",member:{type:"structure",members:{templateArn:{},templateName:{},description:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},enabled:{type:"boolean"}}}},nextToken:{}}}},ListRoleAliases:{http:{method:"GET",requestUri:"/role-aliases"},input:{type:"structure",members:{pageSize:{location:"querystring",locationName:"pageSize",type:"integer"},marker:{location:"querystring",locationName:"marker"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{roleAliases:{type:"list",member:{}},nextMarker:{}}}},ListScheduledAudits:{http:{method:"GET",requestUri:"/audit/scheduledaudits"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{scheduledAudits:{type:"list",member:{type:"structure",members:{scheduledAuditName:{},scheduledAuditArn:{},frequency:{},dayOfMonth:{},dayOfWeek:{}}}},nextToken:{}}}},ListSecurityProfiles:{http:{method:"GET",requestUri:"/security-profiles"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{securityProfileIdentifiers:{type:"list",member:{shape:"Sm3"}},nextToken:{}}}},ListSecurityProfilesForTarget:{http:{method:"GET",requestUri:"/security-profiles-for-target"},input:{type:"structure",required:["securityProfileTargetArn"],members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},recursive:{location:"querystring",locationName:"recursive",type:"boolean"},securityProfileTargetArn:{location:"querystring",locationName:"securityProfileTargetArn"}}},output:{type:"structure",members:{securityProfileTargetMappings:{type:"list",member:{type:"structure",members:{securityProfileIdentifier:{shape:"Sm3"},target:{shape:"Sm8"}}}},nextToken:{}}}},ListStreams:{http:{method:"GET",requestUri:"/streams"},input:{type:"structure",members:{maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"},ascendingOrder:{location:"querystring",locationName:"isAscendingOrder",type:"boolean"}}},output:{type:"structure",members:{streams:{type:"list",member:{type:"structure",members:{streamId:{},streamArn:{},streamVersion:{type:"integer"},description:{}}}},nextToken:{}}}},ListTagsForResource:{http:{method:"GET",requestUri:"/tags"},input:{type:"structure",required:["resourceArn"],members:{resourceArn:{location:"querystring",locationName:"resourceArn"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{tags:{shape:"S1x"},nextToken:{}}}},ListTargetsForPolicy:{http:{requestUri:"/policy-targets/{policyName}"},input:{type:"structure",required:["policyName"],members:{policyName:{location:"uri",locationName:"policyName"},marker:{location:"querystring",locationName:"marker"},pageSize:{location:"querystring",locationName:"pageSize",type:"integer"}}},output:{type:"structure",members:{targets:{type:"list",member:{}},nextMarker:{}}}},ListTargetsForSecurityProfile:{http:{method:"GET",requestUri:"/security-profiles/{securityProfileName}/targets"},input:{type:"structure",required:["securityProfileName"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{securityProfileTargets:{type:"list",member:{shape:"Sm8"}},nextToken:{}}}},ListThingGroups:{http:{method:"GET",requestUri:"/thing-groups"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},parentGroup:{location:"querystring",locationName:"parentGroup"},namePrefixFilter:{location:"querystring",locationName:"namePrefixFilter"},recursive:{location:"querystring",locationName:"recursive",type:"boolean"}}},output:{type:"structure",members:{thingGroups:{shape:"Sgg"},nextToken:{}}}},ListThingGroupsForThing:{http:{method:"GET",requestUri:"/things/{thingName}/thing-groups"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{thingGroups:{shape:"Sgg"},nextToken:{}}}},ListThingPrincipals:{http:{method:"GET",requestUri:"/things/{thingName}/principals"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",members:{principals:{shape:"Sla"}}}},ListThingRegistrationTaskReports:{http:{method:"GET",requestUri:"/thing-registration-tasks/{taskId}/reports"},input:{type:"structure",required:["taskId","reportType"],members:{taskId:{location:"uri",locationName:"taskId"},reportType:{location:"querystring",locationName:"reportType"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{resourceLinks:{type:"list",member:{}},reportType:{},nextToken:{}}}},ListThingRegistrationTasks:{http:{method:"GET",requestUri:"/thing-registration-tasks"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},status:{location:"querystring",locationName:"status"}}},output:{type:"structure",members:{taskIds:{type:"list",member:{}},nextToken:{}}}},ListThingTypes:{http:{method:"GET",requestUri:"/thing-types"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},thingTypeName:{location:"querystring",locationName:"thingTypeName"}}},output:{type:"structure",members:{thingTypes:{type:"list",member:{type:"structure",members:{thingTypeName:{},thingTypeArn:{},thingTypeProperties:{shape:"S7o"},thingTypeMetadata:{shape:"Sgt"}}}},nextToken:{}}}},ListThings:{http:{method:"GET",requestUri:"/things"},input:{type:"structure",members:{nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},attributeName:{location:"querystring",locationName:"attributeName"},attributeValue:{location:"querystring",locationName:"attributeValue"},thingTypeName:{location:"querystring",locationName:"thingTypeName"}}},output:{type:"structure",members:{things:{type:"list",member:{type:"structure",members:{thingName:{},thingTypeName:{},thingArn:{},attributes:{shape:"S2m"},version:{type:"long"}}}},nextToken:{}}}},ListThingsInBillingGroup:{http:{method:"GET",requestUri:"/billing-groups/{billingGroupName}/things"},input:{type:"structure",required:["billingGroupName"],members:{billingGroupName:{location:"uri",locationName:"billingGroupName"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{things:{shape:"Slk"},nextToken:{}}}},ListThingsInThingGroup:{http:{method:"GET",requestUri:"/thing-groups/{thingGroupName}/things"},input:{type:"structure",required:["thingGroupName"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},recursive:{location:"querystring",locationName:"recursive",type:"boolean"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{things:{shape:"Slk"},nextToken:{}}}},ListTopicRuleDestinations:{http:{method:"GET",requestUri:"/destinations"},input:{type:"structure",members:{maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"}}},output:{type:"structure",members:{destinationSummaries:{type:"list",member:{type:"structure",members:{arn:{},status:{},statusReason:{},httpUrlSummary:{type:"structure",members:{confirmationUrl:{}}}}}},nextToken:{}}}},ListTopicRules:{http:{method:"GET",requestUri:"/rules"},input:{type:"structure",members:{topic:{location:"querystring",locationName:"topic"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"},nextToken:{location:"querystring",locationName:"nextToken"},ruleDisabled:{location:"querystring",locationName:"ruleDisabled",type:"boolean"}}},output:{type:"structure",members:{rules:{type:"list",member:{type:"structure",members:{ruleArn:{},ruleName:{},topicPattern:{},createdAt:{type:"timestamp"},ruleDisabled:{type:"boolean"}}}},nextToken:{}}}},ListV2LoggingLevels:{http:{method:"GET",requestUri:"/v2LoggingLevel"},input:{type:"structure",members:{targetType:{location:"querystring",locationName:"targetType"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{logTargetConfigurations:{type:"list",member:{type:"structure",members:{logTarget:{shape:"Snu"},logLevel:{}}}},nextToken:{}}}},ListViolationEvents:{http:{method:"GET",requestUri:"/violation-events"},input:{type:"structure",required:["startTime","endTime"],members:{startTime:{location:"querystring",locationName:"startTime",type:"timestamp"},endTime:{location:"querystring",locationName:"endTime",type:"timestamp"},thingName:{location:"querystring",locationName:"thingName"},securityProfileName:{location:"querystring",locationName:"securityProfileName"},nextToken:{location:"querystring",locationName:"nextToken"},maxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{violationEvents:{type:"list",member:{type:"structure",members:{violationId:{},thingName:{},securityProfileName:{},behavior:{shape:"S6n"},metricValue:{shape:"S6s"},violationEventType:{},violationEventTime:{type:"timestamp"}}}},nextToken:{}}}},RegisterCACertificate:{http:{requestUri:"/cacertificate"},input:{type:"structure",required:["caCertificate","verificationCertificate"],members:{caCertificate:{},verificationCertificate:{},setAsActive:{location:"querystring",locationName:"setAsActive",type:"boolean"},allowAutoRegistration:{location:"querystring",locationName:"allowAutoRegistration",type:"boolean"},registrationConfig:{shape:"Seb"}}},output:{type:"structure",members:{certificateArn:{},certificateId:{}}}},RegisterCertificate:{http:{requestUri:"/certificate/register"},input:{type:"structure",required:["certificatePem"],members:{certificatePem:{},caCertificatePem:{},setAsActive:{deprecated:!0,location:"querystring",locationName:"setAsActive",type:"boolean"},status:{}}},output:{type:"structure",members:{certificateArn:{},certificateId:{}}}},RegisterThing:{http:{requestUri:"/things"},input:{type:"structure",required:["templateBody"],members:{templateBody:{},parameters:{type:"map",key:{},value:{}}}},output:{type:"structure",members:{certificatePem:{},resourceArns:{type:"map",key:{},value:{}}}}},RejectCertificateTransfer:{http:{method:"PATCH",requestUri:"/reject-certificate-transfer/{certificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"certificateId"}, - rejectReason:{}}}},RemoveThingFromBillingGroup:{http:{method:"PUT",requestUri:"/billing-groups/removeThingFromBillingGroup"},input:{type:"structure",members:{billingGroupName:{},billingGroupArn:{},thingName:{},thingArn:{}}},output:{type:"structure",members:{}}},RemoveThingFromThingGroup:{http:{method:"PUT",requestUri:"/thing-groups/removeThingFromThingGroup"},input:{type:"structure",members:{thingGroupName:{},thingGroupArn:{},thingName:{},thingArn:{}}},output:{type:"structure",members:{}}},ReplaceTopicRule:{http:{method:"PATCH",requestUri:"/rules/{ruleName}"},input:{type:"structure",required:["ruleName","topicRulePayload"],members:{ruleName:{location:"uri",locationName:"ruleName"},topicRulePayload:{shape:"S7w"}},payload:"topicRulePayload"}},SearchIndex:{http:{requestUri:"/indices/search"},input:{type:"structure",required:["queryString"],members:{indexName:{},queryString:{},nextToken:{},maxResults:{type:"integer"},queryVersion:{}}},output:{type:"structure",members:{nextToken:{},things:{type:"list",member:{type:"structure",members:{thingName:{},thingId:{},thingTypeName:{},thingGroupNames:{shape:"Som"},attributes:{shape:"S2m"},shadow:{},connectivity:{type:"structure",members:{connected:{type:"boolean"},timestamp:{type:"long"}}}}}},thingGroups:{type:"list",member:{type:"structure",members:{thingGroupName:{},thingGroupId:{},thingGroupDescription:{},attributes:{shape:"S2m"},parentGroupNames:{shape:"Som"}}}}}}},SetDefaultAuthorizer:{http:{requestUri:"/default-authorizer"},input:{type:"structure",required:["authorizerName"],members:{authorizerName:{}}},output:{type:"structure",members:{authorizerName:{},authorizerArn:{}}}},SetDefaultPolicyVersion:{http:{method:"PATCH",requestUri:"/policies/{policyName}/version/{policyVersionId}"},input:{type:"structure",required:["policyName","policyVersionId"],members:{policyName:{location:"uri",locationName:"policyName"},policyVersionId:{location:"uri",locationName:"policyVersionId"}}}},SetLoggingOptions:{http:{requestUri:"/loggingOptions"},input:{type:"structure",required:["loggingOptionsPayload"],members:{loggingOptionsPayload:{type:"structure",required:["roleArn"],members:{roleArn:{},logLevel:{}}}},payload:"loggingOptionsPayload"}},SetV2LoggingLevel:{http:{requestUri:"/v2LoggingLevel"},input:{type:"structure",required:["logTarget","logLevel"],members:{logTarget:{shape:"Snu"},logLevel:{}}}},SetV2LoggingOptions:{http:{requestUri:"/v2LoggingOptions"},input:{type:"structure",members:{roleArn:{},defaultLogLevel:{},disableAllLogs:{type:"boolean"}}}},StartAuditMitigationActionsTask:{http:{requestUri:"/audit/mitigationactions/tasks/{taskId}"},input:{type:"structure",required:["taskId","target","auditCheckToActionsMapping","clientRequestToken"],members:{taskId:{location:"uri",locationName:"taskId"},target:{shape:"Sd3"},auditCheckToActionsMapping:{shape:"Sd7"},clientRequestToken:{idempotencyToken:!0}}},output:{type:"structure",members:{taskId:{}}}},StartOnDemandAuditTask:{http:{requestUri:"/audit/tasks"},input:{type:"structure",required:["targetCheckNames"],members:{targetCheckNames:{shape:"S6f"}}},output:{type:"structure",members:{taskId:{}}}},StartThingRegistrationTask:{http:{requestUri:"/thing-registration-tasks"},input:{type:"structure",required:["templateBody","inputFileBucket","inputFileKey","roleArn"],members:{templateBody:{},inputFileBucket:{},inputFileKey:{},roleArn:{}}},output:{type:"structure",members:{taskId:{}}}},StopThingRegistrationTask:{http:{method:"PUT",requestUri:"/thing-registration-tasks/{taskId}/cancel"},input:{type:"structure",required:["taskId"],members:{taskId:{location:"uri",locationName:"taskId"}}},output:{type:"structure",members:{}}},TagResource:{http:{requestUri:"/tags"},input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{},tags:{shape:"S1x"}}},output:{type:"structure",members:{}}},TestAuthorization:{http:{requestUri:"/test-authorization"},input:{type:"structure",required:["authInfos"],members:{principal:{},cognitoIdentityPoolId:{},authInfos:{type:"list",member:{shape:"Spc"}},clientId:{location:"querystring",locationName:"clientId"},policyNamesToAdd:{shape:"Spg"},policyNamesToSkip:{shape:"Spg"}}},output:{type:"structure",members:{authResults:{type:"list",member:{type:"structure",members:{authInfo:{shape:"Spc"},allowed:{type:"structure",members:{policies:{shape:"Sj7"}}},denied:{type:"structure",members:{implicitDeny:{type:"structure",members:{policies:{shape:"Sj7"}}},explicitDeny:{type:"structure",members:{policies:{shape:"Sj7"}}}}},authDecision:{},missingContextValues:{type:"list",member:{}}}}}}}},TestInvokeAuthorizer:{http:{requestUri:"/authorizer/{authorizerName}/test"},input:{type:"structure",required:["authorizerName"],members:{authorizerName:{location:"uri",locationName:"authorizerName"},token:{},tokenSignature:{},httpContext:{type:"structure",members:{headers:{type:"map",key:{},value:{}},queryString:{}}},mqttContext:{type:"structure",members:{username:{},password:{type:"blob"},clientId:{}}},tlsContext:{type:"structure",members:{serverName:{}}}}},output:{type:"structure",members:{isAuthenticated:{type:"boolean"},principalId:{},policyDocuments:{type:"list",member:{}},refreshAfterInSeconds:{type:"integer"},disconnectAfterInSeconds:{type:"integer"}}}},TransferCertificate:{http:{method:"PATCH",requestUri:"/transfer-certificate/{certificateId}"},input:{type:"structure",required:["certificateId","targetAwsAccount"],members:{certificateId:{location:"uri",locationName:"certificateId"},targetAwsAccount:{location:"querystring",locationName:"targetAwsAccount"},transferMessage:{}}},output:{type:"structure",members:{transferredCertificateArn:{}}}},UntagResource:{http:{requestUri:"/untag"},input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{},tagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateAccountAuditConfiguration:{http:{method:"PATCH",requestUri:"/audit/configuration"},input:{type:"structure",members:{roleArn:{},auditNotificationTargetConfigurations:{shape:"Sc6"},auditCheckConfigurations:{shape:"Sc9"}}},output:{type:"structure",members:{}}},UpdateAuthorizer:{http:{method:"PUT",requestUri:"/authorizer/{authorizerName}"},input:{type:"structure",required:["authorizerName"],members:{authorizerName:{location:"uri",locationName:"authorizerName"},authorizerFunctionArn:{},tokenKeyName:{},tokenSigningPublicKeys:{shape:"S1n"},status:{}}},output:{type:"structure",members:{authorizerName:{},authorizerArn:{}}}},UpdateBillingGroup:{http:{method:"PATCH",requestUri:"/billing-groups/{billingGroupName}"},input:{type:"structure",required:["billingGroupName","billingGroupProperties"],members:{billingGroupName:{location:"uri",locationName:"billingGroupName"},billingGroupProperties:{shape:"S1v"},expectedVersion:{type:"long"}}},output:{type:"structure",members:{version:{type:"long"}}}},UpdateCACertificate:{http:{method:"PUT",requestUri:"/cacertificate/{caCertificateId}"},input:{type:"structure",required:["certificateId"],members:{certificateId:{location:"uri",locationName:"caCertificateId"},newStatus:{location:"querystring",locationName:"newStatus"},newAutoRegistrationStatus:{location:"querystring",locationName:"newAutoRegistrationStatus"},registrationConfig:{shape:"Seb"},removeAutoRegistration:{type:"boolean"}}}},UpdateCertificate:{http:{method:"PUT",requestUri:"/certificates/{certificateId}"},input:{type:"structure",required:["certificateId","newStatus"],members:{certificateId:{location:"uri",locationName:"certificateId"},newStatus:{location:"querystring",locationName:"newStatus"}}}},UpdateDomainConfiguration:{http:{method:"PUT",requestUri:"/domainConfigurations/{domainConfigurationName}"},input:{type:"structure",required:["domainConfigurationName"],members:{domainConfigurationName:{location:"uri",locationName:"domainConfigurationName"},authorizerConfig:{shape:"S2d"},domainConfigurationStatus:{},removeAuthorizerConfig:{type:"boolean"}}},output:{type:"structure",members:{domainConfigurationName:{},domainConfigurationArn:{}}}},UpdateDynamicThingGroup:{http:{method:"PATCH",requestUri:"/dynamic-thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName","thingGroupProperties"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},thingGroupProperties:{shape:"S2j"},expectedVersion:{type:"long"},indexName:{},queryString:{},queryVersion:{}}},output:{type:"structure",members:{version:{type:"long"}}}},UpdateEventConfigurations:{http:{method:"PATCH",requestUri:"/event-configurations"},input:{type:"structure",members:{eventConfigurations:{shape:"Sez"}}},output:{type:"structure",members:{}}},UpdateIndexingConfiguration:{http:{requestUri:"/indexing/config"},input:{type:"structure",members:{thingIndexingConfiguration:{shape:"Shd"},thingGroupIndexingConfiguration:{shape:"Shk"}}},output:{type:"structure",members:{}}},UpdateJob:{http:{method:"PATCH",requestUri:"/jobs/{jobId}"},input:{type:"structure",required:["jobId"],members:{jobId:{location:"uri",locationName:"jobId"},description:{},presignedUrlConfig:{shape:"S2y"},jobExecutionsRolloutConfig:{shape:"S32"},abortConfig:{shape:"S39"},timeoutConfig:{shape:"S3g"}}}},UpdateMitigationAction:{http:{method:"PATCH",requestUri:"/mitigationactions/actions/{actionName}"},input:{type:"structure",required:["actionName"],members:{actionName:{location:"uri",locationName:"actionName"},roleArn:{},actionParams:{shape:"S3q"}}},output:{type:"structure",members:{actionArn:{},actionId:{}}}},UpdateProvisioningTemplate:{http:{method:"PATCH",requestUri:"/provisioning-templates/{templateName}"},input:{type:"structure",required:["templateName"],members:{templateName:{location:"uri",locationName:"templateName"},description:{},enabled:{type:"boolean"},defaultVersionId:{type:"integer"},provisioningRoleArn:{}}},output:{type:"structure",members:{}}},UpdateRoleAlias:{http:{method:"PUT",requestUri:"/role-aliases/{roleAlias}"},input:{type:"structure",required:["roleAlias"],members:{roleAlias:{location:"uri",locationName:"roleAlias"},roleArn:{},credentialDurationSeconds:{type:"integer"}}},output:{type:"structure",members:{roleAlias:{},roleAliasArn:{}}}},UpdateScheduledAudit:{http:{method:"PATCH",requestUri:"/audit/scheduledaudits/{scheduledAuditName}"},input:{type:"structure",required:["scheduledAuditName"],members:{frequency:{},dayOfMonth:{},dayOfWeek:{},targetCheckNames:{shape:"S6f"},scheduledAuditName:{location:"uri",locationName:"scheduledAuditName"}}},output:{type:"structure",members:{scheduledAuditArn:{}}}},UpdateSecurityProfile:{http:{method:"PATCH",requestUri:"/security-profiles/{securityProfileName}"},input:{type:"structure",required:["securityProfileName"],members:{securityProfileName:{location:"uri",locationName:"securityProfileName"},securityProfileDescription:{},behaviors:{shape:"S6m"},alertTargets:{shape:"S73"},additionalMetricsToRetain:{shape:"S77"},deleteBehaviors:{type:"boolean"},deleteAlertTargets:{type:"boolean"},deleteAdditionalMetricsToRetain:{type:"boolean"},expectedVersion:{location:"querystring",locationName:"expectedVersion",type:"long"}}},output:{type:"structure",members:{securityProfileName:{},securityProfileArn:{},securityProfileDescription:{},behaviors:{shape:"S6m"},alertTargets:{shape:"S73"},additionalMetricsToRetain:{shape:"S77"},version:{type:"long"},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"}}}},UpdateStream:{http:{method:"PUT",requestUri:"/streams/{streamId}"},input:{type:"structure",required:["streamId"],members:{streamId:{location:"uri",locationName:"streamId"},description:{},files:{shape:"S7c"},roleArn:{}}},output:{type:"structure",members:{streamId:{},streamArn:{},description:{},streamVersion:{type:"integer"}}}},UpdateThing:{http:{method:"PATCH",requestUri:"/things/{thingName}"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"},thingTypeName:{},attributePayload:{shape:"S2l"},expectedVersion:{type:"long"},removeThingType:{type:"boolean"}}},output:{type:"structure",members:{}}},UpdateThingGroup:{http:{method:"PATCH",requestUri:"/thing-groups/{thingGroupName}"},input:{type:"structure",required:["thingGroupName","thingGroupProperties"],members:{thingGroupName:{location:"uri",locationName:"thingGroupName"},thingGroupProperties:{shape:"S2j"},expectedVersion:{type:"long"}}},output:{type:"structure",members:{version:{type:"long"}}}},UpdateThingGroupsForThing:{http:{method:"PUT",requestUri:"/thing-groups/updateThingGroupsForThing"},input:{type:"structure",members:{thingName:{},thingGroupsToAdd:{shape:"Srj"},thingGroupsToRemove:{shape:"Srj"},overrideDynamicGroups:{type:"boolean"}}},output:{type:"structure",members:{}}},UpdateTopicRuleDestination:{http:{method:"PATCH",requestUri:"/destinations"},input:{type:"structure",required:["arn","status"],members:{arn:{},status:{}}},output:{type:"structure",members:{}}},ValidateSecurityProfileBehaviors:{http:{requestUri:"/security-profile-behaviors/validate"},input:{type:"structure",required:["behaviors"],members:{behaviors:{shape:"S6m"}}},output:{type:"structure",members:{valid:{type:"boolean"},validationErrors:{type:"list",member:{type:"structure",members:{errorMessage:{}}}}}}}},shapes:{Sg:{type:"list",member:{}},S1b:{type:"map",key:{},value:{}},S1n:{type:"map",key:{},value:{}},S1v:{type:"structure",members:{billingGroupDescription:{}}},S1x:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S2d:{type:"structure",members:{defaultAuthorizerName:{},allowAuthorizerOverride:{type:"boolean"}}},S2j:{type:"structure",members:{thingGroupDescription:{},attributePayload:{shape:"S2l"}}},S2l:{type:"structure",members:{attributes:{shape:"S2m"},merge:{type:"boolean"}}},S2m:{type:"map",key:{},value:{}},S2y:{type:"structure",members:{roleArn:{},expiresInSec:{type:"long"}}},S32:{type:"structure",members:{maximumPerMinute:{type:"integer"},exponentialRate:{type:"structure",required:["baseRatePerMinute","incrementFactor","rateIncreaseCriteria"],members:{baseRatePerMinute:{type:"integer"},incrementFactor:{type:"double"},rateIncreaseCriteria:{type:"structure",members:{numberOfNotifiedThings:{type:"integer"},numberOfSucceededThings:{type:"integer"}}}}}}},S39:{type:"structure",required:["criteriaList"],members:{criteriaList:{type:"list",member:{type:"structure",required:["failureType","action","thresholdPercentage","minNumberOfExecutedThings"],members:{failureType:{},action:{},thresholdPercentage:{type:"double"},minNumberOfExecutedThings:{type:"integer"}}}}}},S3g:{type:"structure",members:{inProgressTimeoutInMinutes:{type:"long"}}},S3l:{type:"structure",members:{PublicKey:{},PrivateKey:{type:"string",sensitive:!0}}},S3q:{type:"structure",members:{updateDeviceCertificateParams:{type:"structure",required:["action"],members:{action:{}}},updateCACertificateParams:{type:"structure",required:["action"],members:{action:{}}},addThingsToThingGroupParams:{type:"structure",required:["thingGroupNames"],members:{thingGroupNames:{type:"list",member:{}},overrideDynamicGroups:{type:"boolean"}}},replaceDefaultPolicyVersionParams:{type:"structure",required:["templateName"],members:{templateName:{}}},enableIoTLoggingParams:{type:"structure",required:["roleArnForLogging","logLevel"],members:{roleArnForLogging:{},logLevel:{}}},publishFindingToSnsParams:{type:"structure",required:["topicArn"],members:{topicArn:{}}}}},S49:{type:"list",member:{}},S4b:{type:"list",member:{}},S4d:{type:"structure",members:{maximumPerMinute:{type:"integer"}}},S4f:{type:"structure",members:{expiresInSec:{type:"long"}}},S4h:{type:"list",member:{type:"structure",members:{fileName:{},fileVersion:{},fileLocation:{type:"structure",members:{stream:{type:"structure",members:{streamId:{},fileId:{type:"integer"}}},s3Location:{shape:"S4p"}}},codeSigning:{type:"structure",members:{awsSignerJobId:{},startSigningJobParameter:{type:"structure",members:{signingProfileParameter:{type:"structure",members:{certificateArn:{},platform:{},certificatePathOnDevice:{}}},signingProfileName:{},destination:{type:"structure",members:{s3Destination:{type:"structure",members:{bucket:{},prefix:{}}}}}}},customCodeSigning:{type:"structure",members:{signature:{type:"structure",members:{inlineDocument:{type:"blob"}}},certificateChain:{type:"structure",members:{certificateName:{},inlineDocument:{}}},hashAlgorithm:{},signatureAlgorithm:{}}}}},attributes:{type:"map",key:{},value:{}}}}},S4p:{type:"structure",members:{bucket:{},key:{},version:{}}},S5e:{type:"map",key:{},value:{}},S6f:{type:"list",member:{}},S6m:{type:"list",member:{shape:"S6n"}},S6n:{type:"structure",required:["name"],members:{name:{},metric:{},criteria:{type:"structure",members:{comparisonOperator:{},value:{shape:"S6s"},durationSeconds:{type:"integer"},consecutiveDatapointsToAlarm:{type:"integer"},consecutiveDatapointsToClear:{type:"integer"},statisticalThreshold:{type:"structure",members:{statistic:{}}}}}}},S6s:{type:"structure",members:{count:{type:"long"},cidrs:{type:"list",member:{}},ports:{type:"list",member:{type:"integer"}}}},S73:{type:"map",key:{},value:{type:"structure",required:["alertTargetArn","roleArn"],members:{alertTargetArn:{},roleArn:{}}}},S77:{type:"list",member:{}},S7c:{type:"list",member:{type:"structure",members:{fileId:{type:"integer"},s3Location:{shape:"S4p"}}}},S7o:{type:"structure",members:{thingTypeDescription:{},searchableAttributes:{type:"list",member:{}}}},S7w:{type:"structure",required:["sql","actions"],members:{sql:{},description:{},actions:{shape:"S7z"},ruleDisabled:{type:"boolean"},awsIotSqlVersion:{},errorAction:{shape:"S80"}}},S7z:{type:"list",member:{shape:"S80"}},S80:{type:"structure",members:{dynamoDB:{type:"structure",required:["tableName","roleArn","hashKeyField","hashKeyValue"],members:{tableName:{},roleArn:{},operation:{},hashKeyField:{},hashKeyValue:{},hashKeyType:{},rangeKeyField:{},rangeKeyValue:{},rangeKeyType:{},payloadField:{}}},dynamoDBv2:{type:"structure",required:["roleArn","putItem"],members:{roleArn:{},putItem:{type:"structure",required:["tableName"],members:{tableName:{}}}}},lambda:{type:"structure",required:["functionArn"],members:{functionArn:{}}},sns:{type:"structure",required:["targetArn","roleArn"],members:{targetArn:{},roleArn:{},messageFormat:{}}},sqs:{type:"structure",required:["roleArn","queueUrl"],members:{roleArn:{},queueUrl:{},useBase64:{type:"boolean"}}},kinesis:{type:"structure",required:["roleArn","streamName"],members:{roleArn:{},streamName:{},partitionKey:{}}},republish:{type:"structure",required:["roleArn","topic"],members:{roleArn:{},topic:{},qos:{type:"integer"}}},s3:{type:"structure",required:["roleArn","bucketName","key"],members:{roleArn:{},bucketName:{},key:{},cannedAcl:{}}},firehose:{type:"structure",required:["roleArn","deliveryStreamName"],members:{roleArn:{},deliveryStreamName:{},separator:{}}},cloudwatchMetric:{type:"structure",required:["roleArn","metricNamespace","metricName","metricValue","metricUnit"],members:{roleArn:{},metricNamespace:{},metricName:{},metricValue:{},metricUnit:{},metricTimestamp:{}}},cloudwatchAlarm:{type:"structure",required:["roleArn","alarmName","stateReason","stateValue"],members:{roleArn:{},alarmName:{},stateReason:{},stateValue:{}}},elasticsearch:{type:"structure",required:["roleArn","endpoint","index","type","id"],members:{roleArn:{},endpoint:{},index:{},type:{},id:{}}},salesforce:{type:"structure",required:["token","url"],members:{token:{},url:{}}},iotAnalytics:{type:"structure",members:{channelArn:{},channelName:{},roleArn:{}}},iotEvents:{type:"structure",required:["inputName","roleArn"],members:{inputName:{},messageId:{},roleArn:{}}},iotSiteWise:{type:"structure",required:["putAssetPropertyValueEntries","roleArn"],members:{putAssetPropertyValueEntries:{type:"list",member:{type:"structure",required:["propertyValues"],members:{entryId:{},assetId:{},propertyId:{},propertyAlias:{},propertyValues:{type:"list",member:{type:"structure",required:["value","timestamp"],members:{value:{type:"structure",members:{stringValue:{},integerValue:{},doubleValue:{},booleanValue:{}}},timestamp:{type:"structure",required:["timeInSeconds"],members:{timeInSeconds:{},offsetInNanos:{}}},quality:{}}}}}}},roleArn:{}}},stepFunctions:{type:"structure",required:["stateMachineName","roleArn"],members:{executionNamePrefix:{},stateMachineName:{},roleArn:{}}},http:{type:"structure",required:["url"],members:{url:{},confirmationUrl:{},headers:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},auth:{type:"structure",members:{sigv4:{type:"structure",required:["signingRegion","serviceName","roleArn"],members:{signingRegion:{},serviceName:{},roleArn:{}}}}}}}}},Sah:{type:"structure",members:{arn:{},status:{},statusReason:{},httpUrlProperties:{type:"structure",members:{confirmationUrl:{}}}}},Sc6:{type:"map",key:{},value:{type:"structure",members:{targetArn:{},roleArn:{},enabled:{type:"boolean"}}}},Sc9:{type:"map",key:{},value:{type:"structure",members:{enabled:{type:"boolean"}}}},Sce:{type:"structure",members:{findingId:{},taskId:{},checkName:{},taskStartTime:{type:"timestamp"},findingTime:{type:"timestamp"},severity:{},nonCompliantResource:{type:"structure",members:{resourceType:{},resourceIdentifier:{shape:"Scj"},additionalInfo:{shape:"Sco"}}},relatedResources:{type:"list",member:{type:"structure",members:{resourceType:{},resourceIdentifier:{shape:"Scj"},additionalInfo:{shape:"Sco"}}}},reasonForNonCompliance:{},reasonForNonComplianceCode:{}}},Scj:{type:"structure",members:{deviceCertificateId:{},caCertificateId:{},cognitoIdentityPoolId:{},clientId:{},policyVersionIdentifier:{type:"structure",members:{policyName:{},policyVersionId:{}}},account:{},iamRoleArn:{},roleAliasArn:{}}},Sco:{type:"map",key:{},value:{}},Sd3:{type:"structure",members:{auditTaskId:{},findingIds:{type:"list",member:{}},auditCheckToReasonCodeFilter:{type:"map",key:{},value:{type:"list",member:{}}}}},Sd7:{type:"map",key:{},value:{type:"list",member:{}}},Sdx:{type:"structure",members:{authorizerName:{},authorizerArn:{},authorizerFunctionArn:{},tokenKeyName:{},tokenSigningPublicKeys:{shape:"S1n"},status:{},creationDate:{type:"timestamp"},lastModifiedDate:{type:"timestamp"},signingDisabled:{type:"boolean"}}},Sea:{type:"structure",members:{notBefore:{type:"timestamp"},notAfter:{type:"timestamp"}}},Seb:{type:"structure",members:{templateBody:{},roleArn:{}}},Sez:{type:"map",key:{},value:{type:"structure",members:{Enabled:{type:"boolean"}}}},Sgg:{type:"list",member:{shape:"Sgh"}},Sgh:{type:"structure",members:{groupName:{},groupArn:{}}},Sgt:{type:"structure",members:{deprecated:{type:"boolean"},deprecationDate:{type:"timestamp"},creationDate:{type:"timestamp"}}},Shd:{type:"structure",required:["thingIndexingMode"],members:{thingIndexingMode:{},thingConnectivityIndexingMode:{},managedFields:{shape:"Shg"},customFields:{shape:"Shg"}}},Shg:{type:"list",member:{type:"structure",members:{name:{},type:{}}}},Shk:{type:"structure",required:["thingGroupIndexingMode"],members:{thingGroupIndexingMode:{},managedFields:{shape:"Shg"},customFields:{shape:"Shg"}}},Sj7:{type:"list",member:{type:"structure",members:{policyName:{},policyArn:{}}}},Sk4:{type:"list",member:{type:"structure",members:{certificateArn:{},certificateId:{},status:{},creationDate:{type:"timestamp"}}}},Skl:{type:"structure",members:{status:{},queuedAt:{type:"timestamp"},startedAt:{type:"timestamp"},lastUpdatedAt:{type:"timestamp"},executionNumber:{type:"long"}}},Sla:{type:"list",member:{}},Slk:{type:"list",member:{}},Sm3:{type:"structure",required:["name","arn"],members:{name:{},arn:{}}},Sm8:{type:"structure",required:["arn"],members:{arn:{}}},Snu:{type:"structure",required:["targetType"],members:{targetType:{},targetName:{}}},Som:{type:"list",member:{}},Spc:{type:"structure",members:{actionType:{},resources:{type:"list",member:{}}}},Spg:{type:"list",member:{}},Srj:{type:"list",member:{}}},paginators:{}};AWS.apiLoader.services.iotdata={},AWS.IotData=AWS.Service.defineService("iotdata",["2015-05-28"]),_xamzrequire=function e(t,r,i){function n(a,d){if(!r[a]){if(!t[a]){var u="function"==typeof _xamzrequire&&_xamzrequire;if(!d&&u)return u(a,!0);if(o)return o(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var p=r[a]={exports:{}};t[a][0].call(p.exports,function(e){var r=t[a][1][e];return n(r||e)},p,p.exports,e,t,r,i)}return r[a].exports}for(var o="function"==typeof _xamzrequire&&_xamzrequire,a=0;a=0){throw i.util.error(new Error,{name:"InvalidEndpoint",message:"AWS.IotData requires an explicit `endpoint' configuration option."})}},setupRequestListeners:function(e){e.addListener("validateResponse",this.validateResponseBody),n.indexOf(e.operation)>-1&&e.addListener("extractData",i.util.convertPayloadToString)},validateResponseBody:function(e){var t=e.httpResponse.body.toString()||"{}",r=t.trim();r&&"{"===r.charAt(0)||(e.httpResponse.body="")}})},{"../core":39}]},{},[97]);AWS.apiLoader.services.iotdata["2015-05-28"]={version:"2.0",metadata:{uid:"iot-data-2015-05-28",apiVersion:"2015-05-28",endpointPrefix:"data.iot",protocol:"rest-json",serviceFullName:"AWS IoT Data Plane",serviceId:"IoT Data Plane",signatureVersion:"v4",signingName:"iotdata"},operations:{DeleteThingShadow:{http:{method:"DELETE",requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",required:["payload"],members:{payload:{type:"blob"}},payload:"payload"}},GetThingShadow:{http:{method:"GET",requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName"],members:{thingName:{location:"uri",locationName:"thingName"}}},output:{type:"structure",members:{payload:{type:"blob"}},payload:"payload"}},Publish:{http:{requestUri:"/topics/{topic}"},input:{type:"structure",required:["topic"],members:{topic:{location:"uri",locationName:"topic"},qos:{location:"querystring",locationName:"qos",type:"integer"},payload:{type:"blob"}},payload:"payload"}},UpdateThingShadow:{http:{requestUri:"/things/{thingName}/shadow"},input:{type:"structure",required:["thingName","payload"],members:{thingName:{location:"uri",locationName:"thingName"},payload:{type:"blob"}},payload:"payload"},output:{type:"structure",members:{payload:{type:"blob"}},payload:"payload"}}},shapes:{}};AWS.apiLoader.services.kinesis={},AWS.Kinesis=AWS.Service.defineService("kinesis",["2013-12-02"]);AWS.apiLoader.services.kinesis["2013-12-02"]={version:"2.0",metadata:{apiVersion:"2013-12-02",endpointPrefix:"kinesis",jsonVersion:"1.1",protocol:"json",protocolSettings:{h2:"eventstream"},serviceAbbreviation:"Kinesis",serviceFullName:"Amazon Kinesis",serviceId:"Kinesis",signatureVersion:"v4",targetPrefix:"Kinesis_20131202",uid:"kinesis-2013-12-02"},operations:{AddTagsToStream:{input:{type:"structure",required:["StreamName","Tags"],members:{StreamName:{},Tags:{type:"map",key:{},value:{}}}}},CreateStream:{input:{type:"structure",required:["StreamName","ShardCount"],members:{StreamName:{},ShardCount:{type:"integer"}}}},DecreaseStreamRetentionPeriod:{input:{type:"structure",required:["StreamName","RetentionPeriodHours"],members:{StreamName:{},RetentionPeriodHours:{type:"integer"}}}},DeleteStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{},EnforceConsumerDeletion:{type:"boolean"}}}},DeregisterStreamConsumer:{input:{type:"structure",members:{StreamARN:{},ConsumerName:{},ConsumerARN:{}}}},DescribeLimits:{input:{type:"structure",members:{}},output:{type:"structure",required:["ShardLimit","OpenShardCount"],members:{ShardLimit:{type:"integer"},OpenShardCount:{type:"integer"}}}},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","StreamCreationTimestamp","EnhancedMonitoring"],members:{StreamName:{},StreamARN:{},StreamStatus:{},Shards:{shape:"Sp"},HasMoreShards:{type:"boolean"},RetentionPeriodHours:{type:"integer"},StreamCreationTimestamp:{type:"timestamp"},EnhancedMonitoring:{shape:"Sw"},EncryptionType:{},KeyId:{}}}}}},DescribeStreamConsumer:{input:{type:"structure",members:{StreamARN:{},ConsumerName:{},ConsumerARN:{}}},output:{type:"structure",required:["ConsumerDescription"],members:{ConsumerDescription:{type:"structure",required:["ConsumerName","ConsumerARN","ConsumerStatus","ConsumerCreationTimestamp","StreamARN"],members:{ConsumerName:{},ConsumerARN:{},ConsumerStatus:{},ConsumerCreationTimestamp:{type:"timestamp"},StreamARN:{}}}}}},DescribeStreamSummary:{input:{type:"structure",required:["StreamName"],members:{StreamName:{}}},output:{type:"structure",required:["StreamDescriptionSummary"],members:{StreamDescriptionSummary:{type:"structure",required:["StreamName","StreamARN","StreamStatus","RetentionPeriodHours","StreamCreationTimestamp","EnhancedMonitoring","OpenShardCount"],members:{StreamName:{},StreamARN:{},StreamStatus:{},RetentionPeriodHours:{type:"integer"},StreamCreationTimestamp:{type:"timestamp"},EnhancedMonitoring:{shape:"Sw"},EncryptionType:{},KeyId:{},OpenShardCount:{type:"integer"},ConsumerCount:{type:"integer"}}}}}},DisableEnhancedMonitoring:{input:{type:"structure",required:["StreamName","ShardLevelMetrics"],members:{StreamName:{},ShardLevelMetrics:{shape:"Sy"}}},output:{shape:"S1b"}},EnableEnhancedMonitoring:{input:{type:"structure",required:["StreamName","ShardLevelMetrics"],members:{StreamName:{},ShardLevelMetrics:{shape:"Sy"}}},output:{shape:"S1b"}},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:{},EncryptionType:{}}}},NextShardIterator:{},MillisBehindLatest:{type:"long"}}}},GetShardIterator:{input:{type:"structure",required:["StreamName","ShardId","ShardIteratorType"],members:{StreamName:{},ShardId:{},ShardIteratorType:{},StartingSequenceNumber:{},Timestamp:{type:"timestamp"}}},output:{type:"structure",members:{ShardIterator:{}}}},IncreaseStreamRetentionPeriod:{input:{type:"structure",required:["StreamName","RetentionPeriodHours"],members:{StreamName:{},RetentionPeriodHours:{type:"integer"}}}},ListShards:{input:{type:"structure",members:{StreamName:{},NextToken:{},ExclusiveStartShardId:{},MaxResults:{type:"integer"},StreamCreationTimestamp:{type:"timestamp"}}},output:{type:"structure",members:{Shards:{shape:"Sp"},NextToken:{}}}},ListStreamConsumers:{input:{type:"structure",required:["StreamARN"],members:{StreamARN:{},NextToken:{},MaxResults:{type:"integer"},StreamCreationTimestamp:{type:"timestamp"}}},output:{type:"structure",members:{Consumers:{type:"list",member:{shape:"S1y"}},NextToken:{}}}},ListStreams:{input:{type:"structure",members:{Limit:{type:"integer"},ExclusiveStartStreamName:{}}},output:{type:"structure",required:["StreamNames","HasMoreStreams"],members:{StreamNames:{type:"list",member:{}},HasMoreStreams:{type:"boolean"}}}},ListTagsForStream:{input:{type:"structure",required:["StreamName"],members:{StreamName:{},ExclusiveStartTagKey:{},Limit:{type:"integer"}}},output:{type:"structure",required:["Tags","HasMoreTags"],members:{Tags:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},HasMoreTags:{type:"boolean"}}}},MergeShards:{input:{type:"structure",required:["StreamName","ShardToMerge","AdjacentShardToMerge"],members:{StreamName:{},ShardToMerge:{},AdjacentShardToMerge:{}}}},PutRecord:{input:{type:"structure",required:["StreamName","Data","PartitionKey"],members:{StreamName:{},Data:{type:"blob"},PartitionKey:{},ExplicitHashKey:{},SequenceNumberForOrdering:{}}},output:{type:"structure",required:["ShardId","SequenceNumber"],members:{ShardId:{},SequenceNumber:{},EncryptionType:{}}}},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:{}}}},EncryptionType:{}}}},RegisterStreamConsumer:{input:{type:"structure",required:["StreamARN","ConsumerName"],members:{StreamARN:{},ConsumerName:{}}},output:{type:"structure",required:["Consumer"],members:{Consumer:{shape:"S1y"}}}},RemoveTagsFromStream:{input:{type:"structure",required:["StreamName","TagKeys"],members:{StreamName:{},TagKeys:{type:"list",member:{}}}}},SplitShard:{input:{type:"structure",required:["StreamName","ShardToSplit","NewStartingHashKey"],members:{StreamName:{},ShardToSplit:{},NewStartingHashKey:{}}}},StartStreamEncryption:{input:{type:"structure",required:["StreamName","EncryptionType","KeyId"],members:{StreamName:{},EncryptionType:{},KeyId:{}}}},StopStreamEncryption:{input:{type:"structure",required:["StreamName","EncryptionType","KeyId"],members:{StreamName:{},EncryptionType:{},KeyId:{}}}},UpdateShardCount:{input:{type:"structure",required:["StreamName","TargetShardCount","ScalingType"],members:{StreamName:{},TargetShardCount:{type:"integer"},ScalingType:{}}},output:{type:"structure",members:{StreamName:{},CurrentShardCount:{type:"integer"},TargetShardCount:{type:"integer"}}}}},shapes:{Sp:{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:{}}}}}},Sw:{type:"list",member:{type:"structure",members:{ShardLevelMetrics:{shape:"Sy"}}}},Sy:{type:"list",member:{}},S1b:{type:"structure",members:{StreamName:{},CurrentShardLevelMetrics:{shape:"Sy"},DesiredShardLevelMetrics:{shape:"Sy"}}},S1y:{type:"structure",required:["ConsumerName","ConsumerARN","ConsumerStatus","ConsumerCreationTimestamp"],members:{ConsumerName:{},ConsumerARN:{},ConsumerStatus:{},ConsumerCreationTimestamp:{type:"timestamp"}}}},paginators:{DescribeStream:{input_token:"ExclusiveStartShardId",limit_key:"Limit",more_results:"StreamDescription.HasMoreShards",output_token:"StreamDescription.Shards[-1].ShardId",result_key:"StreamDescription.Shards"},ListStreamConsumers:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},ListStreams:{input_token:"ExclusiveStartStreamName",limit_key:"Limit",more_results:"HasMoreStreams",output_token:"StreamNames[-1]",result_key:"StreamNames"}},waiters:{StreamExists:{delay:10,operation:"DescribeStream",maxAttempts:18,acceptors:[{expected:"ACTIVE",matcher:"path",state:"success",argument:"StreamDescription.StreamStatus"}]},StreamNotExists:{delay:10,operation:"DescribeStream",maxAttempts:18,acceptors:[{expected:"ResourceNotFoundException",matcher:"error",state:"success"}]}}};AWS.apiLoader.services.kms={},AWS.KMS=AWS.Service.defineService("kms",["2014-11-01"]);AWS.apiLoader.services.kms["2014-11-01"]={version:"2.0",metadata:{apiVersion:"2014-11-01",endpointPrefix:"kms",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"KMS",serviceFullName:"AWS Key Management Service",serviceId:"KMS",signatureVersion:"v4",targetPrefix:"TrentService",uid:"kms-2014-11-01"},operations:{CancelKeyDeletion:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},output:{type:"structure",members:{KeyId:{}}}},ConnectCustomKeyStore:{input:{type:"structure",required:["CustomKeyStoreId"],members:{CustomKeyStoreId:{}}},output:{type:"structure",members:{}}},CreateAlias:{input:{type:"structure",required:["AliasName","TargetKeyId"],members:{AliasName:{},TargetKeyId:{}}}},CreateCustomKeyStore:{input:{type:"structure",required:["CustomKeyStoreName","CloudHsmClusterId","TrustAnchorCertificate","KeyStorePassword"],members:{CustomKeyStoreName:{},CloudHsmClusterId:{},TrustAnchorCertificate:{},KeyStorePassword:{shape:"Sd"}}},output:{type:"structure",members:{CustomKeyStoreId:{}}}},CreateGrant:{input:{type:"structure",required:["KeyId","GranteePrincipal","Operations"],members:{KeyId:{},GranteePrincipal:{},RetiringPrincipal:{},Operations:{shape:"Sh"},Constraints:{shape:"Sj"},GrantTokens:{shape:"Sn"},Name:{}}},output:{type:"structure",members:{GrantToken:{},GrantId:{}}}},CreateKey:{input:{type:"structure",members:{Policy:{},Description:{},KeyUsage:{},CustomerMasterKeySpec:{},Origin:{},CustomKeyStoreId:{},BypassPolicyLockoutSafetyCheck:{type:"boolean"},Tags:{shape:"Sz"}}},output:{type:"structure",members:{KeyMetadata:{shape:"S14"}}}},Decrypt:{input:{type:"structure",required:["CiphertextBlob"],members:{CiphertextBlob:{type:"blob"},EncryptionContext:{shape:"Sk"},GrantTokens:{shape:"Sn"},KeyId:{},EncryptionAlgorithm:{}}},output:{type:"structure",members:{KeyId:{},Plaintext:{shape:"S1i"},EncryptionAlgorithm:{}}}},DeleteAlias:{input:{type:"structure",required:["AliasName"],members:{AliasName:{}}}},DeleteCustomKeyStore:{input:{type:"structure",required:["CustomKeyStoreId"],members:{CustomKeyStoreId:{}}},output:{type:"structure",members:{}}},DeleteImportedKeyMaterial:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}}},DescribeCustomKeyStores:{input:{type:"structure",members:{CustomKeyStoreId:{},CustomKeyStoreName:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{CustomKeyStores:{type:"list",member:{type:"structure",members:{CustomKeyStoreId:{},CustomKeyStoreName:{},CloudHsmClusterId:{},TrustAnchorCertificate:{},ConnectionState:{},ConnectionErrorCode:{},CreationDate:{type:"timestamp"}}}},NextMarker:{},Truncated:{type:"boolean"}}}},DescribeKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{KeyMetadata:{shape:"S14"}}}},DisableKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}}},DisableKeyRotation:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}}},DisconnectCustomKeyStore:{input:{type:"structure",required:["CustomKeyStoreId"],members:{CustomKeyStoreId:{}}},output:{type:"structure",members:{}}},EnableKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}}},EnableKeyRotation:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}}},Encrypt:{input:{type:"structure",required:["KeyId","Plaintext"],members:{KeyId:{},Plaintext:{shape:"S1i"},EncryptionContext:{shape:"Sk"},GrantTokens:{shape:"Sn"},EncryptionAlgorithm:{}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},KeyId:{},EncryptionAlgorithm:{}}}},GenerateDataKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},EncryptionContext:{shape:"Sk"},NumberOfBytes:{type:"integer"},KeySpec:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},Plaintext:{shape:"S1i"},KeyId:{}}}},GenerateDataKeyPair:{input:{type:"structure",required:["KeyId","KeyPairSpec"],members:{EncryptionContext:{shape:"Sk"},KeyId:{},KeyPairSpec:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{PrivateKeyCiphertextBlob:{type:"blob"},PrivateKeyPlaintext:{shape:"S1i"},PublicKey:{type:"blob"},KeyId:{},KeyPairSpec:{}}}},GenerateDataKeyPairWithoutPlaintext:{input:{type:"structure",required:["KeyId","KeyPairSpec"],members:{EncryptionContext:{shape:"Sk"},KeyId:{},KeyPairSpec:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{PrivateKeyCiphertextBlob:{type:"blob"},PublicKey:{type:"blob"},KeyId:{},KeyPairSpec:{}}}},GenerateDataKeyWithoutPlaintext:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},EncryptionContext:{shape:"Sk"},KeySpec:{},NumberOfBytes:{type:"integer"},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},KeyId:{}}}},GenerateRandom:{input:{type:"structure",members:{NumberOfBytes:{type:"integer"},CustomKeyStoreId:{}}},output:{type:"structure",members:{Plaintext:{shape:"S1i"}}}},GetKeyPolicy:{input:{type:"structure",required:["KeyId","PolicyName"],members:{KeyId:{},PolicyName:{}}},output:{type:"structure",members:{Policy:{}}}},GetKeyRotationStatus:{input:{type:"structure",required:["KeyId"],members:{KeyId:{}}},output:{type:"structure",members:{KeyRotationEnabled:{type:"boolean"}}}},GetParametersForImport:{input:{type:"structure",required:["KeyId","WrappingAlgorithm","WrappingKeySpec"],members:{KeyId:{},WrappingAlgorithm:{},WrappingKeySpec:{}}},output:{type:"structure",members:{KeyId:{},ImportToken:{type:"blob"},PublicKey:{shape:"S1i"},ParametersValidTo:{type:"timestamp"}}}},GetPublicKey:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{KeyId:{},PublicKey:{type:"blob"},CustomerMasterKeySpec:{},KeyUsage:{},EncryptionAlgorithms:{shape:"S1b"},SigningAlgorithms:{shape:"S1d"}}}},ImportKeyMaterial:{input:{type:"structure",required:["KeyId","ImportToken","EncryptedKeyMaterial"],members:{KeyId:{},ImportToken:{type:"blob"},EncryptedKeyMaterial:{type:"blob"},ValidTo:{type:"timestamp"},ExpirationModel:{}}},output:{type:"structure",members:{}}},ListAliases:{input:{type:"structure",members:{KeyId:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Aliases:{type:"list",member:{type:"structure",members:{AliasName:{},AliasArn:{},TargetKeyId:{}}}},NextMarker:{},Truncated:{type:"boolean"}}}},ListGrants:{input:{type:"structure",required:["KeyId"],members:{Limit:{type:"integer"},Marker:{},KeyId:{}}},output:{shape:"S31"}},ListKeyPolicies:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{PolicyNames:{type:"list",member:{}},NextMarker:{},Truncated:{type:"boolean"}}}},ListKeys:{input:{type:"structure",members:{Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Keys:{type:"list",member:{type:"structure",members:{KeyId:{},KeyArn:{}}}},NextMarker:{},Truncated:{type:"boolean"}}}},ListResourceTags:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Tags:{shape:"Sz"},NextMarker:{},Truncated:{type:"boolean"}}}},ListRetirableGrants:{input:{type:"structure",required:["RetiringPrincipal"],members:{Limit:{type:"integer"},Marker:{},RetiringPrincipal:{}}},output:{shape:"S31"}},PutKeyPolicy:{input:{type:"structure",required:["KeyId","PolicyName","Policy"],members:{KeyId:{},PolicyName:{},Policy:{},BypassPolicyLockoutSafetyCheck:{type:"boolean"}}}},ReEncrypt:{input:{type:"structure",required:["CiphertextBlob","DestinationKeyId"],members:{CiphertextBlob:{type:"blob"},SourceEncryptionContext:{shape:"Sk"},SourceKeyId:{},DestinationKeyId:{},DestinationEncryptionContext:{shape:"Sk"},SourceEncryptionAlgorithm:{},DestinationEncryptionAlgorithm:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{CiphertextBlob:{type:"blob"},SourceKeyId:{},KeyId:{},SourceEncryptionAlgorithm:{},DestinationEncryptionAlgorithm:{}}}},RetireGrant:{input:{type:"structure",members:{GrantToken:{},KeyId:{},GrantId:{}}}},RevokeGrant:{input:{type:"structure",required:["KeyId","GrantId"],members:{KeyId:{},GrantId:{}}}},ScheduleKeyDeletion:{input:{type:"structure",required:["KeyId"],members:{KeyId:{},PendingWindowInDays:{type:"integer"}}},output:{type:"structure",members:{KeyId:{},DeletionDate:{type:"timestamp"}}}},Sign:{input:{type:"structure",required:["KeyId","Message","SigningAlgorithm"],members:{KeyId:{},Message:{shape:"S1i"},MessageType:{},GrantTokens:{shape:"Sn"},SigningAlgorithm:{}}},output:{type:"structure",members:{KeyId:{},Signature:{type:"blob"},SigningAlgorithm:{}}}},TagResource:{input:{type:"structure",required:["KeyId","Tags"],members:{KeyId:{},Tags:{shape:"Sz"}}}},UntagResource:{input:{type:"structure",required:["KeyId","TagKeys"],members:{KeyId:{},TagKeys:{type:"list",member:{}}}}},UpdateAlias:{input:{type:"structure",required:["AliasName","TargetKeyId"],members:{AliasName:{},TargetKeyId:{}}}},UpdateCustomKeyStore:{input:{type:"structure",required:["CustomKeyStoreId"],members:{CustomKeyStoreId:{},NewCustomKeyStoreName:{},KeyStorePassword:{shape:"Sd"},CloudHsmClusterId:{}}},output:{type:"structure",members:{}}},UpdateKeyDescription:{input:{type:"structure",required:["KeyId","Description"],members:{KeyId:{},Description:{}}}},Verify:{input:{type:"structure",required:["KeyId","Message","Signature","SigningAlgorithm"],members:{KeyId:{},Message:{shape:"S1i"},MessageType:{},Signature:{type:"blob"},SigningAlgorithm:{},GrantTokens:{shape:"Sn"}}},output:{type:"structure",members:{KeyId:{},SignatureValid:{type:"boolean"},SigningAlgorithm:{}}}}},shapes:{Sd:{type:"string",sensitive:!0},Sh:{type:"list",member:{}},Sj:{type:"structure",members:{EncryptionContextSubset:{shape:"Sk"},EncryptionContextEquals:{shape:"Sk"}}},Sk:{type:"map",key:{},value:{}},Sn:{type:"list",member:{}},Sz:{type:"list",member:{type:"structure",required:["TagKey","TagValue"],members:{TagKey:{},TagValue:{}}}},S14:{type:"structure",required:["KeyId"],members:{AWSAccountId:{},KeyId:{},Arn:{},CreationDate:{type:"timestamp"},Enabled:{type:"boolean"},Description:{},KeyUsage:{},KeyState:{},DeletionDate:{type:"timestamp"},ValidTo:{type:"timestamp"},Origin:{},CustomKeyStoreId:{},CloudHsmClusterId:{},ExpirationModel:{},KeyManager:{},CustomerMasterKeySpec:{},EncryptionAlgorithms:{shape:"S1b"},SigningAlgorithms:{shape:"S1d"}}},S1b:{type:"list",member:{}},S1d:{type:"list",member:{}},S1i:{type:"blob",sensitive:!0},S31:{type:"structure",members:{Grants:{type:"list",member:{type:"structure",members:{KeyId:{},GrantId:{},Name:{},CreationDate:{type:"timestamp"},GranteePrincipal:{},RetiringPrincipal:{},IssuingAccount:{},Operations:{shape:"Sh"},Constraints:{shape:"Sj"}}}},NextMarker:{},Truncated:{type:"boolean"}}}},paginators:{ListAliases:{input_token:"Marker",limit_key:"Limit",more_results:"Truncated",output_token:"NextMarker",result_key:"Aliases"},ListGrants:{input_token:"Marker",limit_key:"Limit",more_results:"Truncated",output_token:"NextMarker",result_key:"Grants"},ListKeyPolicies:{input_token:"Marker",limit_key:"Limit",more_results:"Truncated",output_token:"NextMarker",result_key:"PolicyNames"},ListKeys:{input_token:"Marker",limit_key:"Limit",more_results:"Truncated",output_token:"NextMarker",result_key:"Keys"}}};AWS.apiLoader.services.lambda={},AWS.Lambda=AWS.Service.defineService("lambda",["2014-11-11","2015-03-31"]),_xamzrequire=function e(r,t,a){function n(i,u){if(!t[i]){if(!r[i]){var c="function"==typeof _xamzrequire&&_xamzrequire;if(!u&&c)return c(i,!0);if(o)return o(i,!0);var f=new Error("Cannot find module '"+i+"'");throw f.code="MODULE_NOT_FOUND",f}var d=t[i]={exports:{}};r[i][0].call(d.exports,function(e){var t=r[i][1][e];return n(t||e)},d,d.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof _xamzrequire&&_xamzrequire,i=0;i1&&(e="Multiple configuration errors:\n"+t.join("\n")),e)throw r.util.error(new Error,{name:"InvalidEndpoint",message:e})},shouldDisableBodySigning:function(e){var t=this.getSignerClass();return!0===this.config.s3DisableBodySigning&&t===r.Signers.V4&&"https:"===e.httpRequest.endpoint.protocol},setupRequestListeners:function(e){if(e.addListener("validate",this.validateScheme),e.addListener("validate",this.validateBucketName,!0),e.addListener("validate",this.optInUsEast1RegionalEndpoint,!0),e.removeListener("validate",r.EventListeners.Core.VALIDATE_REGION),e.addListener("build",this.addContentType),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("build",this.populateURI),e.addListener("afterBuild",this.addExpect100Continue),e.addListener("extractError",this.extractError),e.addListener("extractData",r.util.hoistPayloadMember),e.addListener("extractData",this.extractData),e.addListener("beforePresign",this.prepareSignedUrl),this.shouldDisableBodySigning(e)&&(e.removeListener("afterBuild",r.EventListeners.Core.COMPUTE_SHA256),e.addListener("afterBuild",this.disableBodySigning)),this.isAccessPointApplicable(e))return e.removeListener("validate",this.validateBucketName),e.addListener("validate",this.validateAccessPointArn,!0),e.addListener("validate",this.validateArnRegion),e.removeListener("build",this.populateURI),void e.addListener("build",this.populateUriFromAccessPoint);e.addListener("validate",this.validateBucketEndpoint),e.addListener("validate",this.correctBucketRegionFromCache),e.onAsync("extractError",this.requestBucketRegion),r.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError)},validateScheme:function(e){var t=e.params,i=e.httpRequest.endpoint.protocol;if((t.SSECustomerKey||t.CopySourceSSECustomerKey)&&"https:"!==i)throw r.util.error(new Error,{code:"ConfigError",message:"Cannot send SSE keys over HTTP. Set 'sslEnabled'to 'true' in your configuration"})},validateBucketEndpoint:function(e){if(!e.params.Bucket&&e.service.config.s3BucketEndpoint){throw r.util.error(new Error,{code:"ConfigError",message:"Cannot send requests to root API with `s3BucketEndpoint` set."})}},isAccessPointApplicable:function(e){var t=(e.service.api.operations[e.operation]||{}).input||{},i=t.members||{};return!("createBucket"===e.operation||!e.params.Bucket||!i.Bucket)&&!!r.util.ARN.validate(e.params.Bucket)},validateAccessPointArn:function(e){var t=r.util.ARN.parse(e.params.Bucket);e._parsedAccessPointArn=t;var t=e._parsedAccessPointArn;if("s3"!==t.service)throw r.util.error(new Error,{code:"InvalidAccessPointARN",message:"expect 's3' in access point ARN service component"});if(!t.region)throw r.util.error(new Error,{code:"InvalidAccessPointARN",message:"Access point ARN region is empty"});if(0!==t.resource.indexOf("accesspoint:")&&0!==t.resource.indexOf("accesspoint/"))throw r.util.error(new Error,{code:"InvalidAccessPointARN",message:"Access point ARN resource should begin with 'accesspoint/'"});var i=t.resource["accesspoint".length];if(2!==t.resource.split(i).length)throw r.util.error(new Error,{code:"InvalidAccessPointARN",message:"Too many resource parameters in access point ARN"});var n=t.resource.split(i)[1],o=n+"-"+t.accountId;if(!e.service.isDnsCompatible(o)||o.match(/\./))throw r.util.error(new Error,{code:"InvalidAccessPointARN",message:"Access point ARN is not DNS compatible. Got "+n});e._parsedAccessPointArn.accessPoint=n},validateArnRegion:function(e){var t=e.service.loadUseArnRegionConfig(e),i=e._parsedAccessPointArn.region,n=e.service.config.region;if(n.indexOf("fips")>=0||i.indexOf("fips")>=0)throw r.util.error(new Error,{code:"InvalidConfiguration",message:"Access point endpoint is not compatible with FIPS region"});if(!t&&i!==n)throw r.util.error(new Error,{code:"InvalidConfiguration",message:"Configured region conflicts with access point region"});if(t&&o.getEndpointSuffix(i)!==o.getEndpointSuffix(n))throw r.util.error(new Error,{code:"InvalidConfiguration",message:"Configured region and access point region not in same partition"});if(e.service.config.useAccelerateEndpoint)throw r.util.error(new Error,{code:"InvalidConfiguration",message:"useAccelerateEndpoint config is not supported with access point ARN"})},loadUseArnRegionConfig:function(e){var i="AWS_S3_USE_ARN_REGION",n="s3_use_arn_region",o=!0,a=e.service._originalConfig||{};if(void 0!==e.service.config.s3UseArnRegion)return e.service.config.s3UseArnRegion;if(void 0!==a.s3UseArnRegion)o=!0===a.s3UseArnRegion;else if(r.util.isNode())if(t.env[i]){var s=t.env[i].trim().toLowerCase();if(["false","true"].indexOf(s)<0)throw r.util.error(new Error,{code:"InvalidConfiguration",message:i+" only accepts true or false. Got "+t.env[i],retryable:!1});o="true"===s}else{var u={},c={};try{u=r.util.getProfilesFromSharedConfig(r.util.iniLoader),c=u[t.env.AWS_PROFILE||r.util.defaultProfile]}catch(e){}if(c[n]){if(["false","true"].indexOf(c[n].trim().toLowerCase())<0)throw r.util.error(new Error,{code:"InvalidConfiguration",message:n+" only accepts true or false. Got "+c[n],retryable:!1});o="true"===c[n].trim().toLowerCase()}}return e.service.config.s3UseArnRegion=o,o},validateBucketName:function(e){var t=e.service,i=t.getSignatureVersion(e),n=e.params&&e.params.Bucket,o=e.params&&e.params.Key,a=n&&n.indexOf("/");if(n&&a>=0)if("string"==typeof o&&a>0){e.params=r.util.copy(e.params);var s=n.substr(a+1)||"";e.params.Key=s+"/"+o,e.params.Bucket=n.substr(0,a)}else if("v4"===i){var u="Bucket names cannot contain forward slashes. Bucket: "+n;throw r.util.error(new Error,{code:"InvalidBucket",message:u})}},isValidAccelerateOperation:function(e){return-1===["createBucket","deleteBucket","listBuckets"].indexOf(e)},optInUsEast1RegionalEndpoint:function(e){var t=e.service,r=t.config;if(r.s3UsEast1RegionalEndpoint=n(t._originalConfig,{env:"AWS_S3_US_EAST_1_REGIONAL_ENDPOINT",sharedConfig:"s3_us_east_1_regional_endpoint",clientConfig:"s3UsEast1RegionalEndpoint"}),!(t._originalConfig||{}).endpoint&&"us-east-1"===e.httpRequest.region&&"regional"===r.s3UsEast1RegionalEndpoint&&e.httpRequest.endpoint.hostname.indexOf("s3.amazonaws.com")>=0){var i=r.endpoint.indexOf(".amazonaws.com");regionalEndpoint=r.endpoint.substring(0,i)+".us-east-1"+r.endpoint.substring(i),e.httpRequest.updateEndpoint(regionalEndpoint)}},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,i=e.service,n=t.endpoint;if(r&&!i.pathStyleBucketName(r)){i.config.useAccelerateEndpoint&&i.isValidAccelerateOperation(e.operation)?i.config.useDualstack?n.hostname=r+".s3-accelerate.dualstack.amazonaws.com":n.hostname=r+".s3-accelerate.amazonaws.com":i.config.s3BucketEndpoint||(n.hostname=r+"."+n.hostname);var o=n.port;n.host=80!==o&&443!==o?n.hostname+":"+n.port:n.hostname,t.virtualHostedBucket=r,i.removeVirtualHostedBucketFromPath(e)}},removeVirtualHostedBucketFromPath:function(e){var t=e.httpRequest,i=t.virtualHostedBucket;if(i&&t.path){if(e.params&&e.params.Key){var n="/"+r.util.uriEscapePath(e.params.Key);if(0===t.path.indexOf(n)&&(t.path.length===n.length||"?"===t.path[n.length]))return}t.path=t.path.replace(new RegExp("/"+i),""),"/"!==t.path[0]&&(t.path="/"+t.path)}},populateUriFromAccessPoint:function(e){if(e.service._originalConfig.endpoint)throw r.util.error(new Error,{code:"InvalidConfiguration",message:"Custom endpoint is not compatible with access point ARN"});if(e.service.config.s3ForcePathStyle)throw r.util.error(new Error,{code:"InvalidConfiguration",message:"Cannot construct path-style endpoint with access point"});var t=e._parsedAccessPointArn,i=e.service.config.useDualstack?"s3-accesspoint.dualstack":"s3-accesspoint",n=e.httpRequest.endpoint,a=o.getEndpointSuffix(t.region),s=e.service.config.s3UseArnRegion;n.hostname=[t.accessPoint+"-"+t.accountId,i,s?t.region:e.service.config.region,a].join("."),n.host=n.hostname;var u=r.util.uriEscape(e.params.Bucket),c=e.httpRequest.path;e.httpRequest.path=c.replace(new RegExp("/"+u),""),"/"!==e.httpRequest.path[0]&&(e.httpRequest.path="/"+e.httpRequest.path),e.httpRequest.region=t.region},addExpect100Continue:function(e){var t=e.httpRequest.headers["Content-Length"];r.util.isNode()&&(t>=1048576||e.params.Body instanceof r.util.stream.Stream)&&(e.httpRequest.headers.Expect="100-continue")},addContentType:function(e){var t=e.httpRequest;if("GET"===t.method||"HEAD"===t.method)return void delete t.headers["Content-Type"];t.headers["Content-Type"]||(t.headers["Content-Type"]="application/octet-stream");var i=t.headers["Content-Type"];if(r.util.isBrowser())if("string"!=typeof t.body||i.match(/;\s*charset=/)){var n=function(e,t,r){return t+r.toUpperCase()};t.headers["Content-Type"]=i.replace(/(;\s*charset=)(.+)$/,n)}else{t.headers["Content-Type"]+="; charset=UTF-8"}},computableChecksumOperations:{putBucketCors:!0,putBucketLifecycle:!0,putBucketLifecycleConfiguration:!0,putBucketTagging:!0,deleteObjects:!0,putBucketReplication:!0,putObjectLegalHold:!0,putObjectRetention:!0,putObjectLockConfiguration:!0},willComputeChecksums:function(e){if(this.computableChecksumOperations[e.operation])return!0;if(!this.config.computeChecksums)return!1;if(!r.util.Buffer.isBuffer(e.httpRequest.body)&&"string"!=typeof e.httpRequest.body)return!1;var t=e.service.api.operations[e.operation].input.members;return!(!e.service.shouldDisableBodySigning(e)||Object.prototype.hasOwnProperty.call(e.httpRequest.headers,"presigned-expires")||!t.ContentMD5||e.params.ContentMD5)||!(e.service.getSignerClass(e)===r.Signers.V4&&t.ContentMD5&&!t.ContentMD5.required)&&(!(!t.ContentMD5||e.params.ContentMD5)||void 0)},computeContentMd5:function(e){if(e.service.willComputeChecksums(e)){var t=r.util.crypto.md5(e.httpRequest.body,"base64");e.httpRequest.headers["Content-MD5"]=t}},computeSseCustomerKeyMd5:function(e){var t={SSECustomerKey:"x-amz-server-side-encryption-customer-key-MD5",CopySourceSSECustomerKey:"x-amz-copy-source-server-side-encryption-customer-key-MD5"};r.util.each(t,function(t,i){if(e.params[t]){var n=r.util.crypto.md5(e.params[t],"base64");e.httpRequest.headers[i]=n}})},pathStyleBucketName:function(e){return!!this.config.s3ForcePathStyle||!this.config.s3BucketEndpoint&&(!this.isDnsCompatible(e)||!(!this.config.sslEnabled||!e.match(/\./)))},isDnsCompatible:function(e){var t=e,r=new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/),i=new RegExp(/(\d+\.){3}\d+/),n=new RegExp(/\.\./);return!(!t.match(r)||t.match(i)||t.match(n))},successfulResponse:function(e){var t=e.request,r=e.httpResponse;return(!a[t.operation]||!r.body.toString().match(""))&&r.statusCode<300},retryableError:function(e,t){return!(!a[t.operation]||200!==e.statusCode)||(!t._requestRegionForBucket||!t.service.bucketRegionCache[t._requestRegionForBucket])&&(!(!e||"RequestTimeout"!==e.code)||(e&&-1!=s.indexOf(e.code)&&e.region&&e.region!=t.httpRequest.region?(t.httpRequest.region=e.region,301===e.statusCode&&t.service.updateReqBucketRegion(t),!0):r.Service.prototype.retryableError.call(this,e,t)))},updateReqBucketRegion:function(e,t){var i=e.httpRequest;if("string"==typeof t&&t.length&&(i.region=t),i.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)){var n=e.service,o=n.config,a=o.s3BucketEndpoint;a&&delete o.s3BucketEndpoint;var s=r.util.copy(o);delete s.endpoint,s.region=i.region,i.endpoint=new r.S3(s).endpoint,n.populateURI(e),o.s3BucketEndpoint=a,i.headers.Host=i.endpoint.host,"validate"===e._asm.currentState&&(e.removeListener("build",n.populateURI),e.addListener("build",n.removeVirtualHostedBucketFromPath))}},extractData:function(e){var t=e.request;if("getBucketLocation"===t.operation){var r=e.httpResponse.body.toString().match(/>(.+)<\/Location/);delete e.data._,e.data.LocationConstraint=r?r[1]:""}var i=t.params.Bucket||null;if("deleteBucket"!==t.operation||"string"!=typeof i||e.error){var n=e.httpResponse.headers||{},o=n["x-amz-bucket-region"]||null;if(!o&&"createBucket"===t.operation&&!e.error){var a=t.params.CreateBucketConfiguration;o=a?"EU"===a.LocationConstraint?"eu-west-1":a.LocationConstraint:"us-east-1"}o&&i&&o!==t.service.bucketRegionCache[i]&&(t.service.bucketRegionCache[i]=o)}else t.service.clearBucketRegionCache(i);t.service.extractRequestIds(e)},extractError:function(e){var t={304:"NotModified",403:"Forbidden",400:"BadRequest",404:"NotFound"},i=e.request,n=e.httpResponse.statusCode,o=e.httpResponse.body||"",a=e.httpResponse.headers||{},s=a["x-amz-bucket-region"]||null,u=i.params.Bucket||null,c=i.service.bucketRegionCache;s&&u&&s!==c[u]&&(c[u]=s);var l;if(t[n]&&0===o.length)u&&!s&&(l=c[u]||null)!==i.httpRequest.region&&(s=l),e.error=r.util.error(new Error,{code:t[n],message:null,region:s});else{var p=(new r.XML.Parser).parse(o.toString());p.Region&&!s?(s=p.Region,u&&s!==c[u]&&(c[u]=s)):!u||s||p.Region||(l=c[u]||null)!==i.httpRequest.region&&(s=l),e.error=r.util.error(new Error,{code:p.Code||n,message:p.Message||null,region:s})}i.service.extractRequestIds(e)},requestBucketRegion:function(e,t){var i=e.error,n=e.request,o=n.params.Bucket||null;if(!i||!o||i.region||"listObjects"===n.operation||r.util.isNode()&&"headBucket"===n.operation||400===i.statusCode&&"headObject"!==n.operation||-1===s.indexOf(i.code))return t();var a=r.util.isNode()?"headBucket":"listObjects",u={Bucket:o};"listObjects"===a&&(u.MaxKeys=0);var c=n.service[a](u);c._requestRegionForBucket=o,c.send(function(){var e=n.service.bucketRegionCache[o]||null;i.region=e,t()})},reqRegionForNetworkingError:function(e,t){if(!r.util.isBrowser())return t();var i=e.error,n=e.request,o=n.params.Bucket;if(!i||"NetworkingError"!==i.code||!o||"us-east-1"===n.httpRequest.region)return t();var a=n.service,s=a.bucketRegionCache,u=s[o]||null;if(u&&u!==n.httpRequest.region)a.updateReqBucketRegion(n,u),t();else if(a.isDnsCompatible(o))if(n.httpRequest.virtualHostedBucket){var c=a.listObjects({Bucket:o,MaxKeys:0});a.updateReqBucketRegion(c,"us-east-1"),c._requestRegionForBucket=o,c.send(function(){var e=a.bucketRegionCache[o]||null;e&&e!==n.httpRequest.region&&a.updateReqBucketRegion(n,e),t()})}else t();else a.updateReqBucketRegion(n,"us-east-1"),"us-east-1"!==s[o]&&(s[o]="us-east-1"),t()},bucketRegionCache:{},clearBucketRegionCache:function(e){var t=this.bucketRegionCache;e?"string"==typeof e&&(e=[e]):e=Object.keys(t);for(var r=0;r=1&&t.doneParts===t.numParts&&t.finishMultiPart()}))}r&&t.fillQueue.call(t)},abort:function(){var e=this;!0===e.isDoneChunking&&1===e.totalPartNumbers&&e.singlePart?e.singlePart.abort():e.cleanup(i.util.error(new Error("Request aborted by user"),{code:"RequestAbortedError",retryable:!1}))},validateBody:function(){var e=this;if(e.body=e.service.config.params.Body,"string"==typeof e.body)e.body=i.util.buffer.toBuffer(e.body);else if(!e.body)throw new Error("params.Body is required");e.sliceFn=i.util.arraySliceFn(e.body)},bindServiceObject:function(e){e=e||{};var t=this;if(t.service){var r=t.service,n=i.util.copy(r.config);n.signatureVersion=r.getSignatureVersion(),t.service=new r.constructor.__super__(n),t.service.config.params=i.util.merge(t.service.config.params||{},e)}else t.service=new i.S3({params:e})},adjustTotalBytes:function(){var e=this;try{e.totalBytes=n(e.body)}catch(e){}if(e.totalBytes){var t=Math.ceil(e.totalBytes/e.maxTotalParts);t>e.partSize&&(e.partSize=t)}else e.totalBytes=void 0},isDoneChunking:!1,partPos:0,totalChunkedBytes:0,totalUploadedBytes:0,totalBytes:void 0,numParts:0,totalPartNumbers:0,activeParts:0,doneParts:0,parts:null,completeInfo:null,failed:!1,multipartReq:null,partBuffers:null,partBufferLength:0,fillBuffer:function(){var e=this,t=n(e.body);if(0===t)return e.isDoneChunking=!0,e.numParts=1,void e.nextChunk(e.body);for(;e.activeParts=e.queueSize)){var t=e.body.read(e.partSize-e.partBufferLength)||e.body.read();if(t&&(e.partBuffers.push(t),e.partBufferLength+=t.length,e.totalChunkedBytes+=t.length),e.partBufferLength>=e.partSize){var r=1===e.partBuffers.length?e.partBuffers[0]:o.concat(e.partBuffers);if(e.partBuffers=[],e.partBufferLength=0,r.length>e.partSize){var i=r.slice(e.partSize);e.partBuffers.push(i),e.partBufferLength+=i.length,r=r.slice(0,e.partSize)}e.nextChunk(r)}e.isDoneChunking&&!e.isDoneSending&&(r=1===e.partBuffers.length?e.partBuffers[0]:o.concat(e.partBuffers),e.partBuffers=[],e.partBufferLength=0,e.totalBytes=e.totalChunkedBytes,e.isDoneSending=!0,(0===e.numParts||r.length>0)&&(e.numParts++,e.nextChunk(r))),e.body.read(0)}},nextChunk:function(e){var t=this;if(t.failed)return null;var r=++t.totalPartNumbers;if(t.isDoneChunking&&1===r){var n={Body:e};this.tags&&(n.Tagging=this.getTaggingHeader());var o=t.service.putObject(n);return o._managedUpload=t,o.on("httpUploadProgress",t.progress).send(t.finishSinglePart),t.singlePart=o,null}if(t.service.config.params.ContentMD5){var a=i.util.error(new Error("The Content-MD5 you specified is invalid for multi-part uploads."),{code:"InvalidDigest",retryable:!1});return t.cleanup(a),null}if(t.completeInfo[r]&&null!==t.completeInfo[r].ETag)return null;t.activeParts++,t.service.config.params.UploadId?t.uploadPart(e,r):t.multipartReq?t.queueChunks(e,r):(t.multipartReq=t.service.createMultipartUpload(),t.multipartReq.on("success",function(e){t.service.config.params.UploadId=e.data.UploadId,t.multipartReq=null}),t.queueChunks(e,r),t.multipartReq.on("error",function(e){t.cleanup(e)}),t.multipartReq.send())},getTaggingHeader:function(){for(var e=[],t=0;t0&&s.throwInvalidChecksumError(e,i,"Invalid messages: "+a.join(", "))}},verifyReceiveMessageChecksum:function(e){if(e.data){var s=this.service,r=[];t.util.arrayEach(e.data.Messages,function(e){var t=e.MD5OfBody,a=e.Body;s.isChecksumValid(t,a)||r.push(e.MessageId)}),r.length>0&&s.throwInvalidChecksumError(e,r,"Invalid messages: "+r.join(", "))}},throwInvalidChecksumError:function(e,s,r){e.error=t.util.error(new Error,{retryable:!0,code:"InvalidChecksum",messageIds:s,message:e.request.operation+" returned an invalid MD5 response. "+r})},isChecksumValid:function(e,s){return this.calculateChecksum(s)===e},calculateChecksum:function(e){return t.util.crypto.md5(e,"hex")},buildEndpoint:function(e){var s=e.httpRequest.params.QueueUrl;if(s){e.httpRequest.endpoint=new t.Endpoint(s);var r=e.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);r&&(e.httpRequest.region=r[1])}}})},{"../core":39}]},{},[105]);AWS.apiLoader.services.sqs["2012-11-05"]={version:"2.0",metadata:{apiVersion:"2012-11-05",endpointPrefix:"sqs",protocol:"query",serviceAbbreviation:"Amazon SQS",serviceFullName:"Amazon Simple Queue Service",serviceId:"SQS",signatureVersion:"v4",uid:"sqs-2012-11-05",xmlNamespace:"http://queue.amazonaws.com/doc/2012-11-05/"},operations:{AddPermission:{input:{type:"structure",required:["QueueUrl","Label","AWSAccountIds","Actions"],members:{QueueUrl:{},Label:{},AWSAccountIds:{type:"list",member:{locationName:"AWSAccountId"},flattened:!0},Actions:{type:"list",member:{locationName:"ActionName"},flattened:!0}}}},ChangeMessageVisibility:{input:{type:"structure",required:["QueueUrl","ReceiptHandle","VisibilityTimeout"],members:{QueueUrl:{},ReceiptHandle:{},VisibilityTimeout:{type:"integer"}}}},ChangeMessageVisibilityBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"ChangeMessageVisibilityBatchRequestEntry",type:"structure",required:["Id","ReceiptHandle"],members:{Id:{},ReceiptHandle:{},VisibilityTimeout:{type:"integer"}}},flattened:!0}}},output:{resultWrapper:"ChangeMessageVisibilityBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"ChangeMessageVisibilityBatchResultEntry",type:"structure",required:["Id"],members:{Id:{}}},flattened:!0},Failed:{shape:"Sd"}}}},CreateQueue:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},Attributes:{shape:"Sh",locationName:"Attribute"},tags:{shape:"Sj",locationName:"Tag"}}},output:{resultWrapper:"CreateQueueResult",type:"structure",members:{QueueUrl:{}}}},DeleteMessage:{input:{type:"structure",required:["QueueUrl","ReceiptHandle"],members:{QueueUrl:{},ReceiptHandle:{}}}},DeleteMessageBatch:{input:{type:"structure",required:["QueueUrl","Entries"],members:{QueueUrl:{},Entries:{type:"list",member:{locationName:"DeleteMessageBatchRequestEntry",type:"structure",required:["Id","ReceiptHandle"],members:{Id:{},ReceiptHandle:{}}},flattened:!0}}},output:{resultWrapper:"DeleteMessageBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"DeleteMessageBatchResultEntry",type:"structure",required:["Id"],members:{Id:{}}},flattened:!0},Failed:{shape:"Sd"}}}},DeleteQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}}},GetQueueAttributes:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"Sw"}}},output:{resultWrapper:"GetQueueAttributesResult",type:"structure",members:{Attributes:{shape:"Sh",locationName:"Attribute"}}}},GetQueueUrl:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},QueueOwnerAWSAccountId:{}}},output:{resultWrapper:"GetQueueUrlResult",type:"structure",members:{QueueUrl:{}}}},ListDeadLetterSourceQueues:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListDeadLetterSourceQueuesResult",type:"structure",required:["queueUrls"],members:{queueUrls:{shape:"S12"}}}},ListQueueTags:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListQueueTagsResult",type:"structure",members:{Tags:{shape:"Sj",locationName:"Tag"}}}},ListQueues:{input:{type:"structure",members:{QueueNamePrefix:{}}},output:{resultWrapper:"ListQueuesResult",type:"structure",members:{QueueUrls:{shape:"S12"}}}},PurgeQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}}},ReceiveMessage:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"Sw"},MessageAttributeNames:{type:"list",member:{locationName:"MessageAttributeName"},flattened:!0},MaxNumberOfMessages:{type:"integer"},VisibilityTimeout:{type:"integer"},WaitTimeSeconds:{type:"integer"},ReceiveRequestAttemptId:{}}},output:{resultWrapper:"ReceiveMessageResult",type:"structure",members:{Messages:{type:"list",member:{locationName:"Message",type:"structure",members:{MessageId:{},ReceiptHandle:{},MD5OfBody:{},Body:{},Attributes:{locationName:"Attribute",type:"map",key:{locationName:"Name"},value:{locationName:"Value"},flattened:!0},MD5OfMessageAttributes:{},MessageAttributes:{shape:"S1g",locationName:"MessageAttribute"}}},flattened:!0}}}},RemovePermission:{input:{type:"structure",required:["QueueUrl","Label"],members:{QueueUrl:{},Label:{}}}},SendMessage:{input:{type:"structure",required:["QueueUrl","MessageBody"],members:{QueueUrl:{},MessageBody:{},DelaySeconds:{type:"integer"},MessageAttributes:{shape:"S1g",locationName:"MessageAttribute"},MessageSystemAttributes:{shape:"S1n",locationName:"MessageSystemAttribute"},MessageDeduplicationId:{},MessageGroupId:{}}},output:{resultWrapper:"SendMessageResult",type:"structure",members:{MD5OfMessageBody:{},MD5OfMessageAttributes:{},MD5OfMessageSystemAttributes:{},MessageId:{},SequenceNumber:{}}}},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:"S1g",locationName:"MessageAttribute"},MessageSystemAttributes:{shape:"S1n",locationName:"MessageSystemAttribute"},MessageDeduplicationId:{},MessageGroupId:{}}},flattened:!0}}},output:{resultWrapper:"SendMessageBatchResult",type:"structure",required:["Successful","Failed"],members:{Successful:{type:"list",member:{locationName:"SendMessageBatchResultEntry",type:"structure",required:["Id","MessageId","MD5OfMessageBody"],members:{Id:{},MessageId:{},MD5OfMessageBody:{},MD5OfMessageAttributes:{},MD5OfMessageSystemAttributes:{},SequenceNumber:{}}},flattened:!0},Failed:{shape:"Sd"}}}},SetQueueAttributes:{input:{type:"structure",required:["QueueUrl","Attributes"],members:{QueueUrl:{},Attributes:{shape:"Sh",locationName:"Attribute"}}}},TagQueue:{input:{type:"structure",required:["QueueUrl","Tags"],members:{QueueUrl:{},Tags:{shape:"Sj"}}}},UntagQueue:{input:{type:"structure",required:["QueueUrl","TagKeys"],members:{QueueUrl:{},TagKeys:{type:"list",member:{locationName:"TagKey"},flattened:!0}}}}},shapes:{Sd:{type:"list",member:{locationName:"BatchResultErrorEntry",type:"structure",required:["Id","SenderFault","Code"],members:{Id:{},SenderFault:{type:"boolean"},Code:{},Message:{}}},flattened:!0},Sh:{type:"map",key:{locationName:"Name"},value:{locationName:"Value"},flattened:!0,locationName:"Attribute"},Sj:{type:"map",key:{locationName:"Key"},value:{locationName:"Value"},flattened:!0,locationName:"Tag"},Sw:{type:"list",member:{locationName:"AttributeName"},flattened:!0},S12:{type:"list",member:{locationName:"QueueUrl"},flattened:!0},S1g:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{StringValue:{},BinaryValue:{type:"blob"},StringListValues:{shape:"S1j",flattened:!0,locationName:"StringListValue"},BinaryListValues:{shape:"S1k",flattened:!0,locationName:"BinaryListValue"},DataType:{}}},flattened:!0},S1j:{type:"list",member:{locationName:"StringListValue"}},S1k:{type:"list",member:{locationName:"BinaryListValue",type:"blob"}},S1n:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{StringValue:{},BinaryValue:{type:"blob"},StringListValues:{shape:"S1j",flattened:!0,locationName:"StringListValue"},BinaryListValues:{shape:"S1k",flattened:!0,locationName:"BinaryListValue"},DataType:{}}},flattened:!0}},paginators:{ListQueues:{result_key:"QueueUrls"}}};AWS.apiLoader.services.ssm={},AWS.SSM=AWS.Service.defineService("ssm",["2014-11-06"]);AWS.apiLoader.services.ssm["2014-11-06"]={version:"2.0",metadata:{apiVersion:"2014-11-06",endpointPrefix:"ssm",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon SSM",serviceFullName:"Amazon Simple Systems Manager (SSM)",serviceId:"SSM",signatureVersion:"v4",targetPrefix:"AmazonSSM",uid:"ssm-2014-11-06"},operations:{AddTagsToResource:{input:{type:"structure",required:["ResourceType","ResourceId","Tags"],members:{ResourceType:{},ResourceId:{},Tags:{shape:"S4"}}},output:{type:"structure",members:{}}},CancelCommand:{input:{type:"structure",required:["CommandId"],members:{CommandId:{},InstanceIds:{shape:"Sb"}}},output:{type:"structure",members:{}}},CancelMaintenanceWindowExecution:{input:{type:"structure",required:["WindowExecutionId"],members:{WindowExecutionId:{}}},output:{type:"structure",members:{WindowExecutionId:{}}}},CreateActivation:{input:{type:"structure",required:["IamRole"],members:{Description:{},DefaultInstanceName:{},IamRole:{},RegistrationLimit:{type:"integer"},ExpirationDate:{type:"timestamp"},Tags:{shape:"S4"}}},output:{type:"structure",members:{ActivationId:{},ActivationCode:{}}}},CreateAssociation:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{},InstanceId:{},Parameters:{shape:"St"},Targets:{shape:"Sx"},ScheduleExpression:{},OutputLocation:{shape:"S13"},AssociationName:{},AutomationTargetParameterName:{},MaxErrors:{},MaxConcurrency:{},ComplianceSeverity:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S1e"}}}},CreateAssociationBatch:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{shape:"S1s"}}}},output:{type:"structure",members:{Successful:{type:"list",member:{shape:"S1e"}},Failed:{type:"list",member:{type:"structure",members:{Entry:{shape:"S1s"},Message:{},Fault:{}}}}}}},CreateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Requires:{shape:"S21"},Attachments:{shape:"S23"},Name:{},VersionName:{},DocumentType:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"}}},output:{type:"structure",members:{DocumentDescription:{shape:"S2f"}}}},CreateMaintenanceWindow:{input:{type:"structure",required:["Name","Schedule","Duration","Cutoff","AllowUnassociatedTargets"],members:{Name:{},Description:{shape:"S31"},StartDate:{},EndDate:{},Schedule:{},ScheduleTimezone:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},ClientToken:{idempotencyToken:!0},Tags:{shape:"S4"}}},output:{type:"structure",members:{WindowId:{}}}},CreateOpsItem:{input:{type:"structure",required:["Description","Source","Title"],members:{Description:{},OperationalData:{shape:"S3d"},Notifications:{shape:"S3i"},Priority:{type:"integer"},RelatedOpsItems:{shape:"S3m"},Source:{},Title:{},Tags:{shape:"S4"},Category:{},Severity:{}}},output:{type:"structure",members:{OpsItemId:{}}}},CreatePatchBaseline:{input:{type:"structure",required:["Name"],members:{OperatingSystem:{},Name:{},GlobalFilters:{shape:"S3w"},ApprovalRules:{shape:"S42"},ApprovedPatches:{shape:"S48"},ApprovedPatchesComplianceLevel:{},ApprovedPatchesEnableNonSecurity:{type:"boolean"},RejectedPatches:{shape:"S48"},RejectedPatchesAction:{},Description:{},Sources:{shape:"S4c"},ClientToken:{idempotencyToken:!0},Tags:{shape:"S4"}}},output:{type:"structure",members:{BaselineId:{}}}},CreateResourceDataSync:{input:{type:"structure",required:["SyncName"],members:{SyncName:{},S3Destination:{shape:"S4m"},SyncType:{},SyncSource:{shape:"S4t"}}},output:{type:"structure",members:{}}},DeleteActivation:{input:{type:"structure",required:["ActivationId"],members:{ActivationId:{}}},output:{type:"structure",members:{}}},DeleteAssociation:{input:{type:"structure",members:{Name:{},InstanceId:{},AssociationId:{}}},output:{type:"structure",members:{}}},DeleteDocument:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{},VersionName:{},Force:{type:"boolean"}}},output:{type:"structure",members:{}}},DeleteInventory:{input:{type:"structure",required:["TypeName"],members:{TypeName:{},SchemaDeleteOption:{},DryRun:{type:"boolean"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{DeletionId:{},TypeName:{},DeletionSummary:{shape:"S5g"}}}},DeleteMaintenanceWindow:{input:{type:"structure",required:["WindowId"],members:{WindowId:{}}},output:{type:"structure",members:{WindowId:{}}}},DeleteParameter:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DeleteParameters:{input:{type:"structure",required:["Names"],members:{Names:{shape:"S5t"}}},output:{type:"structure",members:{DeletedParameters:{shape:"S5t"},InvalidParameters:{shape:"S5t"}}}},DeletePatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{}}}},DeleteResourceDataSync:{input:{type:"structure",required:["SyncName"],members:{SyncName:{},SyncType:{}}},output:{type:"structure",members:{}}},DeregisterManagedInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}},output:{type:"structure",members:{}}},DeregisterPatchBaselineForPatchGroup:{input:{type:"structure",required:["BaselineId","PatchGroup"],members:{BaselineId:{},PatchGroup:{}}},output:{type:"structure",members:{BaselineId:{},PatchGroup:{}}}},DeregisterTargetFromMaintenanceWindow:{input:{type:"structure",required:["WindowId","WindowTargetId"],members:{WindowId:{},WindowTargetId:{},Safe:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTargetId:{}}}},DeregisterTaskFromMaintenanceWindow:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{}}}},DescribeActivations:{input:{type:"structure",members:{Filters:{type:"list",member:{type:"structure",members:{FilterKey:{},FilterValues:{type:"list",member:{}}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ActivationList:{type:"list",member:{type:"structure",members:{ActivationId:{},Description:{},DefaultInstanceName:{},IamRole:{},RegistrationLimit:{type:"integer"},RegistrationsCount:{type:"integer"},ExpirationDate:{type:"timestamp"},Expired:{type:"boolean"},CreatedDate:{type:"timestamp"},Tags:{shape:"S4"}}}},NextToken:{}}}},DescribeAssociation:{input:{type:"structure",members:{Name:{},InstanceId:{},AssociationId:{},AssociationVersion:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S1e"}}}},DescribeAssociationExecutionTargets:{input:{type:"structure",required:["AssociationId","ExecutionId"],members:{AssociationId:{},ExecutionId:{},Filters:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AssociationExecutionTargets:{type:"list",member:{type:"structure",members:{AssociationId:{},AssociationVersion:{},ExecutionId:{},ResourceId:{},ResourceType:{},Status:{},DetailedStatus:{},LastExecutionDate:{type:"timestamp"},OutputSource:{type:"structure",members:{OutputSourceId:{},OutputSourceType:{}}}}}},NextToken:{}}}},DescribeAssociationExecutions:{input:{type:"structure",required:["AssociationId"],members:{AssociationId:{},Filters:{type:"list",member:{type:"structure",required:["Key","Value","Type"],members:{Key:{},Value:{},Type:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AssociationExecutions:{type:"list",member:{type:"structure",members:{AssociationId:{},AssociationVersion:{},ExecutionId:{},Status:{},DetailedStatus:{},CreatedTime:{type:"timestamp"},LastExecutionDate:{type:"timestamp"},ResourceCountByStatus:{}}}},NextToken:{}}}},DescribeAutomationExecutions:{input:{type:"structure",members:{Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AutomationExecutionMetadataList:{type:"list",member:{type:"structure",members:{AutomationExecutionId:{},DocumentName:{},DocumentVersion:{},AutomationExecutionStatus:{},ExecutionStartTime:{type:"timestamp"},ExecutionEndTime:{type:"timestamp"},ExecutedBy:{},LogFile:{},Outputs:{shape:"S7o"},Mode:{},ParentAutomationExecutionId:{},CurrentStepName:{},CurrentAction:{},FailureMessage:{},TargetParameterName:{},Targets:{shape:"Sx"},TargetMaps:{shape:"S7t"},ResolvedTargets:{shape:"S7y"},MaxConcurrency:{},MaxErrors:{},Target:{},AutomationType:{}}}},NextToken:{}}}},DescribeAutomationStepExecutions:{input:{type:"structure",required:["AutomationExecutionId"],members:{AutomationExecutionId:{},Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}},NextToken:{},MaxResults:{type:"integer"},ReverseOrder:{type:"boolean"}}},output:{type:"structure",members:{StepExecutions:{shape:"S88"},NextToken:{}}}},DescribeAvailablePatches:{input:{type:"structure",members:{Filters:{shape:"S8o"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Patches:{type:"list",member:{shape:"S8w"}},NextToken:{}}}},DescribeDocument:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{},VersionName:{}}},output:{type:"structure",members:{Document:{shape:"S2f"}}}},DescribeDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{}}},output:{type:"structure",members:{AccountIds:{shape:"S9d"},AccountSharingInfoList:{type:"list",member:{type:"structure",members:{AccountId:{},SharedDocumentVersion:{}}}}}}},DescribeEffectiveInstanceAssociations:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Associations:{type:"list",member:{type:"structure",members:{AssociationId:{},InstanceId:{},Content:{},AssociationVersion:{}}}},NextToken:{}}}},DescribeEffectivePatchesForPatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{EffectivePatches:{type:"list",member:{type:"structure",members:{Patch:{shape:"S8w"},PatchStatus:{type:"structure",members:{DeploymentStatus:{},ComplianceLevel:{},ApprovalDate:{type:"timestamp"}}}}}},NextToken:{}}}},DescribeInstanceAssociationsStatus:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{InstanceAssociationStatusInfos:{type:"list",member:{type:"structure",members:{AssociationId:{},Name:{},DocumentVersion:{},AssociationVersion:{},InstanceId:{},ExecutionDate:{type:"timestamp"},Status:{},DetailedStatus:{},ExecutionSummary:{},ErrorCode:{},OutputUrl:{type:"structure",members:{S3OutputUrl:{type:"structure",members:{OutputUrl:{}}}}},AssociationName:{}}}},NextToken:{}}}},DescribeInstanceInformation:{input:{type:"structure",members:{InstanceInformationFilterList:{type:"list",member:{type:"structure",required:["key","valueSet"],members:{key:{},valueSet:{shape:"Sa6"}}}},Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{shape:"Sa6"}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{InstanceInformationList:{type:"list",member:{type:"structure",members:{InstanceId:{},PingStatus:{},LastPingDateTime:{type:"timestamp"},AgentVersion:{},IsLatestVersion:{type:"boolean"},PlatformType:{},PlatformName:{},PlatformVersion:{},ActivationId:{},IamRole:{},RegistrationDate:{type:"timestamp"},ResourceType:{},Name:{},IPAddress:{},ComputerName:{},AssociationStatus:{},LastAssociationExecutionDate:{type:"timestamp"},LastSuccessfulAssociationExecutionDate:{type:"timestamp"},AssociationOverview:{type:"structure",members:{DetailedStatus:{},InstanceAssociationStatusAggregatedCount:{type:"map",key:{},value:{type:"integer"}}}}}}},NextToken:{}}}},DescribeInstancePatchStates:{input:{type:"structure",required:["InstanceIds"],members:{InstanceIds:{shape:"Sb"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{InstancePatchStates:{type:"list",member:{shape:"Saq"}},NextToken:{}}}},DescribeInstancePatchStatesForPatchGroup:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{},Filters:{type:"list",member:{type:"structure",required:["Key","Values","Type"],members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{InstancePatchStates:{type:"list",member:{shape:"Saq"}},NextToken:{}}}},DescribeInstancePatches:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},Filters:{shape:"S8o"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Patches:{type:"list",member:{type:"structure",required:["Title","KBId","Classification","Severity","State","InstalledTime"],members:{Title:{},KBId:{},Classification:{},Severity:{},State:{},InstalledTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeInventoryDeletions:{input:{type:"structure",members:{DeletionId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{InventoryDeletions:{type:"list",member:{type:"structure",members:{DeletionId:{},TypeName:{},DeletionStartTime:{type:"timestamp"},LastStatus:{},LastStatusMessage:{},DeletionSummary:{shape:"S5g"},LastStatusUpdateTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeMaintenanceWindowExecutionTaskInvocations:{input:{type:"structure",required:["WindowExecutionId","TaskId"],members:{WindowExecutionId:{},TaskId:{},Filters:{shape:"Sbt"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowExecutionTaskInvocationIdentities:{type:"list",member:{type:"structure",members:{WindowExecutionId:{},TaskExecutionId:{},InvocationId:{},ExecutionId:{},TaskType:{},Parameters:{shape:"Sc5"},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},OwnerInformation:{shape:"Sat"},WindowTargetId:{}}}},NextToken:{}}}},DescribeMaintenanceWindowExecutionTasks:{input:{type:"structure",required:["WindowExecutionId"],members:{WindowExecutionId:{},Filters:{shape:"Sbt"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowExecutionTaskIdentities:{type:"list",member:{type:"structure",members:{WindowExecutionId:{},TaskExecutionId:{},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},TaskArn:{},TaskType:{}}}},NextToken:{}}}},DescribeMaintenanceWindowExecutions:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"Sbt"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowExecutions:{type:"list",member:{type:"structure",members:{WindowId:{},WindowExecutionId:{},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}}},NextToken:{}}}},DescribeMaintenanceWindowSchedule:{input:{type:"structure",members:{WindowId:{},Targets:{shape:"Sx"},ResourceType:{},Filters:{shape:"S8o"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{ScheduledWindowExecutions:{type:"list",member:{type:"structure",members:{WindowId:{},Name:{},ExecutionTime:{}}}},NextToken:{}}}},DescribeMaintenanceWindowTargets:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"Sbt"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Targets:{type:"list",member:{type:"structure",members:{WindowId:{},WindowTargetId:{},ResourceType:{},Targets:{shape:"Sx"},OwnerInformation:{shape:"Sat"},Name:{},Description:{shape:"S31"}}}},NextToken:{}}}},DescribeMaintenanceWindowTasks:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"Sbt"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tasks:{type:"list",member:{type:"structure",members:{WindowId:{},WindowTaskId:{},TaskArn:{},Type:{},Targets:{shape:"Sx"},TaskParameters:{shape:"Scw"},Priority:{type:"integer"},LoggingInfo:{shape:"Sd2"},ServiceRoleArn:{},MaxConcurrency:{},MaxErrors:{},Name:{},Description:{shape:"S31"}}}},NextToken:{}}}},DescribeMaintenanceWindows:{input:{type:"structure",members:{Filters:{shape:"Sbt"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowIdentities:{type:"list",member:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S31"},Enabled:{type:"boolean"},Duration:{type:"integer"},Cutoff:{type:"integer"},Schedule:{},ScheduleTimezone:{},EndDate:{},StartDate:{},NextExecutionTime:{}}}},NextToken:{}}}},DescribeMaintenanceWindowsForTarget:{input:{type:"structure",required:["Targets","ResourceType"],members:{Targets:{shape:"Sx"},ResourceType:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowIdentities:{type:"list",member:{type:"structure",members:{WindowId:{},Name:{}}}},NextToken:{}}}},DescribeOpsItems:{input:{type:"structure",members:{OpsItemFilters:{type:"list",member:{type:"structure",required:["Key","Values","Operator"],members:{Key:{},Values:{type:"list",member:{}},Operator:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{NextToken:{},OpsItemSummaries:{type:"list",member:{type:"structure",members:{CreatedBy:{},CreatedTime:{type:"timestamp"},LastModifiedBy:{},LastModifiedTime:{type:"timestamp"},Priority:{type:"integer"},Source:{},Status:{},OpsItemId:{},Title:{},OperationalData:{shape:"S3d"},Category:{},Severity:{}}}}}}},DescribeParameters:{input:{type:"structure",members:{Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}},ParameterFilters:{shape:"Sdw"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Parameters:{type:"list",member:{type:"structure",members:{Name:{},Type:{},KeyId:{},LastModifiedDate:{type:"timestamp"},LastModifiedUser:{},Description:{},AllowedPattern:{},Version:{type:"long"},Tier:{},Policies:{shape:"Seb"}}}},NextToken:{}}}},DescribePatchBaselines:{input:{type:"structure",members:{Filters:{shape:"S8o"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{BaselineIdentities:{type:"list",member:{shape:"Seg"}},NextToken:{}}}},DescribePatchGroupState:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{}}},output:{type:"structure",members:{Instances:{type:"integer"},InstancesWithInstalledPatches:{type:"integer"},InstancesWithInstalledOtherPatches:{type:"integer"},InstancesWithInstalledPendingRebootPatches:{type:"integer"},InstancesWithInstalledRejectedPatches:{type:"integer"},InstancesWithMissingPatches:{type:"integer"},InstancesWithFailedPatches:{type:"integer"},InstancesWithNotApplicablePatches:{type:"integer"},InstancesWithUnreportedNotApplicablePatches:{type:"integer"}}}},DescribePatchGroups:{input:{type:"structure",members:{MaxResults:{type:"integer"},Filters:{shape:"S8o"},NextToken:{}}},output:{type:"structure",members:{Mappings:{type:"list",member:{type:"structure",members:{PatchGroup:{},BaselineIdentity:{shape:"Seg"}}}},NextToken:{}}}},DescribePatchProperties:{input:{type:"structure",required:["OperatingSystem","Property"],members:{OperatingSystem:{},Property:{},PatchSet:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Properties:{type:"list",member:{type:"map",key:{},value:{}}},NextToken:{}}}},DescribeSessions:{input:{type:"structure",required:["State"],members:{State:{},MaxResults:{type:"integer"},NextToken:{},Filters:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}}}},output:{type:"structure",members:{Sessions:{type:"list",member:{type:"structure",members:{SessionId:{},Target:{},Status:{},StartDate:{type:"timestamp"},EndDate:{type:"timestamp"},DocumentName:{},Owner:{},Details:{},OutputUrl:{type:"structure",members:{S3OutputUrl:{},CloudWatchOutputUrl:{}}}}}},NextToken:{}}}},GetAutomationExecution:{input:{type:"structure",required:["AutomationExecutionId"],members:{AutomationExecutionId:{}}},output:{type:"structure",members:{AutomationExecution:{type:"structure",members:{AutomationExecutionId:{},DocumentName:{},DocumentVersion:{},ExecutionStartTime:{type:"timestamp"},ExecutionEndTime:{type:"timestamp"},AutomationExecutionStatus:{},StepExecutions:{shape:"S88"},StepExecutionsTruncated:{type:"boolean"},Parameters:{shape:"S7o"},Outputs:{shape:"S7o"},FailureMessage:{},Mode:{},ParentAutomationExecutionId:{},ExecutedBy:{},CurrentStepName:{},CurrentAction:{},TargetParameterName:{},Targets:{shape:"Sx"},TargetMaps:{shape:"S7t"},ResolvedTargets:{shape:"S7y"},MaxConcurrency:{},MaxErrors:{},Target:{},TargetLocations:{shape:"Sfi"},ProgressCounters:{type:"structure",members:{TotalSteps:{type:"integer"},SuccessSteps:{type:"integer"},FailedSteps:{type:"integer"},CancelledSteps:{type:"integer"},TimedOutSteps:{type:"integer"}}}}}}}},GetCalendarState:{input:{type:"structure",required:["CalendarNames"],members:{CalendarNames:{type:"list",member:{}},AtTime:{}}},output:{type:"structure",members:{State:{},AtTime:{},NextTransitionTime:{}}}},GetCommandInvocation:{input:{type:"structure",required:["CommandId","InstanceId"],members:{CommandId:{},InstanceId:{},PluginName:{}}},output:{type:"structure",members:{CommandId:{},InstanceId:{},Comment:{},DocumentName:{},DocumentVersion:{},PluginName:{},ResponseCode:{type:"integer"},ExecutionStartDateTime:{},ExecutionElapsedTime:{},ExecutionEndDateTime:{},Status:{},StatusDetails:{},StandardOutputContent:{},StandardOutputUrl:{},StandardErrorContent:{},StandardErrorUrl:{},CloudWatchOutputConfig:{shape:"Sg0"}}}},GetConnectionStatus:{input:{type:"structure",required:["Target"],members:{Target:{}}},output:{type:"structure",members:{Target:{},Status:{}}}},GetDefaultPatchBaseline:{input:{type:"structure",members:{OperatingSystem:{}}},output:{type:"structure",members:{BaselineId:{},OperatingSystem:{}}}},GetDeployablePatchSnapshotForInstance:{input:{type:"structure",required:["InstanceId","SnapshotId"],members:{InstanceId:{},SnapshotId:{}}},output:{type:"structure",members:{InstanceId:{},SnapshotId:{},SnapshotDownloadUrl:{},Product:{}}}},GetDocument:{input:{type:"structure",required:["Name"],members:{Name:{},VersionName:{},DocumentVersion:{},DocumentFormat:{}}},output:{type:"structure",members:{Name:{},VersionName:{},DocumentVersion:{},Status:{},StatusInformation:{},Content:{},DocumentType:{},DocumentFormat:{},Requires:{shape:"S21"},AttachmentsContent:{type:"list",member:{type:"structure",members:{Name:{},Size:{type:"long"},Hash:{},HashType:{},Url:{}}}}}}},GetInventory:{input:{type:"structure",members:{Filters:{shape:"Sgl"},Aggregators:{shape:"Sgr"},ResultAttributes:{type:"list",member:{type:"structure",required:["TypeName"],members:{TypeName:{}}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Entities:{type:"list",member:{type:"structure",members:{Id:{},Data:{type:"map",key:{},value:{type:"structure",required:["TypeName","SchemaVersion","Content"],members:{TypeName:{},SchemaVersion:{},CaptureTime:{},ContentHash:{},Content:{shape:"Sh8"}}}}}}},NextToken:{}}}},GetInventorySchema:{input:{type:"structure",members:{TypeName:{},NextToken:{},MaxResults:{type:"integer"},Aggregator:{type:"boolean"},SubType:{type:"boolean"}}},output:{type:"structure",members:{Schemas:{type:"list",member:{type:"structure",required:["TypeName","Attributes"],members:{TypeName:{},Version:{},Attributes:{type:"list",member:{type:"structure",required:["Name","DataType"],members:{Name:{},DataType:{}}}},DisplayName:{}}}},NextToken:{}}}},GetMaintenanceWindow:{input:{type:"structure",required:["WindowId"],members:{WindowId:{}}},output:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S31"},StartDate:{},EndDate:{},Schedule:{},ScheduleTimezone:{},NextExecutionTime:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"},CreatedDate:{type:"timestamp"},ModifiedDate:{type:"timestamp"}}}},GetMaintenanceWindowExecution:{input:{type:"structure",required:["WindowExecutionId"],members:{WindowExecutionId:{}}},output:{type:"structure",members:{WindowExecutionId:{},TaskIds:{type:"list",member:{}},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}}},GetMaintenanceWindowExecutionTask:{input:{type:"structure",required:["WindowExecutionId","TaskId"],members:{WindowExecutionId:{},TaskId:{}}},output:{type:"structure",members:{WindowExecutionId:{},TaskExecutionId:{},TaskArn:{},ServiceRole:{},Type:{},TaskParameters:{type:"list",member:{shape:"Scw"},sensitive:!0},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}}},GetMaintenanceWindowExecutionTaskInvocation:{input:{type:"structure",required:["WindowExecutionId","TaskId","InvocationId"],members:{WindowExecutionId:{},TaskId:{},InvocationId:{}}},output:{type:"structure",members:{WindowExecutionId:{},TaskExecutionId:{},InvocationId:{},ExecutionId:{},TaskType:{},Parameters:{shape:"Sc5"},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},OwnerInformation:{shape:"Sat"},WindowTargetId:{}}}},GetMaintenanceWindowTask:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Sx"},TaskArn:{},ServiceRoleArn:{},TaskType:{},TaskParameters:{shape:"Scw"},TaskInvocationParameters:{shape:"Shz"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"Sd2"},Name:{},Description:{shape:"S31"}}}},GetOpsItem:{input:{type:"structure",required:["OpsItemId"],members:{OpsItemId:{}}},output:{type:"structure",members:{OpsItem:{type:"structure",members:{CreatedBy:{},CreatedTime:{type:"timestamp"},Description:{},LastModifiedBy:{},LastModifiedTime:{type:"timestamp"},Notifications:{shape:"S3i"},Priority:{type:"integer"},RelatedOpsItems:{shape:"S3m"},Status:{},OpsItemId:{},Version:{},Title:{},Source:{},OperationalData:{shape:"S3d"},Category:{},Severity:{}}}}}},GetOpsSummary:{input:{type:"structure",members:{SyncName:{},Filters:{shape:"Sij"},Aggregators:{shape:"Sip"},ResultAttributes:{type:"list",member:{type:"structure",required:["TypeName"],members:{TypeName:{}}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Entities:{type:"list",member:{type:"structure",members:{Id:{},Data:{type:"map",key:{},value:{type:"structure",members:{CaptureTime:{},Content:{type:"list",member:{type:"map",key:{},value:{}}}}}}}}},NextToken:{}}}},GetParameter:{input:{type:"structure",required:["Name"],members:{Name:{},WithDecryption:{type:"boolean"}}},output:{type:"structure",members:{Parameter:{shape:"Sjb"}}}},GetParameterHistory:{input:{type:"structure",required:["Name"],members:{Name:{},WithDecryption:{type:"boolean"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Parameters:{type:"list",member:{type:"structure",members:{Name:{},Type:{},KeyId:{},LastModifiedDate:{type:"timestamp"},LastModifiedUser:{},Description:{},Value:{},AllowedPattern:{},Version:{type:"long"},Labels:{shape:"Sji"},Tier:{},Policies:{shape:"Seb"}}}},NextToken:{}}}},GetParameters:{input:{type:"structure",required:["Names"],members:{Names:{shape:"S5t"},WithDecryption:{type:"boolean"}}},output:{type:"structure",members:{Parameters:{shape:"Sjm"},InvalidParameters:{shape:"S5t"}}}},GetParametersByPath:{input:{type:"structure",required:["Path"],members:{Path:{},Recursive:{type:"boolean"},ParameterFilters:{shape:"Sdw"},WithDecryption:{type:"boolean"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Parameters:{shape:"Sjm"},NextToken:{}}}},GetPatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{},Name:{},OperatingSystem:{},GlobalFilters:{shape:"S3w"},ApprovalRules:{shape:"S42"},ApprovedPatches:{shape:"S48"},ApprovedPatchesComplianceLevel:{},ApprovedPatchesEnableNonSecurity:{type:"boolean"},RejectedPatches:{shape:"S48"},RejectedPatchesAction:{},PatchGroups:{type:"list",member:{}},CreatedDate:{type:"timestamp"},ModifiedDate:{type:"timestamp"},Description:{},Sources:{shape:"S4c"}}}},GetPatchBaselineForPatchGroup:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{},OperatingSystem:{}}},output:{type:"structure",members:{BaselineId:{},PatchGroup:{},OperatingSystem:{}}}},GetServiceSetting:{input:{type:"structure",required:["SettingId"],members:{SettingId:{}}},output:{type:"structure",members:{ServiceSetting:{shape:"Sjy"}}}},LabelParameterVersion:{input:{type:"structure",required:["Name","Labels"],members:{Name:{},ParameterVersion:{type:"long"},Labels:{shape:"Sji"}}},output:{type:"structure",members:{InvalidLabels:{shape:"Sji"},ParameterVersion:{type:"long"}}}},ListAssociationVersions:{input:{type:"structure",required:["AssociationId"],members:{AssociationId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{AssociationVersions:{type:"list",member:{type:"structure",members:{AssociationId:{},AssociationVersion:{},CreatedDate:{type:"timestamp"},Name:{},DocumentVersion:{},Parameters:{shape:"St"},Targets:{shape:"Sx"},ScheduleExpression:{},OutputLocation:{shape:"S13"},AssociationName:{},MaxErrors:{},MaxConcurrency:{},ComplianceSeverity:{}}}},NextToken:{}}}},ListAssociations:{input:{type:"structure",members:{AssociationFilterList:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Associations:{type:"list",member:{type:"structure",members:{Name:{},InstanceId:{},AssociationId:{},AssociationVersion:{},DocumentVersion:{},Targets:{shape:"Sx"},LastExecutionDate:{type:"timestamp"},Overview:{shape:"S1l"},ScheduleExpression:{},AssociationName:{}}}},NextToken:{}}}},ListCommandInvocations:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"Skg"},Details:{type:"boolean"}}},output:{type:"structure",members:{CommandInvocations:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},InstanceName:{},Comment:{},DocumentName:{},DocumentVersion:{},RequestedDateTime:{type:"timestamp"},Status:{},StatusDetails:{},TraceOutput:{},StandardOutputUrl:{},StandardErrorUrl:{},CommandPlugins:{type:"list",member:{type:"structure",members:{Name:{},Status:{},StatusDetails:{},ResponseCode:{type:"integer"},ResponseStartDateTime:{type:"timestamp"},ResponseFinishDateTime:{type:"timestamp"},Output:{},StandardOutputUrl:{},StandardErrorUrl:{},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}},ServiceRole:{},NotificationConfig:{shape:"Si1"},CloudWatchOutputConfig:{shape:"Sg0"}}}},NextToken:{}}}},ListCommands:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"Skg"}}},output:{type:"structure",members:{Commands:{type:"list",member:{shape:"Skw"}},NextToken:{}}}},ListComplianceItems:{input:{type:"structure",members:{Filters:{shape:"Sl3"},ResourceIds:{type:"list",member:{}},ResourceTypes:{type:"list",member:{}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ComplianceItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},ResourceType:{},ResourceId:{},Id:{},Title:{},Status:{},Severity:{},ExecutionSummary:{shape:"Sll"},Details:{shape:"Slo"}}}},NextToken:{}}}},ListComplianceSummaries:{input:{type:"structure",members:{Filters:{shape:"Sl3"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ComplianceSummaryItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},CompliantSummary:{shape:"Slt"},NonCompliantSummary:{shape:"Slw"}}}},NextToken:{}}}},ListDocumentVersions:{input:{type:"structure",required:["Name"],members:{Name:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure", - members:{DocumentVersions:{type:"list",member:{type:"structure",members:{Name:{},DocumentVersion:{},VersionName:{},CreatedDate:{type:"timestamp"},IsDefaultVersion:{type:"boolean"},DocumentFormat:{},Status:{},StatusInformation:{}}}},NextToken:{}}}},ListDocuments:{input:{type:"structure",members:{DocumentFilterList:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},Filters:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{DocumentIdentifiers:{type:"list",member:{type:"structure",members:{Name:{},Owner:{},VersionName:{},PlatformTypes:{shape:"S2t"},DocumentVersion:{},DocumentType:{},SchemaVersion:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"},Requires:{shape:"S21"}}}},NextToken:{}}}},ListInventoryEntries:{input:{type:"structure",required:["InstanceId","TypeName"],members:{InstanceId:{},TypeName:{},Filters:{shape:"Sgl"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{TypeName:{},InstanceId:{},SchemaVersion:{},CaptureTime:{},Entries:{shape:"Sh8"},NextToken:{}}}},ListResourceComplianceSummaries:{input:{type:"structure",members:{Filters:{shape:"Sl3"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ResourceComplianceSummaryItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},ResourceType:{},ResourceId:{},Status:{},OverallSeverity:{},ExecutionSummary:{shape:"Sll"},CompliantSummary:{shape:"Slt"},NonCompliantSummary:{shape:"Slw"}}}},NextToken:{}}}},ListResourceDataSync:{input:{type:"structure",members:{SyncType:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ResourceDataSyncItems:{type:"list",member:{type:"structure",members:{SyncName:{},SyncType:{},SyncSource:{type:"structure",members:{SourceType:{},AwsOrganizationsSource:{shape:"S4v"},SourceRegions:{shape:"S50"},IncludeFutureRegions:{type:"boolean"},State:{}}},S3Destination:{shape:"S4m"},LastSyncTime:{type:"timestamp"},LastSuccessfulSyncTime:{type:"timestamp"},SyncLastModifiedTime:{type:"timestamp"},LastStatus:{},SyncCreatedTime:{type:"timestamp"},LastSyncStatusMessage:{}}}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{},ResourceId:{}}},output:{type:"structure",members:{TagList:{shape:"S4"}}}},ModifyDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{},AccountIdsToAdd:{shape:"S9d"},AccountIdsToRemove:{shape:"S9d"},SharedDocumentVersion:{}}},output:{type:"structure",members:{}}},PutComplianceItems:{input:{type:"structure",required:["ResourceId","ResourceType","ComplianceType","ExecutionSummary","Items"],members:{ResourceId:{},ResourceType:{},ComplianceType:{},ExecutionSummary:{shape:"Sll"},Items:{type:"list",member:{type:"structure",required:["Severity","Status"],members:{Id:{},Title:{},Severity:{},Status:{},Details:{shape:"Slo"}}}},ItemContentHash:{}}},output:{type:"structure",members:{}}},PutInventory:{input:{type:"structure",required:["InstanceId","Items"],members:{InstanceId:{},Items:{type:"list",member:{type:"structure",required:["TypeName","SchemaVersion","CaptureTime"],members:{TypeName:{},SchemaVersion:{},CaptureTime:{},ContentHash:{},Content:{shape:"Sh8"},Context:{type:"map",key:{},value:{}}}}}}},output:{type:"structure",members:{Message:{}}}},PutParameter:{input:{type:"structure",required:["Name","Value","Type"],members:{Name:{},Description:{},Value:{},Type:{},KeyId:{},Overwrite:{type:"boolean"},AllowedPattern:{},Tags:{shape:"S4"},Tier:{},Policies:{}}},output:{type:"structure",members:{Version:{type:"long"},Tier:{}}}},RegisterDefaultPatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{}}}},RegisterPatchBaselineForPatchGroup:{input:{type:"structure",required:["BaselineId","PatchGroup"],members:{BaselineId:{},PatchGroup:{}}},output:{type:"structure",members:{BaselineId:{},PatchGroup:{}}}},RegisterTargetWithMaintenanceWindow:{input:{type:"structure",required:["WindowId","ResourceType","Targets"],members:{WindowId:{},ResourceType:{},Targets:{shape:"Sx"},OwnerInformation:{shape:"Sat"},Name:{},Description:{shape:"S31"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{WindowTargetId:{}}}},RegisterTaskWithMaintenanceWindow:{input:{type:"structure",required:["WindowId","Targets","TaskArn","TaskType","MaxConcurrency","MaxErrors"],members:{WindowId:{},Targets:{shape:"Sx"},TaskArn:{},ServiceRoleArn:{},TaskType:{},TaskParameters:{shape:"Scw"},TaskInvocationParameters:{shape:"Shz"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"Sd2"},Name:{},Description:{shape:"S31"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{WindowTaskId:{}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceType","ResourceId","TagKeys"],members:{ResourceType:{},ResourceId:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},ResetServiceSetting:{input:{type:"structure",required:["SettingId"],members:{SettingId:{}}},output:{type:"structure",members:{ServiceSetting:{shape:"Sjy"}}}},ResumeSession:{input:{type:"structure",required:["SessionId"],members:{SessionId:{}}},output:{type:"structure",members:{SessionId:{},TokenValue:{},StreamUrl:{}}}},SendAutomationSignal:{input:{type:"structure",required:["AutomationExecutionId","SignalType"],members:{AutomationExecutionId:{},SignalType:{},Payload:{shape:"S7o"}}},output:{type:"structure",members:{}}},SendCommand:{input:{type:"structure",required:["DocumentName"],members:{InstanceIds:{shape:"Sb"},Targets:{shape:"Sx"},DocumentName:{},DocumentVersion:{},DocumentHash:{},DocumentHashType:{},TimeoutSeconds:{type:"integer"},Comment:{},Parameters:{shape:"St"},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{},MaxConcurrency:{},MaxErrors:{},ServiceRoleArn:{},NotificationConfig:{shape:"Si1"},CloudWatchOutputConfig:{shape:"Sg0"}}},output:{type:"structure",members:{Command:{shape:"Skw"}}}},StartAssociationsOnce:{input:{type:"structure",required:["AssociationIds"],members:{AssociationIds:{type:"list",member:{}}}},output:{type:"structure",members:{}}},StartAutomationExecution:{input:{type:"structure",required:["DocumentName"],members:{DocumentName:{},DocumentVersion:{},Parameters:{shape:"S7o"},ClientToken:{},Mode:{},TargetParameterName:{},Targets:{shape:"Sx"},TargetMaps:{shape:"S7t"},MaxConcurrency:{},MaxErrors:{},TargetLocations:{shape:"Sfi"},Tags:{shape:"S4"}}},output:{type:"structure",members:{AutomationExecutionId:{}}}},StartSession:{input:{type:"structure",required:["Target"],members:{Target:{},DocumentName:{},Parameters:{type:"map",key:{},value:{type:"list",member:{}}}}},output:{type:"structure",members:{SessionId:{},TokenValue:{},StreamUrl:{}}}},StopAutomationExecution:{input:{type:"structure",required:["AutomationExecutionId"],members:{AutomationExecutionId:{},Type:{}}},output:{type:"structure",members:{}}},TerminateSession:{input:{type:"structure",required:["SessionId"],members:{SessionId:{}}},output:{type:"structure",members:{SessionId:{}}}},UpdateAssociation:{input:{type:"structure",required:["AssociationId"],members:{AssociationId:{},Parameters:{shape:"St"},DocumentVersion:{},ScheduleExpression:{},OutputLocation:{shape:"S13"},Name:{},Targets:{shape:"Sx"},AssociationName:{},AssociationVersion:{},AutomationTargetParameterName:{},MaxErrors:{},MaxConcurrency:{},ComplianceSeverity:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S1e"}}}},UpdateAssociationStatus:{input:{type:"structure",required:["Name","InstanceId","AssociationStatus"],members:{Name:{},InstanceId:{},AssociationStatus:{shape:"S1h"}}},output:{type:"structure",members:{AssociationDescription:{shape:"S1e"}}}},UpdateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Attachments:{shape:"S23"},Name:{},VersionName:{},DocumentVersion:{},DocumentFormat:{},TargetType:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"S2f"}}}},UpdateDocumentDefaultVersion:{input:{type:"structure",required:["Name","DocumentVersion"],members:{Name:{},DocumentVersion:{}}},output:{type:"structure",members:{Description:{type:"structure",members:{Name:{},DefaultVersion:{},DefaultVersionName:{}}}}}},UpdateMaintenanceWindow:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Name:{},Description:{shape:"S31"},StartDate:{},EndDate:{},Schedule:{},ScheduleTimezone:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S31"},StartDate:{},EndDate:{},Schedule:{},ScheduleTimezone:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"}}}},UpdateMaintenanceWindowTarget:{input:{type:"structure",required:["WindowId","WindowTargetId"],members:{WindowId:{},WindowTargetId:{},Targets:{shape:"Sx"},OwnerInformation:{shape:"Sat"},Name:{},Description:{shape:"S31"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTargetId:{},Targets:{shape:"Sx"},OwnerInformation:{shape:"Sat"},Name:{},Description:{shape:"S31"}}}},UpdateMaintenanceWindowTask:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Sx"},TaskArn:{},ServiceRoleArn:{},TaskParameters:{shape:"Scw"},TaskInvocationParameters:{shape:"Shz"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"Sd2"},Name:{},Description:{shape:"S31"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Sx"},TaskArn:{},ServiceRoleArn:{},TaskParameters:{shape:"Scw"},TaskInvocationParameters:{shape:"Shz"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"Sd2"},Name:{},Description:{shape:"S31"}}}},UpdateManagedInstanceRole:{input:{type:"structure",required:["InstanceId","IamRole"],members:{InstanceId:{},IamRole:{}}},output:{type:"structure",members:{}}},UpdateOpsItem:{input:{type:"structure",required:["OpsItemId"],members:{Description:{},OperationalData:{shape:"S3d"},OperationalDataToDelete:{type:"list",member:{}},Notifications:{shape:"S3i"},Priority:{type:"integer"},RelatedOpsItems:{shape:"S3m"},Status:{},OpsItemId:{},Title:{},Category:{},Severity:{}}},output:{type:"structure",members:{}}},UpdatePatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{},Name:{},GlobalFilters:{shape:"S3w"},ApprovalRules:{shape:"S42"},ApprovedPatches:{shape:"S48"},ApprovedPatchesComplianceLevel:{},ApprovedPatchesEnableNonSecurity:{type:"boolean"},RejectedPatches:{shape:"S48"},RejectedPatchesAction:{},Description:{},Sources:{shape:"S4c"},Replace:{type:"boolean"}}},output:{type:"structure",members:{BaselineId:{},Name:{},OperatingSystem:{},GlobalFilters:{shape:"S3w"},ApprovalRules:{shape:"S42"},ApprovedPatches:{shape:"S48"},ApprovedPatchesComplianceLevel:{},ApprovedPatchesEnableNonSecurity:{type:"boolean"},RejectedPatches:{shape:"S48"},RejectedPatchesAction:{},CreatedDate:{type:"timestamp"},ModifiedDate:{type:"timestamp"},Description:{},Sources:{shape:"S4c"}}}},UpdateResourceDataSync:{input:{type:"structure",required:["SyncName","SyncType","SyncSource"],members:{SyncName:{},SyncType:{},SyncSource:{shape:"S4t"}}},output:{type:"structure",members:{}}},UpdateServiceSetting:{input:{type:"structure",required:["SettingId","SettingValue"],members:{SettingId:{},SettingValue:{}}},output:{type:"structure",members:{}}}},shapes:{S4:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},Sb:{type:"list",member:{}},St:{type:"map",key:{},value:{type:"list",member:{}}},Sx:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S13:{type:"structure",members:{S3Location:{type:"structure",members:{OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}}},S1e:{type:"structure",members:{Name:{},InstanceId:{},AssociationVersion:{},Date:{type:"timestamp"},LastUpdateAssociationDate:{type:"timestamp"},Status:{shape:"S1h"},Overview:{shape:"S1l"},DocumentVersion:{},AutomationTargetParameterName:{},Parameters:{shape:"St"},AssociationId:{},Targets:{shape:"Sx"},ScheduleExpression:{},OutputLocation:{shape:"S13"},LastExecutionDate:{type:"timestamp"},LastSuccessfulExecutionDate:{type:"timestamp"},AssociationName:{},MaxErrors:{},MaxConcurrency:{},ComplianceSeverity:{}}},S1h:{type:"structure",required:["Date","Name","Message"],members:{Date:{type:"timestamp"},Name:{},Message:{},AdditionalInfo:{}}},S1l:{type:"structure",members:{Status:{},DetailedStatus:{},AssociationStatusAggregatedCount:{type:"map",key:{},value:{type:"integer"}}}},S1s:{type:"structure",required:["Name"],members:{Name:{},InstanceId:{},Parameters:{shape:"St"},AutomationTargetParameterName:{},DocumentVersion:{},Targets:{shape:"Sx"},ScheduleExpression:{},OutputLocation:{shape:"S13"},AssociationName:{},MaxErrors:{},MaxConcurrency:{},ComplianceSeverity:{}}},S21:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},Version:{}}}},S23:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}},Name:{}}}},S2f:{type:"structure",members:{Sha1:{},Hash:{},HashType:{},Name:{},VersionName:{},Owner:{},CreatedDate:{type:"timestamp"},Status:{},StatusInformation:{},DocumentVersion:{},Description:{},Parameters:{type:"list",member:{type:"structure",members:{Name:{},Type:{},Description:{},DefaultValue:{}}}},PlatformTypes:{shape:"S2t"},DocumentType:{},SchemaVersion:{},LatestVersion:{},DefaultVersion:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"},AttachmentsInformation:{type:"list",member:{type:"structure",members:{Name:{}}}},Requires:{shape:"S21"}}},S2t:{type:"list",member:{}},S31:{type:"string",sensitive:!0},S3d:{type:"map",key:{},value:{type:"structure",members:{Value:{},Type:{}}}},S3i:{type:"list",member:{type:"structure",members:{Arn:{}}}},S3m:{type:"list",member:{type:"structure",required:["OpsItemId"],members:{OpsItemId:{}}}},S3w:{type:"structure",required:["PatchFilters"],members:{PatchFilters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}}}},S42:{type:"structure",required:["PatchRules"],members:{PatchRules:{type:"list",member:{type:"structure",required:["PatchFilterGroup","ApproveAfterDays"],members:{PatchFilterGroup:{shape:"S3w"},ComplianceLevel:{},ApproveAfterDays:{type:"integer"},EnableNonSecurity:{type:"boolean"}}}}}},S48:{type:"list",member:{}},S4c:{type:"list",member:{type:"structure",required:["Name","Products","Configuration"],members:{Name:{},Products:{type:"list",member:{}},Configuration:{type:"string",sensitive:!0}}}},S4m:{type:"structure",required:["BucketName","SyncFormat","Region"],members:{BucketName:{},Prefix:{},SyncFormat:{},Region:{},AWSKMSKeyARN:{}}},S4t:{type:"structure",required:["SourceType","SourceRegions"],members:{SourceType:{},AwsOrganizationsSource:{shape:"S4v"},SourceRegions:{shape:"S50"},IncludeFutureRegions:{type:"boolean"}}},S4v:{type:"structure",required:["OrganizationSourceType"],members:{OrganizationSourceType:{},OrganizationalUnits:{type:"list",member:{type:"structure",members:{OrganizationalUnitId:{}}}}}},S50:{type:"list",member:{}},S5g:{type:"structure",members:{TotalCount:{type:"integer"},RemainingCount:{type:"integer"},SummaryItems:{type:"list",member:{type:"structure",members:{Version:{},Count:{type:"integer"},RemainingCount:{type:"integer"}}}}}},S5t:{type:"list",member:{}},S7o:{type:"map",key:{},value:{type:"list",member:{}}},S7t:{type:"list",member:{type:"map",key:{},value:{type:"list",member:{}}}},S7y:{type:"structure",members:{ParameterValues:{type:"list",member:{}},Truncated:{type:"boolean"}}},S88:{type:"list",member:{type:"structure",members:{StepName:{},Action:{},TimeoutSeconds:{type:"long"},OnFailure:{},MaxAttempts:{type:"integer"},ExecutionStartTime:{type:"timestamp"},ExecutionEndTime:{type:"timestamp"},StepStatus:{},ResponseCode:{},Inputs:{type:"map",key:{},value:{}},Outputs:{shape:"S7o"},Response:{},FailureMessage:{},FailureDetails:{type:"structure",members:{FailureStage:{},FailureType:{},Details:{shape:"S7o"}}},StepExecutionId:{},OverriddenParameters:{shape:"S7o"},IsEnd:{type:"boolean"},NextStep:{},IsCritical:{type:"boolean"},ValidNextSteps:{type:"list",member:{}},Targets:{shape:"Sx"},TargetLocation:{shape:"S8h"}}}},S8h:{type:"structure",members:{Accounts:{type:"list",member:{}},Regions:{type:"list",member:{}},TargetLocationMaxConcurrency:{},TargetLocationMaxErrors:{},ExecutionRoleName:{}}},S8o:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S8w:{type:"structure",members:{Id:{},ReleaseDate:{type:"timestamp"},Title:{},Description:{},ContentUrl:{},Vendor:{},ProductFamily:{},Product:{},Classification:{},MsrcSeverity:{},KbNumber:{},MsrcNumber:{},Language:{}}},S9d:{type:"list",member:{}},Sa6:{type:"list",member:{}},Saq:{type:"structure",required:["InstanceId","PatchGroup","BaselineId","OperationStartTime","OperationEndTime","Operation"],members:{InstanceId:{},PatchGroup:{},BaselineId:{},SnapshotId:{},InstallOverrideList:{},OwnerInformation:{shape:"Sat"},InstalledCount:{type:"integer"},InstalledOtherCount:{type:"integer"},InstalledPendingRebootCount:{type:"integer"},InstalledRejectedCount:{type:"integer"},MissingCount:{type:"integer"},FailedCount:{type:"integer"},UnreportedNotApplicableCount:{type:"integer"},NotApplicableCount:{type:"integer"},OperationStartTime:{type:"timestamp"},OperationEndTime:{type:"timestamp"},Operation:{},LastNoRebootInstallOperationTime:{type:"timestamp"},RebootOption:{}}},Sat:{type:"string",sensitive:!0},Sbt:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},Sc5:{type:"string",sensitive:!0},Scw:{type:"map",key:{},value:{type:"structure",members:{Values:{type:"list",member:{type:"string",sensitive:!0},sensitive:!0}},sensitive:!0},sensitive:!0},Sd2:{type:"structure",required:["S3BucketName","S3Region"],members:{S3BucketName:{},S3KeyPrefix:{},S3Region:{}}},Sdw:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Option:{},Values:{type:"list",member:{}}}}},Seb:{type:"list",member:{type:"structure",members:{PolicyText:{},PolicyType:{},PolicyStatus:{}}}},Seg:{type:"structure",members:{BaselineId:{},BaselineName:{},OperatingSystem:{},BaselineDescription:{},DefaultBaseline:{type:"boolean"}}},Sfi:{type:"list",member:{shape:"S8h"}},Sg0:{type:"structure",members:{CloudWatchLogGroupName:{},CloudWatchOutputEnabled:{type:"boolean"}}},Sgl:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sgr:{type:"list",member:{type:"structure",members:{Expression:{},Aggregators:{shape:"Sgr"},Groups:{type:"list",member:{type:"structure",required:["Name","Filters"],members:{Name:{},Filters:{shape:"Sgl"}}}}}}},Sh8:{type:"list",member:{type:"map",key:{},value:{}}},Shz:{type:"structure",members:{RunCommand:{type:"structure",members:{Comment:{},CloudWatchOutputConfig:{shape:"Sg0"},DocumentHash:{},DocumentHashType:{},DocumentVersion:{},NotificationConfig:{shape:"Si1"},OutputS3BucketName:{},OutputS3KeyPrefix:{},Parameters:{shape:"St"},ServiceRoleArn:{},TimeoutSeconds:{type:"integer"}}},Automation:{type:"structure",members:{DocumentVersion:{},Parameters:{shape:"S7o"}}},StepFunctions:{type:"structure",members:{Input:{type:"string",sensitive:!0},Name:{}}},Lambda:{type:"structure",members:{ClientContext:{},Qualifier:{},Payload:{type:"blob",sensitive:!0}}}}},Si1:{type:"structure",members:{NotificationArn:{},NotificationEvents:{type:"list",member:{}},NotificationType:{}}},Sij:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sip:{type:"list",member:{type:"structure",members:{AggregatorType:{},TypeName:{},AttributeName:{},Values:{type:"map",key:{},value:{}},Filters:{shape:"Sij"},Aggregators:{shape:"Sip"}}}},Sjb:{type:"structure",members:{Name:{},Type:{},Value:{},Version:{type:"long"},Selector:{},SourceResult:{},LastModifiedDate:{type:"timestamp"},ARN:{}}},Sji:{type:"list",member:{}},Sjm:{type:"list",member:{shape:"Sjb"}},Sjy:{type:"structure",members:{SettingId:{},SettingValue:{},LastModifiedDate:{type:"timestamp"},LastModifiedUser:{},ARN:{},Status:{}}},Skg:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},Skw:{type:"structure",members:{CommandId:{},DocumentName:{},DocumentVersion:{},Comment:{},ExpiresAfter:{type:"timestamp"},Parameters:{shape:"St"},InstanceIds:{shape:"Sb"},Targets:{shape:"Sx"},RequestedDateTime:{type:"timestamp"},Status:{},StatusDetails:{},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{},MaxConcurrency:{},MaxErrors:{},TargetCount:{type:"integer"},CompletedCount:{type:"integer"},ErrorCount:{type:"integer"},DeliveryTimedOutCount:{type:"integer"},ServiceRole:{},NotificationConfig:{shape:"Si1"},CloudWatchOutputConfig:{shape:"Sg0"}}},Sl3:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sll:{type:"structure",required:["ExecutionTime"],members:{ExecutionTime:{type:"timestamp"},ExecutionId:{},ExecutionType:{}}},Slo:{type:"map",key:{},value:{}},Slt:{type:"structure",members:{CompliantCount:{type:"integer"},SeveritySummary:{shape:"Slv"}}},Slv:{type:"structure",members:{CriticalCount:{type:"integer"},HighCount:{type:"integer"},MediumCount:{type:"integer"},LowCount:{type:"integer"},InformationalCount:{type:"integer"},UnspecifiedCount:{type:"integer"}}},Slw:{type:"structure",members:{NonCompliantCount:{type:"integer"},SeveritySummary:{shape:"Slv"}}}},paginators:{DescribeActivations:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"ActivationList"},DescribeInstanceInformation:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"InstanceInformationList"},DescribeParameters:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetParameterHistory:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetParametersByPath:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},ListAssociations:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"Associations"},ListCommandInvocations:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"CommandInvocations"},ListCommands:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"Commands"},ListDocuments:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"DocumentIdentifiers"}}};AWS.apiLoader.services.storagegateway={},AWS.StorageGateway=AWS.Service.defineService("storagegateway",["2013-06-30"]);AWS.apiLoader.services.storagegateway["2013-06-30"]={version:"2.0",metadata:{apiVersion:"2013-06-30",endpointPrefix:"storagegateway",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Storage Gateway",serviceId:"Storage Gateway",signatureVersion:"v4",targetPrefix:"StorageGateway_20130630",uid:"storagegateway-2013-06-30"},operations:{ActivateGateway:{input:{type:"structure",required:["ActivationKey","GatewayName","GatewayTimezone","GatewayRegion"],members:{ActivationKey:{},GatewayName:{},GatewayTimezone:{},GatewayRegion:{},GatewayType:{},TapeDriveType:{},MediumChangerType:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddCache:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sg"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{ResourceARN:{}}}},AddUploadBuffer:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sg"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddWorkingStorage:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sg"}}},output:{type:"structure",members:{GatewayARN:{}}}},AssignTapePool:{input:{type:"structure",required:["TapeARN","PoolId"],members:{TapeARN:{},PoolId:{}}},output:{type:"structure",members:{TapeARN:{}}}},AttachVolume:{input:{type:"structure",required:["GatewayARN","VolumeARN","NetworkInterfaceId"],members:{GatewayARN:{},TargetName:{},VolumeARN:{},NetworkInterfaceId:{},DiskId:{}}},output:{type:"structure",members:{VolumeARN:{},TargetARN:{}}}},CancelArchival:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},CancelRetrieval:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},CreateCachediSCSIVolume:{input:{type:"structure",required:["GatewayARN","VolumeSizeInBytes","TargetName","NetworkInterfaceId","ClientToken"],members:{GatewayARN:{},VolumeSizeInBytes:{type:"long"},SnapshotId:{},TargetName:{},SourceVolumeARN:{},NetworkInterfaceId:{},ClientToken:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{VolumeARN:{},TargetARN:{}}}},CreateNFSFileShare:{input:{type:"structure",required:["ClientToken","GatewayARN","Role","LocationARN"],members:{ClientToken:{},NFSFileShareDefaults:{shape:"S1c"},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Role:{},LocationARN:{},DefaultStorageClass:{},ObjectACL:{},ClientList:{shape:"S1j"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"},RequesterPays:{type:"boolean"},Tags:{shape:"S9"}}},output:{type:"structure",members:{FileShareARN:{}}}},CreateSMBFileShare:{input:{type:"structure",required:["ClientToken","GatewayARN","Role","LocationARN"],members:{ClientToken:{},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Role:{},LocationARN:{},DefaultStorageClass:{},ObjectACL:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"},RequesterPays:{type:"boolean"},SMBACLEnabled:{type:"boolean"},AdminUserList:{shape:"S1p"},ValidUserList:{shape:"S1p"},InvalidUserList:{shape:"S1p"},Authentication:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{FileShareARN:{}}}},CreateSnapshot:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{VolumeARN:{},SnapshotId:{}}}},CreateSnapshotFromVolumeRecoveryPoint:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{SnapshotId:{},VolumeARN:{},VolumeRecoveryPointTime:{}}}},CreateStorediSCSIVolume:{input:{type:"structure",required:["GatewayARN","DiskId","PreserveExistingData","TargetName","NetworkInterfaceId"],members:{GatewayARN:{},DiskId:{},SnapshotId:{},PreserveExistingData:{type:"boolean"},TargetName:{},NetworkInterfaceId:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},TargetARN:{}}}},CreateTapeWithBarcode:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","TapeBarcode"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},TapeBarcode:{},KMSEncrypted:{type:"boolean"},KMSKey:{},PoolId:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{TapeARN:{}}}},CreateTapes:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","ClientToken","NumTapesToCreate","TapeBarcodePrefix"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},ClientToken:{},NumTapesToCreate:{type:"integer"},TapeBarcodePrefix:{},KMSEncrypted:{type:"boolean"},KMSKey:{},PoolId:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{TapeARNs:{shape:"S2a"}}}},DeleteBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN","BandwidthType"],members:{GatewayARN:{},BandwidthType:{}}},output:{type:"structure",members:{GatewayARN:{}}}},DeleteChapCredentials:{input:{type:"structure",required:["TargetARN","InitiatorName"],members:{TargetARN:{},InitiatorName:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}}},DeleteFileShare:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{},ForceDelete:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{}}}},DeleteGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},DeleteSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{}}}},DeleteTape:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},DeleteTapeArchive:{input:{type:"structure",required:["TapeARN"],members:{TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},DeleteVolume:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{}}}},DescribeAvailabilityMonitorTest:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},Status:{},StartTime:{type:"timestamp"}}}},DescribeBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}}},DescribeCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sg"},CacheAllocatedInBytes:{type:"long"},CacheUsedPercentage:{type:"double"},CacheDirtyPercentage:{type:"double"},CacheHitPercentage:{type:"double"},CacheMissPercentage:{type:"double"}}}},DescribeCachediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S35"}}},output:{type:"structure",members:{CachediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeAttachmentStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},SourceSnapshotId:{},VolumeiSCSIAttributes:{shape:"S3e"},CreatedDate:{type:"timestamp"},VolumeUsedInBytes:{type:"long"},KMSKey:{},TargetName:{}}}}}}},DescribeChapCredentials:{input:{type:"structure",required:["TargetARN"],members:{TargetARN:{}}},output:{type:"structure",members:{ChapCredentials:{type:"list",member:{type:"structure",members:{TargetARN:{},SecretToAuthenticateInitiator:{shape:"S3n"},InitiatorName:{},SecretToAuthenticateTarget:{shape:"S3n"}}}}}}},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:{},Ec2InstanceId:{},Ec2InstanceRegion:{},Tags:{shape:"S9"},VPCEndpoint:{},CloudWatchLogGroupARN:{},HostEnvironment:{}}}},DescribeMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"},DayOfMonth:{type:"integer"},Timezone:{}}}},DescribeNFSFileShares:{input:{type:"structure",required:["FileShareARNList"],members:{FileShareARNList:{shape:"S47"}}},output:{type:"structure",members:{NFSFileShareInfoList:{type:"list",member:{type:"structure",members:{NFSFileShareDefaults:{shape:"S1c"},FileShareARN:{},FileShareId:{},FileShareStatus:{},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Path:{},Role:{},LocationARN:{},DefaultStorageClass:{},ObjectACL:{},ClientList:{shape:"S1j"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"},RequesterPays:{type:"boolean"},Tags:{shape:"S9"}}}}}}},DescribeSMBFileShares:{input:{type:"structure",required:["FileShareARNList"],members:{FileShareARNList:{shape:"S47"}}},output:{type:"structure",members:{SMBFileShareInfoList:{type:"list",member:{type:"structure",members:{FileShareARN:{},FileShareId:{},FileShareStatus:{},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Path:{},Role:{},LocationARN:{},DefaultStorageClass:{},ObjectACL:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"},RequesterPays:{type:"boolean"},SMBACLEnabled:{type:"boolean"},AdminUserList:{shape:"S1p"},ValidUserList:{shape:"S1p"},InvalidUserList:{shape:"S1p"},Authentication:{},Tags:{shape:"S9"}}}}}}},DescribeSMBSettings:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DomainName:{},ActiveDirectoryStatus:{},SMBGuestPasswordSet:{type:"boolean"},SMBSecurityStrategy:{}}}},DescribeSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{},Timezone:{},Tags:{shape:"S9"}}}},DescribeStorediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S35"}}},output:{type:"structure",members:{StorediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeAttachmentStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},VolumeDiskId:{},SourceSnapshotId:{},PreservedExistingData:{type:"boolean"},VolumeiSCSIAttributes:{shape:"S3e"},CreatedDate:{type:"timestamp"},VolumeUsedInBytes:{type:"long"},KMSKey:{},TargetName:{}}}}}}},DescribeTapeArchives:{input:{type:"structure",members:{TapeARNs:{shape:"S2a"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeArchives:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeCreatedDate:{type:"timestamp"},TapeSizeInBytes:{type:"long"},CompletionTime:{type:"timestamp"},RetrievedTo:{},TapeStatus:{},TapeUsedInBytes:{type:"long"},KMSKey:{},PoolId:{}}}},Marker:{}}}},DescribeTapeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},TapeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeRecoveryPointTime:{type:"timestamp"},TapeSizeInBytes:{type:"long"},TapeStatus:{}}}},Marker:{}}}},DescribeTapes:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},TapeARNs:{shape:"S2a"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Tapes:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeCreatedDate:{type:"timestamp"},TapeSizeInBytes:{type:"long"},TapeStatus:{},VTLDevice:{},Progress:{type:"double"},TapeUsedInBytes:{type:"long"},KMSKey:{},PoolId:{}}}},Marker:{}}}},DescribeUploadBuffer:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sg"},UploadBufferUsedInBytes:{type:"long"},UploadBufferAllocatedInBytes:{type:"long"}}}},DescribeVTLDevices:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},VTLDeviceARNs:{type:"list",member:{}},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},VTLDevices:{type:"list",member:{type:"structure",members:{VTLDeviceARN:{},VTLDeviceType:{},VTLDeviceVendor:{},VTLDeviceProductIdentifier:{},DeviceiSCSIAttributes:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},Marker:{}}}},DescribeWorkingStorage:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sg"},WorkingStorageUsedInBytes:{type:"long"},WorkingStorageAllocatedInBytes:{type:"long"}}}},DetachVolume:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{},ForceDetach:{type:"boolean"}}},output:{type:"structure",members:{VolumeARN:{}}}},DisableGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},JoinDomain:{input:{type:"structure",required:["GatewayARN","DomainName","UserName","Password"],members:{GatewayARN:{},DomainName:{},OrganizationalUnit:{},DomainControllers:{type:"list",member:{}},TimeoutInSeconds:{type:"integer"},UserName:{},Password:{type:"string",sensitive:!0}}},output:{type:"structure",members:{GatewayARN:{},ActiveDirectoryStatus:{}}}},ListFileShares:{input:{type:"structure",members:{GatewayARN:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Marker:{},NextMarker:{},FileShareInfoList:{type:"list",member:{type:"structure",members:{FileShareType:{},FileShareARN:{},FileShareId:{},FileShareStatus:{},GatewayARN:{}}}}}}},ListGateways:{input:{type:"structure",members:{Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Gateways:{type:"list",member:{type:"structure",members:{GatewayId:{},GatewayARN:{},GatewayType:{},GatewayOperationalState:{},GatewayName:{},Ec2InstanceId:{},Ec2InstanceRegion:{}}}},Marker:{}}}},ListLocalDisks:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},Disks:{type:"list",member:{type:"structure",members:{DiskId:{},DiskPath:{},DiskNode:{},DiskStatus:{},DiskSizeInBytes:{type:"long"},DiskAllocationType:{},DiskAllocationResource:{},DiskAttributeList:{type:"list",member:{}}}}}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ResourceARN:{},Marker:{},Tags:{shape:"S9"}}}},ListTapes:{input:{type:"structure",members:{TapeARNs:{shape:"S2a"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},GatewayARN:{},PoolId:{}}}},Marker:{}}}},ListVolumeInitiators:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{Initiators:{type:"list",member:{}}}}},ListVolumeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},VolumeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},VolumeUsageInBytes:{type:"long"},VolumeRecoveryPointTime:{}}}}}}},ListVolumes:{input:{type:"structure",members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},Marker:{},VolumeInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},GatewayARN:{},GatewayId:{},VolumeType:{},VolumeSizeInBytes:{type:"long"},VolumeAttachmentStatus:{}}}}}}},NotifyWhenUploaded:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{}}},output:{type:"structure",members:{FileShareARN:{},NotificationId:{}}}},RefreshCache:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{},FolderList:{type:"list",member:{}},Recursive:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{},NotificationId:{}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{ResourceARN:{}}}},ResetCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},RetrieveTapeArchive:{input:{type:"structure",required:["TapeARN","GatewayARN"],members:{TapeARN:{},GatewayARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},RetrieveTapeRecoveryPoint:{input:{type:"structure",required:["TapeARN","GatewayARN"],members:{TapeARN:{},GatewayARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},SetLocalConsolePassword:{input:{type:"structure",required:["GatewayARN","LocalConsolePassword"],members:{GatewayARN:{},LocalConsolePassword:{type:"string",sensitive:!0}}},output:{type:"structure",members:{GatewayARN:{}}}},SetSMBGuestPassword:{input:{type:"structure",required:["GatewayARN","Password"],members:{GatewayARN:{},Password:{type:"string",sensitive:!0}}},output:{type:"structure",members:{GatewayARN:{}}}},ShutdownGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},StartAvailabilityMonitorTest:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},StartGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateChapCredentials:{input:{type:"structure",required:["TargetARN","SecretToAuthenticateInitiator","InitiatorName"],members:{TargetARN:{},SecretToAuthenticateInitiator:{shape:"S3n"},InitiatorName:{},SecretToAuthenticateTarget:{shape:"S3n"}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}}},UpdateGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},GatewayName:{},GatewayTimezone:{},CloudWatchLogGroupARN:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayName:{}}}},UpdateGatewaySoftwareNow:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN","HourOfDay","MinuteOfHour"],members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"},DayOfMonth:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateNFSFileShare:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},NFSFileShareDefaults:{shape:"S1c"},DefaultStorageClass:{},ObjectACL:{},ClientList:{shape:"S1j"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"},RequesterPays:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{}}}},UpdateSMBFileShare:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},DefaultStorageClass:{},ObjectACL:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"},RequesterPays:{type:"boolean"},SMBACLEnabled:{type:"boolean"},AdminUserList:{shape:"S1p"},ValidUserList:{shape:"S1p"},InvalidUserList:{shape:"S1p"}}},output:{type:"structure",members:{FileShareARN:{}}}},UpdateSMBSecurityStrategy:{input:{type:"structure",required:["GatewayARN","SMBSecurityStrategy"],members:{GatewayARN:{},SMBSecurityStrategy:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateSnapshotSchedule:{input:{type:"structure",required:["VolumeARN","StartAt","RecurrenceInHours"],members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{},Tags:{shape:"S9"}}},output:{type:"structure",members:{VolumeARN:{}}}},UpdateVTLDeviceType:{input:{type:"structure",required:["VTLDeviceARN","DeviceType"],members:{VTLDeviceARN:{},DeviceType:{}}},output:{type:"structure",members:{VTLDeviceARN:{}}}}},shapes:{S9:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},Sg:{type:"list",member:{}},S1c:{type:"structure",members:{FileMode:{},DirectoryMode:{},GroupId:{type:"long"},OwnerId:{type:"long"}}},S1j:{type:"list",member:{}},S1p:{type:"list",member:{}},S2a:{type:"list",member:{}},S35:{type:"list",member:{}},S3e:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},LunNumber:{type:"integer"},ChapEnabled:{type:"boolean"}}},S3n:{type:"string",sensitive:!0},S47:{type:"list",member:{}}},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"},ListFileShares:{input_token:"Marker",limit_key:"Limit",non_aggregate_keys:["Marker"],output_token:"NextMarker",result_key:"FileShareInfoList"},ListGateways:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Gateways"},ListLocalDisks:{result_key:"Disks"},ListTagsForResource:{input_token:"Marker",limit_key:"Limit",non_aggregate_keys:["ResourceARN"],output_token:"Marker",result_key:"Tags"},ListTapes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeInfos"},ListVolumeRecoveryPoints:{result_key:"VolumeRecoveryPointInfos"},ListVolumes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VolumeInfos"}}};AWS.apiLoader.services.waf={},AWS.WAF=AWS.Service.defineService("waf",["2015-08-24"]);AWS.apiLoader.services.waf["2015-08-24"]={version:"2.0",metadata:{apiVersion:"2015-08-24",endpointPrefix:"waf",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"WAF",serviceFullName:"AWS WAF",serviceId:"WAF",signatureVersion:"v4",targetPrefix:"AWSWAF_20150824",uid:"waf-2015-08-24"},operations:{CreateByteMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{ByteMatchSet:{shape:"S5"},ChangeToken:{}}}},CreateGeoMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{GeoMatchSet:{shape:"Sh"},ChangeToken:{}}}},CreateIPSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{IPSet:{shape:"So"},ChangeToken:{}}}},CreateRateBasedRule:{input:{type:"structure",required:["Name","MetricName","RateKey","RateLimit","ChangeToken"],members:{Name:{},MetricName:{},RateKey:{},RateLimit:{type:"long"},ChangeToken:{},Tags:{shape:"Sx"}}},output:{type:"structure",members:{Rule:{shape:"S12"},ChangeToken:{}}}},CreateRegexMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{RegexMatchSet:{shape:"S19"},ChangeToken:{}}}},CreateRegexPatternSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{RegexPatternSet:{shape:"S1e"},ChangeToken:{}}}},CreateRule:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{},Tags:{shape:"Sx"}}},output:{type:"structure",members:{Rule:{shape:"S1j"},ChangeToken:{}}}},CreateRuleGroup:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{},Tags:{shape:"Sx"}}},output:{type:"structure",members:{RuleGroup:{shape:"S1m"},ChangeToken:{}}}},CreateSizeConstraintSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"S1p"},ChangeToken:{}}}},CreateSqlInjectionMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S1w"},ChangeToken:{}}}},CreateWebACL:{input:{type:"structure",required:["Name","MetricName","DefaultAction","ChangeToken"],members:{Name:{},MetricName:{},DefaultAction:{shape:"S20"},ChangeToken:{},Tags:{shape:"Sx"}}},output:{type:"structure",members:{WebACL:{shape:"S23"},ChangeToken:{}}}},CreateXssMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S2f"},ChangeToken:{}}}},DeleteByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId","ChangeToken"],members:{ByteMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteGeoMatchSet:{input:{type:"structure",required:["GeoMatchSetId","ChangeToken"],members:{GeoMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteIPSet:{input:{type:"structure",required:["IPSetId","ChangeToken"],members:{IPSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteLoggingConfiguration:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{}}},DeletePermissionPolicy:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{}}},DeleteRateBasedRule:{input:{type:"structure",required:["RuleId","ChangeToken"],members:{RuleId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteRegexMatchSet:{input:{type:"structure",required:["RegexMatchSetId","ChangeToken"],members:{RegexMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteRegexPatternSet:{input:{type:"structure",required:["RegexPatternSetId","ChangeToken"],members:{RegexPatternSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteRule:{input:{type:"structure",required:["RuleId","ChangeToken"],members:{RuleId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteRuleGroup:{input:{type:"structure",required:["RuleGroupId","ChangeToken"],members:{RuleGroupId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId","ChangeToken"],members:{SizeConstraintSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId","ChangeToken"],members:{SqlInjectionMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteWebACL:{input:{type:"structure",required:["WebACLId","ChangeToken"],members:{WebACLId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},DeleteXssMatchSet:{input:{type:"structure",required:["XssMatchSetId","ChangeToken"],members:{XssMatchSetId:{},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},GetByteMatchSet:{input:{type:"structure",required:["ByteMatchSetId"],members:{ByteMatchSetId:{}}},output:{type:"structure",members:{ByteMatchSet:{shape:"S5"}}}},GetChangeToken:{input:{type:"structure",members:{}},output:{type:"structure",members:{ChangeToken:{}}}},GetChangeTokenStatus:{input:{type:"structure",required:["ChangeToken"],members:{ChangeToken:{}}},output:{type:"structure",members:{ChangeTokenStatus:{}}}},GetGeoMatchSet:{input:{type:"structure",required:["GeoMatchSetId"],members:{GeoMatchSetId:{}}},output:{type:"structure",members:{GeoMatchSet:{shape:"Sh"}}}},GetIPSet:{input:{type:"structure",required:["IPSetId"],members:{IPSetId:{}}},output:{type:"structure",members:{IPSet:{shape:"So"}}}},GetLoggingConfiguration:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{LoggingConfiguration:{shape:"S3n"}}}},GetPermissionPolicy:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{Policy:{}}}},GetRateBasedRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"S12"}}}},GetRateBasedRuleManagedKeys:{input:{type:"structure",required:["RuleId"],members:{RuleId:{},NextMarker:{}}},output:{type:"structure",members:{ManagedKeys:{type:"list",member:{}},NextMarker:{}}}},GetRegexMatchSet:{input:{type:"structure",required:["RegexMatchSetId"],members:{RegexMatchSetId:{}}},output:{type:"structure",members:{RegexMatchSet:{shape:"S19"}}}},GetRegexPatternSet:{input:{type:"structure",required:["RegexPatternSetId"],members:{RegexPatternSetId:{}}},output:{type:"structure",members:{RegexPatternSet:{shape:"S1e"}}}},GetRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"S1j"}}}},GetRuleGroup:{input:{type:"structure",required:["RuleGroupId"],members:{RuleGroupId:{}}},output:{type:"structure",members:{RuleGroup:{shape:"S1m"}}}},GetSampledRequests:{input:{type:"structure",required:["WebAclId","RuleId","TimeWindow","MaxItems"],members:{WebAclId:{},RuleId:{},TimeWindow:{shape:"S49"},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:{},RuleWithinRuleGroup:{}}}},PopulationSize:{type:"long"},TimeWindow:{shape:"S49"}}}},GetSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId"],members:{SizeConstraintSetId:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"S1p"}}}},GetSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId"],members:{SqlInjectionMatchSetId:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S1w"}}}},GetWebACL:{input:{type:"structure",required:["WebACLId"],members:{WebACLId:{}}},output:{type:"structure",members:{WebACL:{shape:"S23"}}}},GetXssMatchSet:{input:{type:"structure",required:["XssMatchSetId"],members:{XssMatchSetId:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S2f"}}}},ListActivatedRulesInRuleGroup:{input:{type:"structure",members:{RuleGroupId:{},NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},ActivatedRules:{shape:"S24"}}}},ListByteMatchSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},ByteMatchSets:{type:"list",member:{type:"structure",required:["ByteMatchSetId","Name"],members:{ByteMatchSetId:{},Name:{}}}}}}},ListGeoMatchSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},GeoMatchSets:{type:"list",member:{type:"structure",required:["GeoMatchSetId","Name"],members:{GeoMatchSetId:{},Name:{}}}}}}},ListIPSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},IPSets:{type:"list",member:{type:"structure",required:["IPSetId","Name"],members:{IPSetId:{},Name:{}}}}}}},ListLoggingConfigurations:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{LoggingConfigurations:{type:"list",member:{shape:"S3n"}},NextMarker:{}}}},ListRateBasedRules:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Rules:{shape:"S5k"}}}},ListRegexMatchSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},RegexMatchSets:{type:"list",member:{type:"structure",required:["RegexMatchSetId","Name"],members:{RegexMatchSetId:{},Name:{}}}}}}},ListRegexPatternSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},RegexPatternSets:{type:"list",member:{type:"structure",required:["RegexPatternSetId","Name"],members:{RegexPatternSetId:{},Name:{}}}}}}},ListRuleGroups:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},RuleGroups:{type:"list",member:{type:"structure",required:["RuleGroupId","Name"],members:{RuleGroupId:{},Name:{}}}}}}},ListRules:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Rules:{shape:"S5k"}}}},ListSizeConstraintSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},SizeConstraintSets:{type:"list",member:{type:"structure",required:["SizeConstraintSetId","Name"],members:{SizeConstraintSetId:{},Name:{}}}}}}},ListSqlInjectionMatchSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},SqlInjectionMatchSets:{type:"list",member:{type:"structure",required:["SqlInjectionMatchSetId","Name"],members:{SqlInjectionMatchSetId:{},Name:{}}}}}}},ListSubscribedRuleGroups:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},RuleGroups:{type:"list",member:{type:"structure",required:["RuleGroupId","Name","MetricName"],members:{RuleGroupId:{},Name:{},MetricName:{}}}}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{NextMarker:{},Limit:{type:"integer"},ResourceARN:{}}},output:{type:"structure",members:{NextMarker:{},TagInfoForResource:{type:"structure",members:{ResourceARN:{},TagList:{shape:"Sx"}}}}}},ListWebACLs:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},WebACLs:{type:"list",member:{type:"structure",required:["WebACLId","Name"],members:{WebACLId:{},Name:{}}}}}}},ListXssMatchSets:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},XssMatchSets:{type:"list",member:{type:"structure",required:["XssMatchSetId","Name"],members:{XssMatchSetId:{},Name:{}}}}}}},PutLoggingConfiguration:{input:{type:"structure",required:["LoggingConfiguration"],members:{LoggingConfiguration:{shape:"S3n"}}},output:{type:"structure",members:{LoggingConfiguration:{shape:"S3n"}}}},PutPermissionPolicy:{input:{type:"structure",required:["ResourceArn","Policy"],members:{ResourceArn:{},Policy:{}}},output:{type:"structure",members:{}}},TagResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sx"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceARN","TagKeys"],members:{ResourceARN:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},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:{}}}},UpdateGeoMatchSet:{input:{type:"structure",required:["GeoMatchSetId","ChangeToken","Updates"],members:{GeoMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","GeoMatchConstraint"],members:{Action:{},GeoMatchConstraint:{shape:"Sj"}}}}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateIPSet:{input:{type:"structure",required:["IPSetId","ChangeToken","Updates"],members:{IPSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","IPSetDescriptor"],members:{Action:{},IPSetDescriptor:{shape:"Sq"}}}}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateRateBasedRule:{input:{type:"structure",required:["RuleId","ChangeToken","Updates","RateLimit"],members:{RuleId:{},ChangeToken:{},Updates:{shape:"S7a"},RateLimit:{type:"long"}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateRegexMatchSet:{input:{type:"structure",required:["RegexMatchSetId","Updates","ChangeToken"],members:{RegexMatchSetId:{},Updates:{type:"list",member:{type:"structure",required:["Action","RegexMatchTuple"],members:{Action:{},RegexMatchTuple:{shape:"S1b"}}}},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateRegexPatternSet:{input:{type:"structure",required:["RegexPatternSetId","Updates","ChangeToken"],members:{RegexPatternSetId:{},Updates:{type:"list",member:{type:"structure",required:["Action","RegexPatternString"],members:{Action:{},RegexPatternString:{}}}},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateRule:{input:{type:"structure",required:["RuleId","ChangeToken","Updates"],members:{RuleId:{},ChangeToken:{},Updates:{shape:"S7a"}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateRuleGroup:{input:{type:"structure",required:["RuleGroupId","Updates","ChangeToken"],members:{RuleGroupId:{},Updates:{type:"list",member:{type:"structure",required:["Action","ActivatedRule"],members:{Action:{},ActivatedRule:{shape:"S25"}}}},ChangeToken:{}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId","ChangeToken","Updates"],members:{SizeConstraintSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","SizeConstraint"],members:{Action:{},SizeConstraint:{shape:"S1r"}}}}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId","ChangeToken","Updates"],members:{SqlInjectionMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","SqlInjectionMatchTuple"],members:{Action:{},SqlInjectionMatchTuple:{shape:"S1y"}}}}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateWebACL:{input:{type:"structure",required:["WebACLId","ChangeToken"],members:{WebACLId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","ActivatedRule"],members:{Action:{},ActivatedRule:{shape:"S25"}}}},DefaultAction:{shape:"S20"}}},output:{type:"structure",members:{ChangeToken:{}}}},UpdateXssMatchSet:{input:{type:"structure",required:["XssMatchSetId","ChangeToken","Updates"],members:{XssMatchSetId:{},ChangeToken:{},Updates:{type:"list",member:{type:"structure",required:["Action","XssMatchTuple"],members:{Action:{},XssMatchTuple:{shape:"S2h"}}}}}},output:{type:"structure",members:{ChangeToken:{}}}}},shapes:{S5:{type:"structure",required:["ByteMatchSetId","ByteMatchTuples"],members:{ByteMatchSetId:{},Name:{},ByteMatchTuples:{type:"list",member:{shape:"S8"}}}},S8:{type:"structure",required:["FieldToMatch","TargetString","TextTransformation","PositionalConstraint"],members:{FieldToMatch:{shape:"S9"},TargetString:{type:"blob"},TextTransformation:{},PositionalConstraint:{}}},S9:{type:"structure",required:["Type"],members:{Type:{},Data:{}}},Sh:{type:"structure",required:["GeoMatchSetId","GeoMatchConstraints"],members:{GeoMatchSetId:{},Name:{},GeoMatchConstraints:{type:"list",member:{shape:"Sj"}}}},Sj:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{}}},So:{type:"structure",required:["IPSetId","IPSetDescriptors"],members:{IPSetId:{},Name:{},IPSetDescriptors:{type:"list",member:{shape:"Sq"}}}},Sq:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{}}},Sx:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},S12:{type:"structure",required:["RuleId","MatchPredicates","RateKey","RateLimit"],members:{RuleId:{},Name:{},MetricName:{},MatchPredicates:{shape:"S13"},RateKey:{},RateLimit:{type:"long"}}},S13:{type:"list",member:{shape:"S14"}},S14:{type:"structure",required:["Negated","Type","DataId"],members:{Negated:{type:"boolean"},Type:{},DataId:{}}},S19:{type:"structure",members:{RegexMatchSetId:{},Name:{},RegexMatchTuples:{type:"list",member:{shape:"S1b"}}}},S1b:{type:"structure",required:["FieldToMatch","TextTransformation","RegexPatternSetId"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},RegexPatternSetId:{}}},S1e:{type:"structure",required:["RegexPatternSetId","RegexPatternStrings"],members:{RegexPatternSetId:{},Name:{},RegexPatternStrings:{type:"list",member:{}}}},S1j:{type:"structure",required:["RuleId","Predicates"],members:{RuleId:{},Name:{},MetricName:{},Predicates:{shape:"S13"}}},S1m:{type:"structure",required:["RuleGroupId"],members:{RuleGroupId:{},Name:{},MetricName:{}}},S1p:{type:"structure",required:["SizeConstraintSetId","SizeConstraints"],members:{SizeConstraintSetId:{},Name:{},SizeConstraints:{type:"list",member:{shape:"S1r"}}}},S1r:{type:"structure",required:["FieldToMatch","TextTransformation","ComparisonOperator","Size"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},ComparisonOperator:{},Size:{type:"long"}}},S1w:{type:"structure",required:["SqlInjectionMatchSetId","SqlInjectionMatchTuples"],members:{SqlInjectionMatchSetId:{},Name:{},SqlInjectionMatchTuples:{type:"list",member:{shape:"S1y"}}}},S1y:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S20:{type:"structure",required:["Type"],members:{Type:{}}},S23:{type:"structure",required:["WebACLId","DefaultAction","Rules"],members:{WebACLId:{},Name:{},MetricName:{},DefaultAction:{shape:"S20"},Rules:{shape:"S24"},WebACLArn:{}}},S24:{type:"list",member:{shape:"S25"}},S25:{type:"structure",required:["Priority","RuleId"],members:{Priority:{type:"integer"},RuleId:{},Action:{shape:"S20"},OverrideAction:{type:"structure",required:["Type"],members:{Type:{}}},Type:{},ExcludedRules:{type:"list",member:{type:"structure",required:["RuleId"],members:{RuleId:{}}}}}},S2f:{type:"structure",required:["XssMatchSetId","XssMatchTuples"],members:{XssMatchSetId:{},Name:{},XssMatchTuples:{type:"list",member:{shape:"S2h"}}}},S2h:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S3n:{type:"structure",required:["ResourceArn","LogDestinationConfigs"],members:{ResourceArn:{},LogDestinationConfigs:{type:"list",member:{}},RedactedFields:{type:"list",member:{shape:"S9"}}}},S49:{type:"structure",required:["StartTime","EndTime"],members:{StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}},S5k:{type:"list",member:{type:"structure",required:["RuleId","Name"],members:{RuleId:{},Name:{}}}},S7a:{type:"list",member:{type:"structure",required:["Action","Predicate"],members:{Action:{},Predicate:{shape:"S14"}}}}},paginators:{}};AWS.apiLoader.services.comprehend={},AWS.Comprehend=AWS.Service.defineService("comprehend",["2017-11-27"]);AWS.apiLoader.services.comprehend["2017-11-27"]={version:"2.0",metadata:{apiVersion:"2017-11-27",endpointPrefix:"comprehend",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Comprehend",serviceId:"Comprehend",signatureVersion:"v4",signingName:"comprehend",targetPrefix:"Comprehend_20171127",uid:"comprehend-2017-11-27"},operations:{BatchDetectDominantLanguage:{input:{type:"structure",required:["TextList"],members:{TextList:{shape:"S2"}}},output:{type:"structure",required:["ResultList","ErrorList"],members:{ResultList:{type:"list",member:{type:"structure",members:{Index:{type:"integer"},Languages:{shape:"S8"}}}},ErrorList:{shape:"Sb"}}}},BatchDetectEntities:{input:{type:"structure",required:["TextList","LanguageCode"],members:{TextList:{shape:"S2"},LanguageCode:{}}},output:{type:"structure",required:["ResultList","ErrorList"],members:{ResultList:{type:"list",member:{type:"structure",members:{Index:{type:"integer"},Entities:{shape:"Si"}}}},ErrorList:{shape:"Sb"}}}},BatchDetectKeyPhrases:{input:{type:"structure",required:["TextList","LanguageCode"],members:{TextList:{shape:"S2"},LanguageCode:{}}},output:{type:"structure",required:["ResultList","ErrorList"],members:{ResultList:{type:"list",member:{type:"structure",members:{Index:{type:"integer"},KeyPhrases:{shape:"Sp"}}}},ErrorList:{shape:"Sb"}}}},BatchDetectSentiment:{input:{type:"structure",required:["TextList","LanguageCode"],members:{TextList:{shape:"S2"},LanguageCode:{}}},output:{type:"structure",required:["ResultList","ErrorList"],members:{ResultList:{type:"list",member:{type:"structure",members:{Index:{type:"integer"},Sentiment:{},SentimentScore:{shape:"Sw"}}}},ErrorList:{shape:"Sb"}}}},BatchDetectSyntax:{input:{type:"structure",required:["TextList","LanguageCode"],members:{TextList:{shape:"S2"},LanguageCode:{}}},output:{type:"structure",required:["ResultList","ErrorList"],members:{ResultList:{type:"list",member:{type:"structure",members:{Index:{type:"integer"},SyntaxTokens:{shape:"S12"}}}},ErrorList:{shape:"Sb"}}}},ClassifyDocument:{input:{type:"structure",required:["Text","EndpointArn"],members:{Text:{},EndpointArn:{}}},output:{type:"structure",members:{Classes:{type:"list",member:{type:"structure",members:{Name:{},Score:{type:"float"}}}}}}},CreateDocumentClassifier:{input:{type:"structure",required:["DocumentClassifierName","DataAccessRoleArn","InputDataConfig","LanguageCode"],members:{DocumentClassifierName:{},DataAccessRoleArn:{},Tags:{shape:"S1e"},InputDataConfig:{shape:"S1i"},OutputDataConfig:{shape:"S1k"},ClientRequestToken:{idempotencyToken:!0},LanguageCode:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{DocumentClassifierArn:{}}}},CreateEndpoint:{input:{type:"structure",required:["EndpointName","ModelArn","DesiredInferenceUnits"],members:{EndpointName:{},ModelArn:{},DesiredInferenceUnits:{type:"integer"},ClientRequestToken:{idempotencyToken:!0},Tags:{shape:"S1e"}}},output:{type:"structure",members:{EndpointArn:{}}}},CreateEntityRecognizer:{input:{type:"structure",required:["RecognizerName","DataAccessRoleArn","InputDataConfig","LanguageCode"],members:{RecognizerName:{},DataAccessRoleArn:{},Tags:{shape:"S1e"},InputDataConfig:{shape:"S21"},ClientRequestToken:{idempotencyToken:!0},LanguageCode:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{EntityRecognizerArn:{}}}},DeleteDocumentClassifier:{input:{type:"structure",required:["DocumentClassifierArn"],members:{DocumentClassifierArn:{}}},output:{type:"structure",members:{}}},DeleteEndpoint:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},output:{type:"structure",members:{}}},DeleteEntityRecognizer:{input:{type:"structure",required:["EntityRecognizerArn"],members:{EntityRecognizerArn:{}}},output:{type:"structure",members:{}}},DescribeDocumentClassificationJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{DocumentClassificationJobProperties:{shape:"S2j"}}}},DescribeDocumentClassifier:{input:{type:"structure",required:["DocumentClassifierArn"],members:{DocumentClassifierArn:{}}},output:{type:"structure",members:{DocumentClassifierProperties:{shape:"S2t"}}}},DescribeDominantLanguageDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{DominantLanguageDetectionJobProperties:{shape:"S30"}}}},DescribeEndpoint:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},output:{type:"structure",members:{EndpointProperties:{shape:"S33"}}}},DescribeEntitiesDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{EntitiesDetectionJobProperties:{shape:"S37"}}}},DescribeEntityRecognizer:{input:{type:"structure",required:["EntityRecognizerArn"],members:{EntityRecognizerArn:{}}},output:{type:"structure",members:{EntityRecognizerProperties:{shape:"S3a"}}}},DescribeKeyPhrasesDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{KeyPhrasesDetectionJobProperties:{shape:"S3i"}}}},DescribeSentimentDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{SentimentDetectionJobProperties:{shape:"S3l"}}}},DescribeTopicsDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{TopicsDetectionJobProperties:{shape:"S3o"}}}},DetectDominantLanguage:{input:{type:"structure",required:["Text"],members:{Text:{}}},output:{type:"structure",members:{Languages:{shape:"S8"}}}},DetectEntities:{input:{type:"structure",required:["Text","LanguageCode"],members:{Text:{},LanguageCode:{}}},output:{type:"structure",members:{Entities:{shape:"Si"}}}},DetectKeyPhrases:{input:{type:"structure",required:["Text","LanguageCode"],members:{Text:{},LanguageCode:{}}},output:{type:"structure",members:{KeyPhrases:{shape:"Sp"}}}},DetectSentiment:{input:{type:"structure",required:["Text","LanguageCode"],members:{Text:{},LanguageCode:{}}},output:{type:"structure",members:{Sentiment:{},SentimentScore:{shape:"Sw"}}}},DetectSyntax:{input:{type:"structure",required:["Text","LanguageCode"],members:{Text:{},LanguageCode:{}}},output:{type:"structure",members:{SyntaxTokens:{shape:"S12"}}}},ListDocumentClassificationJobs:{input:{type:"structure",members:{Filter:{type:"structure",members:{JobName:{},JobStatus:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{DocumentClassificationJobPropertiesList:{type:"list",member:{shape:"S2j"}},NextToken:{}}}},ListDocumentClassifiers:{input:{type:"structure",members:{Filter:{type:"structure",members:{Status:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{DocumentClassifierPropertiesList:{type:"list",member:{shape:"S2t"}},NextToken:{}}}},ListDominantLanguageDetectionJobs:{input:{type:"structure",members:{Filter:{type:"structure",members:{JobName:{},JobStatus:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{DominantLanguageDetectionJobPropertiesList:{type:"list",member:{shape:"S30"}},NextToken:{}}}},ListEndpoints:{input:{type:"structure",members:{Filter:{type:"structure",members:{ModelArn:{},Status:{},CreationTimeBefore:{type:"timestamp"},CreationTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EndpointPropertiesList:{type:"list",member:{shape:"S33"}},NextToken:{}}}},ListEntitiesDetectionJobs:{input:{type:"structure",members:{Filter:{type:"structure",members:{JobName:{},JobStatus:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EntitiesDetectionJobPropertiesList:{type:"list",member:{shape:"S37"}},NextToken:{}}}},ListEntityRecognizers:{input:{type:"structure",members:{Filter:{type:"structure",members:{Status:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EntityRecognizerPropertiesList:{type:"list",member:{shape:"S3a"}},NextToken:{}}}},ListKeyPhrasesDetectionJobs:{input:{type:"structure",members:{Filter:{type:"structure",members:{JobName:{},JobStatus:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{KeyPhrasesDetectionJobPropertiesList:{type:"list",member:{shape:"S3i"}},NextToken:{}}}},ListSentimentDetectionJobs:{input:{type:"structure",members:{Filter:{type:"structure",members:{JobName:{},JobStatus:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{SentimentDetectionJobPropertiesList:{type:"list",member:{shape:"S3l"}},NextToken:{}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{}}},output:{type:"structure",members:{ResourceArn:{},Tags:{shape:"S1e"}}}},ListTopicsDetectionJobs:{input:{type:"structure",members:{Filter:{type:"structure",members:{JobName:{},JobStatus:{},SubmitTimeBefore:{type:"timestamp"},SubmitTimeAfter:{type:"timestamp"}}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{TopicsDetectionJobPropertiesList:{type:"list",member:{shape:"S3o"}},NextToken:{}}}},StartDocumentClassificationJob:{input:{type:"structure",required:["DocumentClassifierArn","InputDataConfig","OutputDataConfig","DataAccessRoleArn"],members:{JobName:{},DocumentClassifierArn:{},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},ClientRequestToken:{idempotencyToken:!0},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StartDominantLanguageDetectionJob:{input:{type:"structure",required:["InputDataConfig","OutputDataConfig","DataAccessRoleArn"],members:{InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},JobName:{},ClientRequestToken:{idempotencyToken:!0},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StartEntitiesDetectionJob:{input:{type:"structure",required:["InputDataConfig","OutputDataConfig","DataAccessRoleArn","LanguageCode"],members:{InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},JobName:{},EntityRecognizerArn:{},LanguageCode:{},ClientRequestToken:{idempotencyToken:!0},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StartKeyPhrasesDetectionJob:{input:{type:"structure",required:["InputDataConfig","OutputDataConfig","DataAccessRoleArn","LanguageCode"],members:{InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},JobName:{},LanguageCode:{},ClientRequestToken:{idempotencyToken:!0},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StartSentimentDetectionJob:{input:{type:"structure",required:["InputDataConfig","OutputDataConfig","DataAccessRoleArn","LanguageCode"],members:{InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},JobName:{},LanguageCode:{},ClientRequestToken:{idempotencyToken:!0},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StartTopicsDetectionJob:{input:{type:"structure",required:["InputDataConfig","OutputDataConfig","DataAccessRoleArn"],members:{InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},JobName:{},NumberOfTopics:{type:"integer"},ClientRequestToken:{idempotencyToken:!0},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StopDominantLanguageDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StopEntitiesDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StopKeyPhrasesDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StopSentimentDetectionJob:{input:{type:"structure",required:["JobId"],members:{JobId:{}}},output:{type:"structure",members:{JobId:{},JobStatus:{}}}},StopTrainingDocumentClassifier:{input:{type:"structure",required:["DocumentClassifierArn"],members:{DocumentClassifierArn:{}}},output:{type:"structure",members:{}}},StopTrainingEntityRecognizer:{input:{type:"structure",required:["EntityRecognizerArn"],members:{EntityRecognizerArn:{}}},output:{type:"structure",members:{}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S1e"}}},output:{type:"structure",members:{}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}},output:{type:"structure",members:{}}},UpdateEndpoint:{input:{type:"structure",required:["EndpointArn","DesiredInferenceUnits"],members:{EndpointArn:{},DesiredInferenceUnits:{type:"integer"}}},output:{type:"structure",members:{}}}},shapes:{S2:{type:"list",member:{}},S8:{type:"list",member:{type:"structure",members:{LanguageCode:{},Score:{type:"float"}}}},Sb:{type:"list",member:{type:"structure",members:{Index:{type:"integer"},ErrorCode:{},ErrorMessage:{}}}},Si:{type:"list",member:{type:"structure",members:{Score:{type:"float"},Type:{},Text:{},BeginOffset:{type:"integer"},EndOffset:{type:"integer"}}}},Sp:{type:"list",member:{type:"structure",members:{Score:{type:"float"},Text:{},BeginOffset:{type:"integer"},EndOffset:{type:"integer"}}}},Sw:{type:"structure",members:{Positive:{type:"float"},Negative:{type:"float"},Neutral:{type:"float"},Mixed:{type:"float"}}},S12:{type:"list",member:{type:"structure",members:{TokenId:{type:"integer"},Text:{},BeginOffset:{type:"integer"},EndOffset:{type:"integer"},PartOfSpeech:{type:"structure",members:{Tag:{},Score:{type:"float"}}}}}},S1e:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Value:{}}}},S1i:{type:"structure",required:["S3Uri"],members:{S3Uri:{}}},S1k:{type:"structure",members:{S3Uri:{},KmsKeyId:{}}},S1n:{type:"structure",required:["SecurityGroupIds","Subnets"],members:{SecurityGroupIds:{type:"list",member:{}},Subnets:{type:"list",member:{}}}},S21:{type:"structure",required:["EntityTypes","Documents"],members:{EntityTypes:{type:"list",member:{type:"structure",required:["Type"],members:{Type:{}}}},Documents:{type:"structure",required:["S3Uri"],members:{S3Uri:{}}},Annotations:{type:"structure",required:["S3Uri"],members:{S3Uri:{}}},EntityList:{type:"structure",required:["S3Uri"],members:{S3Uri:{}}}}},S2j:{type:"structure",members:{JobId:{},JobName:{},JobStatus:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},DocumentClassifierArn:{},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S2o:{type:"structure",required:["S3Uri"],members:{S3Uri:{},InputFormat:{}}},S2q:{type:"structure",required:["S3Uri"],members:{S3Uri:{},KmsKeyId:{}}},S2t:{type:"structure",members:{DocumentClassifierArn:{},LanguageCode:{},Status:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},TrainingStartTime:{type:"timestamp"},TrainingEndTime:{type:"timestamp"},InputDataConfig:{shape:"S1i"},OutputDataConfig:{shape:"S1k"},ClassifierMetadata:{type:"structure",members:{NumberOfLabels:{type:"integer"},NumberOfTrainedDocuments:{type:"integer"},NumberOfTestDocuments:{type:"integer"},EvaluationMetrics:{type:"structure",members:{Accuracy:{type:"double"},Precision:{type:"double"},Recall:{type:"double"},F1Score:{type:"double"}}}}},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S30:{type:"structure",members:{JobId:{},JobName:{},JobStatus:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S33:{type:"structure",members:{EndpointArn:{},Status:{},Message:{},ModelArn:{},DesiredInferenceUnits:{type:"integer"},CurrentInferenceUnits:{type:"integer"},CreationTime:{type:"timestamp"},LastModifiedTime:{type:"timestamp"}}},S37:{type:"structure",members:{JobId:{},JobName:{},JobStatus:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},EntityRecognizerArn:{},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},LanguageCode:{},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S3a:{type:"structure",members:{EntityRecognizerArn:{},LanguageCode:{},Status:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},TrainingStartTime:{type:"timestamp"},TrainingEndTime:{type:"timestamp"},InputDataConfig:{shape:"S21"},RecognizerMetadata:{type:"structure",members:{NumberOfTrainedDocuments:{type:"integer"},NumberOfTestDocuments:{type:"integer"},EvaluationMetrics:{type:"structure",members:{Precision:{type:"double"},Recall:{type:"double"},F1Score:{type:"double"}}},EntityTypes:{type:"list",member:{type:"structure",members:{Type:{},EvaluationMetrics:{type:"structure",members:{Precision:{type:"double"},Recall:{type:"double"},F1Score:{type:"double"}}},NumberOfTrainMentions:{type:"integer"}}}}}},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S3i:{type:"structure",members:{JobId:{},JobName:{},JobStatus:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},LanguageCode:{},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S3l:{type:"structure",members:{JobId:{},JobName:{},JobStatus:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},LanguageCode:{},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}},S3o:{type:"structure",members:{JobId:{},JobName:{},JobStatus:{},Message:{},SubmitTime:{type:"timestamp"},EndTime:{type:"timestamp"},InputDataConfig:{shape:"S2o"},OutputDataConfig:{shape:"S2q"},NumberOfTopics:{type:"integer"},DataAccessRoleArn:{},VolumeKmsKeyId:{},VpcConfig:{shape:"S1n"}}}},paginators:{ListDocumentClassificationJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListDocumentClassifiers:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListDominantLanguageDetectionJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListEntitiesDetectionJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListEntityRecognizers:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListKeyPhrasesDetectionJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListSentimentDetectionJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListTopicsDetectionJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"}}};AWS.apiLoader.services.kinesisvideo={},AWS.KinesisVideo=AWS.Service.defineService("kinesisvideo",["2017-09-30"]);AWS.apiLoader.services.kinesisvideo["2017-09-30"]={version:"2.0",metadata:{apiVersion:"2017-09-30",endpointPrefix:"kinesisvideo",protocol:"rest-json",serviceAbbreviation:"Kinesis Video",serviceFullName:"Amazon Kinesis Video Streams",serviceId:"Kinesis Video",signatureVersion:"v4",uid:"kinesisvideo-2017-09-30"},operations:{CreateSignalingChannel:{http:{requestUri:"/createSignalingChannel"},input:{type:"structure",required:["ChannelName"],members:{ChannelName:{},ChannelType:{},SingleMasterConfiguration:{shape:"S4"},Tags:{type:"list",member:{shape:"S7"}}}},output:{type:"structure",members:{ChannelARN:{}}}},CreateStream:{http:{requestUri:"/createStream"},input:{type:"structure",required:["StreamName"],members:{DeviceName:{},StreamName:{},MediaType:{},KmsKeyId:{},DataRetentionInHours:{type:"integer"},Tags:{shape:"Si"}}},output:{type:"structure",members:{StreamARN:{}}}},DeleteSignalingChannel:{http:{requestUri:"/deleteSignalingChannel"},input:{type:"structure",required:["ChannelARN"],members:{ChannelARN:{},CurrentVersion:{}}},output:{type:"structure",members:{}}},DeleteStream:{http:{requestUri:"/deleteStream"},input:{type:"structure",required:["StreamARN"],members:{StreamARN:{},CurrentVersion:{}}},output:{type:"structure",members:{}}},DescribeSignalingChannel:{http:{requestUri:"/describeSignalingChannel"},input:{type:"structure",members:{ChannelName:{},ChannelARN:{}}},output:{type:"structure",members:{ChannelInfo:{shape:"Sr"}}}},DescribeStream:{http:{requestUri:"/describeStream"},input:{type:"structure",members:{StreamName:{},StreamARN:{}}},output:{type:"structure",members:{StreamInfo:{shape:"Sw"}}}},GetDataEndpoint:{http:{requestUri:"/getDataEndpoint"},input:{type:"structure",required:["APIName"],members:{StreamName:{},StreamARN:{},APIName:{}}},output:{type:"structure",members:{DataEndpoint:{}}}},GetSignalingChannelEndpoint:{http:{requestUri:"/getSignalingChannelEndpoint"},input:{type:"structure",required:["ChannelARN"],members:{ChannelARN:{},SingleMasterChannelEndpointConfiguration:{type:"structure",members:{Protocols:{type:"list",member:{}},Role:{}}}}},output:{type:"structure",members:{ResourceEndpointList:{type:"list",member:{type:"structure",members:{Protocol:{},ResourceEndpoint:{}}}}}}},ListSignalingChannels:{http:{requestUri:"/listSignalingChannels"},input:{type:"structure",members:{MaxResults:{type:"integer"},NextToken:{},ChannelNameCondition:{type:"structure",members:{ComparisonOperator:{},ComparisonValue:{}}}}},output:{type:"structure",members:{ChannelInfoList:{type:"list",member:{shape:"Sr"}},NextToken:{}}}},ListStreams:{http:{requestUri:"/listStreams"},input:{type:"structure",members:{MaxResults:{type:"integer"},NextToken:{},StreamNameCondition:{type:"structure",members:{ComparisonOperator:{},ComparisonValue:{}}}}},output:{type:"structure",members:{StreamInfoList:{type:"list",member:{shape:"Sw"}},NextToken:{}}}},ListTagsForResource:{http:{requestUri:"/ListTagsForResource"},input:{type:"structure",required:["ResourceARN"],members:{NextToken:{},ResourceARN:{}}},output:{type:"structure",members:{NextToken:{},Tags:{shape:"Si"}}}},ListTagsForStream:{http:{requestUri:"/listTagsForStream"},input:{type:"structure",members:{NextToken:{},StreamARN:{},StreamName:{}}},output:{type:"structure",members:{NextToken:{},Tags:{shape:"Si"}}}},TagResource:{http:{requestUri:"/TagResource"},input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{type:"list",member:{shape:"S7"}}}},output:{type:"structure",members:{}}},TagStream:{http:{requestUri:"/tagStream"},input:{type:"structure",required:["Tags"],members:{StreamARN:{},StreamName:{},Tags:{shape:"Si"}}},output:{type:"structure",members:{}}},UntagResource:{http:{requestUri:"/UntagResource"},input:{type:"structure",required:["ResourceARN","TagKeyList"],members:{ResourceARN:{},TagKeyList:{shape:"S1v"}}},output:{type:"structure",members:{}}},UntagStream:{http:{requestUri:"/untagStream"},input:{type:"structure",required:["TagKeyList"],members:{StreamARN:{},StreamName:{},TagKeyList:{shape:"S1v"}}},output:{type:"structure",members:{}}},UpdateDataRetention:{http:{requestUri:"/updateDataRetention"},input:{type:"structure",required:["CurrentVersion","Operation","DataRetentionChangeInHours"],members:{StreamName:{},StreamARN:{},CurrentVersion:{},Operation:{},DataRetentionChangeInHours:{type:"integer"}}},output:{type:"structure",members:{}}},UpdateSignalingChannel:{http:{requestUri:"/updateSignalingChannel"},input:{type:"structure",required:["ChannelARN","CurrentVersion"],members:{ChannelARN:{},CurrentVersion:{},SingleMasterConfiguration:{shape:"S4"}}},output:{type:"structure",members:{}}},UpdateStream:{http:{requestUri:"/updateStream"},input:{type:"structure",required:["CurrentVersion"],members:{StreamName:{},StreamARN:{},CurrentVersion:{},DeviceName:{},MediaType:{}}},output:{type:"structure",members:{}}}},shapes:{S4:{type:"structure",members:{MessageTtlSeconds:{type:"integer"}}},S7:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},Si:{type:"map",key:{},value:{}},Sr:{type:"structure",members:{ChannelName:{},ChannelARN:{},ChannelType:{},ChannelStatus:{},CreationTime:{type:"timestamp"},SingleMasterConfiguration:{shape:"S4"},Version:{}}},Sw:{type:"structure",members:{DeviceName:{},StreamName:{},StreamARN:{},MediaType:{},KmsKeyId:{},Version:{},Status:{},CreationTime:{type:"timestamp"},DataRetentionInHours:{type:"integer"}}},S1v:{type:"list",member:{}}},paginators:{ListSignalingChannels:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"ChannelInfoList"},ListStreams:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"StreamInfoList"}}};AWS.apiLoader.services.translate={},AWS.Translate=AWS.Service.defineService("translate",["2017-07-01"]);AWS.apiLoader.services.translate["2017-07-01"]={version:"2.0",metadata:{apiVersion:"2017-07-01",endpointPrefix:"translate",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Translate",serviceId:"Translate",signatureVersion:"v4",signingName:"translate",targetPrefix:"AWSShineFrontendService_20170701",uid:"translate-2017-07-01"},operations:{DeleteTerminology:{input:{type:"structure",required:["Name"],members:{Name:{}}}},GetTerminology:{input:{type:"structure",required:["Name","TerminologyDataFormat"],members:{Name:{},TerminologyDataFormat:{}}},output:{type:"structure",members:{TerminologyProperties:{shape:"S6"},TerminologyDataLocation:{type:"structure",required:["RepositoryType","Location"],members:{RepositoryType:{},Location:{}}}}}},ImportTerminology:{input:{type:"structure",required:["Name","MergeStrategy","TerminologyData"],members:{Name:{},MergeStrategy:{},Description:{},TerminologyData:{type:"structure",required:["File","Format"],members:{File:{type:"blob",sensitive:!0},Format:{}}},EncryptionKey:{shape:"Sb"}}},output:{type:"structure",members:{TerminologyProperties:{shape:"S6"}}}},ListTerminologies:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{TerminologyPropertiesList:{type:"list",member:{shape:"S6"}},NextToken:{}}}},TranslateText:{input:{type:"structure",required:["Text","SourceLanguageCode","TargetLanguageCode"],members:{Text:{},TerminologyNames:{type:"list",member:{}},SourceLanguageCode:{},TargetLanguageCode:{}}},output:{type:"structure",required:["TranslatedText","SourceLanguageCode","TargetLanguageCode"],members:{TranslatedText:{},SourceLanguageCode:{},TargetLanguageCode:{},AppliedTerminologies:{type:"list",member:{type:"structure",members:{Name:{},Terms:{type:"list",member:{type:"structure",members:{SourceText:{},TargetText:{}}}}}}}}}}},shapes:{S6:{type:"structure",members:{Name:{},Description:{},Arn:{},SourceLanguageCode:{},TargetLanguageCodes:{type:"list",member:{}},EncryptionKey:{shape:"Sb"},SizeBytes:{type:"integer"},TermCount:{type:"integer"},CreatedAt:{type:"timestamp"},LastUpdatedAt:{type:"timestamp"}}},Sb:{type:"structure",required:["Type","Id"],members:{Type:{},Id:{}}}},paginators:{}};AWS.apiLoader.services.transcribeservice={},AWS.TranscribeService=AWS.Service.defineService("transcribeservice",["2017-10-26"]);AWS.apiLoader.services.transcribeservice["2017-10-26"]={version:"2.0",metadata:{apiVersion:"2017-10-26",endpointPrefix:"transcribe",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Transcribe Service",serviceId:"Transcribe",signatureVersion:"v4",signingName:"transcribe",targetPrefix:"Transcribe",uid:"transcribe-2017-10-26"},operations:{CreateVocabulary:{input:{type:"structure",required:["VocabularyName","LanguageCode"],members:{VocabularyName:{},LanguageCode:{},Phrases:{shape:"S4"},VocabularyFileUri:{}}},output:{type:"structure",members:{VocabularyName:{},LanguageCode:{},VocabularyState:{},LastModifiedTime:{type:"timestamp"},FailureReason:{}}}},CreateVocabularyFilter:{input:{type:"structure",required:["VocabularyFilterName","LanguageCode"],members:{VocabularyFilterName:{},LanguageCode:{},Words:{shape:"Sd"},VocabularyFilterFileUri:{}}},output:{type:"structure",members:{VocabularyFilterName:{},LanguageCode:{},LastModifiedTime:{type:"timestamp"}}}},DeleteTranscriptionJob:{input:{type:"structure",required:["TranscriptionJobName"],members:{TranscriptionJobName:{}}}},DeleteVocabulary:{input:{type:"structure",required:["VocabularyName"],members:{VocabularyName:{}}}},DeleteVocabularyFilter:{input:{type:"structure",required:["VocabularyFilterName"],members:{VocabularyFilterName:{}}}},GetTranscriptionJob:{input:{type:"structure",required:["TranscriptionJobName"],members:{TranscriptionJobName:{}}},output:{type:"structure",members:{TranscriptionJob:{shape:"Sm"}}}},GetVocabulary:{input:{type:"structure",required:["VocabularyName"],members:{VocabularyName:{}}},output:{type:"structure",members:{VocabularyName:{},LanguageCode:{},VocabularyState:{},LastModifiedTime:{type:"timestamp"},FailureReason:{},DownloadUri:{}}}},GetVocabularyFilter:{input:{type:"structure",required:["VocabularyFilterName"],members:{VocabularyFilterName:{}}},output:{type:"structure",members:{VocabularyFilterName:{},LanguageCode:{},LastModifiedTime:{type:"timestamp"},DownloadUri:{}}}},ListTranscriptionJobs:{input:{type:"structure",members:{Status:{},JobNameContains:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Status:{},NextToken:{},TranscriptionJobSummaries:{type:"list",member:{type:"structure",members:{TranscriptionJobName:{},CreationTime:{type:"timestamp"},StartTime:{type:"timestamp"},CompletionTime:{type:"timestamp"},LanguageCode:{},TranscriptionJobStatus:{},FailureReason:{},OutputLocationType:{}}}}}}},ListVocabularies:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"},StateEquals:{},NameContains:{}}},output:{type:"structure",members:{Status:{},NextToken:{},Vocabularies:{type:"list",member:{type:"structure",members:{VocabularyName:{},LanguageCode:{},LastModifiedTime:{type:"timestamp"},VocabularyState:{}}}}}}},ListVocabularyFilters:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"},NameContains:{}}},output:{type:"structure",members:{NextToken:{},VocabularyFilters:{type:"list",member:{type:"structure",members:{VocabularyFilterName:{},LanguageCode:{},LastModifiedTime:{type:"timestamp"}}}}}}},StartTranscriptionJob:{input:{type:"structure",required:["TranscriptionJobName","LanguageCode","Media"],members:{TranscriptionJobName:{},LanguageCode:{},MediaSampleRateHertz:{type:"integer"},MediaFormat:{},Media:{shape:"Sq"},OutputBucketName:{},OutputEncryptionKMSKeyId:{},Settings:{shape:"Ss"},JobExecutionSettings:{shape:"Sx"}}},output:{type:"structure",members:{TranscriptionJob:{shape:"Sm"}}}},UpdateVocabulary:{input:{type:"structure",required:["VocabularyName","LanguageCode"],members:{VocabularyName:{},LanguageCode:{},Phrases:{shape:"S4"},VocabularyFileUri:{}}},output:{type:"structure",members:{VocabularyName:{},LanguageCode:{},LastModifiedTime:{type:"timestamp"},VocabularyState:{}}}},UpdateVocabularyFilter:{input:{type:"structure",required:["VocabularyFilterName"],members:{VocabularyFilterName:{},Words:{shape:"Sd"},VocabularyFilterFileUri:{}}},output:{type:"structure",members:{VocabularyFilterName:{},LanguageCode:{},LastModifiedTime:{type:"timestamp"}}}}},shapes:{S4:{type:"list",member:{}},Sd:{type:"list",member:{}},Sm:{type:"structure",members:{TranscriptionJobName:{},TranscriptionJobStatus:{},LanguageCode:{},MediaSampleRateHertz:{type:"integer"},MediaFormat:{},Media:{shape:"Sq"},Transcript:{type:"structure",members:{TranscriptFileUri:{}}},StartTime:{type:"timestamp"},CreationTime:{type:"timestamp"},CompletionTime:{type:"timestamp"},FailureReason:{},Settings:{shape:"Ss"},JobExecutionSettings:{shape:"Sx"}}},Sq:{type:"structure",members:{MediaFileUri:{}}},Ss:{type:"structure",members:{VocabularyName:{},ShowSpeakerLabels:{type:"boolean"},MaxSpeakerLabels:{type:"integer"},ChannelIdentification:{type:"boolean"},ShowAlternatives:{type:"boolean"},MaxAlternatives:{type:"integer"},VocabularyFilterName:{},VocabularyFilterMethod:{}}},Sx:{type:"structure",members:{AllowDeferredExecution:{type:"boolean"},DataAccessRoleArn:{}}}},paginators:{ListTranscriptionJobs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListVocabularies:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListVocabularyFilters:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"}}};AWS.apiLoader.services.connect={},AWS.Connect=AWS.Service.defineService("connect",["2017-08-08"]);AWS.apiLoader.services.connect["2017-08-08"]={version:"2.0",metadata:{apiVersion:"2017-08-08",endpointPrefix:"connect",jsonVersion:"1.1",protocol:"rest-json",serviceAbbreviation:"Amazon Connect",serviceFullName:"Amazon Connect Service",serviceId:"Connect",signatureVersion:"v4",signingName:"connect",uid:"connect-2017-08-08"},operations:{CreateUser:{http:{method:"PUT",requestUri:"/users/{InstanceId}"},input:{type:"structure",required:["Username","PhoneConfig","SecurityProfileIds","RoutingProfileId","InstanceId"],members:{Username:{},Password:{},IdentityInfo:{shape:"S4"},PhoneConfig:{shape:"S8"},DirectoryUserId:{},SecurityProfileIds:{shape:"Se"},RoutingProfileId:{},HierarchyGroupId:{},InstanceId:{location:"uri",locationName:"InstanceId"},Tags:{shape:"Sj"}}},output:{type:"structure",members:{UserId:{},UserArn:{}}}},DeleteUser:{http:{method:"DELETE",requestUri:"/users/{InstanceId}/{UserId}"},input:{type:"structure",required:["InstanceId","UserId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},UserId:{location:"uri",locationName:"UserId"}}}},DescribeUser:{http:{method:"GET",requestUri:"/users/{InstanceId}/{UserId}"},input:{type:"structure",required:["UserId","InstanceId"],members:{UserId:{location:"uri",locationName:"UserId"},InstanceId:{location:"uri",locationName:"InstanceId"}}},output:{type:"structure",members:{User:{type:"structure",members:{Id:{},Arn:{},Username:{},IdentityInfo:{shape:"S4"},PhoneConfig:{shape:"S8"},DirectoryUserId:{},SecurityProfileIds:{shape:"Se"},RoutingProfileId:{},HierarchyGroupId:{},Tags:{shape:"Sj"}}}}}},DescribeUserHierarchyGroup:{http:{method:"GET",requestUri:"/user-hierarchy-groups/{InstanceId}/{HierarchyGroupId}"},input:{type:"structure",required:["HierarchyGroupId","InstanceId"],members:{HierarchyGroupId:{location:"uri",locationName:"HierarchyGroupId"},InstanceId:{location:"uri",locationName:"InstanceId"}}},output:{type:"structure",members:{HierarchyGroup:{type:"structure",members:{Id:{},Arn:{},Name:{},LevelId:{},HierarchyPath:{type:"structure",members:{LevelOne:{shape:"Sz"},LevelTwo:{shape:"Sz"},LevelThree:{shape:"Sz"},LevelFour:{shape:"Sz"},LevelFive:{shape:"Sz"}}}}}}}},DescribeUserHierarchyStructure:{http:{method:"GET",requestUri:"/user-hierarchy-structure/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"}}},output:{type:"structure",members:{HierarchyStructure:{type:"structure",members:{LevelOne:{shape:"S13"},LevelTwo:{shape:"S13"},LevelThree:{shape:"S13"},LevelFour:{shape:"S13"},LevelFive:{shape:"S13"}}}}}},GetContactAttributes:{http:{method:"GET",requestUri:"/contact/attributes/{InstanceId}/{InitialContactId}"},input:{type:"structure",required:["InstanceId","InitialContactId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},InitialContactId:{location:"uri",locationName:"InitialContactId"}}},output:{type:"structure",members:{Attributes:{shape:"S18"}}}},GetCurrentMetricData:{http:{requestUri:"/metrics/current/{InstanceId}"},input:{type:"structure",required:["InstanceId","Filters","CurrentMetrics"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},Filters:{shape:"S1c"},Groupings:{shape:"S1h"},CurrentMetrics:{type:"list",member:{shape:"S1k"}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},MetricResults:{type:"list",member:{type:"structure",members:{Dimensions:{shape:"S1s"},Collections:{type:"list",member:{type:"structure",members:{Metric:{shape:"S1k"},Value:{type:"double"}}}}}}},DataSnapshotTime:{type:"timestamp"}}}},GetFederationToken:{http:{method:"GET",requestUri:"/user/federate/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"}}},output:{type:"structure",members:{Credentials:{type:"structure",members:{AccessToken:{shape:"S21"},AccessTokenExpiration:{type:"timestamp"},RefreshToken:{shape:"S21"},RefreshTokenExpiration:{type:"timestamp"}}}}}},GetMetricData:{http:{requestUri:"/metrics/historical/{InstanceId}"},input:{type:"structure",required:["InstanceId","StartTime","EndTime","Filters","HistoricalMetrics"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Filters:{shape:"S1c"},Groupings:{shape:"S1h"},HistoricalMetrics:{type:"list",member:{shape:"S24"}},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},MetricResults:{type:"list",member:{type:"structure",members:{Dimensions:{shape:"S1s"},Collections:{type:"list",member:{type:"structure",members:{Metric:{shape:"S24"},Value:{type:"double"}}}}}}}}}},ListContactFlows:{http:{method:"GET",requestUri:"/contact-flows-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},ContactFlowTypes:{location:"querystring",locationName:"contactFlowTypes",type:"list",member:{}},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{ContactFlowSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},Name:{},ContactFlowType:{}}}},NextToken:{}}}},ListHoursOfOperations:{http:{method:"GET",requestUri:"/hours-of-operations-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{HoursOfOperationSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},Name:{}}}},NextToken:{}}}},ListPhoneNumbers:{http:{method:"GET",requestUri:"/phone-numbers-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},PhoneNumberTypes:{location:"querystring",locationName:"phoneNumberTypes",type:"list",member:{}},PhoneNumberCountryCodes:{location:"querystring",locationName:"phoneNumberCountryCodes",type:"list",member:{}},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{PhoneNumberSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},PhoneNumber:{},PhoneNumberType:{},PhoneNumberCountryCode:{}}}},NextToken:{}}}},ListQueues:{http:{method:"GET",requestUri:"/queues-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},QueueTypes:{location:"querystring",locationName:"queueTypes",type:"list",member:{}},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{QueueSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},Name:{},QueueType:{}}}},NextToken:{}}}},ListRoutingProfiles:{http:{method:"GET",requestUri:"/routing-profiles-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{RoutingProfileSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},Name:{}}}},NextToken:{}}}},ListSecurityProfiles:{http:{method:"GET",requestUri:"/security-profiles-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{SecurityProfileSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},Name:{}}}},NextToken:{}}}},ListTagsForResource:{http:{method:"GET",requestUri:"/tags/{resourceArn}"},input:{type:"structure",required:["resourceArn"],members:{resourceArn:{location:"uri",locationName:"resourceArn"}}},output:{type:"structure",members:{tags:{shape:"Sj"}}}},ListUserHierarchyGroups:{http:{method:"GET",requestUri:"/user-hierarchy-groups-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{UserHierarchyGroupSummaryList:{type:"list",member:{shape:"Sz"}},NextToken:{}}}},ListUsers:{http:{method:"GET",requestUri:"/users-summary/{InstanceId}"},input:{type:"structure",required:["InstanceId"],members:{InstanceId:{location:"uri",locationName:"InstanceId"},NextToken:{location:"querystring",locationName:"nextToken"},MaxResults:{location:"querystring",locationName:"maxResults",type:"integer"}}},output:{type:"structure",members:{UserSummaryList:{type:"list",member:{type:"structure",members:{Id:{},Arn:{},Username:{}}}},NextToken:{}}}},StartChatContact:{http:{method:"PUT",requestUri:"/contact/chat"},input:{type:"structure",required:["InstanceId","ContactFlowId","ParticipantDetails"],members:{InstanceId:{},ContactFlowId:{},Attributes:{shape:"S18"},ParticipantDetails:{type:"structure",required:["DisplayName"],members:{DisplayName:{}}},InitialMessage:{type:"structure",required:["ContentType","Content"],members:{ContentType:{},Content:{}}},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ContactId:{},ParticipantId:{},ParticipantToken:{}}}},StartOutboundVoiceContact:{http:{method:"PUT",requestUri:"/contact/outbound-voice"},input:{type:"structure",required:["DestinationPhoneNumber","ContactFlowId","InstanceId"],members:{DestinationPhoneNumber:{},ContactFlowId:{},InstanceId:{},ClientToken:{idempotencyToken:!0},SourcePhoneNumber:{},QueueId:{},Attributes:{shape:"S18"}}},output:{type:"structure",members:{ContactId:{}}}},StopContact:{http:{requestUri:"/contact/stop"},input:{type:"structure",required:["ContactId","InstanceId"],members:{ContactId:{},InstanceId:{}}},output:{type:"structure",members:{}}},TagResource:{http:{requestUri:"/tags/{resourceArn}"},input:{type:"structure",required:["resourceArn","tags"],members:{resourceArn:{location:"uri",locationName:"resourceArn"},tags:{shape:"Sj"}}}},UntagResource:{http:{method:"DELETE",requestUri:"/tags/{resourceArn}"},input:{type:"structure",required:["resourceArn","tagKeys"],members:{resourceArn:{location:"uri",locationName:"resourceArn"},tagKeys:{location:"querystring",locationName:"tagKeys",type:"list",member:{}}}}},UpdateContactAttributes:{http:{requestUri:"/contact/attributes"},input:{type:"structure",required:["InitialContactId","InstanceId","Attributes"],members:{InitialContactId:{},InstanceId:{},Attributes:{shape:"S18"}}},output:{type:"structure",members:{}}},UpdateUserHierarchy:{http:{requestUri:"/users/{InstanceId}/{UserId}/hierarchy"},input:{type:"structure",required:["UserId","InstanceId"],members:{HierarchyGroupId:{},UserId:{location:"uri",locationName:"UserId"},InstanceId:{location:"uri",locationName:"InstanceId"}}}},UpdateUserIdentityInfo:{http:{requestUri:"/users/{InstanceId}/{UserId}/identity-info"},input:{type:"structure",required:["IdentityInfo","UserId","InstanceId"],members:{IdentityInfo:{shape:"S4"},UserId:{location:"uri",locationName:"UserId"},InstanceId:{location:"uri",locationName:"InstanceId"}}}},UpdateUserPhoneConfig:{http:{requestUri:"/users/{InstanceId}/{UserId}/phone-config"},input:{type:"structure",required:["PhoneConfig","UserId","InstanceId"],members:{PhoneConfig:{shape:"S8"},UserId:{location:"uri",locationName:"UserId"},InstanceId:{location:"uri",locationName:"InstanceId"}}}},UpdateUserRoutingProfile:{http:{requestUri:"/users/{InstanceId}/{UserId}/routing-profile"},input:{type:"structure",required:["RoutingProfileId","UserId","InstanceId"],members:{RoutingProfileId:{},UserId:{location:"uri",locationName:"UserId"},InstanceId:{location:"uri",locationName:"InstanceId"}}}},UpdateUserSecurityProfiles:{http:{requestUri:"/users/{InstanceId}/{UserId}/security-profiles"},input:{type:"structure",required:["SecurityProfileIds","UserId","InstanceId"],members:{SecurityProfileIds:{shape:"Se"},UserId:{location:"uri",locationName:"UserId"},InstanceId:{location:"uri",locationName:"InstanceId"}}}}},shapes:{S4:{type:"structure",members:{FirstName:{},LastName:{},Email:{}}},S8:{type:"structure",required:["PhoneType"],members:{PhoneType:{},AutoAccept:{type:"boolean"},AfterContactWorkTimeLimit:{type:"integer"},DeskPhoneNumber:{}}},Se:{type:"list",member:{}},Sj:{type:"map",key:{},value:{}},Sz:{type:"structure",members:{Id:{},Arn:{},Name:{}}},S13:{type:"structure",members:{Id:{},Arn:{},Name:{}}},S18:{type:"map",key:{},value:{}},S1c:{type:"structure",members:{Queues:{type:"list",member:{}},Channels:{type:"list",member:{}}}},S1h:{type:"list",member:{}},S1k:{type:"structure",members:{Name:{},Unit:{}}},S1s:{type:"structure",members:{Queue:{type:"structure",members:{Id:{},Arn:{}}},Channel:{}}},S21:{type:"string",sensitive:!0},S24:{type:"structure",members:{Name:{},Threshold:{type:"structure",members:{Comparison:{},ThresholdValue:{type:"double"}}},Statistic:{},Unit:{}}}},paginators:{GetCurrentMetricData:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetMetricData:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},ListContactFlows:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"ContactFlowSummaryList"},ListHoursOfOperations:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"HoursOfOperationSummaryList"},ListPhoneNumbers:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"PhoneNumberSummaryList"},ListQueues:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"QueueSummaryList"},ListRoutingProfiles:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"RoutingProfileSummaryList"},ListSecurityProfiles:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"SecurityProfileSummaryList"},ListUserHierarchyGroups:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"UserHierarchyGroupSummaryList"},ListUsers:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"UserSummaryList"}}};AWS.apiLoader.services.connectparticipant={},AWS.ConnectParticipant=AWS.Service.defineService("connectparticipant",["2018-09-07"]);AWS.apiLoader.services.connectparticipant["2018-09-07"]={version:"2.0",metadata:{apiVersion:"2018-09-07",endpointPrefix:"participant.connect",jsonVersion:"1.1",protocol:"rest-json",serviceAbbreviation:"Amazon Connect Participant",serviceFullName:"Amazon Connect Participant Service",serviceId:"ConnectParticipant",signatureVersion:"v4",signingName:"execute-api",uid:"connectparticipant-2018-09-07"},operations:{CreateParticipantConnection:{http:{requestUri:"/participant/connection"},input:{type:"structure",required:["Type","ParticipantToken"],members:{Type:{type:"list",member:{}},ParticipantToken:{location:"header",locationName:"X-Amz-Bearer"}}},output:{type:"structure",members:{Websocket:{type:"structure",members:{Url:{},ConnectionExpiry:{}}},ConnectionCredentials:{type:"structure",members:{ConnectionToken:{},Expiry:{}}}}}},DisconnectParticipant:{http:{requestUri:"/participant/disconnect"},input:{type:"structure",required:["ConnectionToken"],members:{ClientToken:{idempotencyToken:!0},ConnectionToken:{location:"header",locationName:"X-Amz-Bearer"}}},output:{type:"structure",members:{}}},GetTranscript:{http:{requestUri:"/participant/transcript"},input:{type:"structure",required:["ConnectionToken"],members:{ContactId:{},MaxResults:{type:"integer"},NextToken:{},ScanDirection:{},SortOrder:{},StartPosition:{type:"structure",members:{Id:{},AbsoluteTime:{},MostRecent:{type:"integer"}}},ConnectionToken:{location:"header",locationName:"X-Amz-Bearer"}}},output:{type:"structure",members:{InitialContactId:{},Transcript:{type:"list",member:{type:"structure",members:{AbsoluteTime:{},Content:{},ContentType:{},Id:{},Type:{},ParticipantId:{},DisplayName:{},ParticipantRole:{}}}},NextToken:{}}}},SendEvent:{http:{requestUri:"/participant/event"},input:{type:"structure",required:["ContentType","ConnectionToken"],members:{ContentType:{},Content:{},ClientToken:{idempotencyToken:!0},ConnectionToken:{location:"header",locationName:"X-Amz-Bearer"}}},output:{type:"structure",members:{Id:{},AbsoluteTime:{}}}},SendMessage:{http:{requestUri:"/participant/message"},input:{type:"structure",required:["ContentType","Content","ConnectionToken"],members:{ContentType:{},Content:{},ClientToken:{idempotencyToken:!0},ConnectionToken:{location:"header",locationName:"X-Amz-Bearer"}}},output:{type:"structure",members:{Id:{},AbsoluteTime:{}}}}},shapes:{},paginators:{GetTranscript:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"}}}; \ No newline at end of file diff --git a/source/ws_realtime_transcribe_Default/index.js b/source/ws_realtime_transcribe_Default/index.js index 73ee005..618b8aa 100755 --- a/source/ws_realtime_transcribe_Default/index.js +++ b/source/ws_realtime_transcribe_Default/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ var AWS = require('aws-sdk'); AWS.config.update({ region: process.env.AWS_REGION }); diff --git a/source/ws_realtime_transcribe_OnConnect/index.js b/source/ws_realtime_transcribe_OnConnect/index.js index 2e6df91..fd0f959 100755 --- a/source/ws_realtime_transcribe_OnConnect/index.js +++ b/source/ws_realtime_transcribe_OnConnect/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ var AWS = require("aws-sdk"); AWS.config.update({ region: process.env.AWS_REGION }); diff --git a/source/ws_realtime_transcribe_OnDDBInsert/index.js b/source/ws_realtime_transcribe_OnDDBInsert/index.js index 5fa41e3..c248987 100755 --- a/source/ws_realtime_transcribe_OnDDBInsert/index.js +++ b/source/ws_realtime_transcribe_OnDDBInsert/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ var AWS = require('aws-sdk'); AWS.config.update({ region: process.env.AWS_REGION }); diff --git a/source/ws_realtime_transcribe_OnDDBInsert/lib/apigatewaymanagementapi-patch.js b/source/ws_realtime_transcribe_OnDDBInsert/lib/apigatewaymanagementapi-patch.js index 335195a..fdc439a 100644 --- a/source/ws_realtime_transcribe_OnDDBInsert/lib/apigatewaymanagementapi-patch.js +++ b/source/ws_realtime_transcribe_OnDDBInsert/lib/apigatewaymanagementapi-patch.js @@ -1,15 +1,20 @@ -/********************************************************************************************************************* - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * - * * - * Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance * - * with the License. A copy of the License is located at * - * * - * http://aws.amazon.com/asl/ * - * * - * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * - * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * - * and limitations under the License. * - *********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ require('aws-sdk/lib/node_loader'); var AWS = require('aws-sdk/lib/core'); diff --git a/source/ws_realtime_transcribe_OnDisconnect/index.js b/source/ws_realtime_transcribe_OnDisconnect/index.js index 81ca334..6e305e6 100755 --- a/source/ws_realtime_transcribe_OnDisconnect/index.js +++ b/source/ws_realtime_transcribe_OnDisconnect/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ var AWS = require("aws-sdk"); AWS.config.update({ region: process.env.AWS_REGION }); diff --git a/source/ws_realtime_transcribe_OnMessage/index.js b/source/ws_realtime_transcribe_OnMessage/index.js index 680c89b..dbb4d76 100755 --- a/source/ws_realtime_transcribe_OnMessage/index.js +++ b/source/ws_realtime_transcribe_OnMessage/index.js @@ -1,17 +1,20 @@ -/********************************************************************************************************************** - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation * - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and * - * to permit persons to whom the Software is furnished to do so. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * - * IN THE SOFTWARE. * - **********************************************************************************************************************/ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: MIT-0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this + * software and associated documentation files (the "Software"), to deal in the Software + * without restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ var AWS = require('aws-sdk'); AWS.config.update({ region: process.env.AWS_REGION });